diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index d6ae307..9175ce5 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [12.x, 14.x, 16.x] + node-version: [18.x, 20.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: diff --git a/README.md b/README.md index 598773e..c940093 100644 --- a/README.md +++ b/README.md @@ -6,22 +6,14 @@ Create a release pull request using GitHub API. Inspired by [git-pr-release](htt - No dependency on git. You can easily deploy it to Heroku / AWS Lambda / Google Cloud Functions etc. - Fast because it uses only Github API. -- Written in JavaScript. +- Written in TypeScript / JavaScript. [![Gyazo](http://i.gyazo.com/7484a59ade4e96ce9a015f1aa817cab8.png)](http://gyazo.com/7484a59ade4e96ce9a015f1aa817cab8) ## Usage -<<<<<<< HEAD - -### release(config) - -======= - ### API: release(config) -> > > > > > > origin/master - Create a release pull request and return Promise. You must pass a config as an argument. @@ -183,6 +175,10 @@ The release flow of github-pr-release is managed with github-pr-release itself. It creates a release pull request when merging a topic branch or pushing to the main branch. The update can be published by merging a release pull request. +See: + +https://github.com/uiur/github-pr-release/pulls?q=is%3Apr+is%3Aopen+Release + ## License MIT diff --git a/package-lock.json b/package-lock.json index 204b17a..9be3867 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "github-pr-release", - "version": "1.3.4", + "version": "1.3.5", "license": "MIT", "dependencies": { "es6-promise": "^2.3.0", @@ -730,7 +730,7 @@ }, "node_modules/ansi-escapes": { "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true, "engines": { @@ -1269,7 +1269,7 @@ }, "node_modules/callsites": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", "dev": true, "engines": { @@ -3024,7 +3024,7 @@ }, "node_modules/external-editor": { "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "dependencies": { @@ -4003,7 +4003,7 @@ }, "node_modules/inquirer": { "version": "5.2.0", - "resolved": "http://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "dependencies": { @@ -6844,9 +6844,9 @@ } }, "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "engines": { "node": ">=0.6" } @@ -9711,7 +9711,7 @@ }, "ansi-escapes": { "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, @@ -10109,7 +10109,7 @@ }, "callsites": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", "dev": true }, @@ -11496,7 +11496,7 @@ }, "external-editor": { "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { @@ -12211,7 +12211,7 @@ }, "inquirer": { "version": "5.2.0", - "resolved": "http://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { @@ -14280,9 +14280,9 @@ } }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" }, "quick-lru": { "version": "5.1.1", diff --git a/src/github-client.ts b/src/github-client.ts index 913fed2..f68b8d0 100644 --- a/src/github-client.ts +++ b/src/github-client.ts @@ -169,7 +169,7 @@ export default class GithubClient { return await this.get(this.pullRequestEndpoint(), { state: "closed", - base: this.head, + base: this.head.split(":").at(-1), per_page: 100, sort: "updated", direction: "desc", diff --git a/test/github-client.ts b/test/github-client.ts index a095038..f1452d2 100644 --- a/test/github-client.ts +++ b/test/github-client.ts @@ -177,6 +177,32 @@ describe("GithubClient", function () { }); }); + describe("#collectReleasePRs(): head option with `org:`", function () { + nock("https://api.github.com") + .get("/repos/uiureo/awesome-app/pulls/42/commits") + .query(true) + .reply(200, []) + .get( + "/repos/uiureo/awesome-app/pulls?state=closed&base=branch&per_page=100&sort=updated&direction=desc" + ) + .reply(200, []); + + it("returns prs that is going to be released", function (done) { + const client = new GithubClient({ + owner: "uiureo", + repo: "awesome-app", + head: "org:branch", + }); + client + .collectReleasePRs({ number: 42 }) + .then(function (prs) { + assert(prs.length === 0); + done(); + }) + .catch(done); + }); + }); + describe("#assignReviewers()", function () { const USER1 = "pr1-owner"; const USER2 = "pr2-owner";