From e9239e0d25bc411387a889b13fc698d861e93d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 24 Dec 2019 02:44:09 +0100 Subject: [PATCH 1/4] Match commit message to PR title (#13) --- dist/index.js | 2 +- index.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dist/index.js b/dist/index.js index 34b7d69..aa705d8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1263,5 +1263,5 @@ var e=require("./conversions"),n=require("./route"),r={},o=Object.keys(e);functi },{"chalk":"ug4C"}],"PCsh":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=c(require("@babel/runtime/helpers/esm/defineProperty")),r=l(require("fs-extra")),t=c(require("path")),n=c(require("@changesets/parse")),a=require("@changesets/git"),i=c(require("chalk")),o=c(require("p-filter")),s=require("@changesets/logger");function l(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,t):{};n.get||n.set?Object.defineProperty(r,t,n):r[t]=e[t]}return r.default=e,r}function c(e){return e&&e.__esModule?e:{default:e}}let u=i.default.red("===============================IMPORTANT!==============================="),d=i.default.red("----------------------------------------------------------------------");async function f(e,n){const a=(await(0,o.default)(n,async n=>(await(0,r.lstat)(t.default.join(e,n))).isDirectory())).map(async n=>{const a=t.default.join(e,n,"changes.json"),[i,o]=await Promise.all([(0,r.readFile)(t.default.join(e,n,"changes.md"),"utf-8"),(0,r.readJson)(a)]);return{releases:o.releases,summary:i,id:n}});return Promise.all(a)}async function p(e,r){let t=await f(e,r);return 0===t.length?[]:((0,s.warn)(u),(0,s.warn)("There were old changesets from version 1 found"),(0,s.warn)("Theses are being applied now but the dependents graph may have changed"),(0,s.warn)("Make sure you validate all your dependencies"),(0,s.warn)("In a future major version, we will no longer apply these old changesets, and will instead throw here"),(0,s.warn)(d),t)}function h(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function w(r){for(var t=1;te.split("/")[1]);return e.filter(e=>n.includes(e))}async function g(e,a){let i,o=t.default.join(e,".changeset");try{i=await r.default.readdir(o)}catch(c){if("ENOENT"===c.code)throw new Error("There is no .changeset directory in this project");throw c}void 0!==a&&(i=await y(i,o,a));let s=p(o,i);const l=i.filter(e=>e.endsWith(".md")&&"README.md"!==e).map(async e=>{const a=await r.default.readFile(t.default.join(o,e),"utf-8");return w({},(0,n.default)(a),{id:e.replace(".md","")})});return[...await s,...await Promise.all(l)]}var O=g;exports.default=O; },{"@babel/runtime/helpers/esm/defineProperty":"9iDM","fs-extra":"rdZu","@changesets/parse":"boSt","@changesets/git":"It5m","chalk":"ug4C","p-filter":"PNks","@changesets/logger":"cocj"}],"7QCb":[function(require,module,exports) { -"use strict";function e(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function t(t){for(var n=1;n{let e=process.env.GITHUB_TOKEN;if(!e)return void i.setFailed("Please add the GITHUB_TOKEN to the changesets action");let a=`${s.context.repo.owner}/${s.context.repo.repo}`,n=s.context.ref.replace("refs/heads/",""),o=await d.readPreState(process.cwd()),f=void 0!==o&&"pre"===o.mode;const b=new s.GitHub(e);console.log("setting git user"),await r.exec("git",["config","--global","user.name",'"github-actions[bot]"']),await r.exec("git",["config","--global","user.email",'"github-actions[bot]@users.noreply.github.com"']),console.log("setting GitHub credentials"),await l.default.writeFile(`${process.env.HOME}/.netrc`,`machine github.com\nlogin github-actions[bot]\npassword ${e}`);let w=await h.default(process.cwd());if(f){let e=new Set(o.changesets);w=w.filter(t=>!e.has(t.id))}let m=0!==w.length,y=i.getInput("publish");if(m||y)if(m||!y){if(m){let e=`changeset-release/${n}`,{stderr:i}=await g.execWithOutput("git",["checkout",e],{ignoreReturnCode:!0});!i.toString().includes(`Switched to a new branch '${e}'`)&&await r.exec("git",["checkout","-b",e]),await r.exec("git",["reset","--hard",s.context.sha]);let c=await l.default.readJson(u.default.join("node_modules","@changesets","cli","package.json")),d=p.lt(c.version,"2.0.0")?"bump":"version",h=(await g.execWithOutput("node",["./node_modules/.bin/changeset",d]),`repo:${a}+state:open+head:${e}+base:${n}`),w=b.search.issuesAndPullRequests({q:h}),m=await g.getChangedPackages(process.cwd()),O=(async()=>`This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and ${y?"the packages will be published to npm automatically":"publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)"}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${n}, this PR will be updated.\n${f?`\n⚠️⚠️⚠️⚠️⚠️⚠️\n\n\`${n}\` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run \`changeset pre exit\` on \`${n}\`.\n\n⚠️⚠️⚠️⚠️⚠️⚠️\n`:""}\n# Releases\n`+(await Promise.all(m.map(async e=>{let t=await l.default.readFile(u.default.join(e.dir,"CHANGELOG.md"),"utf8"),a=g.getChangelogEntry(t,e.config.version);return{highestLevel:a.highestLevel,private:!!e.config.private,content:`## ${e.name}@${e.config.version}\n\n`+a.content}}))).filter(e=>e).sort(g.sortTheThings).map(e=>e.content).join("\n "))();await r.exec("git",["add","."]),await r.exec("git",["commit","-m","Version Packages"]),await r.exec("git",["push","origin",e,"--force"]);let v=await w;console.log(JSON.stringify(v.data,null,2)),0===v.data.items.length?(console.log("creating pull request"),await b.pulls.create(t({base:n,head:e,title:`Version Packages${f?` (${o.tag})`:""}`,body:await O},s.context.repo))):(b.pulls.update(t({pull_number:v.data.items[0].number,title:`Version Packages${f?` (${o.tag})`:""}`,body:await O},s.context.repo)),console.log("pull request found"))}}else{console.log("No changesets found, attempting to publish any unpublished packages to npm");let e=await c.default({tools:["bolt","yarn","root"]});if(!e)return i.setFailed("Could not find workspaces");let a=new Map(e.map(e=>[e.name,e]));l.default.writeFileSync(`${process.env.HOME}/.npmrc`,`//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}`);let[o,...p]=y.split(/\s+/),d=await g.execWithOutput(o,p);await r.exec("git",["pull","origin",n]),await r.exec("git",["push","origin",`HEAD:${n}`,"--tags"]);let h=/New tag:\s+(@[^\/]+\/[^@]+|[^\/]+)@([^\s]+)/,f=[];for(let t of d.stdout.split("\n")){let e=t.match(h);if(null===e)continue;let n=e[1],o=a.get(n);if(void 0===o)return i.setFailed("Workspace not found for "+n+". This is probably a bug in the action, please open an issue");f.push(o)}await Promise.all(f.map(async e=>{try{let n=u.default.join(e.dir,"CHANGELOG.md"),o=await l.default.readFile(n,"utf8"),r=g.getChangelogEntry(o,e.config.version);if(!r)return i.setFailed(`Could not find changelog entry for ${e.name}@${e.config.version}`);await b.repos.createRelease(t({tag_name:`${e.name}@${e.config.version}`,body:r.content,prerelease:e.config.version.includes("-")},s.context.repo))}catch(a){if("ENOENT"!==a.code)throw a}}))}else console.log("No changesets found")})().catch(e=>{console.error(e),i.setFailed(e.message)}); +"use strict";function e(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function t(t){for(var n=1;n{let e=process.env.GITHUB_TOKEN;if(!e)return void i.setFailed("Please add the GITHUB_TOKEN to the changesets action");let a=`${s.context.repo.owner}/${s.context.repo.repo}`,n=s.context.ref.replace("refs/heads/",""),o=await d.readPreState(process.cwd()),f=void 0!==o&&"pre"===o.mode;const b=new s.GitHub(e);console.log("setting git user"),await r.exec("git",["config","--global","user.name",'"github-actions[bot]"']),await r.exec("git",["config","--global","user.email",'"github-actions[bot]@users.noreply.github.com"']),console.log("setting GitHub credentials"),await l.default.writeFile(`${process.env.HOME}/.netrc`,`machine github.com\nlogin github-actions[bot]\npassword ${e}`);let w=await h.default(process.cwd());if(f){let e=new Set(o.changesets);w=w.filter(t=>!e.has(t.id))}let m=0!==w.length,y=i.getInput("publish");if(m||y)if(m||!y){if(m){let e=`changeset-release/${n}`,{stderr:i}=await g.execWithOutput("git",["checkout",e],{ignoreReturnCode:!0});!i.toString().includes(`Switched to a new branch '${e}'`)&&await r.exec("git",["checkout","-b",e]),await r.exec("git",["reset","--hard",s.context.sha]);let c=await l.default.readJson(u.default.join("node_modules","@changesets","cli","package.json")),d=p.lt(c.version,"2.0.0")?"bump":"version",h=(await g.execWithOutput("node",["./node_modules/.bin/changeset",d]),`repo:${a}+state:open+head:${e}+base:${n}`),w=b.search.issuesAndPullRequests({q:h}),m=await g.getChangedPackages(process.cwd()),O=(async()=>`This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and ${y?"the packages will be published to npm automatically":"publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)"}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${n}, this PR will be updated.\n${f?`\n⚠️⚠️⚠️⚠️⚠️⚠️\n\n\`${n}\` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run \`changeset pre exit\` on \`${n}\`.\n\n⚠️⚠️⚠️⚠️⚠️⚠️\n`:""}\n# Releases\n`+(await Promise.all(m.map(async e=>{let t=await l.default.readFile(u.default.join(e.dir,"CHANGELOG.md"),"utf8"),a=g.getChangelogEntry(t,e.config.version);return{highestLevel:a.highestLevel,private:!!e.config.private,content:`## ${e.name}@${e.config.version}\n\n`+a.content}}))).filter(e=>e).sort(g.sortTheThings).map(e=>e.content).join("\n "))();const v=`Version Packages${f?` (${o.tag})`:""}`;await r.exec("git",["add","."]),await r.exec("git",["commit","-m",v]),await r.exec("git",["push","origin",e,"--force"]);let $=await w;console.log(JSON.stringify($.data,null,2)),0===$.data.items.length?(console.log("creating pull request"),await b.pulls.create(t({base:n,head:e,title:v,body:await O},s.context.repo))):(b.pulls.update(t({pull_number:$.data.items[0].number,title:v,body:await O},s.context.repo)),console.log("pull request found"))}}else{console.log("No changesets found, attempting to publish any unpublished packages to npm");let e=await c.default({tools:["bolt","yarn","root"]});if(!e)return i.setFailed("Could not find workspaces");let a=new Map(e.map(e=>[e.name,e]));l.default.writeFileSync(`${process.env.HOME}/.npmrc`,`//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}`);let[o,...p]=y.split(/\s+/),d=await g.execWithOutput(o,p);await r.exec("git",["pull","origin",n]),await r.exec("git",["push","origin",`HEAD:${n}`,"--tags"]);let h=/New tag:\s+(@[^\/]+\/[^@]+|[^\/]+)@([^\s]+)/,f=[];for(let t of d.stdout.split("\n")){let e=t.match(h);if(null===e)continue;let n=e[1],o=a.get(n);if(void 0===o)return i.setFailed("Workspace not found for "+n+". This is probably a bug in the action, please open an issue");f.push(o)}await Promise.all(f.map(async e=>{try{let n=u.default.join(e.dir,"CHANGELOG.md"),o=await l.default.readFile(n,"utf8"),r=g.getChangelogEntry(o,e.config.version);if(!r)return i.setFailed(`Could not find changelog entry for ${e.name}@${e.config.version}`);await b.repos.createRelease(t({tag_name:`${e.name}@${e.config.version}`,body:r.content,prerelease:e.config.version.includes("-")},s.context.repo))}catch(a){if("ENOENT"!==a.code)throw a}}))}else console.log("No changesets found")})().catch(e=>{console.error(e),i.setFailed(e.message)}); },{"@actions/core":"4FTV","@actions/exec":"utFe","@actions/github":"8Dol","fs-extra":"JTJ9","get-workspaces":"kAcF","./utils":"UnXq","semver":"aric","@changesets/pre":"jEAA","@changesets/read":"PCsh"}]},{},["7QCb"], null) \ No newline at end of file diff --git a/index.ts b/index.ts index 6dbdce0..cb40f03 100644 --- a/index.ts +++ b/index.ts @@ -224,8 +224,9 @@ ${ .join("\n ") ); })(); + const title = `Version Packages${isInPreMode ? ` (${preState.tag})` : ""}` await exec("git", ["add", "."]); - await exec("git", ["commit", "-m", "Version Packages"]); + await exec("git", ["commit", "-m", title]); await exec("git", ["push", "origin", versionBranch, "--force"]); let searchResult = await searchResultPromise; console.log(JSON.stringify(searchResult.data, null, 2)); @@ -234,14 +235,14 @@ ${ await octokit.pulls.create({ base: branch, head: versionBranch, - title: `Version Packages${isInPreMode ? ` (${preState.tag})` : ""}`, + title, body: await prBodyPromise, ...github.context.repo }); } else { octokit.pulls.update({ pull_number: searchResult.data.items[0].number, - title: `Version Packages${isInPreMode ? ` (${preState.tag})` : ""}`, + title, body: await prBodyPromise, ...github.context.repo }); From 7f1673e0339c0dec81bb80becf269c475b34a11a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 11:19:34 +1000 Subject: [PATCH 2/4] Bump handlebars from 4.2.0 to 4.5.3 (#14) Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.2.0 to 4.5.3. - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md) - [Commits](https://github.com/wycats/handlebars.js/compare/v4.2.0...v4.5.3) Signed-off-by: dependabot[bot] --- yarn.lock | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index a077336..98b6f53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2271,11 +2271,16 @@ command-exists@^1.2.6: resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== -commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.0: +commander@^2.11.0, commander@^2.19.0, commander@^2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3411,9 +3416,9 @@ growly@^1.3.0: integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= handlebars@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" - integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -7349,11 +7354,11 @@ typescript@^3.5.3: integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== uglify-js@^3.1.4: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + version "3.7.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" + integrity sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg== dependencies: - commander "~2.20.0" + commander "~2.20.3" source-map "~0.6.1" uncss@^0.17.0: From 0232b3a289553be4ea7c68cd2fa4a71ccb5654fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 21 Jan 2020 01:40:13 +0100 Subject: [PATCH 3/4] Remove unused `output` variable (#15) --- index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.ts b/index.ts index cb40f03..9c43b9b 100644 --- a/index.ts +++ b/index.ts @@ -168,7 +168,7 @@ import readChangesets from "@changesets/read"; let cmd = semver.lt(changesetsCliPkgJson.version, "2.0.0") ? "bump" : "version"; - let output = await execWithOutput("node", [ + await exec("node", [ "./node_modules/.bin/changeset", cmd ]); From 26b9c5074dace3bb80e05e08d8321b5ca17202ab Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Thu, 23 Jan 2020 11:02:12 -0500 Subject: [PATCH 4/4] Include a link back to the README for folks to read --- index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.ts b/index.ts index 9c43b9b..8448c21 100644 --- a/index.ts +++ b/index.ts @@ -180,7 +180,7 @@ import readChangesets from "@changesets/read"; let prBodyPromise = (async () => { return ( - `This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and ${ + `This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and ${ publishScript ? `the packages will be published to npm automatically` : `publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)`