Compare commits

..
Author SHA1 Message Date
github-actions[bot] 6b83f36ae5 v2.0.0-next.0 2026-06-23 07:33:38 +00:00
31 changed files with 343 additions and 395 deletions
-5
View File
@@ -1,5 +0,0 @@
---
"@changesets/action": patch
---
Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction.
+1 -8
View File
@@ -4,12 +4,5 @@
"initialVersions": {
"@changesets/action": "1.9.0"
},
"changesets": [
"all-cars-grin",
"eight-clocks-pull",
"eighty-doors-swim",
"lemon-turtles-itch",
"ready-mangos-boil",
"silent-tips-dance"
]
"changesets": ["eight-clocks-pull", "eighty-doors-swim", "lemon-turtles-itch"]
}
-5
View File
@@ -1,5 +0,0 @@
---
"@changesets/action": patch
---
Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction
-5
View File
@@ -1,5 +0,0 @@
---
"@changesets/action": patch
---
Fix the `/version` subaction to not crash on missing `pr-base-branch` input. This input is meant to be optional.
-10
View File
@@ -1,15 +1,5 @@
# @changesets/action
## 2.0.0-next.1
### Patch Changes
- [#663](https://github.com/changesets/action/pull/663) [`ccb3811`](https://github.com/changesets/action/commit/ccb38113eaaa4a13eb6aabe09520e49cc8519b84) Thanks [@Andarist](https://github.com/Andarist)! - Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction.
- [#662](https://github.com/changesets/action/pull/662) [`5c88881`](https://github.com/changesets/action/commit/5c88881fff1f0d8b055d4a2d3a74a8ce843db6f3) Thanks [@Andarist](https://github.com/Andarist)! - Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction
- [#666](https://github.com/changesets/action/pull/666) [`dc29b73`](https://github.com/changesets/action/commit/dc29b738b532d9e95f46b9bf493e2e3fdf48a7ed) Thanks [@Andarist](https://github.com/Andarist)! - Fix the `/version` subaction to not crash on missing `pr-base-branch` input. This input is meant to be optional.
## 2.0.0-next.0
### Major Changes
+5 -5
View File
@@ -65,7 +65,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Create Release Pull Request
uses: changesets/action@v2
uses: changesets/action@v1
```
#### With Publishing
@@ -103,7 +103,7 @@ jobs:
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v2
uses: changesets/action@v1
with:
# This expects you to have a script called release which does a build for your packages and calls changeset publish
publish: pnpm release
@@ -170,7 +170,7 @@ jobs:
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v2
uses: changesets/action@v1
- name: Publish
if: steps.changesets.outputs.hasChangesets == 'false'
@@ -214,7 +214,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Create Release Pull Request
uses: changesets/action@v2
uses: changesets/action@v1
with:
# this expects you to have a npm script called version that runs some logic and then calls `changeset version`.
version: pnpm version
@@ -225,7 +225,7 @@ jobs:
If you are using [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp), you should use a custom `version` command so that the action can resolve the `changeset` CLI:
```yaml
- uses: changesets/action@v2
- uses: changesets/action@v1
with:
version: yarn changeset version
# ...
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+18
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,2 +1,2 @@
import{_ as e,g as t,h as n,m as r,p as i,v as a}from"./get-packages.cjs-Dvdg-NAr.js";import{i as o,n as s,r as c,t as l}from"./run-CRWwTmP3.js";import{r as u,s as d}from"./utils-DQTbg3yF.js";import{t as f}from"./readChangesetState-D8jsqLyj.js";import p from"node:fs/promises";(async()=>{let m=process.env.GITHUB_TOKEN||n(`github-token`);if(!m){e(`Please add the GITHUB_TOKEN to the changesets action`);return}let h=process.cwd(),g=c(m),_=d(`commitMode`)??`git-cli`,v=d(`prDraft`);if(_!==`git-cli`&&_!==`github-api`){e(`Invalid commit mode: ${_}`);return}if(v!==void 0&&v!==`always`&&v!==`create`){e(`Invalid prDraft: ${v}`);return}let y=new o({octokit:_===`github-api`?g:void 0,cwd:h});r(`setupGitUser`)&&(t(`setting git user`),await y.setupUser()),t(`setting GitHub credentials`),await p.writeFile(`${process.env.HOME}/.netrc`,`machine github.com\nlogin github-actions[bot]\npassword ${m}`);let{changesets:b}=await f(h),x=n(`publish`),S=b.length!==0,C=b.some(e=>e.releases.length>0),w=!!x;switch(a(`published`,`false`),a(`publishedPackages`,`[]`),a(`hasChangesets`,String(S)),!0){case!S&&!w:t(`No changesets present or were removed by merging release PR. Not publishing because no publish script found.`);return;case!S&&w:{if(t(`No changesets found. Attempting to publish any unpublished packages to npm`),process.env.NPM_TOKEN){let e=`${process.env.HOME}/.npmrc`;await u(e)?(t(`Found existing user .npmrc file`),(await p.readFile(e,`utf8`)).split(`
`).find(e=>/^\s*\/\/registry\.npmjs\.org\/:[_-]authToken=/i.test(e))?t(`Found existing auth token for the npm registry in the user .npmrc file`):(t(`Didn't find existing auth token for the npm registry in the user .npmrc file, creating one`),await p.appendFile(e,`\n//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}\n`))):(t(`No user .npmrc file found, creating one with NPM_TOKEN used as auth token`),await p.writeFile(e,`//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}\n`))}else process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN&&process.env.ACTIONS_ID_TOKEN_REQUEST_URL?t(`No NPM_TOKEN found, but OIDC is available - using npm trusted publishing`):t(`No NPM_TOKEN or OIDC available - assuming npm is already authenticated`);let e=await l({script:x,githubToken:m,git:y,octokit:g,createGithubReleases:r(`createGithubReleases`),cwd:h});e.published&&(a(`published`,`true`),a(`publishedPackages`,JSON.stringify(e.publishedPackages))),e.exitCode!==0&&(i(`Publish command exited with code ${e.exitCode}${e.published?`, but some packages were published: ${e.publishedPackages.map(e=>`${e.name}@${e.version}`).join(`, `)}`:``}`),process.exit(e.exitCode));return}case S&&!C:t(`All changesets are empty; not creating PR`);return;case S:{let e=c(m),{pullRequestNumber:t}=await s({script:d(`version`),githubToken:m,git:y,octokit:e,cwd:h,prTitle:d(`title`),commitMessage:d(`commit`),hasPublishScript:w,prDraft:v,branch:d(`branch`)});a(`pullRequestNumber`,String(t));return}}})().catch(t=>{i(t),e(t.message)});export{};
import{c as e,d as t,l as n,o as r,s as i,u as a}from"./github-B-FmP-qI.js";import{i as o,n as s,r as c,t as l}from"./run-CVDXZtwd.js";import{r as u}from"./utils-CZUacPOo.js";import{t as d}from"./readChangesetState-Otq6gfkp.js";import f from"node:fs/promises";import"node:path";const p=t=>e(t)||void 0;(async()=>{let m=process.env.GITHUB_TOKEN||e(`github-token`);if(!m){a(`Please add the GITHUB_TOKEN to the changesets action`);return}let h=process.cwd(),g=c(m),_=p(`commitMode`)??`git-cli`,v=p(`prDraft`);if(_!==`git-cli`&&_!==`github-api`){a(`Invalid commit mode: ${_}`);return}if(v!==void 0&&v!==`always`&&v!==`create`){a(`Invalid prDraft: ${v}`);return}let y=new o({octokit:_===`github-api`?g:void 0,cwd:h});i(`setupGitUser`)&&(n(`setting git user`),await y.setupUser()),n(`setting GitHub credentials`),await f.writeFile(`${process.env.HOME}/.netrc`,`machine github.com\nlogin github-actions[bot]\npassword ${m}`);let{changesets:b}=await d(h),x=e(`publish`),S=b.length!==0,C=b.some(e=>e.releases.length>0),w=!!x;switch(t(`published`,`false`),t(`publishedPackages`,`[]`),t(`hasChangesets`,String(S)),!0){case!S&&!w:n(`No changesets present or were removed by merging release PR. Not publishing because no publish script found.`);return;case!S&&w:{if(n(`No changesets found. Attempting to publish any unpublished packages to npm`),process.env.NPM_TOKEN){let e=`${process.env.HOME}/.npmrc`;await u(e)?(n(`Found existing user .npmrc file`),(await f.readFile(e,`utf8`)).split(`
`).find(e=>/^\s*\/\/registry\.npmjs\.org\/:[_-]authToken=/i.test(e))?n(`Found existing auth token for the npm registry in the user .npmrc file`):(n(`Didn't find existing auth token for the npm registry in the user .npmrc file, creating one`),await f.appendFile(e,`\n//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}\n`))):(n(`No user .npmrc file found, creating one with NPM_TOKEN used as auth token`),await f.writeFile(e,`//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}\n`))}else process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN&&process.env.ACTIONS_ID_TOKEN_REQUEST_URL?n(`No NPM_TOKEN found, but OIDC is available - using npm trusted publishing`):n(`No NPM_TOKEN or OIDC available - assuming npm is already authenticated`);let e=await l({script:x,githubToken:m,git:y,octokit:g,createGithubReleases:i(`createGithubReleases`),cwd:h});e.published&&(t(`published`,`true`),t(`publishedPackages`,JSON.stringify(e.publishedPackages))),e.exitCode!==0&&(r(`Publish command exited with code ${e.exitCode}${e.published?`, but some packages were published: ${e.publishedPackages.map(e=>`${e.name}@${e.version}`).join(`, `)}`:``}`),process.exit(e.exitCode));return}case S&&!C:n(`All changesets are empty; not creating PR`);return;case S:{let e=c(m),{pullRequestNumber:n}=await s({script:p(`version`),githubToken:m,git:y,octokit:e,cwd:h,prTitle:p(`title`),commitMessage:p(`commit`),hasPublishScript:w,prDraft:v,branch:p(`branch`)});t(`pullRequestNumber`,String(n));return}}})().catch(e=>{r(e),a(e.message)});export{};
+1 -1
View File
@@ -1 +1 @@
import{_ as e,v as t}from"./get-packages.cjs-Dvdg-NAr.js";import{f as n,n as r,s as i,t as a}from"./utils-DQTbg3yF.js";import o from"node:fs/promises";import s from"node:path";import c from"node:os";try{await l()}catch(t){e(t.message)}async function l(){let e=i(`publish-plan-artifact-id`),r=process.cwd(),a=process.env.RUNNER_TEMP??await o.realpath(c.tmpdir()),l=s.join(a,`changeset-pack-${Date.now()}`);await u(r,{outDir:l,publishPlanPath:e?await d(a,Number(e)):void 0});let p=await n.uploadArtifact(`changeset-pack-${Date.now()}`,await f(l),l,{retentionDays:30});if(p.id===void 0)throw Error(`Packed artifact upload did not return an artifact id`);t(`pack-dir-artifact-id`,String(p.id))}async function u(e,t){let n=[`pack`,`--out-dir`,t.outDir];t.publishPlanPath&&n.push(`--from-publish-plan`,t.publishPlanPath),await r(n,{cwd:e,env:process.env})}async function d(e,t){let n=await a(e,t,`changeset-publish-plan`);return s.join(n,`publish-plan.json`)}async function f(e){let t=await o.readdir(e,{withFileTypes:!0});return(await Promise.all(t.map(async t=>{let n=s.join(e,t.name);return t.isDirectory()?f(n):[n]}))).flat()}export{};
import{c as e,d as t,u as n}from"./github-B-FmP-qI.js";import{n as r,t as i,u as a}from"./utils-CZUacPOo.js";import o from"node:fs/promises";import s from"node:path";import c from"node:os";try{await l()}catch(e){n(e.message)}async function l(){let n=e(`publish-plan-artifact-id`),r=process.cwd(),i=process.env.RUNNER_TEMP??await o.realpath(c.tmpdir()),l=s.join(i,`changeset-pack-${Date.now()}`);await u(r,{outDir:l,publishPlanPath:n?await d(i,Number(n)):void 0});let p=await a.uploadArtifact(`changeset-pack-${Date.now()}`,await f(l),l,{retentionDays:30});if(p.id===void 0)throw Error(`Packed artifact upload did not return an artifact id`);t(`pack-dir-artifact-id`,String(p.id))}async function u(e,t){let n=[`pack`,`--out-dir`,t.outDir];t.publishPlanPath&&n.push(`--from-plan`,t.publishPlanPath),await r(n,{cwd:e,env:process.env})}async function d(e,t){let n=await i(e,t,`changeset-publish-plan`);return s.join(n,`publish-plan.json`)}async function f(e){let t=await o.readdir(e,{withFileTypes:!0});return(await Promise.all(t.map(async t=>{let n=s.join(e,t.name);return t.isDirectory()?f(n):[n]}))).flat()}export{};
+1 -1
View File
@@ -1 +1 @@
import{_ as e,c as t,g as n,l as r,v as i}from"./get-packages.cjs-Dvdg-NAr.js";import{c as a,s as o}from"./utils-DQTbg3yF.js";try{await s()}catch(t){e(t.message)}async function s(){let e=t.payload.pull_request;if(!e)throw Error("This action should only be run on `pull_request_target` or `pull_request` events");let s=a(`github-token`),l=a(`body`),u=o(`update-id`),d=u?c(u):null,f=d?`${d}\n\n${l}`:l,p={repo:e.base.repo.name,owner:e.base.repo.owner.login,issue_number:e.number,body:f},m=r(s),h;d&&(n(`Checking for existing comment...`),h=await m.rest.issues.listComments({repo:e.base.repo.name,owner:e.base.repo.owner.login,issue_number:e.number}).then(e=>e.data.find(e=>e.body?.includes(d))?.id)),h?(n(`Updating existing comment (id: ${h})...`),await m.rest.issues.updateComment({...p,comment_id:h}),i(`comment-id`,h)):(n(`Creating new comment...`),i(`comment-id`,(await m.rest.issues.createComment(p)).data.id)),n(`Done!`)}function c(e){let t=`changesets-action-pr-comment`;return t===e?`<!-- ${t} -->`:`<!-- ${t}:${e} -->`}export{};
import{c as e,d as t,l as n,n as r,t as i,u as a}from"./github-B-FmP-qI.js";try{await o()}catch(e){a(e.message)}async function o(){let a=i.payload.pull_request;if(!a)throw Error("This action should only be run on `pull_request_target` or `pull_request` events");let o=e(`github-token`,{required:!0}),c=e(`body`,{required:!0}),l=e(`update-id`),u=l?s(l):null,d=u?`${u}\n\n${c}`:c,f={repo:a.base.repo.name,owner:a.base.repo.owner.login,issue_number:a.number,body:d},p=r(o),m;u&&(n(`Checking for existing comment...`),m=await p.rest.issues.listComments({repo:a.base.repo.name,owner:a.base.repo.owner.login,issue_number:a.number}).then(e=>e.data.find(e=>e.body?.includes(u))?.id)),m?(n(`Updating existing comment (id: ${m})...`),await p.rest.issues.updateComment({...f,comment_id:m}),t(`comment-id`,m)):(n(`Creating new comment...`),t(`comment-id`,(await p.rest.issues.createComment(f)).data.id)),n(`Done!`)}function s(e){let t=`changesets-action-pr-comment`;return t===e?`<!-- ${t} -->`:`<!-- ${t}:${e} -->`}export{};
+4 -4
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{_ as e,m as t,v as n}from"./get-packages.cjs-Dvdg-NAr.js";import{i as r,r as i,t as a}from"./run-CRWwTmP3.js";import{c as o,s,t as c}from"./utils-DQTbg3yF.js";import l from"node:fs/promises";import u from"node:os";try{await d()}catch(t){e(t.message)}async function d(){let e=o(`github-token`),d=s(`script`),f=s(`pack-dir-artifact-id`),p=t(`create-github-releases`),m=process.cwd(),h=i(e),g=await a({script:d,githubToken:e,git:new r({octokit:h,cwd:m}),octokit:h,createGithubReleases:p,cwd:m,fromPackDir:f?await c(process.env.RUNNER_TEMP??await l.realpath(u.tmpdir()),Number(f),`changeset-pack`):void 0});if(g.published?(n(`published`,`true`),n(`published-packages`,JSON.stringify(g.publishedPackages))):n(`published`,`false`),g.exitCode!==0)throw Error(`Publish command exited with code ${g.exitCode}${g.published?`, but some packages were published: ${g.publishedPackages.map(e=>`${e.name}@${e.version}`).join(`, `)}`:``}`)}export{};
import{c as e,d as t,s as n,u as r}from"./github-B-FmP-qI.js";import{i,r as a,t as o}from"./run-CVDXZtwd.js";import{t as s}from"./utils-CZUacPOo.js";import c from"node:fs/promises";import l from"node:os";try{await u()}catch(e){r(e.message)}async function u(){let r=e(`github-token`,{required:!0}),u=e(`script`),d=e(`pack-dir-artifact-id`),f=n(`create-github-releases`),p=process.cwd(),m=a(r),h=await o({script:u,githubToken:r,git:new i({octokit:m,cwd:p}),octokit:m,createGithubReleases:f,cwd:p,fromPackDir:d?await s(process.env.RUNNER_TEMP??await c.realpath(l.tmpdir()),Number(d),`changeset-pack`):void 0});if(h.published?(t(`published`,`true`),t(`published-packages`,JSON.stringify(h.publishedPackages))):t(`published`,`false`),h.exitCode!==0)throw Error(`Publish command exited with code ${h.exitCode}${h.published?`, but some packages were published: ${h.publishedPackages.map(e=>`${e.name}@${e.version}`).join(`, `)}`:``}`)}export{};
@@ -1 +1 @@
import{o as e,t}from"./changesets-read.esm-D6fW_L6x.js";async function n(n=process.cwd()){let r=await e(n),i=await t(n);if(r!==void 0&&r.mode===`pre`){let e=new Set(r.changesets);return{preState:r,changesets:i.filter(t=>!e.has(t.id))}}return{preState:void 0,changesets:i}}export{n as t};
import{o as e,t}from"./changesets-read.esm-Cr0YoPBA.js";async function n(n=process.cwd()){let r=await e(n),i=await t(n);if(r!==void 0&&r.mode===`pre`){let e=new Set(r.changesets);return{preState:r,changesets:i.filter(t=>!e.has(t.id))}}return{preState:void 0,changesets:i}}export{n as t};
-149
View File
File diff suppressed because one or more lines are too long
+149
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{_ as e,v as t}from"./get-packages.cjs-Dvdg-NAr.js";import{f as n,n as r}from"./utils-DQTbg3yF.js";import{t as i}from"./readChangesetState-D8jsqLyj.js";import a from"node:fs/promises";import o from"node:path";import s from"node:os";try{await c()}catch(t){e(t.message)}async function c(){let e=await l();if(t(`mode`,e.mode),e.mode===`publish`){let r=await n.uploadArtifact(o.basename(e.publishPlanPath,`.json`),[e.publishPlanPath],o.dirname(e.publishPlanPath),{skipArchive:!0,retentionDays:30});if(r.id===void 0)throw Error(`Publish plan artifact upload did not return an artifact id`);t(`publish-plan-artifact-id`,String(r.id))}}async function l(){let{changesets:e}=await i();if(e.length>0)return e.some(e=>e.releases.length>0)?{mode:`version`}:{mode:`none`};let t=process.cwd(),n=o.join(process.env.RUNNER_TEMP??await a.realpath(s.tmpdir()),`changeset-publish-plan-${Date.now()}`,`publish-plan.json`);return await r([`publish-plan`,`--output`,n],{cwd:t,env:process.env}),(await u(n)).length===0?{mode:`none`}:{mode:`publish`,publishPlanPath:n}}async function u(e){let t;try{t=await a.readFile(e,`utf8`)}catch(t){throw Error(`Failed to read publish plan at ${e}`,{cause:t})}let n;try{n=JSON.parse(t)}catch(t){throw Error(`Failed to parse publish plan at ${e}`,{cause:t})}if(typeof n!=`object`||!n||!(`version`in n)||typeof n.version!=`number`||!(`plan`in n)||!Array.isArray(n.plan))throw Error(`Invalid publish plan at ${e}: expected { version: number; plan: unknown[] }`);return n.plan}export{};
import{d as e,u as t}from"./github-B-FmP-qI.js";import{n,u as r}from"./utils-CZUacPOo.js";import{t as i}from"./readChangesetState-Otq6gfkp.js";import a from"node:fs/promises";import o from"node:path";import s from"node:os";try{await c()}catch(e){t(e.message)}async function c(){let t=await l();if(e(`mode`,t.mode),t.mode===`publish`){let n=await r.uploadArtifact(o.basename(t.publishPlanPath,`.json`),[t.publishPlanPath],o.dirname(t.publishPlanPath),{skipArchive:!0,retentionDays:30});if(n.id===void 0)throw Error(`Publish plan artifact upload did not return an artifact id`);e(`publish-plan-artifact-id`,String(n.id))}}async function l(){let{changesets:e}=await i();if(e.length>0)return e.some(e=>e.releases.length>0)?{mode:`version`}:{mode:`none`};let t=process.cwd(),r=o.join(process.env.RUNNER_TEMP??await a.realpath(s.tmpdir()),`changeset-publish-plan-${Date.now()}.json`);return await n([`publish-plan`,`--output`,r],{cwd:t,env:process.env}),(await u(r)).length===0?{mode:`none`}:{mode:`publish`,publishPlanPath:r}}async function u(e){let t;try{t=await a.readFile(e,`utf8`)}catch(t){throw Error(`Failed to read publish plan at ${e}`,{cause:t})}let n;try{n=JSON.parse(t)}catch(t){throw Error(`Failed to parse publish plan at ${e}`,{cause:t})}if(typeof n!=`object`||!n||!(`version`in n)||typeof n.version!=`number`||!(`plan`in n)||!Array.isArray(n.plan))throw Error(`Invalid publish plan at ${e}: expected { version: number; plan: unknown[] }`);return n.plan}export{};
+80
View File
File diff suppressed because one or more lines are too long
-80
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
import{_ as e,g as t,m as n,v as r}from"./get-packages.cjs-Dvdg-NAr.js";import{i,n as a,r as o}from"./run-CRWwTmP3.js";import{c as s,s as c}from"./utils-DQTbg3yF.js";try{await l()}catch(t){e(t.message)}async function l(){let e=s(`github-token`),l=c(`script`),u=s(`commit-message`),d=s(`pr-title`),f=c(`pr-draft`),p=c(`pr-base-branch`),m=c(`commit-mode`)??`git-cli`,h=n(`setup-git-user`);if(f!==void 0&&f!==`always`&&f!==`create`)throw Error(`Invalid pr-draft input: ${f}`);let g=process.cwd(),_=o(e),v=new i({octokit:m===`github-api`?_:void 0,cwd:g});h&&(t(`setting git user`),await v.setupUser());let{pullRequestNumber:y}=await a({script:l,githubToken:e,git:v,octokit:_,cwd:g,prTitle:d,commitMessage:u,hasPublishScript:!0,prDraft:f,branch:p});r(`pr-number`,String(y))}export{};
import{c as e,d as t,l as n,s as r,u as i}from"./github-B-FmP-qI.js";import{i as a,n as o,r as s}from"./run-CVDXZtwd.js";try{await c()}catch(e){i(e.message)}async function c(){let i=e(`github-token`,{required:!0}),c=e(`script`),l=e(`commit-message`,{required:!0}),u=e(`pr-title`,{required:!0}),d=e(`pr-draft`)||void 0,f=e(`pr-base-branch`),p=e(`commit-mode`)||`git-cli`,m=r(`setup-git-user`);if(d!==void 0&&d!==`always`&&d!==`create`)throw Error(`Invalid pr-draft input: ${d}`);let h=process.cwd(),g=s(i),_=new a({octokit:p===`github-api`?g:void 0,cwd:h});m&&(n(`setting git user`),await _.setupUser());let{pullRequestNumber:v}=await o({script:c,githubToken:i,git:_,octokit:g,cwd:h,prTitle:u,commitMessage:l,hasPublishScript:!0,prDraft:d,branch:f});t(`pr-number`,String(v))}export{};
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@changesets/action",
"version": "2.0.0-next.1",
"version": "2.0.0-next.0",
"license": "MIT",
"type": "module",
"main": "dist/index.js",
+4 -1
View File
@@ -1,10 +1,13 @@
import fs from "node:fs/promises";
import path from "node:path";
import * as core from "@actions/core";
import { Git } from "./git.ts";
import { setupOctokit } from "./octokit.ts";
import readChangesetState from "./readChangesetState.ts";
import { runPublish, runVersion } from "./run.ts";
import { fileExists, getOptionalInput } from "./utils.ts";
import { fileExists } from "./utils.ts";
const getOptionalInput = (name: string) => core.getInput(name) || undefined;
(async () => {
// to maintain compatibility with workflows created before github-token input was introduced
+3 -7
View File
@@ -3,11 +3,7 @@ import os from "node:os";
import path from "node:path";
import artifact from "@actions/artifact";
import * as core from "@actions/core";
import {
downloadArtifact,
execChangesetsCli,
getOptionalInput,
} from "../utils.ts";
import { downloadArtifact, execChangesetsCli } from "../utils.ts";
try {
await main();
@@ -16,7 +12,7 @@ try {
}
async function main() {
const publishPlanArtifactId = getOptionalInput("publish-plan-artifact-id");
const publishPlanArtifactId = core.getInput("publish-plan-artifact-id");
// If the user needs to change the cwd, set `working-directory` in the step instead
const cwd = process.cwd();
@@ -53,7 +49,7 @@ async function pack(
) {
const cliArgs = ["pack", "--out-dir", args.outDir];
if (args.publishPlanPath) {
cliArgs.push("--from-publish-plan", args.publishPlanPath);
cliArgs.push("--from-plan", args.publishPlanPath);
}
await execChangesetsCli(cliArgs, {
+3 -4
View File
@@ -1,6 +1,5 @@
import * as core from "@actions/core";
import * as github from "@actions/github";
import { getOptionalInput, getRequiredInput } from "../utils.ts";
type Octokit = ReturnType<typeof github.getOctokit>;
type CreateCommentParams = NonNullable<
@@ -24,9 +23,9 @@ async function main() {
);
}
const githubToken = getRequiredInput("github-token");
const body = getRequiredInput("body");
const updateId = getOptionalInput("update-id");
const githubToken = core.getInput("github-token", { required: true });
const body = core.getInput("body", { required: true });
const updateId = core.getInput("update-id");
const commentMarker = updateId ? getCommentMarker(updateId) : null;
const commentBody = commentMarker ? `${commentMarker}\n\n${body}` : body;
+4 -8
View File
@@ -4,11 +4,7 @@ import * as core from "@actions/core";
import { Git } from "../git.ts";
import { setupOctokit } from "../octokit.ts";
import { runPublish } from "../run.ts";
import {
downloadArtifact,
getOptionalInput,
getRequiredInput,
} from "../utils.ts";
import { downloadArtifact } from "../utils.ts";
try {
await main();
@@ -17,9 +13,9 @@ try {
}
async function main() {
const githubToken = getRequiredInput("github-token");
const script = getOptionalInput("script");
const packDirArtifactId = getOptionalInput("pack-dir-artifact-id");
const githubToken = core.getInput("github-token", { required: true });
const script = core.getInput("script");
const packDirArtifactId = core.getInput("pack-dir-artifact-id");
const createGithubReleases = core.getBooleanInput("create-github-releases");
// If the user needs to change the cwd, set `working-directory` in the step instead
+1 -3
View File
@@ -64,9 +64,7 @@ async function getMode(): Promise<ModeResult> {
const cwd = process.cwd();
const publishPlanPath = path.join(
process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())),
`changeset-publish-plan-${Date.now()}`,
// we need a stable filename here (in a unique dirname) so the artifact download can find this cleanly
"publish-plan.json",
`changeset-publish-plan-${Date.now()}.json`,
);
await execChangesetsCli(["publish-plan", "--output", publishPlanPath], {
cwd,
-12
View File
@@ -2,7 +2,6 @@ import fs from "node:fs/promises";
import { createRequire } from "node:module";
import path from "node:path";
import artifact from "@actions/artifact";
import * as core from "@actions/core";
import {
exec,
getExecOutput,
@@ -124,17 +123,6 @@ export function fileExists(filePath: string) {
);
}
export function getOptionalInput(name: string) {
// normalize empty string default return value of `core.getInput` to undefined
return core.getInput(name) || undefined;
}
export function getRequiredInput(name: string) {
// it's just a small utility wrapper, mainly introduced for usage parity with our custom `getOptionalInput`
// note: `core.getBooleanInput` gets used directly as it already normalizes the return value nicely
return core.getInput(name, { required: true });
}
function resolveChangesetsCli(cwd: string) {
return require.resolve("@changesets/cli/bin.js", {
paths: [cwd],
+7 -8
View File
@@ -2,7 +2,6 @@ import * as core from "@actions/core";
import { Git } from "../git.ts";
import { setupOctokit } from "../octokit.ts";
import { runVersion } from "../run.ts";
import { getOptionalInput, getRequiredInput } from "../utils.ts";
try {
await main();
@@ -11,13 +10,13 @@ try {
}
async function main() {
const githubToken = getRequiredInput("github-token");
const script = getOptionalInput("script");
const commitMessage = getRequiredInput("commit-message");
const prTitle = getRequiredInput("pr-title");
const prDraft = getOptionalInput("pr-draft");
const prBaseBranch = getOptionalInput("pr-base-branch");
const commitMode = getOptionalInput("commit-mode") ?? "git-cli";
const githubToken = core.getInput("github-token", { required: true });
const script = core.getInput("script");
const commitMessage = core.getInput("commit-message", { required: true });
const prTitle = core.getInput("pr-title", { required: true });
const prDraft = core.getInput("pr-draft") || undefined;
const prBaseBranch = core.getInput("pr-base-branch");
const commitMode = core.getInput("commit-mode") || "git-cli";
const setupGitUser = core.getBooleanInput("setup-git-user");
// Validations
+1 -1
View File
@@ -9,7 +9,7 @@ inputs:
required: false
default: ${{ github.token }}
script:
description: "The command to use to version packages"
description: "The command to use to publish packages"
required: false
commit-message:
description: "The commit message. Default to `Version Packages`"