diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..398c7da
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,8 @@
+# Recommended to run npm start first!
+
+WEBHOOK_PROXY_URL=""
+APP_ID=""
+PRIVATE_KEY=""
+WEBHOOK_SECRET=""
+CLIENT_ID=""
+CLIENT_SECRET=""
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
index 8a9f115..0948fef 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -18,6 +18,7 @@
"@typescript-eslint"
],
"rules": {
+ "arrow-parens": ["warn", "always"],
"brace-style": ["warn", "1tbs"],
"camelcase": ["warn", {
"properties": "never",
@@ -32,6 +33,7 @@
"curly": ["error", "all"],
"default-case": 1,
"eol-last": ["warn", "always"],
+ "eqeqeq": ["error", "smart"],
"indent": ["warn", 4, {
"SwitchCase": 1
}],
@@ -54,6 +56,7 @@
"objectsInObjects": true,
"arraysInObjects": true
}],
+ "object-shorthand": ["warn", "consistent"],
"quotes": ["warn", "double", {
"avoidEscape": false
}],
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 37b1d58..3a23fd8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -2,20 +2,20 @@ name: Run TypeScript Compiler
on:
push:
- branches: [ develop ]
+ branches: [ development ]
pull_request:
- branches: [ develop ]
+ branches: [ development ]
jobs:
- lint:
+ build:
runs-on: windows-latest
strategy:
matrix:
node-version: [18.19.0]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install npm
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 3fa1a52..5cf876e 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -2,9 +2,9 @@ name: Run ESLint Linter
on:
push:
- branches: [ develop ]
+ branches: [ development ]
pull_request:
- branches: [ develop ]
+ branches: [ development ]
jobs:
lint:
@@ -13,9 +13,9 @@ jobs:
matrix:
node-version: [18.19.0]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install npm
diff --git a/README.md b/README.md
index 2f6e9c0..179f81a 100644
--- a/README.md
+++ b/README.md
@@ -12,10 +12,10 @@ This GitHub Automaton is a Probot-based application that automates various actio
Environment Variables
To use this application, set the following environment variables in a .env file:
-APP_ID: Your GitHub App's ID.
-PRIVATE_KEY: Your GitHub App's private key.
-CLIENT_ID: Your GitHub App's client ID.
-CLIENT_SECRET: Your GitHub App's client secret.
+- APP_ID: Your GitHub App's ID.
+- PRIVATE_KEY: Your GitHub App's private key.
+- CLIENT_ID: Your GitHub App's client ID.
+- CLIENT_SECRET: Your GitHub App's client secret.
## Usage
To use this application, install the dependencies and configure the environment variables. Run the application using the appropriate command `npm run build:start`.
@@ -24,4 +24,4 @@ To use this application, install the dependencies and configure the environment
Contributions are welcome! Please see this **Contribution Guide** and adhere to **Code Of Conduct**. If you have any improvements, feel free to submit a pull request.
## License
-This project is licensed under the MIT License.
+This project is licensed under the ISC License.
diff --git a/env.example b/env.example
deleted file mode 100644
index 696edf8..0000000
--- a/env.example
+++ /dev/null
@@ -1,6 +0,0 @@
-# Recommended to run npm start first!
-
-WEBHOOK_PROXY_URL=
-APP_ID=
-PRIVATE_KEY=""
-WEBHOOK_SECRET=
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index e59d190..3361727 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,26 +1,26 @@
{
"name": "typeslint-cli",
- "version": "3.0.0",
+ "version": "3.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "typeslint-cli",
- "version": "3.0.0",
+ "version": "3.0.1",
"license": "ISC",
"dependencies": {
- "dotenv": "^16.3.1",
- "octokit": "^3.1.2",
- "probot": "^12.3.3",
- "smee-client": "^2.0.0"
+ "dotenv": "^16.4.5",
+ "octokit": "^3.2.1",
+ "probot": "^12.4.0",
+ "smee-client": "^2.0.1"
},
"devDependencies": {
- "@octokit/auth-app": "^6.0.2",
- "@octokit/rest": "^20.0.2",
- "@types/node": "^18.19.3",
- "@typescript-eslint/eslint-plugin": "^6.16.0",
- "@typescript-eslint/parser": "^6.16.0",
- "eslint": "^8.56.0",
+ "@octokit/auth-app": "^6.1.1",
+ "@octokit/rest": "^20.1.1",
+ "@types/node": "^18.19.39",
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
+ "@typescript-eslint/parser": "^6.21.0",
+ "eslint": "^8.57.0",
"typescript": "5.3.3"
},
"engines": {
@@ -107,9 +107,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
- "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -121,13 +121,13 @@
"integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q=="
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.13",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
- "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
@@ -170,9 +170,9 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
- "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
"dev": true
},
"node_modules/@nodelib/fs.scandir": {
@@ -228,33 +228,46 @@
}
},
"node_modules/@octokit/auth-app": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.0.2.tgz",
- "integrity": "sha512-HYuRX3Fvhs2y9i7a4F8f+A5HWfacRWmpERHGBEOtgvKVjJkOQZKUY2v6HiSszYecHAF8Ojqngp2iraSP3SvNpQ==",
- "dependencies": {
- "@octokit/auth-oauth-app": "^7.0.0",
- "@octokit/auth-oauth-user": "^4.0.0",
- "@octokit/request": "^8.0.2",
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.1.tgz",
+ "integrity": "sha512-VrTtzRpyuT5nYGUWeGWQqH//hqEZDV+/yb6+w5wmWpmmUA1Tx950XsAc2mBBfvusfcdF2E7w8jZ1r1WwvfZ9pA==",
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^7.1.0",
+ "@octokit/auth-oauth-user": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.1.0",
"deprecation": "^2.3.1",
"lru-cache": "^10.0.0",
- "universal-github-app-jwt": "^1.1.1",
+ "universal-github-app-jwt": "^1.1.2",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
+ "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/auth-app/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
"node_modules/@octokit/auth-oauth-app": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.0.1.tgz",
- "integrity": "sha512-RE0KK0DCjCHXHlQBoubwlLijXEKfhMhKm9gO56xYvFmP1QTMb+vvwRPmQLLx0V+5AvV9N9I3lr1WyTzwL3rMDg==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz",
+ "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==",
"dependencies": {
- "@octokit/auth-oauth-device": "^6.0.0",
- "@octokit/auth-oauth-user": "^4.0.0",
- "@octokit/request": "^8.0.2",
- "@octokit/types": "^12.0.0",
+ "@octokit/auth-oauth-device": "^6.1.0",
+ "@octokit/auth-oauth-user": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
"@types/btoa-lite": "^1.0.0",
"btoa-lite": "^1.0.0",
"universal-user-agent": "^6.0.0"
@@ -263,29 +276,55 @@
"node": ">= 18"
}
},
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
"node_modules/@octokit/auth-oauth-device": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.0.1.tgz",
- "integrity": "sha512-yxU0rkL65QkjbqQedgVx3gmW7YM5fF+r5uaSj9tM/cQGVqloXcqP2xK90eTyYvl29arFVCW8Vz4H/t47mL0ELw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz",
+ "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==",
"dependencies": {
- "@octokit/oauth-methods": "^4.0.0",
- "@octokit/request": "^8.0.0",
- "@octokit/types": "^12.0.0",
+ "@octokit/oauth-methods": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
"node_modules/@octokit/auth-oauth-user": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.0.1.tgz",
- "integrity": "sha512-N94wWW09d0hleCnrO5wt5MxekatqEJ4zf+1vSe8MKMrhZ7gAXKFOKrDEZW2INltvBWJCyDUELgGRv8gfErH1Iw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz",
+ "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==",
"dependencies": {
- "@octokit/auth-oauth-device": "^6.0.0",
- "@octokit/oauth-methods": "^4.0.0",
- "@octokit/request": "^8.0.2",
- "@octokit/types": "^12.0.0",
+ "@octokit/auth-oauth-device": "^6.1.0",
+ "@octokit/oauth-methods": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
"btoa-lite": "^1.0.0",
"universal-user-agent": "^6.0.0"
},
@@ -293,6 +332,19 @@
"node": ">= 18"
}
},
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
"node_modules/@octokit/auth-token": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
@@ -382,20 +434,33 @@
}
},
"node_modules/@octokit/oauth-methods": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.0.1.tgz",
- "integrity": "sha512-1NdTGCoBHyD6J0n2WGXg9+yDLZrRNZ0moTEex/LSPr49m530WNKcCfXDghofYptr3st3eTii+EHoG5k/o+vbtw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz",
+ "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==",
"dependencies": {
"@octokit/oauth-authorization-url": "^6.0.2",
- "@octokit/request": "^8.0.2",
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.0.0",
"btoa-lite": "^1.0.0"
},
"engines": {
"node": ">= 18"
}
},
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
"node_modules/@octokit/openapi-types": {
"version": "19.1.0",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz",
@@ -471,17 +536,30 @@
}
},
"node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz",
- "integrity": "sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==",
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz",
+ "integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==",
"dependencies": {
- "@octokit/types": "^12.3.0"
+ "@octokit/types": "^13.5.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": ">=5"
+ "@octokit/core": "^5"
+ }
+ },
+ "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": {
+ "version": "22.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
+ "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
+ },
+ "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
+ "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.2.0"
}
},
"node_modules/@octokit/plugin-retry": {
@@ -516,13 +594,13 @@
}
},
"node_modules/@octokit/request": {
- "version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.6.tgz",
- "integrity": "sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz",
+ "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==",
"dependencies": {
- "@octokit/endpoint": "^9.0.0",
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
+ "@octokit/endpoint": "^9.0.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.1.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
@@ -530,11 +608,11 @@
}
},
"node_modules/@octokit/request-error": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz",
- "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz",
+ "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==",
"dependencies": {
- "@octokit/types": "^12.0.0",
+ "@octokit/types": "^13.1.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
@@ -542,19 +620,75 @@
"node": ">= 18"
}
},
+ "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/request-error/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
+ "node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
+ "version": "22.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
+ "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
+ },
+ "node_modules/@octokit/request/node_modules/@octokit/types": {
+ "version": "13.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
+ "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.0.1"
+ }
+ },
"node_modules/@octokit/rest": {
- "version": "20.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz",
- "integrity": "sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz",
+ "integrity": "sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==",
"dev": true,
"dependencies": {
- "@octokit/core": "^5.0.0",
- "@octokit/plugin-paginate-rest": "^9.0.0",
+ "@octokit/core": "^5.0.2",
+ "@octokit/plugin-paginate-rest": "11.3.1",
"@octokit/plugin-request-log": "^4.0.0",
- "@octokit/plugin-rest-endpoint-methods": "^10.0.0"
+ "@octokit/plugin-rest-endpoint-methods": "13.2.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/rest/node_modules/@octokit/openapi-types": {
+ "version": "22.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
+ "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==",
+ "dev": true
+ },
+ "node_modules/@octokit/rest/node_modules/@octokit/plugin-paginate-rest": {
+ "version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz",
+ "integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/types": "^13.5.0"
},
"engines": {
"node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
+ }
+ },
+ "node_modules/@octokit/rest/node_modules/@octokit/types": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
+ "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/openapi-types": "^22.2.0"
}
},
"node_modules/@octokit/types": {
@@ -790,9 +924,9 @@
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
},
"node_modules/@types/node": {
- "version": "18.19.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz",
- "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==",
+ "version": "18.19.39",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz",
+ "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==",
"dependencies": {
"undici-types": "~5.26.4"
}
@@ -845,9 +979,9 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
},
"node_modules/@types/semver": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
- "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
"dev": true
},
"node_modules/@types/send": {
@@ -870,16 +1004,16 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz",
- "integrity": "sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
+ "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.16.0",
- "@typescript-eslint/type-utils": "6.16.0",
- "@typescript-eslint/utils": "6.16.0",
- "@typescript-eslint/visitor-keys": "6.16.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/type-utils": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -905,15 +1039,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.16.0.tgz",
- "integrity": "sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.16.0",
- "@typescript-eslint/types": "6.16.0",
- "@typescript-eslint/typescript-estree": "6.16.0",
- "@typescript-eslint/visitor-keys": "6.16.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
"debug": "^4.3.4"
},
"engines": {
@@ -933,13 +1067,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz",
- "integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.16.0",
- "@typescript-eslint/visitor-keys": "6.16.0"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -950,13 +1084,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz",
- "integrity": "sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
+ "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.16.0",
- "@typescript-eslint/utils": "6.16.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
@@ -977,9 +1111,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz",
- "integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -990,13 +1124,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz",
- "integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.16.0",
- "@typescript-eslint/visitor-keys": "6.16.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -1018,17 +1152,17 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.16.0.tgz",
- "integrity": "sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
+ "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.16.0",
- "@typescript-eslint/types": "6.16.0",
- "@typescript-eslint/typescript-estree": "6.16.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
"semver": "^7.5.4"
},
"engines": {
@@ -1043,12 +1177,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz",
- "integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.16.0",
+ "@typescript-eslint/types": "6.21.0",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
@@ -1277,12 +1411,12 @@
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
},
"node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"dependencies": {
"bytes": "3.1.2",
- "content-type": "~1.0.4",
+ "content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@@ -1290,7 +1424,7 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
- "raw-body": "2.5.1",
+ "raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@@ -1326,12 +1460,12 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -1356,13 +1490,18 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -1539,16 +1678,19 @@
}
},
"node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dependencies": {
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/denque": {
@@ -1606,14 +1748,14 @@
}
},
"node_modules/dotenv": {
- "version": "16.3.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
- "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
+ "version": "16.4.5",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
+ "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
"engines": {
"node": ">=12"
},
"funding": {
- "url": "https://github.com/motdotla/dotenv?sponsor=1"
+ "url": "https://dotenvx.com"
}
},
"node_modules/ecdsa-sig-formatter": {
@@ -1653,6 +1795,25 @@
"is-arrayish": "^0.2.1"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -1671,16 +1832,16 @@
}
},
"node_modules/eslint": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
- "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.56.0",
- "@humanwhocodes/config-array": "^0.11.13",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
@@ -1863,16 +2024,16 @@
}
},
"node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "version": "4.19.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.1",
+ "body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.5.0",
+ "cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@@ -1917,9 +2078,9 @@
}
},
"node_modules/express/node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"engines": {
"node": ">= 0.6"
}
@@ -2026,9 +2187,9 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -2138,15 +2299,19 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dependencies": {
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -2279,20 +2444,20 @@
}
},
"node_modules/has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dependencies": {
- "get-intrinsic": "^1.2.2"
+ "es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"engines": {
"node": ">= 0.4"
},
@@ -2901,20 +3066,20 @@
}
},
"node_modules/octokit": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/octokit/-/octokit-3.1.2.tgz",
- "integrity": "sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/octokit/-/octokit-3.2.1.tgz",
+ "integrity": "sha512-u+XuSejhe3NdIvty3Jod00JvTdAE/0/+XbhIDhefHbu+2OcTRHd80aCiH6TX19ZybJmwPQBKFQmHGxp0i9mJrg==",
"dependencies": {
"@octokit/app": "^14.0.2",
"@octokit/core": "^5.0.0",
"@octokit/oauth-app": "^6.0.0",
"@octokit/plugin-paginate-graphql": "^4.0.0",
- "@octokit/plugin-paginate-rest": "^9.0.0",
- "@octokit/plugin-rest-endpoint-methods": "^10.0.0",
+ "@octokit/plugin-paginate-rest": "11.3.1",
+ "@octokit/plugin-rest-endpoint-methods": "13.2.2",
"@octokit/plugin-retry": "^6.0.0",
"@octokit/plugin-throttling": "^8.0.0",
"@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0"
+ "@octokit/types": "^13.0.0"
},
"engines": {
"node": ">= 18"
@@ -3223,6 +3388,33 @@
"node": "14 || >=16.14"
}
},
+ "node_modules/octokit/node_modules/@octokit/openapi-types": {
+ "version": "22.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
+ "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-paginate-rest": {
+ "version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz",
+ "integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==",
+ "dependencies": {
+ "@octokit/types": "^13.5.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/types": {
+ "version": "13.5.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
+ "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.2.0"
+ }
+ },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -3562,11 +3754,11 @@
}
},
"node_modules/probot": {
- "version": "12.3.3",
- "resolved": "https://registry.npmjs.org/probot/-/probot-12.3.3.tgz",
- "integrity": "sha512-cdtKd+xISzi8sw6++BYBXleRknCA6hqUMoHj/sJqQBrjbNxQLhfeFCq9O2d0Z4eShsy5YFRR3MWwDKJ9uAE0CA==",
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/probot/-/probot-12.4.0.tgz",
+ "integrity": "sha512-DbW4ME9rzGVwnsFjoWWxKtRvnxPlFaCg726ge1sYHwZ3UzMlcF3B8Qf7MptfhGRyFw8sSCqsbgzb0E5d/BrQEA==",
"dependencies": {
- "@octokit/core": "^3.2.4",
+ "@octokit/core": "^3.6.0",
"@octokit/plugin-enterprise-compatibility": "^1.2.8",
"@octokit/plugin-paginate-rest": "^2.6.2",
"@octokit/plugin-rest-endpoint-methods": "^5.0.1",
@@ -3591,8 +3783,8 @@
"ioredis": "^4.27.8",
"js-yaml": "^3.14.1",
"lru-cache": "^6.0.0",
- "octokit-auth-probot": "^1.2.2",
- "pino": "^6.7.0",
+ "octokit-auth-probot": "^1.2.6",
+ "pino": "^6.14.0",
"pino-http": "^5.3.0",
"pkg-conf": "^3.1.0",
"resolve": "^1.19.0",
@@ -3998,9 +4190,9 @@
}
},
"node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -4193,9 +4385,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -4273,14 +4465,16 @@
}
},
"node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dependencies": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -4313,13 +4507,17 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -4335,11 +4533,11 @@
}
},
"node_modules/smee-client": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-2.0.0.tgz",
- "integrity": "sha512-LqJAAU4uayG909u8q3lBQZma9TDsQl2pOoXCqrsAda58oxy2o81yQAeBvFc2ilexgQDJc3YPDoPgViBM26M8vw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-2.0.1.tgz",
+ "integrity": "sha512-s2+eG9vNMWQQvu8Jz+SfAiihpYsmaMtcyPnHtBuZEhaAAQOQV63xSSL9StWv2p08xKgvSC8pEZ28rXoy41FhLg==",
"dependencies": {
- "commander": "^11.1.0",
+ "commander": "^12.0.0",
"eventsource": "^2.0.2",
"validator": "^13.11.0"
},
@@ -4348,11 +4546,11 @@
}
},
"node_modules/smee-client/node_modules/commander": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz",
+ "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==",
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/sonic-boom": {
@@ -4491,12 +4689,12 @@
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/ts-api-utils": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
- "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true,
"engines": {
- "node": ">=16.13.0"
+ "node": ">=16"
},
"peerDependencies": {
"typescript": ">=4.2.0"
@@ -4574,12 +4772,12 @@
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"node_modules/universal-github-app-jwt": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz",
- "integrity": "sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.2.tgz",
+ "integrity": "sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==",
"dependencies": {
"@types/jsonwebtoken": "^9.0.0",
- "jsonwebtoken": "^9.0.0"
+ "jsonwebtoken": "^9.0.2"
}
},
"node_modules/universal-user-agent": {
diff --git a/package.json b/package.json
index 1f8a22f..67e2010 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "typeslint-cli",
- "version": "3.0.0",
+ "version": "3.0.1",
"private": true,
"description": "GitHub Workflow Apps",
"homepage": "https://typeslint.com/github-autoresponse",
@@ -15,18 +15,18 @@
"lint:fix": "npx eslint src/**/*.ts --fix"
},
"dependencies": {
- "dotenv": "^16.3.1",
- "octokit": "^3.1.2",
- "probot": "^12.3.3",
- "smee-client": "^2.0.0"
+ "dotenv": "^16.4.5",
+ "octokit": "^3.2.1",
+ "probot": "^12.4.0",
+ "smee-client": "^2.0.1"
},
"devDependencies": {
- "@octokit/auth-app": "^6.0.2",
- "@octokit/rest": "^20.0.2",
- "@types/node": "^18.19.3",
- "@typescript-eslint/eslint-plugin": "^6.16.0",
- "@typescript-eslint/parser": "^6.16.0",
- "eslint": "^8.56.0",
+ "@octokit/auth-app": "^6.1.1",
+ "@octokit/rest": "^20.1.1",
+ "@types/node": "^18.19.39",
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
+ "@typescript-eslint/parser": "^6.21.0",
+ "eslint": "^8.57.0",
"typescript": "5.3.3"
},
"engines": {
diff --git a/src/class/issuesComment.ts b/src/class/issuesComment.ts
index 804a242..7b30d1a 100644
--- a/src/class/issuesComment.ts
+++ b/src/class/issuesComment.ts
@@ -27,17 +27,17 @@ export default class IssuesComment {
* @returns {Promise}
*/
public async userPRsComment(): Promise {
- if (this.context.payload.comment.body.toLowerCase() == "ready to merge") {
+ if (this.context.payload.comment.body.toLowerCase() === "ready to merge") {
await this.context.octokit.pulls.get({
repo: this.context.payload.repository.name,
owner: this.context.payload.repository.owner.login,
pull_number: this.context.payload.issue.number
}).then(async (res) => {
- if (res.data.mergeable_state.toLowerCase() == "clean" || res.data.mergeable == true) {
- if (this.context.payload.issue.user.login == this.context.payload.comment.user.login) {
+ if (res.data.mergeable_state.toLowerCase() === "clean" || res.data.mergeable === true) {
+ if (this.context.payload.issue.user.login === this.context.payload.comment.user.login) {
let i: number;
for (i = 0; i < this.context.payload.issue.labels.length; i++) {
- if (this.context.payload.issue.labels[i].name == "Approved") {
+ if (this.context.payload.issue.labels[i].name === "Approved") {
console.log("Merging");
await this.context.octokit.pulls.merge({
repo: this.context.payload.repository.name,
@@ -53,7 +53,7 @@ export default class IssuesComment {
})
);
break;
- } else if (this.context.payload.issue.labels[i].name == "Requested Changes") {
+ } else if (this.context.payload.issue.labels[i].name === "Requested Changes") {
console.log("PRs Blocked");
await this.context.octokit.issues.createComment(
this.context.issue({
@@ -68,7 +68,7 @@ export default class IssuesComment {
} else {
return;
}
- } else if (res.data.mergeable_state.toLowerCase() == "dirty" || res.data.mergeable == false) {
+ } else if (res.data.mergeable_state.toLowerCase() === "dirty" || res.data.mergeable === false) {
await this.context.octokit.issues.createComment(
this.context.issue({
body: `Merging blocked because PRs has merge conflict! @${this.context.payload.comment.user.login}`
@@ -84,8 +84,8 @@ export default class IssuesComment {
});
}
- if (this.context.payload.comment.body.toLowerCase() == "merge") {
- if (this.context.payload.sender.login == this.context.payload.repository.owner.login) {
+ if (this.context.payload.comment.body.toLowerCase() === "merge") {
+ if (this.context.payload.sender.login === this.context.payload.repository.owner.login) {
await this.context.octokit.pulls.merge({
repo: this.context.payload.repository.name,
owner: this.context.payload.repository.owner.login,
@@ -140,8 +140,8 @@ export default class IssuesComment {
* @returns {Promise}
*/
public async botPRsComment(): Promise {
- if (this.context.payload.comment.body.toLowerCase() == "merge") {
- if (this.context.payload.sender.login == this.context.payload.repository.owner.login) {
+ if (this.context.payload.comment.body.toLowerCase() === "merge") {
+ if (this.context.payload.sender.login === this.context.payload.repository.owner.login) {
await this.context.octokit.pulls.merge({
repo: this.context.payload.repository.name,
owner: this.context.payload.repository.owner.login,
diff --git a/src/class/prsOpen.ts b/src/class/prsOpen.ts
index e663b28..449823b 100644
--- a/src/class/prsOpen.ts
+++ b/src/class/prsOpen.ts
@@ -61,7 +61,7 @@ export default class PullRequestOpen {
repo: "github-AutoResponse",
pull_number: this.context.payload.number
}).then(async (res) => {
- const listFiles = res.data.map(a => a.filename);
+ const listFiles = res.data.map((a) => a.filename);
for (let i = 0; i < listFiles.length; i++) {
if (/src\/index/i.test(listFiles[i])) {
fileLabels.push("Core");
@@ -79,7 +79,7 @@ export default class PullRequestOpen {
}
if (fileLabels.length > 0) {
- new Set(fileLabels).forEach(a => filteredlabels.push(a));
+ new Set(fileLabels).forEach((a) => filteredlabels.push(a));
await this.context.octokit.issues.addLabels(
this.context.issue({
labels: filteredlabels
@@ -98,7 +98,7 @@ export default class PullRequestOpen {
*/
public async open(): Promise {
- if (this.context.payload.sender.login != this.context.payload.repository.owner.login) {
+ if (this.context.payload.sender.login !== this.context.payload.repository.owner.login) {
const propened = this.context.issue({
body: `Hello @${this.context.payload.sender.login} Thank you for submitting Pull Request, please wait for next notification after we review your Pull Request`
});
diff --git a/src/class/prsReview.ts b/src/class/prsReview.ts
index 8b538db..f8a7f29 100644
--- a/src/class/prsReview.ts
+++ b/src/class/prsReview.ts
@@ -6,7 +6,6 @@ import Context from "../index";
* @exports
*/
export default class PullRequestReview {
-
/**
* @private
* @type Context<"pull_request_review.submitted">
@@ -23,464 +22,161 @@ export default class PullRequestReview {
/**
* @private
+ * @param {string} body
+ * @param {string[]} labels
+ * @param {string[]} [removeLabel]
+ * @async
+ * @returns {Promise}
+ */
+ private async createReview(body: string, labels: string[], removeLabel?: string[]): Promise {
+ await this.context.octokit.pulls.createReview({
+ repo: this.context.payload.repository.name,
+ owner: this.context.payload.repository.owner.login,
+ pull_number: this.context.payload.pull_request.number,
+ body: body,
+ event: "COMMENT"
+ });
+
+ await this.context.octokit.issues.addLabels(
+ this.context.issue({
+ labels: labels
+ })
+ );
+
+ if (removeLabel) {
+ removeLabel.forEach((label) => {
+ new Promise((resolve, reject) => {
+ this.context.octokit.issues.removeLabel(
+ this.context.issue({
+ name: label
+ })
+ ).then(() => {
+ resolve();
+ }).catch((err) => {
+ reject(err);
+ });
+ }).catch((err) => {
+ console.error(err);
+ });
+ });
+ }
+ }
+
+ /**
+ * @public
* @async
* @returns {Promise}
*/
public async userPRs(): Promise {
- if (this.context.payload.sender.login == this.context.payload.repository.owner.login) {
+ if (this.context.payload.sender.login === this.context.payload.repository.owner.login) {
// Owner
- if (this.context.payload.review.state == "approved") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} your pull request has been approved by @${this.context.payload.review.user.login}, please type \`Ready to merge\` for merging`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Requested Changes")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Requested Changes"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ if (this.context.payload.review.state === "approved") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} your pull request has been approved by @${this.context.payload.review.user.login}, please type \`Ready to merge\` for merging`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Requested Changes")) {
+ await this.createReview(reviewMessage, ["Approved"], ["Requested Changes", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Approved"], ["Pending"]);
}
- } else if (this.context.payload.review.state == "changes_requested") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Approved")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Approved"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ } else if (this.context.payload.review.state === "changes_requested") {
+ const reviewMessage = `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Approved")) {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Approved", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Pending"]);
}
}
- } else if (this.context.payload.pull_request.author_association == "MEMBER" || this.context.payload.pull_request.author_association == "COLLABORATOR") {
- if (this.context.payload.review.state == "approved") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} your pull request has been approved by \`[MAINTAINER]\`@${this.context.payload.review.user.login}, please type \`Ready to merge\` for merging`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Requested Changes")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Requested Changes"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ } else if (this.context.payload.review.author_association === "MEMBER" || this.context.payload.review.author_association === "COLLABORATOR") {
+ if (this.context.payload.review.state === "approved") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} your pull request has been approved by \`[MAINTAINER]\`@${this.context.payload.review.user.login}, please type \`Ready to merge\` for merging`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Requested Changes")) {
+ await this.createReview(reviewMessage, ["Approved"], ["Requested Changes", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Approved"], ["Pending"]);
}
- } else if (this.context.payload.review.state == "changes_requested") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Approved")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Approved"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ } else if (this.context.payload.review.state === "changes_requested") {
+ const reviewMessage = `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Approved")) {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Approved", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Pending"]);
}
}
} else {
// Others Approved
- if (this.context.payload.review.state == "approved") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} your pull request has been approved by @${this.context.payload.review.user.login}, even though please wait for the \`MAINTAINERS\`/\`CODEOWNERS\` to review`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Requested Changes")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Requested Changes"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Others Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ if (this.context.payload.review.state === "approved") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} your pull request has been approved by @${this.context.payload.review.user.login}, even though please wait for the \`MAINTAINERS\`/\`CODEOWNERS\` to review`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Requested Changes")) {
+ await this.createReview(reviewMessage, ["Others Approved"], ["Requested Changes", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Others Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Others Approved"], ["Pending"]);
+ }
+ } else if (this.context.payload.review.state === "changes_requested") {
+ const reviewMessage = `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Others Approved")) {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Others Approved", "Pending"]);
+ } else {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Pending"]);
}
- } else if (this.context.payload.review.state == "changes_requested") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`,
- event: "COMMENT"
- });
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
}
}
}
/**
- * @private
+ * @public
* @async
* @returns {Promise}
*/
public async botPRs(): Promise {
- if (this.context.payload.sender.login == this.context.payload.repository.owner.login) {
+ if (this.context.payload.sender.login === this.context.payload.repository.owner.login) {
// Owner
- if (this.context.payload.review.state == "approved") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} Pull request has been approved by \`[OWNER]\`@${this.context.payload.review.user.login}, please type \`Merge\` for merging @${this.context.payload.review.user.login}`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Requested Changes")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Requested Changes"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ if (this.context.payload.review.state === "approved") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} Pull request has been approved by \`[OWNER]\`@${this.context.payload.review.user.login}, please type \`Merge\` for merging @${this.context.payload.review.user.login}`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Requested Changes")) {
+ await this.createReview(reviewMessage, ["Approved"], ["Requested Changes", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Approved"], ["Pending"]);
}
- } else if (this.context.payload.review.state == "changes_requested") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} your pull request has requested changes by \`[OWNER]\`@${this.context.payload.review.user.login}. Please address their comments before I'm merging this PR, thanks!`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Approved")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Approved"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ } else if (this.context.payload.review.state === "changes_requested") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} your pull request has requested changes by \`[OWNER]\`@${this.context.payload.review.user.login}. Please address their comments before I'm merging this PR, thanks!`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Approved")) {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Approved", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Pending"]);
}
}
- } else if (this.context.payload.pull_request.author_association == "MEMBER" || this.context.payload.pull_request.author_association == "COLLABORATOR") {
- if (this.context.payload.review.state == "approved") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} Pull request has been approved by \`[MAINTAINER]\`@${this.context.payload.review.user.login}, please type \`Merge\` for merging @${this.context.payload.review.user.login}`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Requested Changes")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Requested Changes"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ } else if (this.context.payload.review.author_association === "MEMBER" || this.context.payload.review.author_association === "COLLABORATOR") {
+ if (this.context.payload.review.state === "approved") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} Pull request has been approved by \`[MAINTAINER]\`@${this.context.payload.review.user.login}, please type \`Merge\` for merging @${this.context.payload.review.user.login}`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Requested Changes")) {
+ await this.createReview(reviewMessage, ["Approved"], ["Requested Changes", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Approved"], ["Pending"]);
}
- } else if (this.context.payload.review.state == "changes_requested") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `Pull request has requested changes by \`[MAINTAINER]\`@${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I"m merging this PR, thanks!`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Approved")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Approved"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ } else if (this.context.payload.review.state === "changes_requested") {
+ const reviewMessage = `Pull request has requested changes by \`[MAINTAINER]\`@${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I"m merging this PR, thanks!`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Approved")) {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Approved", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Pending"]);
}
}
} else {
// Others Approved
- if (this.context.payload.review.state == "approved") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `@${this.context.payload.pull_request.user.login} your pull request has been approved by @${this.context.payload.review.user.login}, even though please wait for the \`MAINTAINERS\`/\`CODEOWNERS\` to review`,
- event: "COMMENT"
- });
- if (this.context.payload.pull_request.labels.find(a => a.name == "Requested Changes")) {
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Requested Changes"
- })
- );
- console.log("Label removed");
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Others Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ if (this.context.payload.review.state === "approved") {
+ const reviewMessage = `@${this.context.payload.pull_request.user.login} your pull request has been approved by @${this.context.payload.review.user.login}, even though please wait for the \`MAINTAINERS\`/\`CODEOWNERS\` to review`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Requested Changes")) {
+ await this.createReview(reviewMessage, ["Others Approved"], ["Requested Changes", "Pending"]);
} else {
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Others Approved"]
- })
- );
- console.log("PRs Approved");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
+ await this.createReview(reviewMessage, ["Others Approved"], ["Pending"]);
+ }
+ } else if (this.context.payload.review.state === "changes_requested") {
+ const reviewMessage = `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`;
+ if (this.context.payload.pull_request.labels.find((a) => a.name === "Others Approved")) {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Others Approved", "Pending"]);
+ } else {
+ await this.createReview(reviewMessage, ["Requested Changes"], ["Pending"]);
}
- } else if (this.context.payload.review.state == "changes_requested") {
- await this.context.octokit.pulls.createReview({
- repo: this.context.payload.repository.name,
- owner: this.context.payload.repository.owner.login,
- pull_number: this.context.payload.pull_request.number,
- body: `Pull request has requested changes by @${this.context.payload.review.user.login}. PING! @${this.context.payload.pull_request.user.login} Please address their comments before I'm merging this PR, thanks!`,
- event: "COMMENT"
- });
- await this.context.octokit.issues.addLabels(
- this.context.issue({
- labels: ["Requested Changes"]
- })
- );
- console.log("PRs Requested Changes");
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: "Pending"
- })
- );
}
}
}
-
}
diff --git a/src/class/prsStale.ts b/src/class/prsStale.ts
index a7b9712..e48a851 100644
--- a/src/class/prsStale.ts
+++ b/src/class/prsStale.ts
@@ -34,8 +34,8 @@ export default class PRsStale {
const currentRepo = res.data[i].base.repo.name;
const currentOwner = res.data[i].base.repo.owner.login;
const currentPRs = res.data[i].number;
- if (res.data[i].state.toLowerCase() == "open" && res.data[i].draft == false) {
- if (res.data[i].user?.type.toLowerCase() == "user") {
+ if (res.data[i].state.toLowerCase() === "open" && res.data[i].draft === false) {
+ if (res.data[i].user?.type.toLowerCase() === "user") {
await octokit.rest.pulls.listCommits({
owner: currentOwner,
repo: currentRepo,
@@ -53,7 +53,7 @@ export default class PRsStale {
pull_number: currentPRs,
state: "closed"
}).then(async (res) => {
- if (res.data.labels.find((a) => a.name == "Stale")) {
+ if (res.data.labels.find((a) => a.name === "Stale")) {
await octokit.rest.issues.addLabels({
owner: res.data.base.repo.owner.login,
repo: res.data.base.repo.name,
@@ -88,7 +88,7 @@ export default class PRsStale {
repo: currentRepo,
pull_number: currentPRs
}).then(async (res) => {
- if (res.data.labels.find((a) => a.name == "Stale")) {
+ if (res.data.labels.find((a) => a.name === "Stale")) {
return;
} else {
const prsReviewers: string[] = [];
diff --git a/src/class/prsSynchronize.ts b/src/class/prsSynchronize.ts
index 2e02ca0..d29f221 100644
--- a/src/class/prsSynchronize.ts
+++ b/src/class/prsSynchronize.ts
@@ -33,7 +33,7 @@ export default class PullRequestSynchronize {
issue_number: this.context.payload.pull_request.number
}).then(async (res) => {
let i: number;
- const prsLabels = res.data.find(a => a.name == "Requested Changes" || a.name == "Approved")?.name;
+ const prsLabels = res.data.find((a) => a.name === "Requested Changes" || a.name === "Approved")?.name;
if (prsLabels) {
await this.context.octokit.pulls.listReviews({
owner: this.context.payload.repository.owner.login,
@@ -43,13 +43,13 @@ export default class PullRequestSynchronize {
const reviewersArray: string[] = [];
const tagReviewers: string[] = [];
for (i = 0; i < res.data.length; i++) {
- if (res.data[i].user?.type == "User") {
+ if (res.data[i].user?.type === "User") {
const datastate: string[] = [
"CHANGES_REQUESTED",
"APPROVED"
];
- if (res.data[i].state == datastate.find(a => a == res.data[i].state)) {
- if (res.data[i].user?.login != reviewersArray.find(a => a == res.data[i].user?.login)) {
+ if (res.data[i].state === datastate.find((a) => a === res.data[i].state)) {
+ if (res.data[i].user?.login !== reviewersArray.find((a) => a === res.data[i].user?.login)) {
const username: string = res.data[i].user?.login || "";
reviewersArray.push(username);
tagReviewers.push("@" + username);
@@ -76,19 +76,28 @@ export default class PullRequestSynchronize {
continue;
}
}
- await this.context.octokit.issues.createComment(
- this.context.issue({
- owner: this.context.payload.repository.owner.login,
- repo: this.context.payload.repository.name,
- issue_number: this.context.payload.pull_request.number,
- body: `PING! ${tagReviewers.join(", ")}. The author has pushed new commits since your last review. please review @${this.context.payload.sender.login} new commit before merge, thanks!`
- })
- );
- await this.context.octokit.issues.removeLabel(
- this.context.issue({
- name: prsLabels
- })
- );
+ if (this.context.payload.sender.login === this.context.payload.pull_request.user.login) {
+ await this.context.octokit.issues.createComment(
+ this.context.issue({
+ owner: this.context.payload.repository.owner.login,
+ repo: this.context.payload.repository.name,
+ issue_number: this.context.payload.pull_request.number,
+ body: `PING! ${tagReviewers.join(", ")}. The author has pushed new commits since your last review. please review @${this.context.payload.sender.login} new commit before merge, thanks!`
+ })
+ );
+ await this.context.octokit.issues.removeLabel(
+ this.context.issue({
+ name: prsLabels
+ })
+ );
+ } else {
+ await this.context.octokit.issues.removeLabel(
+ this.context.issue({
+ name: prsLabels
+ })
+ );
+ return;
+ }
});
} else {
return;
@@ -124,7 +133,7 @@ export default class PullRequestSynchronize {
repo: this.context.payload.repository.name,
issue_number: this.context.payload.pull_request.number
}).then(async (res) => {
- if (res.data.find(a => a.name == "Config Invalid")) {
+ if (res.data.find((a) => a.name === "Config Invalid")) {
await this.context.octokit.issues.removeLabel(
this.context.issue({
name: "Config Invalid"
diff --git a/src/class/push.ts b/src/class/push.ts
index 1079cbc..78bf164 100644
--- a/src/class/push.ts
+++ b/src/class/push.ts
@@ -47,11 +47,11 @@ export default class Push {
}).then((res: [getEvent]) => {
let i: number;
for (i = 0; i < res.length; i++) {
- if (res[i].type == "PushEvent") {
+ if (res[i].type === "PushEvent") {
if (arrayActivity.userData.length < 5) {
let commitsI: number;
for (commitsI = 0; commitsI < res[i].payload.commits.length; commitsI++) {
- if (res[i].payload.commits[commitsI].author.name == "Muunatic") {
+ if (res[i].payload.commits[commitsI].author.name === "Muunatic") {
if (arrayActivity.userData.length < 5) {
arrayActivity.userData.push({ event: `Commit on [${res[i].payload.commits[commitsI].sha.slice(0, 7)}](https://github.com/${res[i].repo.name}/commit/${res[i].payload.commits[commitsI].sha}) in [${res[i].repo.name}](https://github.com/${res[i].repo.name})` });
} else {
@@ -64,9 +64,9 @@ export default class Push {
} else {
break;
}
- } else if (res[i].type == "PullRequestEvent") {
+ } else if (res[i].type === "PullRequestEvent") {
if (arrayActivity.userData.length < 5) {
- if (res[i].payload.pull_request.user.login == "Muunatic") {
+ if (res[i].payload.pull_request.user.login === "Muunatic") {
arrayActivity.userData.push({ event: `Pull Request on [\#${res[i].payload.pull_request.number.toString()}](https://github.com/${res[i].repo.name}/pull/${res[i].payload.pull_request.number}) in [${res[i].repo.name}](https://github.com/${res[i].repo.name})` });
} else {
continue;
@@ -82,8 +82,8 @@ export default class Push {
return;
});
}
- if (this.context.payload.repository.owner.login == "Muunatic") {
- if (this.context.payload.sender.login == "Muunatic") {
+ if (this.context.payload.repository.owner.login === "Muunatic") {
+ if (this.context.payload.sender.login === "Muunatic") {
await userActivity();
await this.context.octokit.repos.getContent({
owner: "Muunatic",
@@ -106,8 +106,8 @@ export default class Push {
return;
}
});
- } else if (this.context.payload.sender.login == "typeslint-cli[bot]") {
- if (this.context.payload.repository.name == "Muunatic") {
+ } else if (this.context.payload.sender.login === "typeslint-cli[bot]") {
+ if (this.context.payload.repository.name === "Muunatic") {
await octokit.rest.checks.create({
owner: "Muunatic",
repo: "Muunatic",
diff --git a/src/class/workflowCheck.ts b/src/class/workflowCheck.ts
index edda649..2daf35d 100644
--- a/src/class/workflowCheck.ts
+++ b/src/class/workflowCheck.ts
@@ -27,7 +27,7 @@ export default class WorkflowCheck {
* @returns {Promise}
*/
public async checkCI(): Promise {
- if (this.context.payload.workflow_run.conclusion == "failure") {
+ if (this.context.payload.workflow_run.conclusion === "failure") {
await this.context.octokit.issues.addLabels(
this.context.issue({
owner: this.context.payload.repository.owner.login,
@@ -62,13 +62,13 @@ export default class WorkflowCheck {
state: "open"
}).then(async (res) => {
const prsNumber = res.data.find((a) => a.head.sha === this.context.payload.workflow_run.head_sha)?.number as number;
- if (this.context.payload.workflow_run.conclusion == "success") {
+ if (this.context.payload.workflow_run.conclusion === "success") {
await this.context.octokit.pulls.get({
owner: this.context.payload.repository.owner.login,
repo: this.context.payload.repository.name,
pull_number: prsNumber
}).then(async (res) => {
- if (res.data.labels.find(a => a.name == "CI Failed")) {
+ if (res.data.labels.find((a) => a.name === "CI Failed")) {
await this.context.octokit.issues.removeLabel(
this.context.issue({
owner: this.context.payload.repository.owner.login,
@@ -82,7 +82,7 @@ export default class WorkflowCheck {
return;
}
});
- } else if (this.context.payload.workflow_run.conclusion == "failure") {
+ } else if (this.context.payload.workflow_run.conclusion === "failure") {
console.log("CI Failure!");
await this.context.octokit.issues.addLabels(
this.context.issue({
diff --git a/src/index.ts b/src/index.ts
index ca6ad48..0e327ce 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -30,7 +30,7 @@ module.exports = (app: Probot) => {
});
app.on("issue_comment.created", async (context): Promise => {
- if (context.payload.comment.user.type == "User") {
+ if (context.payload.comment.user.type === "User") {
switch (context.payload.issue.user.type) {
case "User":
await new IssuesComment(context).userPRsComment();
@@ -45,7 +45,7 @@ module.exports = (app: Probot) => {
});
app.on("issues.closed", async (context): Promise => {
- if (context.payload.issue.state_reason == "not_planned") {
+ if (context.payload.issue.state_reason === "not_planned") {
await new IssuesClose(context).invalid();
} else {
await new IssuesClose(context).closed();
@@ -53,8 +53,8 @@ module.exports = (app: Probot) => {
});
app.on("pull_request.opened", async (context): Promise => {
- if (context.payload.sender.type == "User") {
- if (context.payload.repository.html_url == "https://github.com/Typeslint/github-AutoResponse") {
+ if (context.payload.sender.type === "User") {
+ if (context.payload.repository.html_url === "https://github.com/Typeslint/github-AutoResponse") {
await new PullRequestOpen(context).openCore();
} else {
await new PullRequestOpen(context).open();
@@ -65,7 +65,7 @@ module.exports = (app: Probot) => {
});
app.on("pull_request_review.submitted", async (context): Promise => {
- if (context.payload.sender.type == "User") {
+ if (context.payload.sender.type === "User") {
switch (context.payload.pull_request.user.type) {
case "User":
await new PullRequestReview(context).userPRs();
@@ -80,8 +80,8 @@ module.exports = (app: Probot) => {
});
app.on("pull_request.synchronize", async (context): Promise => {
- if (context.payload.pull_request.user.type == "User") {
- if (context.payload.repository.homepage == "https://github.com/Typeslint/github-AutoResponse") {
+ if (context.payload.pull_request.user.type === "User") {
+ if (context.payload.repository.homepage === "https://github.com/Typeslint/github-AutoResponse") {
await new PullRequestSynchronize(context).synchronizeCore();
}
await new PullRequestSynchronize(context).sync();
@@ -91,8 +91,8 @@ module.exports = (app: Probot) => {
});
app.on("workflow_run.completed", async (context): Promise => {
- if (context.payload.workflow_run.event == "pull_request") {
- if (context.payload.sender.type == "User") {
+ if (context.payload.workflow_run.event === "pull_request") {
+ if (context.payload.sender.type === "User") {
await new WorkflowCheck(context).checkUserCI();
} else {
await new WorkflowCheck(context).checkCI();