Move issue closer action into repository code
This commit is contained in:
		
							parent
							
								
									4705fb8ef1
								
							
						
					
					
						commit
						329912b7b1
					
				
							
								
								
									
										2
									
								
								.github/actions/issue-closer/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.github/actions/issue-closer/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
node_modules/
 | 
			
		||||
dist/
 | 
			
		||||
							
								
								
									
										22
									
								
								.github/actions/issue-closer/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.github/actions/issue-closer/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
name: Issue matching auto-closer
 | 
			
		||||
description: Automatically close issues based on regexs matching.
 | 
			
		||||
author: arkon
 | 
			
		||||
branding:
 | 
			
		||||
  icon: alert-circle
 | 
			
		||||
  color: red
 | 
			
		||||
inputs:
 | 
			
		||||
  repo-token:
 | 
			
		||||
    required: true
 | 
			
		||||
    description: GitHub token
 | 
			
		||||
  type:
 | 
			
		||||
    required: true
 | 
			
		||||
    description: Either "body" or "title", indicating what to run the regex against.
 | 
			
		||||
  regex:
 | 
			
		||||
    required: true
 | 
			
		||||
    description: Regular expression pattern which if matched closes the issue.
 | 
			
		||||
  message:
 | 
			
		||||
    required: true
 | 
			
		||||
    description: Message to post when closing the issue.
 | 
			
		||||
runs:
 | 
			
		||||
  using: node12
 | 
			
		||||
  main: dist/index.js
 | 
			
		||||
							
								
								
									
										417
									
								
								.github/actions/issue-closer/package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										417
									
								
								.github/actions/issue-closer/package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,417 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "issue-closer",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "lockfileVersion": 1,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/core": {
 | 
			
		||||
      "version": "1.2.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.5.tgz",
 | 
			
		||||
      "integrity": "sha512-mwpoNjHSWWh0IiALdDEQi3tru124JKn0yVNziIBzTME8QRv7thwoghVuT1jBRjFvdtoHsqD58IRHy1nf86paRg=="
 | 
			
		||||
    },
 | 
			
		||||
    "@actions/github": {
 | 
			
		||||
      "version": "2.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-9UAZqn8ywdR70n3GwVle4N8ALosQs4z50N7XMXrSTUVOmVpaBC5kE3TRTT7qQdi3OaQV24mjGuJZsHUmhD+ZXw==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@actions/http-client": "^1.0.3",
 | 
			
		||||
        "@octokit/graphql": "^4.3.1",
 | 
			
		||||
        "@octokit/rest": "^16.43.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@actions/http-client": {
 | 
			
		||||
      "version": "1.0.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.8.tgz",
 | 
			
		||||
      "integrity": "sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "tunnel": "0.0.6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/auth-token": {
 | 
			
		||||
      "version": "2.4.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz",
 | 
			
		||||
      "integrity": "sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/types": "^5.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/endpoint": {
 | 
			
		||||
      "version": "6.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/types": "^5.0.0",
 | 
			
		||||
        "is-plain-object": "^4.0.0",
 | 
			
		||||
        "universal-user-agent": "^6.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/graphql": {
 | 
			
		||||
      "version": "4.5.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.4.tgz",
 | 
			
		||||
      "integrity": "sha512-ITpZ+dQc0cXAW1FmDkHJJM+8Lb6anUnin0VB5hLBilnYVdLC0ICFU/KIvT7OXfW9S81DE3U4Vx2EypDG1OYaPA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/request": "^5.3.0",
 | 
			
		||||
        "@octokit/types": "^5.0.0",
 | 
			
		||||
        "universal-user-agent": "^6.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/plugin-paginate-rest": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/types": "^2.0.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@octokit/types": {
 | 
			
		||||
          "version": "2.16.2",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz",
 | 
			
		||||
          "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "@types/node": ">= 8"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/plugin-request-log": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw=="
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/plugin-rest-endpoint-methods": {
 | 
			
		||||
      "version": "2.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/types": "^2.0.1",
 | 
			
		||||
        "deprecation": "^2.3.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@octokit/types": {
 | 
			
		||||
          "version": "2.16.2",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz",
 | 
			
		||||
          "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "@types/node": ">= 8"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/request": {
 | 
			
		||||
      "version": "5.4.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.7.tgz",
 | 
			
		||||
      "integrity": "sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/endpoint": "^6.0.1",
 | 
			
		||||
        "@octokit/request-error": "^2.0.0",
 | 
			
		||||
        "@octokit/types": "^5.0.0",
 | 
			
		||||
        "deprecation": "^2.0.0",
 | 
			
		||||
        "is-plain-object": "^4.0.0",
 | 
			
		||||
        "node-fetch": "^2.3.0",
 | 
			
		||||
        "once": "^1.4.0",
 | 
			
		||||
        "universal-user-agent": "^6.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/request-error": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/types": "^5.0.1",
 | 
			
		||||
        "deprecation": "^2.0.0",
 | 
			
		||||
        "once": "^1.4.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/rest": {
 | 
			
		||||
      "version": "16.43.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz",
 | 
			
		||||
      "integrity": "sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@octokit/auth-token": "^2.4.0",
 | 
			
		||||
        "@octokit/plugin-paginate-rest": "^1.1.1",
 | 
			
		||||
        "@octokit/plugin-request-log": "^1.0.0",
 | 
			
		||||
        "@octokit/plugin-rest-endpoint-methods": "2.4.0",
 | 
			
		||||
        "@octokit/request": "^5.2.0",
 | 
			
		||||
        "@octokit/request-error": "^1.0.2",
 | 
			
		||||
        "atob-lite": "^2.0.0",
 | 
			
		||||
        "before-after-hook": "^2.0.0",
 | 
			
		||||
        "btoa-lite": "^1.0.0",
 | 
			
		||||
        "deprecation": "^2.0.0",
 | 
			
		||||
        "lodash.get": "^4.4.2",
 | 
			
		||||
        "lodash.set": "^4.3.2",
 | 
			
		||||
        "lodash.uniq": "^4.5.0",
 | 
			
		||||
        "octokit-pagination-methods": "^1.1.0",
 | 
			
		||||
        "once": "^1.4.0",
 | 
			
		||||
        "universal-user-agent": "^4.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@octokit/request-error": {
 | 
			
		||||
          "version": "1.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz",
 | 
			
		||||
          "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "@octokit/types": "^2.0.0",
 | 
			
		||||
            "deprecation": "^2.0.0",
 | 
			
		||||
            "once": "^1.4.0"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "@octokit/types": {
 | 
			
		||||
          "version": "2.16.2",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz",
 | 
			
		||||
          "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "@types/node": ">= 8"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "universal-user-agent": {
 | 
			
		||||
          "version": "4.0.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz",
 | 
			
		||||
          "integrity": "sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "os-name": "^3.1.0"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@octokit/types": {
 | 
			
		||||
      "version": "5.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": ">= 8"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@types/node": {
 | 
			
		||||
      "version": "14.6.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz",
 | 
			
		||||
      "integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A=="
 | 
			
		||||
    },
 | 
			
		||||
    "@zeit/ncc": {
 | 
			
		||||
      "version": "0.22.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.22.3.tgz",
 | 
			
		||||
      "integrity": "sha512-jnCLpLXWuw/PAiJiVbLjA8WBC0IJQbFeUwF4I9M+23MvIxTxk5pD4Q8byQBSPmHQjz5aBoA7AKAElQxMpjrCLQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "atob-lite": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY="
 | 
			
		||||
    },
 | 
			
		||||
    "before-after-hook": {
 | 
			
		||||
      "version": "2.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A=="
 | 
			
		||||
    },
 | 
			
		||||
    "btoa-lite": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc="
 | 
			
		||||
    },
 | 
			
		||||
    "cross-spawn": {
 | 
			
		||||
      "version": "6.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "nice-try": "^1.0.4",
 | 
			
		||||
        "path-key": "^2.0.1",
 | 
			
		||||
        "semver": "^5.5.0",
 | 
			
		||||
        "shebang-command": "^1.2.0",
 | 
			
		||||
        "which": "^1.2.9"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "deprecation": {
 | 
			
		||||
      "version": "2.3.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
 | 
			
		||||
      "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "end-of-stream": {
 | 
			
		||||
      "version": "1.4.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
 | 
			
		||||
      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "once": "^1.4.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "execa": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "cross-spawn": "^6.0.0",
 | 
			
		||||
        "get-stream": "^4.0.0",
 | 
			
		||||
        "is-stream": "^1.1.0",
 | 
			
		||||
        "npm-run-path": "^2.0.0",
 | 
			
		||||
        "p-finally": "^1.0.0",
 | 
			
		||||
        "signal-exit": "^3.0.0",
 | 
			
		||||
        "strip-eof": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "get-stream": {
 | 
			
		||||
      "version": "4.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "pump": "^3.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "is-plain-object": {
 | 
			
		||||
      "version": "4.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-4.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA=="
 | 
			
		||||
    },
 | 
			
		||||
    "is-stream": {
 | 
			
		||||
      "version": "1.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
 | 
			
		||||
      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
 | 
			
		||||
    },
 | 
			
		||||
    "isexe": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
 | 
			
		||||
    },
 | 
			
		||||
    "lodash.get": {
 | 
			
		||||
      "version": "4.4.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
 | 
			
		||||
      "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
 | 
			
		||||
    },
 | 
			
		||||
    "lodash.set": {
 | 
			
		||||
      "version": "4.3.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
 | 
			
		||||
      "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM="
 | 
			
		||||
    },
 | 
			
		||||
    "lodash.uniq": {
 | 
			
		||||
      "version": "4.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
 | 
			
		||||
      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
 | 
			
		||||
    },
 | 
			
		||||
    "macos-release": {
 | 
			
		||||
      "version": "2.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg=="
 | 
			
		||||
    },
 | 
			
		||||
    "nice-try": {
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "node-fetch": {
 | 
			
		||||
      "version": "2.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
 | 
			
		||||
    },
 | 
			
		||||
    "npm-run-path": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "path-key": "^2.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "octokit-pagination-methods": {
 | 
			
		||||
      "version": "1.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "once": {
 | 
			
		||||
      "version": "1.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
 | 
			
		||||
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "wrappy": "1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "os-name": {
 | 
			
		||||
      "version": "3.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "macos-release": "^2.2.0",
 | 
			
		||||
        "windows-release": "^3.1.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "p-finally": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
 | 
			
		||||
    },
 | 
			
		||||
    "path-key": {
 | 
			
		||||
      "version": "2.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
 | 
			
		||||
      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
 | 
			
		||||
    },
 | 
			
		||||
    "pump": {
 | 
			
		||||
      "version": "3.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "end-of-stream": "^1.1.0",
 | 
			
		||||
        "once": "^1.3.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "semver": {
 | 
			
		||||
      "version": "5.7.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
 | 
			
		||||
      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "shebang-command": {
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
 | 
			
		||||
      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "shebang-regex": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "shebang-regex": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
 | 
			
		||||
    },
 | 
			
		||||
    "signal-exit": {
 | 
			
		||||
      "version": "3.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
 | 
			
		||||
    },
 | 
			
		||||
    "strip-eof": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
 | 
			
		||||
    },
 | 
			
		||||
    "tunnel": {
 | 
			
		||||
      "version": "0.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
 | 
			
		||||
    },
 | 
			
		||||
    "typescript": {
 | 
			
		||||
      "version": "4.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "universal-user-agent": {
 | 
			
		||||
      "version": "6.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
 | 
			
		||||
    },
 | 
			
		||||
    "which": {
 | 
			
		||||
      "version": "1.3.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
 | 
			
		||||
      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "isexe": "^2.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "windows-release": {
 | 
			
		||||
      "version": "3.3.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz",
 | 
			
		||||
      "integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "execa": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "wrappy": {
 | 
			
		||||
      "version": "1.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 | 
			
		||||
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/actions/issue-closer/package.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.github/actions/issue-closer/package.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "issue-closer",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "description": "GitHub action to automatically close issues based on regexs matching",
 | 
			
		||||
  "main": "lib/action.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "postinstall": "ncc build src/main.ts"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/core": "^1.2.4",
 | 
			
		||||
    "@actions/github": "^2.2.0"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/node": "^14.6.2",
 | 
			
		||||
    "@zeit/ncc": "^0.22.3",
 | 
			
		||||
    "typescript": "^4.0.2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										71
									
								
								.github/actions/issue-closer/src/main.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.github/actions/issue-closer/src/main.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,71 @@
 | 
			
		||||
import * as core from '@actions/core';
 | 
			
		||||
import * as github from '@actions/github';
 | 
			
		||||
 | 
			
		||||
async function run() {
 | 
			
		||||
  try {
 | 
			
		||||
    const type: string = core.getInput('type', {required: true});
 | 
			
		||||
    const regex: string = core.getInput('regex', {required: true});
 | 
			
		||||
    const message: string = core.getInput('message', {required: true});
 | 
			
		||||
 | 
			
		||||
    if (type !== 'title' && type !== 'body') {
 | 
			
		||||
      throw new Error(
 | 
			
		||||
        '`type` must be either "title" or "body".'
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Get client and context
 | 
			
		||||
    const client: github.GitHub = new github.GitHub(
 | 
			
		||||
      core.getInput('repo-token', {required: true})
 | 
			
		||||
    );
 | 
			
		||||
    const context = github.context;
 | 
			
		||||
    const payload = context.payload;
 | 
			
		||||
 | 
			
		||||
    // Do nothing if it's wasn't being opened or it's not an issue
 | 
			
		||||
    if (payload.action !== 'opened' || !payload.issue) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!payload.sender) {
 | 
			
		||||
      throw new Error('Internal error, no sender provided by GitHub');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const issue: {owner: string; repo: string; number: number} = context.issue;
 | 
			
		||||
 | 
			
		||||
    const text = type === 'title' ? payload?.issue?.title : payload?.issue?.body;
 | 
			
		||||
    const regexMatches: boolean = check(regex, text);
 | 
			
		||||
 | 
			
		||||
    if (regexMatches) {
 | 
			
		||||
      // Comment and close
 | 
			
		||||
      await client.issues.createComment({
 | 
			
		||||
        owner: issue.owner,
 | 
			
		||||
        repo: issue.repo,
 | 
			
		||||
        issue_number: issue.number,
 | 
			
		||||
        body: evalTemplate(message, payload)
 | 
			
		||||
      });
 | 
			
		||||
      await client.issues.update({
 | 
			
		||||
        owner: issue.owner,
 | 
			
		||||
        repo: issue.repo,
 | 
			
		||||
        issue_number: issue.number,
 | 
			
		||||
        state: 'closed'
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    core.setFailed(error.message);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function check(patternString: string, text: string | undefined): boolean {
 | 
			
		||||
  const pattern: RegExp = new RegExp(patternString);
 | 
			
		||||
 | 
			
		||||
  if (text?.match(pattern)) {
 | 
			
		||||
    return true;
 | 
			
		||||
  } else {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function evalTemplate(template: string, params: any) {
 | 
			
		||||
  return Function(...Object.keys(params), `return \`${template}\``)(...Object.values(params));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
run();
 | 
			
		||||
							
								
								
									
										16
									
								
								.github/actions/issue-closer/tsconfig.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.github/actions/issue-closer/tsconfig.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
      "target": "es6",
 | 
			
		||||
      "module": "commonjs",
 | 
			
		||||
      "outDir": "lib", 
 | 
			
		||||
      "rootDir": "src",
 | 
			
		||||
      "esModuleInterop": true
 | 
			
		||||
    },
 | 
			
		||||
    "include": [
 | 
			
		||||
      "src/**/*"
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": [
 | 
			
		||||
      "node_modules"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
							
								
								
									
										51
									
								
								.github/workflows/issue_closer.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										51
									
								
								.github/workflows/issue_closer.yml
									
									
									
									
										vendored
									
									
								
							@ -4,24 +4,33 @@ jobs:
 | 
			
		||||
  autoclose:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Autoclose when no source name or short description provided in title
 | 
			
		||||
      uses: arkon/issue-closer-action@v1.1
 | 
			
		||||
      with:
 | 
			
		||||
        repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        type: title
 | 
			
		||||
        regex: ".*<(Source Name|short description)>*"
 | 
			
		||||
        message: "@${issue.user.login} this issue was automatically closed because you did not fill out the description in the title."
 | 
			
		||||
    - name: Autoclose when body acknowledgement section not removed
 | 
			
		||||
      uses: arkon/issue-closer-action@v1.1
 | 
			
		||||
      with:
 | 
			
		||||
        repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        type: body
 | 
			
		||||
        regex: ".*DELETE THIS SECTION IF YOU HAVE READ AND ACKNOWLEDGED IT.*"
 | 
			
		||||
        message: "@${issue.user.login} this issue was automatically closed because the acknowledgment section was not removed."
 | 
			
		||||
    - name: Autoclose when body requested information not filled out
 | 
			
		||||
      uses: arkon/issue-closer-action@v1.1
 | 
			
		||||
      with:
 | 
			
		||||
        repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        type: body
 | 
			
		||||
        regex: ".*\\* (Tachiyomi version|Android version|Device|Name|Link|Extension version): \\?.*"
 | 
			
		||||
        message: "@${issue.user.login} this issue was automatically closed because the requested information was not filled out."
 | 
			
		||||
      - name: Checkout repository
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
      - name: Install Node v14
 | 
			
		||||
        uses: actions/setup-node@v1
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: 14
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        run: cd ./.github/actions/issue-closer && npm install
 | 
			
		||||
 | 
			
		||||
      - name: Autoclose when no source name or short description provided in title
 | 
			
		||||
        uses: ./.github/actions/issue-closer
 | 
			
		||||
        with:
 | 
			
		||||
          repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          type: title
 | 
			
		||||
          regex: ".*<(Source Name|short description)>*"
 | 
			
		||||
          message: "@${issue.user.login} this issue was automatically closed because you did not fill out the description in the title."
 | 
			
		||||
      - name: Autoclose when body acknowledgement section not removed
 | 
			
		||||
        uses: ./.github/actions/issue-closer
 | 
			
		||||
        with:
 | 
			
		||||
          repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          type: body
 | 
			
		||||
          regex: ".*DELETE THIS SECTION IF YOU HAVE READ AND ACKNOWLEDGED IT.*"
 | 
			
		||||
          message: "@${issue.user.login} this issue was automatically closed because the acknowledgment section was not removed."
 | 
			
		||||
      - name: Autoclose when body requested information not filled out
 | 
			
		||||
        uses: ./.github/actions/issue-closer
 | 
			
		||||
        with:
 | 
			
		||||
          repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          type: body
 | 
			
		||||
          regex: ".*\\* (Tachiyomi version|Android version|Device|Name|Link|Extension version): \\?.*"
 | 
			
		||||
          message: "@${issue.user.login} this issue was automatically closed because the requested information was not filled out."
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user