From b427ecf086e5d312e768a97538e71e6f7e0001e4 Mon Sep 17 00:00:00 2001 From: Arthur Fiorette Date: Fri, 21 Feb 2025 21:14:34 -0300 Subject: [PATCH 1/3] code --- README.md | 56 ++++++++++++++++++++++++---------- action.yml | 21 +++++++------ docs/workflow-permissions.png | Bin 0 -> 9916 bytes package.json | 3 +- src/index.ts | 2 +- src/run.ts | 30 ++++++++++++------ 6 files changed, 76 insertions(+), 36 deletions(-) create mode 100644 docs/workflow-permissions.png diff --git a/README.md b/README.md index cc7f703b..8aacaa37 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,43 @@ -# Changesets Release Action +

Changesets Release Action

This action for [Changesets](https://github.com/atlassian/changesets) creates a pull request with all of the package versions updated and changelogs updated and when there are new changesets on [your configured `baseBranch`](https://github.com/changesets/changesets/blob/main/docs/config-file-options.md#basebranch-git-branch-name), the PR will be updated. When you're ready, you can merge the pull request and you can either publish the packages to npm manually or setup the action to do it for you. +- [Usage](#usage) + - [Inputs](#inputs) + - [Outputs](#outputs) +- [Example workflow:](#example-workflow) + - [Without Publishing](#without-publishing) + - [With Publishing](#with-publishing) + - [Workflow permissions](#workflow-permissions) + - [Custom Publishing](#custom-publishing) + - [With version script](#with-version-script) + - [With Yarn 2 / Plug'n'Play](#with-yarn-2--plugnplay) + ## Usage ### Inputs -- publish - The command to use to build and publish packages -- version - The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided -- commit - The commit message to use. Default to `Version Packages` -- title - The pull request title. Default to `Version Packages` -- setupGitUser - Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` -- createGithubReleases - A boolean value to indicate whether to create Github releases after `publish` or not. Default to `true` -- cwd - Changes node's `process.cwd()` if the project is not located on the root. Default to `process.cwd()` +| Name | Description | Default | +| ---------------------- | ---------------------------------------------------------------------------------- | ------------------- | +| `publish` | The command used to build and publish packages. | | +| `version` | The command to update the version, edit the CHANGELOG, and manage changesets. | `changeset version` | +| `commit` | The commit message for version updates. | `Version Packages` | +| `title` | The title for the version update pull request. | `Version Packages` | +| `setupGitUser` | Configures the Git user for commits as `"github-actions[bot]"`. | `true` | +| `createGithubReleases` | Whether to create a GitHub release after publishing. | `true` | +| `draftGithubReleases` | Whether to publish the GitHub release as a draft (unpublished). | `false` | +| `cwd` | The working directory for the process, useful when the project is not in the root. | `process.cwd()` | ### Outputs -- published - A boolean value to indicate whether a publishing has happened or not -- publishedPackages - A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` +| Name | Description | Type | Example | +| ------------------- | --------------------------------------------------------------- | --------- | ---------------------------------------------------------------------------------- | +| `publish` | Indicates whether publishing has occurred. | `boolean` | `true` | +| `publishedPackages` | A JSON array listing the published packages and their versions. | `string` | `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` | -### Example workflow: +## Example workflow: -#### Without Publishing +### Without Publishing Create a file at `.github/workflows/release.yml` with the following content. @@ -57,7 +73,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` -#### With Publishing +### With Publishing Before you can setup this action with publishing, you'll need to have an [npm token](https://docs.npmjs.com/creating-and-viewing-authentication-tokens) that can publish the packages in the repo you're setting up the action for and doesn't have 2FA on publish enabled ([2FA on auth can be enabled](https://docs.npmjs.com/about-two-factor-authentication)). You'll also need to [add it as a secret on your GitHub repo](https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables) with the name `NPM_TOKEN`. Once you've done that, you can create a file at `.github/workflows/release.yml` with the following content. @@ -122,7 +138,15 @@ For example, you can add a step before running the Changesets GitHub Action: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} ``` -#### Custom Publishing +#### Workflow permissions + +Some organizations and users may not have enabled GitHub Actions to create pull requests. To ensure this feature works correctly, you might need to enable it in your repository settings: + +![Workflows Permission](docs/workflow-permissions.png) + +You can find this setting at: **`https://github.com/user/repo/settings/actions`** + +### Custom Publishing If you want to hook into when publishing should occur but have your own publishing functionality, you can utilize the `hasChangesets` output. @@ -164,7 +188,7 @@ jobs: run: yarn publish ``` -#### With version script +### With version script If you need to add additional logic to the version command, you can do so by using a version script. @@ -205,7 +229,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` -#### With Yarn 2 / Plug'n'Play +### With Yarn 2 / Plug'n'Play 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: diff --git a/action.yml b/action.yml index 86b97909..74059021 100644 --- a/action.yml +++ b/action.yml @@ -5,31 +5,34 @@ runs: main: "dist/index.js" inputs: publish: - description: "The command to use to build and publish packages" + description: "The command used to build and publish packages." required: false version: - description: "The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided" + description: "The command to update the version, edit the CHANGELOG, and manage changesets. Defaults to `changeset version` if not provided." required: false cwd: - description: Sets the cwd for the node process. Default to `process.cwd()` + description: "The working directory for the process, useful when the project is not in the root. Defaults to `process.cwd()`." required: false commit: - description: | - The commit message. Default to `Version Packages` + description: "The commit message for version updates. Defaults to `Version Packages`." required: false title: - description: The pull request title. Default to `Version Packages` + description: "The title for the version update pull request. Defaults to `Version Packages`." required: false setupGitUser: - description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` + description: 'Configures the Git user for commits as `"github-actions[bot]"`. Defaults to `true`.' required: false default: true createGithubReleases: - description: "A boolean value to indicate whether to create Github releases after `publish` or not" + description: "Whether to create a GitHub release after publishing. Defaults to `true`." required: false default: true + draftGithubReleases: + description: "Whether to publish the GitHub release as a draft (unpublished). Defaults to `false`." + required: false + default: false branch: - description: Sets the branch in which the action will run. Default to `github.ref_name` if not provided + description: "The branch in which the action will run. Defaults to `github.ref_name` if not provided." required: false outputs: published: diff --git a/docs/workflow-permissions.png b/docs/workflow-permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..658b7ac5f75224a2c0588d4c1ee047d0a58933d0 GIT binary patch literal 9916 zcmdUVXErqa;BPK}3xjq76pxJw%NX!{{X;LWo`yC3B5X^7ksn9z;acUH>-X z9=GDRL_|-tK?-tuJ{EgRG;D^1HY!YMC%z1|E>&| zhb5Cw!6DUFF2C!o{$5I>j|T@Oh0u69(!l`PE%gjv!q71~aCrsSG7?wj%7<7ZiTEck z+NU-xA74xEnbfT|g=i4UFx&2P3yIT`olHunA-_38U+0G~cp_Nb&!mn~K+Ot8jSE)-|q1 z_|-s~c;yIZN8!#~mBTL74VjjxTTp{N(2DYrx%VXlOGrz*T(%4r5N^iU7TuLMET9@W zlhkPQJJho5NQ}Q@l&-$m+{QwaS#iIgsg{&?L`%cS z>d^Y)*istkxF05s#>4D2NJa?{K42SAo-(88{}K`5Fl`QfcgVsph#Sy|F4u3JVx=>h zD`|c{(n;)@MOyTWw7Z#hwfq=+mOKEtCe9i@ZwT5(- zX(nt%l6fXq>4E5GjyITYzJe6%6Zb)zELwlUSY}+jnM9~wKPL^1?D)%#W0AYV?H5ze4A7>EL!ygMM&zld|6rUl@9pLWGU&-fz zODj~;1jU|J9K8=@MS)*D&5hBfYQygPTzuhX*N5+=6?^vfBy3;OHMG8U5vws*YPiu{ zj3%Gbe``uE!0-gN)TO4C=w$pWDYPP*<=d+{h%tkdQa7CX0-ouH6>kc%S*Y@3_!irH zJi$N9dMmD3@Mr5~b116I@r!d8#zWB0yzbz%(y5*LUvytpYSzR#^5JxBmWV*p8^Sl^RUC0$!uP zRs8y!Lez{>mt*wqjZT#AcDVXgz*+%!Vh#B|@G>*Ui`C-}E!H;eQ_V!p=8f$)U0B{!-5g$P_4;E3gxpCRA>Lp>&JP=PU0C%4ADkX({d2eWn-4 z3>?o~%X;+nnNf&p*&gGV?Me5;{CbXFWvwH){g)Z9f@2dmw^Xw56O7==*=$j!Cr!G3 zf|$SQ17od76I_7gh1tDlynTkR#sS_kSvD_kf`F#t`Ke`5s-0f?p{kATzC#jIc9fhj zr%VrE%*tja$V9X>{lS8_a_R+Vq6Q-G_)&+h_BlzCnWr=gUV&1Z{>Js(&s+fSRK1vH zbn0aO)3%ZPw$3|4iPlww<`kIUDR-0Y36f3EcXAz+O~2TN&Nq%HaZJww=)#YXDX%)| z4vXieVIbB=fnKRlx-$68WyYE=bJ2@0v~AJ1?p0dw_Kc&Z4j0SvHtD%g;T*w@n=OWW zQmasIEYo8qC$*34;hl2X=DEibP0{_{hI1sY${^HVfJsYtQrW(41%#(&CakW*X9mXg zTRY>K04?Bz&wV)Yd}fYY`xMybwym^MRR`0OdN?U8MU~6DIZHkcgzl9ZH7X3>Wrz%& zc+Jbu5xB{X)vMZ@G}O|mJq~SnoB!xD(`wf1@x#WGfQkMW^lDafF6ckyryVg05{-{j z7cXY_Ii@mGkh{*&WA#<-Ehr@%E6dk19&4*u~GnuZTfS zQg1rjx%B7reNrZc2AM0`(lS&&2e}n|Kf3G8R&l^q3uWv$#b6$7i~(R>wQBR2uRbm_ z2~l_}^IgaKdRpLw_C7rN6I|8_sm_10I&8dgC&$Yn9!@{6c{BxVmEkacsRBe%YzetH zCrJ2;FBW1gB_i8Hq>O>e^DY+A#k1o(dYh^0OcybI;YnSr_dXT$))g%m!(Grtolq_p z&J$@39mne+z<5m&wqFeny&1piFle|uGUqwtJX*3?Xq;Fs2oc9+1emtjk%rfB=wX^h z?wl>`s4gohQ_s8lRCx3(yG6Xc)KV~2@nVUjj{B}vBmN;LwG&F$Vd18|1yu(opEm11 zPgNOj`uQp5&ZhwpBYwE3UA^4#5<@aWbAF&2#TH14wg5-(~$Oni^3%WH5FM?vwu<4*%HZ|#u(H;+jI*~~Y0W)U_KocmPqJ0iMx zU^Zdsi`IwY{gX)>N8W78XuoZ3$5fH|yHuD-_UHb80EIC{k}}X2n(c&Q&*{R|vd^s4 z2tcip$&|Uzwq$d8&kKf`zM@nzE(~NmKe5e{tkOx(Q$t*WRkpo~ghC{ej$iXsWuQJF zc_$)cL0L5c-pY~B4h#Ov9Vv$N`~{2$OJP}kg{*_kQnNh!ABA}pD9MGOoMTrq)Z2zo zFWT^cEy>Fw4sAXE$RLSa)*O?q9}?(!LA|#K$+6SvN>m!f9CP9VC$BrP8wYiL}Jq`LB_Z zR<0@I+q~SJUt{oa99{H$!7He^yHfHAC^1{80g9i7IdWznQwx0Tq4)r`FWc-_h|&A) zO9cqvsMZLna2M$>+h3nzF-^>%FCjBDuyP-tOhTjET#W6cl;)1|#D&+hnk>cCwn zb;_>0L|fon-EbZ1I@uCdyx`UkW<(hhe`bMk5AU5LeQi2g%<*?X5*u;(<|WzkLtsk& z23ENqu}e{yfK;mG-vG&J-4OVL*Y#W?Bn;5q1J4@^(M3(hn)iuJahB@Ms>gO(r0vM& z@>kYO#8rOI@0KmR9O2rweVrU4->NEg8>vg;rI!Q>gslE@U^gWl=ktb)%!?t~nhr_ z^!M<X)Z7LC(9+RXD3Q@YD0d-wJ-}mDbu_8r~ zChy-R+TL(X`XdoGNjr^$zmNse>B$05>uPq_&3KbR#qO(!v7A7ag?Ad9FwlYppvL8= z`jldOOSIk6ha~IPy#R;V+;XI6r7;8$xJ>r~$s!R~;l!?4Z z(_sU=4%R&HONk56<3uq4ro!}La7RT*%cJMn@w)k{!i?;47H0~@2hKU@B10q*ub-!@h_ciWTm z+-9ta0kHpc19>x$ zlv6k_82L4V8w&aO<;vrYhq3MM59{1Ujp(>v1P^mn#lasF-xmN^pfRW&g$k3HbnT8R zuYVI{@Syh}%rw70ofLgD_+?1MGpe9#TvDmv#36RlYi4n+=3NJok3IWaNA?e}_A@eH zaQ*|XUpxM!{s(1mh5m{l$AE^Y_#-L|^Y+$`kihmN|QQOkc;&a`>S9zsKdC4DDvDlvRRx50>=2 zDOoMsCU+D63X`j`m|&nes8bc4rL&?)U1L)6A!aD~<_N`faAI>@`TCYSwE6dcoe#NT6UNx0d>q7z5W4@?a9UB=gI^+9}jdP*q2G}A~ zFIPR6AST>`cdi}6Si$h~&%HPu+PO3JH8YOKxpjkhn&t7^0R+FfQy-7NBPFo_vI>jO zk7pd!Ge{`V<;ow8rBHfS&1JMx4O>=6LvklFE3sKyfd@Y_J;+osTQ0oO# zZ;tn=cL|$|P2BhKU|Nb{(1RZyIp?}iJ4Xtc=}#&UF}ZHO6iI@DKM;2NWvnxj|T$|(nGBN;LvU7H@v*AhM$3xfv3U7pLP?K z$F9l*AGX~V5lh#vEv3jJn1^-x5}%vQkr1s4GmdvK$t^Ymtl193;T{PwgIkeWCaC*M#90))khpiDO( zo31Ft`Gn8I)D;12Jg$kem7yB~8P57DDtxoI+rn2m38DY0(Vu6@Ogb!cK5wIyoG**V zc?e7s@&U~a$;1Nv{%&n^ucR%K9-bHpII+3bvr7A=+(2+4$Ht4MQ*$=in6#Ru*c#`K z4wrb;zfxJ98Mcb!cQR+&DsR(;!>un9Lu+b?C9}%p4jbis&?^+DckZn0$`9opY{fNu z=jK)4P86umU9GmL9hKYg@^pSi8dH~dRqz58_@2t>!Am1b8k4bl3Cp$>8v`THj@mZ!_>-%Kk_6eh~nt(*?7_l&+l!z}O>v9E7c+z6i89{b9(mytBvF z5=A2MpuIPTT3B|9-T%|^C{CTo_U!&6Lpb?Y>?opyv^Bxb5XAmnx=iaCgO#lgqS>}f zS%#;+w%~P}yt7}rgew2fmZX`+K6rJp$_3L*f{0nQL+anf{kwC7lo|W;4 zdfTRQTE^GGI0K*H$6`(c=~ZhT5c+|km|t*>En@+AhMN7b@HHs#o6M%;1s=xdfNM-rJdiqo=51Z-7dM-W#x;qr zqBis>|Pj;ky8sd|7i{1#ZSbO-8RebFq_T46qZ zGL`M?7JBjoj%W{Z9k_Tfccy?*8w**WZWaCTpn z7}-Y`mr$a{gq1tMwb%`V72U|iKHBpisWh2EW$F~EBA-J~($hzeMnt$xg-HpNnFlg+ zl!Q-aD#5ccn}J;hM8E@YwIGwj6WUg_-T-nYgih!^F^xCp%62OgbKEUO#C&Ia^VEAm6UcmpfnqkgvqvLA^DELAqPYQ z{eJs%KTKWDY5Q}HHHlh-#TNPtgn6-L9tpDte#4iMP;&Elnf1JAvDjhplZ42MuOl&J zh4EF{WNm{7BOSl7_X-22@~fGK*6p~uVyn(J&7;%VvsEEmefaiu9$+yglc+--ZRry6 z^9@B)eQz|6B|}Ro3+R>fH{FOP!qnS^>987oQpWj(&tBv;li2TsxopF}J0o2>SEO<2 z)X5`kKa{jVCjoxVrqw6+$#*gJpgFH>Z%>NG2E#l-Yw94GQYVkq;L00&0$;5jbFod) z?BH+NChNUX%%-W(#I&C^C7m5Hz5HCkBA)Elf<-a6SJCG*7Xvu$&YEn)dQ;#5J}VC+ zXGFR@Vl&#iq;-@MHWTN#D;KOtGY>hyE1VnhhsrBTJy;W#jO8a=-;_g4d%=;0$djVA z_n-%|yCn(7Dz1@}O&3M0vZKW4iO^oe>kvDS{3H$u#NxS|->Z;0?-L2Pt%u9Q33-xP zhVF3A$KN??0r;z4u^3#LYvk<@0*Zgil+yPN7}kY)4uyD&k;*IYiar7(wKK=1`XuxO zQZ z_JKR-KO-8*hg?{;WhWyyDED>iBQiwk}3fw8=zoIo}i4%>{d z&ZA}*;%!GfWW>O;SU7mee(B*)%G}TxA|)E%)r$sSTONvbeNipedOzl->^0fD!dZHMqB1-MU(TZIcuH~o7dwhW!nC!lLd8A(-kiN zLbK@B1`eWiwBv-@j!7s$1Axf6NY)9m@^k0L4ErMY^FA^z0dYrThvwre%hxOb{9^#!6YNHQMs)xjj$TRw^6|=h3e_icnn<_Y!SYMX- zT)C=kWg(-=%UiX3pFt_y+h!dsQvZ{Ql+DAGJy#|?Xerp*j9-d>j-N66^8O7#RWVyj z=5sl4)03EzmtB~dFHw|1D_K>f;chlM=8p<&(~73zk^S2Fw_NTU=5#$>TPkh_SM>Ju zpr?FIy%L`u3sSME&@;a@J(MfE^&Vmb<`o={d6eDnfS_zZa{hJsN~#<^qJae7RFm~W z$ESa)b=8xa{EA`owCb^s8f@Z7m~OKG7)0U~k4Dnjx4kj|kA^iq6`AVsClKk77EKlI zuAhd`5&1yX`?J|*A0MMETT~A0)F+}GHHxaqcQ-F7#PV0&|hhiFb zh@$F_vavvBU5N4wSk0OJt1CS|3|Y+e{3!$S6`H&;L-lTR4TWM92jezNM>|@>l>IHV zp|{}Zly>&_WoOpR#Er$|Xoo72B)OA)U1HQjjY1*j#F%3&+f0j9`<_yYZuE#p*s1~jrdQ^C}pI|>fDUFe8^ zyL-Dbw0)%YKzK5D^_|m+j%$F7VJucJ=p;@4QkkivZ{ldAlZ1m2NQIJgOrBUTYn`UQ zk1IP3ht9T?+~PgDvAt4D$+rN{RgT6#8I>*7kqpbZ5#QsqJRQT|3Yr~abw1O}=EiYj zWO;g4CW(JAU4Y}MA9}>Q`G@GF*rzYk7G%5ANqI9o!qv0Z?az{GE?9}HQ1ylI>Irl} zvgBVSm&A*VU|0q`D*kvuUSL#G^pNOYqR*Or;|2N-S}qrp51YzAEKhELeu(gOTVzRQ zy(|}fPcIv&o91VD)fe=meh~5{^snLX$+L{#t6YyK$_l%grB31H9*?}gP^^f|gjYu4 ztMjL1XOUJxUfo!Q9>cBG(T^3g@6mqF4lM0oo{3$rxW)Rj=GXGkj%|p(>wp2MK1{u9 z`Ut~P-YkoRa2!35gU!e=&4*N4s&UD{Zf}6df+YnHko0kuF~Q55azp0O;)NO(5kR>H z0@)QL(&UXNJzq(RvNz^gXBX+HP?=2}3+b4G>u9?04!KdMH~W5r*saQL8a`qnnrs6H2?f zl$>utY)82O(xG1+WFW`mgvj2sFAWo2IeVib%6(qfv%3(nnfVk9SidZvXmnhmwfnAt*$zrl%LaxkV#Yi3a-DO zELQe#SAu?-Q;tw{WaDN=0U1GTgwqo8wez~<~3>`ChrxusmJLg?lj3}Q+84D>|JXapALQyx!s0zl`4Z0RQTrV=+FN7q zIfJl%@Aaa`hj|rFQJH&zV8kIceTkN$PT*{V5tu&j9{~U$@F@Qy?NCAE%QvW zUUmn&oYEYWQF1&wMR^|lN2GX*R;>@*BAR`p8}a6A#(+GgMUaZnyeDXr)UFB7byTLo z!v<{g%bBOn^sE#?tPkbt(4(v3dEYa)ech=NDJisTD@hd5Vo|z>5TJzZN;__f<_l9b z<~93y!NdG&6+Q8s<)r#y>!lueyEmCI3 zj?L?oUpzHDp&9kZx0oV~Ep2?`Oh?Rb!;S;@`vv*Be$`#YC60g!AR-YUWr{P%d*;oI z2y7l5e;|9CJiYzA-gQ!nqvKeVJWKZZtrZ~`2akSlbrYQuf{F~ye%<+f1v8o6XNe%#23r5S>0}6X|hUQg-m6V&yodviUk)3gq^O@ z2ab}woW;0LNsEUD!u~kH7aK~+0p0^}CE@bku5NVjJ4_Y%Mm;mQ#(WRT&IqzuXAtnI zMqOx=zvWCbHH@w2bW`)w&y=hke_HgVxrUVwXxJeV(3yk(eV`W1S}La6B+GZlZ899L z+(PTZ`<&xr%1s>K_-9quwC+(FuQ%Z?NX7g~B)XfR|1pQMlGKKAmhFnzi9jtdUlCZA z|8>&xWwAmI^Kr2;nnN2aL8wsfe@MB%F?E2ye4&1!#Jn)7h+2ru9HFvScSVHkUGB%K zzmbn-XFmJ8P_zH3F1kiwQmuKg7W)KOM@DF4eMQ(#It^_vjIK92iF9_GHU_X*_S-__ zN|LIdo$2KrENP$Y9w8Akt1Xeu*Yn`Bv_nE`^%a|eSph@7dVMSG04GuoFI)###Ccifq;@ zx$8bzC=HxM{41F$ObF&pu>MC({>Q)x@s-V!IrvCp zbrrx+Q`u^u|1R47jvpGE(y&yfrKi50#r;q(H96G$d zysY;BDldP6hYkY;v@fcI>XiR=(qnmW_@WhA%Ig~A_QD{jGQZ70?pmGHVTUJk`)8m~ z8}>gjiPFXhU8X@n#8(I5#KKmKWU&u|@OgxA!x3WqK-0f>CRP43LW^NmSA7zI9Bv QW}Fd$6g3no<*h>g57`j2nE(I) literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 44c5af07..709d1ae3 100644 --- a/package.json +++ b/package.json @@ -57,5 +57,6 @@ "**/@octokit/core": "4.2.0", "trim": "^0.0.3", "y18n": "^4.0.1" - } + }, + "packageManager": "yarn@1.22.22" } diff --git a/src/index.ts b/src/index.ts index 194204dc..63ae7146 100644 --- a/src/index.ts +++ b/src/index.ts @@ -88,6 +88,7 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; script: publishScript, githubToken, createGithubReleases: core.getBooleanInput("createGithubReleases"), + draftGithubReleases: core.getBooleanInput("draftGithubReleases"), }); if (result.published) { @@ -109,7 +110,6 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; prTitle: getOptionalInput("title"), commitMessage: getOptionalInput("commit"), hasPublishScript, - branch: getOptionalInput("branch"), }); core.setOutput("pullRequestNumber", String(pullRequestNumber)); diff --git a/src/run.ts b/src/run.ts index 326b9618..86c9a9d5 100644 --- a/src/run.ts +++ b/src/run.ts @@ -60,7 +60,8 @@ const setupOctokit = (githubToken: string) => { const createRelease = async ( octokit: ReturnType, - { pkg, tagName }: { pkg: Package; tagName: string } + { pkg, tagName }: { pkg: Package; tagName: string }, + draftGithubReleases: boolean ) => { try { let changelogFileName = path.join(pkg.dir, "CHANGELOG.md"); @@ -80,6 +81,7 @@ const createRelease = async ( name: tagName, tag_name: tagName, body: changelogEntry.content, + draft: draftGithubReleases, prerelease: pkg.packageJson.version.includes("-"), ...github.context.repo, }); @@ -100,6 +102,7 @@ type PublishOptions = { script: string; githubToken: string; createGithubReleases: boolean; + draftGithubReleases: boolean; cwd?: string; }; @@ -118,6 +121,7 @@ export async function runPublish({ script, githubToken, createGithubReleases, + draftGithubReleases, cwd = process.cwd(), }: PublishOptions): Promise { const octokit = setupOctokit(githubToken); @@ -158,10 +162,14 @@ export async function runPublish({ if (createGithubReleases) { await Promise.all( releasedPackages.map((pkg) => - createRelease(octokit, { - pkg, - tagName: `${pkg.packageJson.name}@${pkg.packageJson.version}`, - }) + createRelease( + octokit, + { + pkg, + tagName: `${pkg.packageJson.name}@${pkg.packageJson.version}`, + }, + draftGithubReleases + ) ) ); } @@ -181,10 +189,14 @@ export async function runPublish({ if (match) { releasedPackages.push(pkg); if (createGithubReleases) { - await createRelease(octokit, { - pkg, - tagName: `v${pkg.packageJson.version}`, - }); + await createRelease( + octokit, + { + pkg, + tagName: `v${pkg.packageJson.version}`, + }, + draftGithubReleases + ); } break; } From ab91265b475c470250b055d55c8259aaf50d29a0 Mon Sep 17 00:00:00 2001 From: Arthur Fiorette Date: Fri, 21 Feb 2025 21:19:37 -0300 Subject: [PATCH 2/3] changeset --- .changeset/twelve-walls-eat.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/twelve-walls-eat.md diff --git a/.changeset/twelve-walls-eat.md b/.changeset/twelve-walls-eat.md new file mode 100644 index 00000000..d6b18992 --- /dev/null +++ b/.changeset/twelve-walls-eat.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": minor +--- + +Add draftGithubReleases From 5fbc2bebe82b280e26b69e13cfecb47a4027985f Mon Sep 17 00:00:00 2001 From: Arthur Fiorette Date: Fri, 21 Feb 2025 21:36:15 -0300 Subject: [PATCH 3/3] reset wrong change --- src/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 63ae7146..ce4c7da7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -48,7 +48,9 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; switch (true) { case !hasChangesets && !hasPublishScript: - core.info("No changesets present or were removed by merging release PR. Not publishing because no publish script found."); + core.info( + "No changesets present or were removed by merging release PR. Not publishing because no publish script found." + ); return; case !hasChangesets && hasPublishScript: { core.info( @@ -110,6 +112,7 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; prTitle: getOptionalInput("title"), commitMessage: getOptionalInput("commit"), hasPublishScript, + branch: getOptionalInput("branch"), }); core.setOutput("pullRequestNumber", String(pullRequestNumber));