Updated release workflow and semantic-release config to include the beta
branch and pattern-matched branches for release automation. The beta
branch is now marked as a prerelease.
Bumps the development-dependencies group with 2 updates in the /
directory: [ava](https://github.com/avajs/ava) and
[esbuild](https://github.com/evanw/esbuild).
Updates `ava` from 6.3.0 to 6.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/avajs/ava/releases">ava's
releases</a>.</em></p>
<blockquote>
<h2>v6.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>AVA is now tested with Node.js 24 (but no longer v23) <a
href="https://redirect.github.com/avajs/ava/pull/3379">avajs/ava#3379</a></li>
<li>We're now publishing to npm with <a
href="https://www.npmjs.com/package/ava#provenance">provenance
attestations</a> <a
href="https://redirect.github.com/avajs/ava/pull/3385">avajs/ava#3385</a></li>
</ul>
<h3>Interactive watch mode filters</h3>
<p><a href="https://github.com/mmulet"><code>@mmulet</code></a> did
fantastic work to spearhead interactive watch mode filters. You can now
filter test files by glob patterns, and tests by matching their titles.
It's just like you already could from the CLI itself, but now without
exiting AVA 🚀 <a
href="https://redirect.github.com/avajs/ava/pull/3372">avajs/ava#3372</a></p>
<p>As part of this work we've removed the "sticky"
<code>.only()</code> behavior <a
href="https://redirect.github.com/avajs/ava/pull/3381">avajs/ava#3381</a></p>
<h3>Examples</h3>
<p>We've been remiss in merging <a
href="https://redirect.github.com/avajs/ava/pull/3335">avajs/ava#3335</a>
which updates the examples to use AVA 6. It's done now, examples are up
to date and it's all due to <a
href="https://github.com/tommy-mitchell"><code>@tommy-mitchell</code></a>
👏</p>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mmulet"><code>@mmulet</code></a> made
their first contribution in <a
href="https://redirect.github.com/avajs/ava/pull/3372">avajs/ava#3372</a></li>
<li><a href="https://github.com/kebbell"><code>@kebbell</code></a> made
their first contribution in <a
href="https://redirect.github.com/avajs/ava/pull/3348">avajs/ava#3348</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/avajs/ava/compare/v6.3.0...v6.4.0">https://github.com/avajs/ava/compare/v6.3.0...v6.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/avajs/ava/commit/372c241efbea3bcb790bc2cdcbc11b80d12bbdfd"><code>372c241</code></a>
6.4.0</li>
<li><a
href="https://github.com/avajs/ava/commit/05ead2812d5723104cb4bf45c040007c9f082ff4"><code>05ead28</code></a>
Update release process & maintaining notes</li>
<li><a
href="https://github.com/avajs/ava/commit/859f3ff2eb72e08c1c254d87ed5ff967c718d900"><code>859f3ff</code></a>
Update examples to use AVA 6</li>
<li><a
href="https://github.com/avajs/ava/commit/eb2b48d3985bbfb9a4649e31a6e449d7e8f9278e"><code>eb2b48d</code></a>
Update XO & other dependencies</li>
<li><a
href="https://github.com/avajs/ava/commit/50e02d5cd64872f9cca7bb543e623a0da8c3acdb"><code>50e02d5</code></a>
Remove compiler option override needed for TypeScript 4.x</li>
<li><a
href="https://github.com/avajs/ava/commit/57a3bbe8d43ea71ce67a2971a90844ae667a93ef"><code>57a3bbe</code></a>
Implement file globbing and test matching within watch mode</li>
<li><a
href="https://github.com/avajs/ava/commit/29cb29accbf82ad8eca4b97544f357e813708853"><code>29cb29a</code></a>
Remove special .only() behavior in watch mode</li>
<li><a
href="https://github.com/avajs/ava/commit/36934b2371889735c8a9209fb41f63574b44e66f"><code>36934b2</code></a>
Fix error handling in watcher tests</li>
<li><a
href="https://github.com/avajs/ava/commit/31a1262e6c5c1b1514453b7a90a6b871e444e50f"><code>31a1262</code></a>
Test with Node.js 24, remove v23 test runs</li>
<li><a
href="https://github.com/avajs/ava/commit/a6f42ea472cfbe7047a0fb89ab0cd728b4e04ae1"><code>a6f42ea</code></a>
Upgrade <code>@ava/test</code> to 6.3.0</li>
<li>See full diff in <a
href="https://github.com/avajs/ava/compare/v6.3.0...v6.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `esbuild` from 0.25.5 to 0.25.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.6</h2>
<ul>
<li>
<p>Fix a memory leak when <code>cancel()</code> is used on a build
context (<a
href="https://redirect.github.com/evanw/esbuild/issues/4231">#4231</a>)</p>
<p>Calling <code>rebuild()</code> followed by <code>cancel()</code> in
rapid succession could previously leak memory. The bundler uses a
producer/consumer model internally, and the resource leak was caused by
the consumer being termianted while there were still remaining
unreceived results from a producer. To avoid the leak, the consumer now
waits for all producers to finish before terminating.</p>
</li>
<li>
<p>Support empty <code>:is()</code> and <code>:where()</code> syntax in
CSS (<a
href="https://redirect.github.com/evanw/esbuild/issues/4232">#4232</a>)</p>
<p>Previously using these selectors with esbuild would generate a
warning. That warning has been removed in this release for these
cases.</p>
</li>
<li>
<p>Improve tree-shaking of <code>try</code> statements in dead code (<a
href="https://redirect.github.com/evanw/esbuild/issues/4224">#4224</a>)</p>
<p>With this release, esbuild will now remove certain <code>try</code>
statements if esbuild considers them to be within dead code (i.e. code
that is known to not ever be evaluated). For example:</p>
<pre lang="js"><code>// Original code
return 'foo'
try { return 'bar' } catch {}
<p>// Old output (with --minify)
return"foo";try{return"bar"}catch{}</p>
<p>// New output (with --minify)
return"foo";
</code></pre></p>
</li>
<li>
<p>Consider negated bigints to have no side effects</p>
<p>While esbuild currently considers <code>1</code>, <code>-1</code>,
and <code>1n</code> to all have no side effects, it didn't previously
consider <code>-1n</code> to have no side effects. This is because
esbuild does constant folding with numbers but not bigints. However, it
meant that unused negative bigint constants were not tree-shaken. With
this release, esbuild will now consider these expressions to also be
side-effect free:</p>
<pre lang="js"><code>// Original code
let a = 1, b = -1, c = 1n, d = -1n
<p>// Old output (with --bundle --minify)
(()=>{var n=-1n;})();</p>
<p>// New output (with --bundle --minify)
(()=>{})();
</code></pre></p>
</li>
<li>
<p>Support a configurable delay in watch mode before rebuilding (<a
href="https://redirect.github.com/evanw/esbuild/issues/3476">#3476</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4178">#4178</a>)</p>
<p>The <code>watch()</code> API now takes a <code>delay</code> option
that lets you add a delay (in milliseconds) before rebuilding when a
change is detected in watch mode. If you use a tool that regenerates
multiple source files very slowly, this should make it more likely that
esbuild's watch mode won't generate a broken intermediate build before
the successful final build. This option is also available via the CLI
using the <code>--watch-delay=</code> flag.</p>
<p>This should also help avoid confusion about the <code>watch()</code>
API's options argument. It was previously empty to allow for future API
expansion, which caused some people to think that the documentation was
missing. It's no longer empty now that the <code>watch()</code> API has
an option.</p>
</li>
<li>
<p>Allow mixed array for <code>entryPoints</code> API option (<a
href="https://redirect.github.com/evanw/esbuild/issues/4223">#4223</a>)</p>
<p>The TypeScript type definitions now allow you to pass a mixed array
of both string literals and object literals to the
<code>entryPoints</code> API option, such as <code>['foo.js', { out:
'lib', in: 'bar.js' }]</code>. This was always possible to do in
JavaScript but the TypeScript type definitions were previously too
restrictive.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.25.6</h2>
<ul>
<li>
<p>Fix a memory leak when <code>cancel()</code> is used on a build
context (<a
href="https://redirect.github.com/evanw/esbuild/issues/4231">#4231</a>)</p>
<p>Calling <code>rebuild()</code> followed by <code>cancel()</code> in
rapid succession could previously leak memory. The bundler uses a
producer/consumer model internally, and the resource leak was caused by
the consumer being termianted while there were still remaining
unreceived results from a producer. To avoid the leak, the consumer now
waits for all producers to finish before terminating.</p>
</li>
<li>
<p>Support empty <code>:is()</code> and <code>:where()</code> syntax in
CSS (<a
href="https://redirect.github.com/evanw/esbuild/issues/4232">#4232</a>)</p>
<p>Previously using these selectors with esbuild would generate a
warning. That warning has been removed in this release for these
cases.</p>
</li>
<li>
<p>Improve tree-shaking of <code>try</code> statements in dead code (<a
href="https://redirect.github.com/evanw/esbuild/issues/4224">#4224</a>)</p>
<p>With this release, esbuild will now remove certain <code>try</code>
statements if esbuild considers them to be within dead code (i.e. code
that is known to not ever be evaluated). For example:</p>
<pre lang="js"><code>// Original code
return 'foo'
try { return 'bar' } catch {}
<p>// Old output (with --minify)
return"foo";try{return"bar"}catch{}</p>
<p>// New output (with --minify)
return"foo";
</code></pre></p>
</li>
<li>
<p>Consider negated bigints to have no side effects</p>
<p>While esbuild currently considers <code>1</code>, <code>-1</code>,
and <code>1n</code> to all have no side effects, it didn't previously
consider <code>-1n</code> to have no side effects. This is because
esbuild does constant folding with numbers but not bigints. However, it
meant that unused negative bigint constants were not tree-shaken. With
this release, esbuild will now consider these expressions to also be
side-effect free:</p>
<pre lang="js"><code>// Original code
let a = 1, b = -1, c = 1n, d = -1n
<p>// Old output (with --bundle --minify)
(()=>{var n=-1n;})();</p>
<p>// New output (with --bundle --minify)
(()=>{})();
</code></pre></p>
</li>
<li>
<p>Support a configurable delay in watch mode before rebuilding (<a
href="https://redirect.github.com/evanw/esbuild/issues/3476">#3476</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4178">#4178</a>)</p>
<p>The <code>watch()</code> API now takes a <code>delay</code> option
that lets you add a delay (in milliseconds) before rebuilding when a
change is detected in watch mode. If you use a tool that regenerates
multiple source files very slowly, this should make it more likely that
esbuild's watch mode won't generate a broken intermediate build before
the successful final build. This option is also available via the CLI
using the <code>--watch-delay=</code> flag.</p>
<p>This should also help avoid confusion about the <code>watch()</code>
API's options argument. It was previously empty to allow for future API
expansion, which caused some people to think that the documentation was
missing. It's no longer empty now that the <code>watch()</code> API has
an option.</p>
</li>
<li>
<p>Allow mixed array for <code>entryPoints</code> API option (<a
href="https://redirect.github.com/evanw/esbuild/issues/4223">#4223</a>)</p>
<p>The TypeScript type definitions now allow you to pass a mixed array
of both string literals and object literals to the
<code>entryPoints</code> API option, such as <code>['foo.js', { out:
'lib', in: 'bar.js' }]</code>. This was always possible to do in
JavaScript but the TypeScript type definitions were previously too
restrictive.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/d38c1f0bc580b4a8a93f23559d0cd9085d7ba31f"><code>d38c1f0</code></a>
publish 0.25.6 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/11e547e2c7b4238a626c1fd10759e058c8477daa"><code>11e547e</code></a>
missing <code>)</code> in release notes</li>
<li><a
href="https://github.com/evanw/esbuild/commit/cc8ac0a5f49589d9a0698728106ffa43d51aa1b3"><code>cc8ac0a</code></a>
fix trailing comment whitespace</li>
<li><a
href="https://github.com/evanw/esbuild/commit/1e3fb57adcbd51b35712ea53e215f5368a8cd708"><code>1e3fb57</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4178">#4178</a>:
add the <code>--watch-delay=</code> option</li>
<li><a
href="https://github.com/evanw/esbuild/commit/c1f5f18e8308be3eaf064c0d059bfee00cc628e7"><code>c1f5f18</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4209">#4209</a>:
disable binary executable optimization on WASM platform (<a
href="https://redirect.github.com/evanw/esbuild/issues/4210">#4210</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/3ed5ecce847ace6f016290d10fbae9359b0351d3"><code>3ed5ecc</code></a>
fix incorrect locations in <code>CHANGELOG.md</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/248089c1a8398a219720e8ef5601d2b7001c64d4"><code>248089c</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4224">#4224</a>:
allow <code>try</code> statements to become dead</li>
<li><a
href="https://github.com/evanw/esbuild/commit/42f159cb52e1d7de826b5b52f307c45b587a5646"><code>42f159c</code></a>
openharmony: keep makefile targets sorted</li>
<li><a
href="https://github.com/evanw/esbuild/commit/63256e12bedc47a7bd13d315e5c0712908f31a14"><code>63256e1</code></a>
chore: fix some comments (<a
href="https://redirect.github.com/evanw/esbuild/issues/4211">#4211</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/d803f72e64c900e6b007501c81b987832ffc3c81"><code>d803f72</code></a>
add support for openharmony-arm64 platform (<a
href="https://redirect.github.com/evanw/esbuild/issues/4212">#4212</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.25.5...v0.25.6">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the development-dependencies group with 3 updates in the /
directory: [ava](https://github.com/avajs/ava),
[dotenv](https://github.com/motdotla/dotenv) and
[esbuild](https://github.com/evanw/esbuild).
Updates `ava` from 6.2.0 to 6.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/avajs/ava/releases">ava's
releases</a>.</em></p>
<blockquote>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update dependencies, addressing <code>npm audit</code> warnings by
<a
href="https://github.com/novemberborn"><code>@novemberborn</code></a>
in <a
href="https://redirect.github.com/avajs/ava/pull/3377">avajs/ava#3377</a></li>
<li>Do not count writes to stdout/stderr as non-idling activity for
timeouts by <a
href="https://github.com/mdouglass"><code>@mdouglass</code></a> in <a
href="https://redirect.github.com/avajs/ava/pull/3374">avajs/ava#3374</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mdouglass"><code>@mdouglass</code></a>
made their first contribution in <a
href="https://redirect.github.com/avajs/ava/pull/3374">avajs/ava#3374</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/avajs/ava/compare/v6.2.0...v6.3.0">https://github.com/avajs/ava/compare/v6.2.0...v6.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/avajs/ava/commit/ca4240db7f81f67a540f9e20c4c1375110dbe598"><code>ca4240d</code></a>
6.3.0</li>
<li><a
href="https://github.com/avajs/ava/commit/f243cab3b3c2dc7d7b882121fe9ce4a54ec882f2"><code>f243cab</code></a>
Do not count writes to stdout/stderr as non-idling activity for
timeouts</li>
<li><a
href="https://github.com/avajs/ava/commit/4abb780b5baad1ccbeb9f57de03ce06a75a68c17"><code>4abb780</code></a>
Update dependencies</li>
<li>See full diff in <a
href="https://github.com/avajs/ava/compare/v6.2.0...v6.3.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `dotenv` from 16.4.7 to 16.5.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md">dotenv's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/motdotla/dotenv/compare/v16.4.7...v16.5.0">16.5.0</a>
(2025-04-07)</h2>
<h3>Added</h3>
<ul>
<li>🎉 Added new sponsor <a
href="https://graphite.dev/?utm_source=github&utm_medium=repo&utm_campaign=dotenv">Graphite</a>
- <em>the AI developer productivity platform helping teams on GitHub
ship higher quality software, faster</em>.</li>
</ul>
<blockquote>
<p>[!TIP]
<strong><a href="https://github.com/sponsors/motdotla">Become a
sponsor</a></strong></p>
<p>The dotenvx README is viewed thousands of times DAILY on GitHub and
NPM.
Sponsoring dotenv is a great way to get in front of developers and give
back to the developer community at the same time.</p>
</blockquote>
<h3>Changed</h3>
<ul>
<li>Remove <code>_log</code> method. Use <code>_debug</code> <a
href="https://redirect.github.com/motdotla/dotenv/pull/862">#862</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/motdotla/dotenv/commit/d39cc9a94ef80b534d02401ab99d17463e902385"><code>d39cc9a</code></a>
16.5.0</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/2f4e407c73e66b822a96b6439b40ea94ced2409f"><code>2f4e407</code></a>
Merge pull request <a
href="https://redirect.github.com/motdotla/dotenv/issues/863">#863</a>
from Fdawgs/patch-1</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/a1eef11a7064dcdaf56d2bbdca1e58cfdcdcf5a4"><code>a1eef11</code></a>
chore(package): add homepage url</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/fb7e407892824b29817d02bc0ec911d00efe1dc2"><code>fb7e407</code></a>
README update</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/bf9113fad68ba352a02081ac1fada45f9e85e772"><code>bf9113f</code></a>
README update</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/9326f05f95cbac63f88da96a5b02852f789c9380"><code>9326f05</code></a>
changelog 🪵</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/2e8da3018af610f18089c9246497b56943cdea6e"><code>2e8da30</code></a>
changelog 🪵</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/3257b3adaf4f3a62346ed185869039325aa6e6db"><code>3257b3a</code></a>
changelog 🪵</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/c0ca62c841fe36b2de8030d02533a1b80955abe8"><code>c0ca62c</code></a>
changelog 🪵</li>
<li><a
href="https://github.com/motdotla/dotenv/commit/797c5e9d6e9359bfae2b26f5c4aca8890531f7dd"><code>797c5e9</code></a>
changelog 🪵</li>
<li>Additional commits viewable in <a
href="https://github.com/motdotla/dotenv/compare/v16.4.7...v16.5.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `esbuild` from 0.25.2 to 0.25.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.3</h2>
<ul>
<li>
<p>Fix lowered <code>async</code> arrow functions before
<code>super()</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4141">#4141</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4142">#4142</a>)</p>
<p>This change makes it possible to call an <code>async</code> arrow
function in a constructor before calling <code>super()</code> when
targeting environments without <code>async</code> support, as long as
the function body doesn't reference <code>this</code>. Here's an example
(notice the change from <code>this</code> to <code>null</code>):</p>
<pre lang="js"><code>// Original code
class Foo extends Object {
constructor() {
(async () => await foo())()
super()
}
}
<p>// Old output (with --target=es2016)<br />
class Foo extends Object {<br />
constructor() {<br />
(() => __async(this, null, function* () {<br />
return yield foo();<br />
}))();<br />
super();<br />
}<br />
}</p>
<p>// New output (with --target=es2016)<br />
class Foo extends Object {<br />
constructor() {<br />
(() => __async(null, null, function* () {<br />
return yield foo();<br />
}))();<br />
super();<br />
}<br />
}<br />
</code></pre></p>
<p>Some background: Arrow functions with the <code>async</code> keyword
are transformed into generator functions for older language targets such
as <code>--target=es2016</code>. Since arrow functions capture
<code>this</code>, the generated code forwards <code>this</code> into
the body of the generator function. However, JavaScript class syntax
forbids using <code>this</code> in a constructor before calling
<code>super()</code>, and this forwarding was problematic since
previously happened even when the function body doesn't use
<code>this</code>. Starting with this release, esbuild will now only
forward <code>this</code> if it's used within the function body.</p>
<p>This fix was contributed by <a
href="https://github.com/magic-akari"><code>@magic-akari</code></a>.</p>
</li>
<li>
<p>Fix memory leak with <code>--watch=true</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4131">#4131</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4132">#4132</a>)</p>
<p>This release fixes a memory leak with esbuild when
<code>--watch=true</code> is used instead of <code>--watch</code>.
Previously using <code>--watch=true</code> caused esbuild to continue to
use more and more memory for every rebuild, but
<code>--watch=true</code> should now behave like <code>--watch</code>
and not leak memory.</p>
<p>This bug happened because esbuild disables the garbage collector when
it's not run as a long-lived process for extra speed, but esbuild's
checks for which arguments cause esbuild to be a long-lived process
weren't updated for the new <code>--watch=true</code> style of boolean
command-line flags. This has been an issue since this boolean flag
syntax was added in version 0.14.24 in 2022. These checks are
unfortunately separate from the regular argument parser because of how
esbuild's internals are organized (the command-line interface is exposed
as a separate <a
href="https://pkg.go.dev/github.com/evanw/esbuild/pkg/cli">Go API</a> so
you can build your own custom esbuild CLI).</p>
<p>This fix was contributed by <a
href="https://github.com/mxschmitt"><code>@mxschmitt</code></a>.</p>
</li>
<li>
<p>More concise output for repeated legal comments (<a
href="https://redirect.github.com/evanw/esbuild/issues/4139">#4139</a>)</p>
<p>Some libraries have many files and also use the same legal comment
text in all files. Previously esbuild would copy each legal comment to
the output file. Starting with this release, legal comments duplicated
across separate files will now be grouped in the output file by unique
comment content.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.25.3</h2>
<ul>
<li>
<p>Fix lowered <code>async</code> arrow functions before
<code>super()</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4141">#4141</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4142">#4142</a>)</p>
<p>This change makes it possible to call an <code>async</code> arrow
function in a constructor before calling <code>super()</code> when
targeting environments without <code>async</code> support, as long as
the function body doesn't reference <code>this</code>. Here's an example
(notice the change from <code>this</code> to <code>null</code>):</p>
<pre lang="js"><code>// Original code
class Foo extends Object {
constructor() {
(async () => await foo())()
super()
}
}
<p>// Old output (with --target=es2016)<br />
class Foo extends Object {<br />
constructor() {<br />
(() => __async(this, null, function* () {<br />
return yield foo();<br />
}))();<br />
super();<br />
}<br />
}</p>
<p>// New output (with --target=es2016)<br />
class Foo extends Object {<br />
constructor() {<br />
(() => __async(null, null, function* () {<br />
return yield foo();<br />
}))();<br />
super();<br />
}<br />
}<br />
</code></pre></p>
<p>Some background: Arrow functions with the <code>async</code> keyword
are transformed into generator functions for older language targets such
as <code>--target=es2016</code>. Since arrow functions capture
<code>this</code>, the generated code forwards <code>this</code> into
the body of the generator function. However, JavaScript class syntax
forbids using <code>this</code> in a constructor before calling
<code>super()</code>, and this forwarding was problematic since
previously happened even when the function body doesn't use
<code>this</code>. Starting with this release, esbuild will now only
forward <code>this</code> if it's used within the function body.</p>
<p>This fix was contributed by <a
href="https://github.com/magic-akari"><code>@magic-akari</code></a>.</p>
</li>
<li>
<p>Fix memory leak with <code>--watch=true</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4131">#4131</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4132">#4132</a>)</p>
<p>This release fixes a memory leak with esbuild when
<code>--watch=true</code> is used instead of <code>--watch</code>.
Previously using <code>--watch=true</code> caused esbuild to continue to
use more and more memory for every rebuild, but
<code>--watch=true</code> should now behave like <code>--watch</code>
and not leak memory.</p>
<p>This bug happened because esbuild disables the garbage collector when
it's not run as a long-lived process for extra speed, but esbuild's
checks for which arguments cause esbuild to be a long-lived process
weren't updated for the new <code>--watch=true</code> style of boolean
command-line flags. This has been an issue since this boolean flag
syntax was added in version 0.14.24 in 2022. These checks are
unfortunately separate from the regular argument parser because of how
esbuild's internals are organized (the command-line interface is exposed
as a separate <a
href="https://pkg.go.dev/github.com/evanw/esbuild/pkg/cli">Go API</a> so
you can build your own custom esbuild CLI).</p>
<p>This fix was contributed by <a
href="https://github.com/mxschmitt"><code>@mxschmitt</code></a>.</p>
</li>
<li>
<p>More concise output for repeated legal comments (<a
href="https://redirect.github.com/evanw/esbuild/issues/4139">#4139</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/677910b073194b64d5ae01aefd7a7465bbf5b27b"><code>677910b</code></a>
publish 0.25.3 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/a41040efdbd6464ee7c3c5590105b4a4ae5a03be"><code>a41040e</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4110">#4110</a>:
support custom non-IP <code>host</code> values</li>
<li><a
href="https://github.com/evanw/esbuild/commit/dfe0e1c632396da248d2d175a24fb0a4fe2c79ef"><code>dfe0e1c</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4114">#4114</a>:
add a limit to css nesting expansion</li>
<li><a
href="https://github.com/evanw/esbuild/commit/a54916b92c128aa0596a65bcbafcde1074acf63d"><code>a54916b</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4139">#4139</a>:
deduplicate repeated legal comments</li>
<li><a
href="https://github.com/evanw/esbuild/commit/dc60e6025da48d13ad2d2cc9e21472738099ce20"><code>dc60e60</code></a>
run <code>make update-compat-table</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/d917038c97b3e859183cfbe426c46928f54e261a"><code>d917038</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4144">#4144</a>:
node path resolution edge case</li>
<li><a
href="https://github.com/evanw/esbuild/commit/7ed168403b7609f1e557feffb3922955c313070a"><code>7ed1684</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4141">#4141</a>:
Avoid redundant <code>this</code> access during async function lowering
(<a
href="https://redirect.github.com/evanw/esbuild/issues/4142">#4142</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/edc3a2343859404d1ec76e9ed05d01f64d677709"><code>edc3a23</code></a>
docs(dev): update alias command for <code>make test-go</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4113">#4113</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/1ee8b6717ecd473b7f0d872a811f38fcd7879d85"><code>1ee8b67</code></a>
workaround <code>process.exit()</code> not exiting in node</li>
<li><a
href="https://github.com/evanw/esbuild/commit/5c56e0737c63e209b6679eb97c940081f4d47772"><code>5c56e07</code></a>
changelog note with credit for the fix</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.25.2...v0.25.3">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This pull request fixes the handling of permissions inputs.
- Updated `getPermissionsFromInputs` in
`lib/get-permissions-from-inputs.js` to use hyphens
(`INPUT_PERMISSION-`) instead of underscores (`INPUT_PERMISSION_`) in
input keys, added a check to skip empty values, and clarified behavior
when no permissions are set.
- Added a `shouldRetry` function to retry requests when server errors
(HTTP status 500 or higher) occur in the `main` function in
`lib/main.js` to prevent unnecessary retries.
- Updated test cases in `tests/main-token-permissions-set.test.js` to
match the new input key format with hyphens.
- Added a default empty string for unset inputs (e.g.,
`INPUT_PERMISSION-ADMINISTRATION`) in `tests/main.js` to simulate the
behavior of the Actions runner.
- Updated snapshots in `tests/snapshots/index.js.md` to reflect the
updated hyphenated input keys in permissions.
---------
Co-authored-by: Gregor Martynus <39992+gr2m@users.noreply.github.com>
This PR switches from evaluating values passed to `skip-token-revoke` as
true if they are truthy in JavaScript, to using `getBooleanInput`. This
change ensures that only proper YAML boolean values are recognized,
preventing unintended evaluations to true.
- The definition of `getBooleanInput` is here: definition of
`core#getBooealnInput` is here:
https://github.com/actions/toolkit/blob/930c89072712a3aac52d74b23338f00bb0cfcb24/packages/core/src/core.ts#L188-L208
The documentation states, `"If truthy, the token will not be revoked
when the current job is complete"`, so this change could be considered a
breaking change. This means that if there are users who rely on `truthy`
and expect values like whitespace or `"false"` to be evaluated as true
(though this is likely rare), it would be a breaking change.
- `Boolean(" ")` and `Boolean("false")` are both evaluated as true.
Alternatively, it can simply be considered a fix. How to handle this is
up to the maintainer.
Resolves https://github.com/actions/create-github-app-token/issues/216
BREAKING CHANGE: Removed deprecated inputs (`app_id`, `private_key`, `skip_token_revoke`) and made `app-id` and `private-key` required in the action configuration.
This pull request updates the release configuration to include
package-lock.json. This should ensure the action version is update in
package-lock.json when the release workflow runs.
- Load `app-permissions` from schema exported by `@octokit/openapi`
- Update documentation in README.md
- Implement the `permissions_*` inputs in the action code
---------
Co-authored-by: Parker Brown <17183625+parkerbxyz@users.noreply.github.com>
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.24.2 to 0.25.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.0</h2>
<p><strong>This release deliberately contains backwards-incompatible
changes.</strong> To avoid automatically picking up releases like this,
you should either be pinning the exact version of <code>esbuild</code>
in your <code>package.json</code> file (recommended) or be using a
version range syntax that only accepts patch upgrades such as
<code>^0.24.0</code> or <code>~0.24.0</code>. See npm's documentation
about <a
href="https://docs.npmjs.com/cli/v6/using-npm/semver/">semver</a> for
more information.</p>
<ul>
<li>
<p>Restrict access to esbuild's development server (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99">GHSA-67mh-4wv8-2f99</a>)</p>
<p>This change addresses esbuild's first security vulnerability report.
Previously esbuild set the <code>Access-Control-Allow-Origin</code>
header to <code>*</code> to allow esbuild's development server to be
flexible in how it's used for development. However, this allows the
websites you visit to make HTTP requests to esbuild's local development
server, which gives read-only access to your source code if the website
were to fetch your source code's specific URL. You can read more
information in <a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99">the
report</a>.</p>
<p>Starting with this release, <a
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">CORS</a>
will now be disabled, and requests will now be denied if the host does
not match the one provided to <code>--serve=</code>. The default host is
<code>0.0.0.0</code>, which refers to all of the IP addresses that
represent the local machine (e.g. both <code>127.0.0.1</code> and
<code>192.168.0.1</code>). If you want to customize anything about
esbuild's development server, you can <a
href="https://esbuild.github.io/api/#serve-proxy">put a proxy in front
of esbuild</a> and modify the incoming and/or outgoing requests.</p>
<p>In addition, the <code>serve()</code> API call has been changed to
return an array of <code>hosts</code> instead of a single
<code>host</code> string. This makes it possible to determine all of the
hosts that esbuild's development server will accept.</p>
<p>Thanks to <a
href="https://github.com/sapphi-red"><code>@sapphi-red</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Delete output files when a build fails in watch mode (<a
href="https://redirect.github.com/evanw/esbuild/issues/3643">#3643</a>)</p>
<p>It has been requested for esbuild to delete files when a build fails
in watch mode. Previously esbuild left the old files in place, which
could cause people to not immediately realize that the most recent build
failed. With this release, esbuild will now delete all output files if a
rebuild fails. Fixing the build error and triggering another rebuild
will restore all output files again.</p>
</li>
<li>
<p>Fix correctness issues with the CSS nesting transform (<a
href="https://redirect.github.com/evanw/esbuild/issues/3620">#3620</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/3877">#3877</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/3933">#3933</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/3997">#3997</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4005">#4005</a>,
<a href="https://redirect.github.com/evanw/esbuild/pull/4037">#4037</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4038">#4038</a>)</p>
<p>This release fixes the following problems:</p>
<ul>
<li>
<p>Naive expansion of CSS nesting can result in an exponential blow-up
of generated CSS if each nesting level has multiple selectors.
Previously esbuild sometimes collapsed individual nesting levels using
<code>:is()</code> to limit expansion. However, this collapsing wasn't
correct in some cases, so it has been removed to fix correctness
issues.</p>
<pre lang="css"><code>/* Original code */
.parent {
> .a,
> .b1 > .b2 {
color: red;
}
}
<p>/* Old output (with --supported:nesting=false) */<br />
.parent > :is(.a, .b1 > .b2) {<br />
color: red;<br />
}</p>
<p>/* New output (with --supported:nesting=false) */<br />
.parent > .a,<br />
.parent > .b1 > .b2 {<br />
color: red;<br />
}<br />
</code></pre></p>
<p>Thanks to <a
href="https://github.com/tim-we"><code>@tim-we</code></a> for working
on a fix.</p>
</li>
<li>
<p>The <code>&</code> CSS nesting selector can be repeated multiple
times to increase CSS specificity. Previously esbuild ignored this
possibility and incorrectly considered <code>&&</code> to have
the same specificity as <code>&</code>. With this release, this
should now work correctly:</p>
<pre lang="css"><code>/* Original code (color should be red) */
</code></pre>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog: 2024</h1>
<p>This changelog documents all esbuild versions published in the year
2024 (versions 0.19.12 through 0.24.2).</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/e9174d671b1882758cd32ac5e146200f5bee3e45"><code>e9174d6</code></a>
publish 0.25.0 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/c27dbebb9e7a55dd9a084dd151dddd840787490e"><code>c27dbeb</code></a>
fix <code>hosts</code> in <code>plugin-tests.js</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/6794f602a453cf0255bcae245871de120a89a559"><code>6794f60</code></a>
fix <code>hosts</code> in <code>node-unref-tests.js</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/de85afd65edec9ebc44a11e245fd9e9a2e99760d"><code>de85afd</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/evanw/esbuild/commit/da1de1bf77a65f06654b49878d9ec4747ddaa21f"><code>da1de1b</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4065">#4065</a>:
bitwise operators can return bigints</li>
<li><a
href="https://github.com/evanw/esbuild/commit/f4e9d19fb20095a98bf40634f0380f6a16be91e7"><code>f4e9d19</code></a>
switch case liveness: <code>default</code> is always last</li>
<li><a
href="https://github.com/evanw/esbuild/commit/7aa47c3e778ea04849f97f18dd9959df88fa0886"><code>7aa47c3</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4028">#4028</a>:
minify live/dead <code>switch</code> cases better</li>
<li><a
href="https://github.com/evanw/esbuild/commit/22ecd306190b8971ec4474b5485266c20350e266"><code>22ecd30</code></a>
minify: more constant folding for strict equality</li>
<li><a
href="https://github.com/evanw/esbuild/commit/4cdf03c03697128044fa8fb76e5c478e9765b353"><code>4cdf03c</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4053">#4053</a>:
reordering of <code>.tsx</code> in <code>node_modules</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/dc719775b7140120916bd9e6777ca1cb8a1cdc0e"><code>dc71977</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3692">#3692</a>:
<code>0</code> now picks a random ephemeral port</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.24.2...v0.25.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/actions/create-github-app-token/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the development-dependencies group with 2 updates:
[esbuild](https://github.com/evanw/esbuild) and
[yaml](https://github.com/eemeli/yaml).
Updates `esbuild` from 0.24.0 to 0.24.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.2</h2>
<ul>
<li>
<p>Fix regression with <code>--define</code> and
<code>import.meta</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4010">#4010</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4012">#4012</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4013">#4013</a>)</p>
<p>The previous change in version 0.24.1 to use a more expression-like
parser for <code>define</code> values to allow quoted property names
introduced a regression that removed the ability to use
<code>--define:import.meta=...</code>. Even though <code>import</code>
is normally a keyword that can't be used as an identifier, ES modules
special-case the <code>import.meta</code> expression to behave like an
identifier anyway. This change fixes the regression.</p>
<p>This fix was contributed by <a
href="https://github.com/sapphi-red"><code>@sapphi-red</code></a>.</p>
</li>
</ul>
<h2>v0.24.1</h2>
<ul>
<li>
<p>Allow <code>es2024</code> as a target in <code>tsconfig.json</code>
(<a
href="https://redirect.github.com/evanw/esbuild/issues/4004">#4004</a>)</p>
<p>TypeScript recently <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/#support-for---target-es2024-and---lib-es2024">added
<code>es2024</code></a> as a compilation target, so esbuild now supports
this in the <code>target</code> field of <code>tsconfig.json</code>
files, such as in the following configuration file:</p>
<pre lang="json"><code>{
"compilerOptions": {
"target": "ES2024"
}
}
</code></pre>
<p>As a reminder, the only thing that esbuild uses this field for is
determining whether or not to use legacy TypeScript behavior for class
fields. You can read more in <a
href="https://esbuild.github.io/content-types/#tsconfig-json">the
documentation</a>.</p>
<p>This fix was contributed by <a
href="https://github.com/billyjanitsch"><code>@billyjanitsch</code></a>.</p>
</li>
<li>
<p>Allow automatic semicolon insertion after
<code>get</code>/<code>set</code></p>
<p>This change fixes a grammar bug in the parser that incorrectly
treated the following code as a syntax error:</p>
<pre lang="ts"><code>class Foo {
get
*x() {}
set
*y() {}
}
</code></pre>
<p>The above code will be considered valid starting with this release.
This change to esbuild follows a <a
href="https://redirect.github.com/microsoft/TypeScript/pull/60225">similar
change to TypeScript</a> which will allow this syntax starting with
TypeScript 5.7.</p>
</li>
<li>
<p>Allow quoted property names in <code>--define</code> and
<code>--pure</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4008">#4008</a>)</p>
<p>The <code>define</code> and <code>pure</code> API options now accept
identifier expressions containing quoted property names. Previously all
identifiers in the identifier expression had to be bare identifiers.
This change now makes <code>--define</code> and <code>--pure</code>
consistent with <code>--global-name</code>, which already supported
quoted property names. For example, the following is now possible:</p>
<pre lang="js"><code>// The following code now transforms to
"return true;\n"
console.log(esbuild.transformSync(
`return process.env['SOME-TEST-VAR']`,
{ define: { 'process.env["SOME-TEST-VAR"]': 'true' } },
))
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.24.2</h2>
<ul>
<li>
<p>Fix regression with <code>--define</code> and
<code>import.meta</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4010">#4010</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4012">#4012</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4013">#4013</a>)</p>
<p>The previous change in version 0.24.1 to use a more expression-like
parser for <code>define</code> values to allow quoted property names
introduced a regression that removed the ability to use
<code>--define:import.meta=...</code>. Even though <code>import</code>
is normally a keyword that can't be used as an identifier, ES modules
special-case the <code>import.meta</code> expression to behave like an
identifier anyway. This change fixes the regression.</p>
<p>This fix was contributed by <a
href="https://github.com/sapphi-red"><code>@sapphi-red</code></a>.</p>
</li>
</ul>
<h2>0.24.1</h2>
<ul>
<li>
<p>Allow <code>es2024</code> as a target in <code>tsconfig.json</code>
(<a
href="https://redirect.github.com/evanw/esbuild/issues/4004">#4004</a>)</p>
<p>TypeScript recently <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/#support-for---target-es2024-and---lib-es2024">added
<code>es2024</code></a> as a compilation target, so esbuild now supports
this in the <code>target</code> field of <code>tsconfig.json</code>
files, such as in the following configuration file:</p>
<pre lang="json"><code>{
"compilerOptions": {
"target": "ES2024"
}
}
</code></pre>
<p>As a reminder, the only thing that esbuild uses this field for is
determining whether or not to use legacy TypeScript behavior for class
fields. You can read more in <a
href="https://esbuild.github.io/content-types/#tsconfig-json">the
documentation</a>.</p>
<p>This fix was contributed by <a
href="https://github.com/billyjanitsch"><code>@billyjanitsch</code></a>.</p>
</li>
<li>
<p>Allow automatic semicolon insertion after
<code>get</code>/<code>set</code></p>
<p>This change fixes a grammar bug in the parser that incorrectly
treated the following code as a syntax error:</p>
<pre lang="ts"><code>class Foo {
get
*x() {}
set
*y() {}
}
</code></pre>
<p>The above code will be considered valid starting with this release.
This change to esbuild follows a <a
href="https://redirect.github.com/microsoft/TypeScript/pull/60225">similar
change to TypeScript</a> which will allow this syntax starting with
TypeScript 5.7.</p>
</li>
<li>
<p>Allow quoted property names in <code>--define</code> and
<code>--pure</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4008">#4008</a>)</p>
<p>The <code>define</code> and <code>pure</code> API options now accept
identifier expressions containing quoted property names. Previously all
identifiers in the identifier expression had to be bare identifiers.
This change now makes <code>--define</code> and <code>--pure</code>
consistent with <code>--global-name</code>, which already supported
quoted property names. For example, the following is now possible:</p>
<pre lang="js"><code>// The following code now transforms to
"return true;\n"
console.log(esbuild.transformSync(
`return process.env['SOME-TEST-VAR']`,
{ define: { 'process.env["SOME-TEST-VAR"]': 'true' } },
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/745abd9f0c06f73ca40fbe198546a9bc36c23b81"><code>745abd9</code></a>
publish 0.24.2 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/79fd0b0ccc911a8e1571b83f25deec1b18d0ed10"><code>79fd0b0</code></a>
skip nulls in source map finalization (<a
href="https://redirect.github.com/evanw/esbuild/issues/4011">#4011</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/4b9322f723ce72b4d5fee6dc48d2a5e2c2e2d3bb"><code>4b9322f</code></a>
source map: avoid null entry for 0-length parts</li>
<li><a
href="https://github.com/evanw/esbuild/commit/199a0d38e4e4191e970f2a0a25e50e5c7ae36464"><code>199a0d3</code></a>
close <a
href="https://redirect.github.com/evanw/esbuild/issues/4013">#4013</a>:
credit to <a
href="https://github.com/sapphi-red"><code>@sapphi-red</code></a> for
the fix</li>
<li><a
href="https://github.com/evanw/esbuild/commit/947f99fb085024ff711055d776b3982a75383d51"><code>947f99f</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4010">#4010</a>,
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4012">#4012</a>:
<code>import.meta</code> regression</li>
<li><a
href="https://github.com/evanw/esbuild/commit/de9598f42dc3ffc395e3fd3672a4804f6b4e5c09"><code>de9598f</code></a>
publish 0.24.1 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/15d56ca7d2196839c1d13a15fc214d6e81169e30"><code>15d56ca</code></a>
emit null source mappings for empty chunk content</li>
<li><a
href="https://github.com/evanw/esbuild/commit/8d98f6f6e663f7ecc9f0496edbd8bb8314b0333a"><code>8d98f6f</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3985">#3985</a>:
<code>entryPoint</code> metadata for <code>copy</code> loader</li>
<li><a
href="https://github.com/evanw/esbuild/commit/0db1b828bf69fa353f17e65837f2114d94b9e2c3"><code>0db1b82</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3998">#3998</a>:
avoid <code>outbase</code> in identifier names</li>
<li><a
href="https://github.com/evanw/esbuild/commit/723647263fcd0e4095e25a569e1d0a38f382768a"><code>7236472</code></a>
close <a
href="https://redirect.github.com/evanw/esbuild/issues/3974">#3974</a>:
add support for netbsd on arm64</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.24.0...v0.24.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `yaml` from 2.6.1 to 2.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eemeli/yaml/releases">yaml's
releases</a>.</em></p>
<blockquote>
<h2>v2.7.0</h2>
<p>The library is now available on JSR as <a
href="https://jsr.io/@eemeli/yaml"><code>@eemeli/yaml</code></a> and on
deno.land/x as <a href="https://deno.land/x/yaml">yaml</a>. In addition
to Node.js and browsers, it should work in Deno, Bun, and Cloudflare
Workers.</p>
<ul>
<li>Use .ts extension in all relative imports (<a
href="https://redirect.github.com/eemeli/yaml/issues/591">#591</a>)</li>
<li>Ignore newline after block seq indicator as space before value (<a
href="https://redirect.github.com/eemeli/yaml/issues/590">#590</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eemeli/yaml/commit/8f512b526a52e245e770be257235f7d37059ca39"><code>8f512b5</code></a>
2.7.0</li>
<li><a
href="https://github.com/eemeli/yaml/commit/8a7569afff1a7add4560ed2e125eebab1f9683f1"><code>8a7569a</code></a>
ci: Add jsr.jsonc & jsr-publish workflow</li>
<li><a
href="https://github.com/eemeli/yaml/commit/8ef085fa870f2b749e67ce52bb642afb796b7150"><code>8ef085f</code></a>
docs: Fix API docs links</li>
<li><a
href="https://github.com/eemeli/yaml/commit/374c19cfdc051ca81c5a1ce12ca733c2e2a9ec93"><code>374c19c</code></a>
style: Really use explicit imports for process.env and Buffer</li>
<li><a
href="https://github.com/eemeli/yaml/commit/1ab037d64674baf0265dfe6a57c5b3c8c2d5120a"><code>1ab037d</code></a>
style: Include explicit type declarations on all public APIs</li>
<li><a
href="https://github.com/eemeli/yaml/commit/4354c4233d7f75aed47a6d0ab74ab54867892b61"><code>4354c42</code></a>
style: Use explicit imports for process.env and Buffer</li>
<li><a
href="https://github.com/eemeli/yaml/commit/2c55723ab9f1d654d27deb2ed666d1c414a69013"><code>2c55723</code></a>
Merge pull request <a
href="https://redirect.github.com/eemeli/yaml/issues/591">#591</a> from
eemeli/import-ts</li>
<li><a
href="https://github.com/eemeli/yaml/commit/ab240c17d35bb808a6df8e3039b9ddd6a2de7ac4"><code>ab240c1</code></a>
fix: Drop .ts extension from import & export paths in .d.ts
files</li>
<li><a
href="https://github.com/eemeli/yaml/commit/c4c49f9e95db811a6fe7fd529647cb2659f150d0"><code>c4c49f9</code></a>
fix: Use separate rather than inline type keyword for TS
compatibility</li>
<li><a
href="https://github.com/eemeli/yaml/commit/3bec004db4206ebb0d4551f981a7f9961077470b"><code>3bec004</code></a>
ci: Add deno smoke test</li>
<li>Additional commits viewable in <a
href="https://github.com/eemeli/yaml/compare/v2.6.1...v2.7.0">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gregor Martynus <39992+gr2m@users.noreply.github.com>
### Fix syntax error in GitHub Actions example in README
This PR fixes a syntax error in the "Create a git committer string for
an app installation" example in the README file.
#### What was wrong?
The example contained an incorrect space in the variable syntax:
```yaml
${ {steps.committer.outputs.string }}
```
This caused the example to fail, as GitHub Actions does not allow spaces
in variable interpolation.
#### What was fixed?
The syntax was corrected to:
```yaml
${{ steps.committer.outputs.string }}
```
This fix ensures that users can copy and use the example without
encountering any errors.
Combines the two installation requests (org and user) into one because
`/org/{org}` can also be accessed at `/users/{org}`.
---------
Co-authored-by: Gregor Martynus <39992+gr2m@users.noreply.github.com>
Bumps the development-dependencies group with 3 updates:
[@sinonjs/fake-timers](https://github.com/sinonjs/fake-timers),
[esbuild](https://github.com/evanw/esbuild) and
[execa](https://github.com/sindresorhus/execa).
Updates `@sinonjs/fake-timers` from 13.0.1 to 13.0.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sinonjs/fake-timers/blob/main/CHANGELOG.md"><code>@sinonjs/fake-timers</code>'s
changelog</a>.</em></p>
<blockquote>
<h1>13.0.2 / 2024-09-13</h1>
<ul>
<li>fix <a
href="https://redirect.github.com/sinonjs/fake-timers/issues/504">#504</a>:
make instances of original Date pass as instances of the fake Date (<a
href="https://redirect.github.com/sinonjs/fake-timers/issues/505">#505</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sinonjs/fake-timers/commit/78024200ae5eb0398310b133cfcc106b0250ecad"><code>7802420</code></a>
13.0.2</li>
<li><a
href="https://github.com/sinonjs/fake-timers/commit/b98dc757d9c2f86a4054b0f9d3c0b686e35424ff"><code>b98dc75</code></a>
Updated release files for 13.0.2</li>
<li><a
href="https://github.com/sinonjs/fake-timers/commit/ae0a2665c68576387452dda1abae7425c1779416"><code>ae0a266</code></a>
fix <a
href="https://redirect.github.com/sinonjs/fake-timers/issues/504">#504</a>:
make instances of original Date pass as instances of the fake Date
...</li>
<li>See full diff in <a
href="https://github.com/sinonjs/fake-timers/compare/v13.0.1...v13.0.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `esbuild` from 0.23.1 to 0.24.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.0</h2>
<p><strong><em>This release deliberately contains backwards-incompatible
changes.</em></strong> To avoid automatically picking up releases like
this, you should either be pinning the exact version of
<code>esbuild</code> in your <code>package.json</code> file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as <code>^0.23.0</code> or <code>~0.23.0</code>. See npm's
documentation about <a
href="https://docs.npmjs.com/cli/v6/using-npm/semver/">semver</a> for
more information.</p>
<ul>
<li>
<p>Drop support for older platforms (<a
href="https://redirect.github.com/evanw/esbuild/pull/3902">#3902</a>)</p>
<p>This release drops support for the following operating system:</p>
<ul>
<li>macOS 10.15 Catalina</li>
</ul>
<p>This is because the Go programming language dropped support for this
operating system version in Go 1.23, and this release updates esbuild
from Go 1.22 to Go 1.23. Go 1.23 now requires macOS 11 Big Sur or
later.</p>
<p>Note that this only affects the binary esbuild executables that are
published to the esbuild npm package. It's still possible to compile
esbuild's source code for these older operating systems. If you need to,
you can compile esbuild for yourself using an older version of the Go
compiler (before Go version 1.23). That might look something like
this:</p>
<pre><code>git clone https://github.com/evanw/esbuild.git
cd esbuild
go build ./cmd/esbuild
./esbuild --version
</code></pre>
</li>
<li>
<p>Fix class field decorators in TypeScript if
<code>useDefineForClassFields</code> is <code>false</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/3913">#3913</a>)</p>
<p>Setting the <code>useDefineForClassFields</code> flag to
<code>false</code> in <code>tsconfig.json</code> means class fields use
the legacy TypeScript behavior instead of the standard JavaScript
behavior. Specifically they use assign semantics instead of define
semantics (e.g. setters are triggered) and fields without an initializer
are not initialized at all. However, when this legacy behavior is
combined with standard JavaScript decorators, TypeScript switches to
always initializing all fields, even those without initializers.
Previously esbuild incorrectly continued to omit field initializers for
this edge case. These field initializers in this case should now be
emitted starting with this release.</p>
</li>
<li>
<p>Avoid incorrect cycle warning with <code>tsconfig.json</code>
multiple inheritance (<a
href="https://redirect.github.com/evanw/esbuild/issues/3898">#3898</a>)</p>
<p>TypeScript 5.0 introduced multiple inheritance for
<code>tsconfig.json</code> files where <code>extends</code> can be an
array of file paths. Previously esbuild would incorrectly treat files
encountered more than once when processing separate subtrees of the
multiple inheritance hierarchy as an inheritance cycle. With this
release, <code>tsconfig.json</code> files containing this edge case
should work correctly without generating a warning.</p>
</li>
<li>
<p>Handle Yarn Plug'n'Play stack overflow with
<code>tsconfig.json</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/3915">#3915</a>)</p>
<p>Previously a <code>tsconfig.json</code> file that
<code>extends</code> another file in a package with an
<code>exports</code> map could cause a stack overflow when Yarn's
Plug'n'Play resolution was active. This edge case should work now
starting with this release.</p>
</li>
<li>
<p>Work around more issues with Deno 1.31+ (<a
href="https://redirect.github.com/evanw/esbuild/pull/3917">#3917</a>)</p>
<p>This version of Deno broke the <code>stdin</code> and
<code>stdout</code> properties on command objects for inherited streams,
which matters when you run esbuild's Deno module as the entry point
(i.e. when <code>import.meta.main</code> is <code>true</code>).
Previously esbuild would crash in Deno 1.31+ if you ran esbuild like
that. This should be fixed starting with this release.</p>
<p>This fix was contributed by <a
href="https://github.com/Joshix-1"><code>@Joshix-1</code></a>.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.24.0</h2>
<p><strong><em>This release deliberately contains backwards-incompatible
changes.</em></strong> To avoid automatically picking up releases like
this, you should either be pinning the exact version of
<code>esbuild</code> in your <code>package.json</code> file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as <code>^0.23.0</code> or <code>~0.23.0</code>. See npm's
documentation about <a
href="https://docs.npmjs.com/cli/v6/using-npm/semver/">semver</a> for
more information.</p>
<ul>
<li>
<p>Drop support for older platforms (<a
href="https://redirect.github.com/evanw/esbuild/pull/3902">#3902</a>)</p>
<p>This release drops support for the following operating system:</p>
<ul>
<li>macOS 10.15 Catalina</li>
</ul>
<p>This is because the Go programming language dropped support for this
operating system version in Go 1.23, and this release updates esbuild
from Go 1.22 to Go 1.23. Go 1.23 now requires macOS 11 Big Sur or
later.</p>
<p>Note that this only affects the binary esbuild executables that are
published to the esbuild npm package. It's still possible to compile
esbuild's source code for these older operating systems. If you need to,
you can compile esbuild for yourself using an older version of the Go
compiler (before Go version 1.23). That might look something like
this:</p>
<pre><code>git clone https://github.com/evanw/esbuild.git
cd esbuild
go build ./cmd/esbuild
./esbuild --version
</code></pre>
</li>
<li>
<p>Fix class field decorators in TypeScript if
<code>useDefineForClassFields</code> is <code>false</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/3913">#3913</a>)</p>
<p>Setting the <code>useDefineForClassFields</code> flag to
<code>false</code> in <code>tsconfig.json</code> means class fields use
the legacy TypeScript behavior instead of the standard JavaScript
behavior. Specifically they use assign semantics instead of define
semantics (e.g. setters are triggered) and fields without an initializer
are not initialized at all. However, when this legacy behavior is
combined with standard JavaScript decorators, TypeScript switches to
always initializing all fields, even those without initializers.
Previously esbuild incorrectly continued to omit field initializers for
this edge case. These field initializers in this case should now be
emitted starting with this release.</p>
</li>
<li>
<p>Avoid incorrect cycle warning with <code>tsconfig.json</code>
multiple inheritance (<a
href="https://redirect.github.com/evanw/esbuild/issues/3898">#3898</a>)</p>
<p>TypeScript 5.0 introduced multiple inheritance for
<code>tsconfig.json</code> files where <code>extends</code> can be an
array of file paths. Previously esbuild would incorrectly treat files
encountered more than once when processing separate subtrees of the
multiple inheritance hierarchy as an inheritance cycle. With this
release, <code>tsconfig.json</code> files containing this edge case
should work correctly without generating a warning.</p>
</li>
<li>
<p>Handle Yarn Plug'n'Play stack overflow with
<code>tsconfig.json</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/3915">#3915</a>)</p>
<p>Previously a <code>tsconfig.json</code> file that
<code>extends</code> another file in a package with an
<code>exports</code> map could cause a stack overflow when Yarn's
Plug'n'Play resolution was active. This edge case should work now
starting with this release.</p>
</li>
<li>
<p>Work around more issues with Deno 1.31+ (<a
href="https://redirect.github.com/evanw/esbuild/pull/3917">#3917</a>)</p>
<p>This version of Deno broke the <code>stdin</code> and
<code>stdout</code> properties on command objects for inherited streams,
which matters when you run esbuild's Deno module as the entry point
(i.e. when <code>import.meta.main</code> is <code>true</code>).
Previously esbuild would crash in Deno 1.31+ if you ran esbuild like
that. This should be fixed starting with this release.</p>
<p>This fix was contributed by <a
href="https://github.com/Joshix-1"><code>@Joshix-1</code></a>.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/d34e79e2a998c21bb71d57b92b0017ca11756912"><code>d34e79e</code></a>
publish 0.24.0 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/045a87f164b31838aad7e2bcba112cf7717898d0"><code>045a87f</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3887">#3887</a>:
omit dead export warning for <code>default</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/6e049b81d2e080ccdf24db84a71934ea736879ce"><code>6e049b8</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3913">#3913</a>:
useDefineForClassFields and decorators</li>
<li><a
href="https://github.com/evanw/esbuild/commit/9c26f987dd9bbd33861a86b2a9d0b347f9ec297e"><code>9c26f98</code></a>
lower decorators for useDefineForClassFields <a
href="https://redirect.github.com/evanw/esbuild/issues/3913">#3913</a></li>
<li><a
href="https://github.com/evanw/esbuild/commit/46fdb686e2880f5b8447f998dedfc730e66ae32a"><code>46fdb68</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3898">#3898</a>:
incorrect cyclic tsconfig.json warning</li>
<li><a
href="https://github.com/evanw/esbuild/commit/b50044303b3430ce007ac0fe4baf21160093794e"><code>b500443</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3917">#3917</a>:
running esbuild cli with deno</li>
<li><a
href="https://github.com/evanw/esbuild/commit/b125e62c7033e3ace20df9ec05c846d222f61ce5"><code>b125e62</code></a>
run <code>make update-compat-table</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/112b9aa32ea80eeef01cb91a8b415cfff08ef850"><code>112b9aa</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3915">#3915</a>:
stack overflow with yarn + tsconfig</li>
<li><a
href="https://github.com/evanw/esbuild/commit/ed5a555488a18e3b48954506e98d1f6a51f53368"><code>ed5a555</code></a>
wasm: catch and rethrow stack overflows (<a
href="https://redirect.github.com/evanw/esbuild/issues/3915">#3915</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/11d3196156b12b11a3dc68f9d00a4a9982b907c0"><code>11d3196</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3902">#3902</a>:
update go 1.22.5 => 1.23.1</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.23.1...v0.24.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `execa` from 9.3.1 to 9.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/execa/releases">execa's
releases</a>.</em></p>
<blockquote>
<h2>v9.4.0</h2>
<h2>Features</h2>
<ul>
<li>We've created a separate package called <a
href="https://github.com/sindresorhus/nano-spawn">nano-spawn</a>. It is
similar to Execa but with fewer features, for a much smaller package
size. <a
href="https://github.com/sindresorhus/execa/blob/main/docs/small.md">More
info.</a></li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>Both <a
href="https://github.com/sindresorhus/execa/blob/main/docs/node.md"><code>execaNode()</code></a>
and the <a
href="https://github.com/sindresorhus/execa/blob/main/docs/environment.md#local-binaries"><code>preferLocal</code></a>
option modify the <code>PATH</code> environment variable. This release
includes some minor improvements to ensure that environment variable
remains small (<a
href="https://redirect.github.com/sindresorhus/npm-run-path/pull/20">sindresorhus/npm-run-path#20</a>).
It also handles a few related edge cases better (<a
href="https://redirect.github.com/sindresorhus/npm-run-path/pull/21">sindresorhus/npm-run-path#21</a>).</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>Small documentation typo fix, thanks <a
href="https://github.com/rrthomas"><code>@rrthomas</code></a>! (<a
href="https://redirect.github.com/sindresorhus/execa/issues/1153">#1153</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/execa/commit/1b9b9bbf17705c28019f770cecd9920db206f824"><code>1b9b9bb</code></a>
9.4.0</li>
<li><a
href="https://github.com/sindresorhus/execa/commit/ba483e74adcdd1cb0deafaed7f834f9c2340a326"><code>ba483e7</code></a>
Upgrade <code>npm-run-path</code> (<a
href="https://redirect.github.com/sindresorhus/execa/issues/1156">#1156</a>)</li>
<li><a
href="https://github.com/sindresorhus/execa/commit/eb3cfbac903b47607c58407d41078c59cb50dbe8"><code>eb3cfba</code></a>
Add documentation about nano-spawn (<a
href="https://redirect.github.com/sindresorhus/execa/issues/1157">#1157</a>)</li>
<li><a
href="https://github.com/sindresorhus/execa/commit/3fc804916d60b0b2e774a3642bd9815388caf7af"><code>3fc8049</code></a>
Fix a typo (<a
href="https://redirect.github.com/sindresorhus/execa/issues/1153">#1153</a>)</li>
<li><a
href="https://github.com/sindresorhus/execa/commit/c4cb62a463625d21eba1df8332ecd613455600cd"><code>c4cb62a</code></a>
Improve documentation for <code>windowsVerbatimArguments</code> (<a
href="https://redirect.github.com/sindresorhus/execa/issues/1149">#1149</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/execa/compare/v9.3.1...v9.4.0">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This workflow file publishes new action releases to the immutable action package of the same name as this repo.
---------
Co-authored-by: Parker Brown <17183625+parkerbxyz@users.noreply.github.com>
Resolves https://github.com/actions/create-github-app-token/issues/106
- Fixes the parsing to cope with whitespace in the input string.
- Allows the input to be comma or newline-separated. (I've done this for
all array-type inputs in my own actions, but I'm happy to remove this if
you only want to support comma-separated.)
- Added tests for parsing comma and newline-separated inputs.
This pull request fixes the file extension for two test files that were
incorrectly named. This caused them not to be tested. A new test has
been added to ensure all test files have the correct extension.
This also fixes a bug in some tests where `repositories` inputs included
the repository owner. The owner has been removed from these inputs and
the snapshots have been updated.
Closes#140
The pull request at #95 introduced changes to avoid revoking expired
tokens by saving the `expiresAt` value in the state. The change,
however, used `core.setOutput` instead of `core.setState` meaning the
value is not saved in the state but rather available in the output.
```javascript
if (!skipTokenRevoke) {
core.saveState("token", authentication.token);
core.setOutput("expiresAt", authentication.expiresAt);
}
```
This means that when we use the value downstream, it evaluates to an
empty string and the following code block is never run:
```javascript
const expiresAt = core.getState("expiresAt");
if (expiresAt && tokenExpiresIn(expiresAt) < 0) {
core.info("Token expired, skipping token revocation");
return;
}
```
This is a tiny PR to correct that typo.
Bumps the development-dependencies group with 1 update:
[yaml](https://github.com/eemeli/yaml).
Updates `yaml` from 2.4.1 to 2.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eemeli/yaml/releases">yaml's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.2</h2>
<ul>
<li>Restrict YAML 1.1 boolean strings to their explicit capitalization
(<a
href="https://redirect.github.com/eemeli/yaml/issues/530">#530</a>)</li>
<li>Add sponsorship by <a href="https://www.scipress.io/">Scipress</a>
(<a
href="https://redirect.github.com/eemeli/yaml/issues/536">#536</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eemeli/yaml/commit/f792d1b72fb98792a66ca2dcf5b606448e762b16"><code>f792d1b</code></a>
2.4.2</li>
<li><a
href="https://github.com/eemeli/yaml/commit/de120d69ab908946843749ebb0cecb0522a0b671"><code>de120d6</code></a>
docs: Move sponsor section up</li>
<li><a
href="https://github.com/eemeli/yaml/commit/5410c25083f4105d9911aa77449c7aa41e4a7fec"><code>5410c25</code></a>
ci: Drop tests in EOL Node.js versions</li>
<li><a
href="https://github.com/eemeli/yaml/commit/30868a8135175aef7e18880fc8fde077af947344"><code>30868a8</code></a>
chore: Add sponsorship by Scipress (<a
href="https://redirect.github.com/eemeli/yaml/issues/536">#536</a>)</li>
<li><a
href="https://github.com/eemeli/yaml/commit/1c6fd6a76a92ce8dda28a66b2af6f3e6a3182958"><code>1c6fd6a</code></a>
fix: Restrict YAML 1.1 boolean strings to their explicit capitalization
(<a
href="https://redirect.github.com/eemeli/yaml/issues/530">#530</a>)</li>
<li>See full diff in <a
href="https://github.com/eemeli/yaml/compare/v2.4.1...v2.4.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the development-dependencies group with 2 updates:
[esbuild](https://github.com/evanw/esbuild) and
[yaml](https://github.com/eemeli/yaml).
Updates `esbuild` from 0.20.1 to 0.20.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.20.2</h2>
<ul>
<li>
<p>Support TypeScript experimental decorators on <code>abstract</code>
class fields (<a
href="https://redirect.github.com/evanw/esbuild/issues/3684">#3684</a>)</p>
<p>With this release, you can now use TypeScript experimental decorators
on <code>abstract</code> class fields. This was silently compiled
incorrectly in esbuild 0.19.7 and below, and was an error from esbuild
0.19.8 to esbuild 0.20.1. Code such as the following should now work
correctly:</p>
<pre lang="ts"><code>// Original code
const log = (x: any, y: string) => console.log(y)
abstract class Foo { @log abstract foo: string }
new class extends Foo { foo = '' }
<p>// Old output (with --loader=ts
--tsconfig-raw={&quot;compilerOptions&quot;:{&quot;experimentalDecorators&quot;:true}})
const log = (x, y) => console.log(y);
class Foo {
}
new class extends Foo {
foo = "";
}();</p>
<p>// New output (with --loader=ts
--tsconfig-raw={&quot;compilerOptions&quot;:{&quot;experimentalDecorators&quot;:true}})
const log = (x, y) => console.log(y);
class Foo {
}
__decorateClass([
log
], Foo.prototype, "foo", 2);
new class extends Foo {
foo = "";
}();
</code></pre></p>
</li>
<li>
<p>JSON loader now preserves <code>__proto__</code> properties (<a
href="https://redirect.github.com/evanw/esbuild/issues/3700">#3700</a>)</p>
<p>Copying JSON source code into a JavaScript file will change its
meaning if a JSON object contains the <code>__proto__</code> key. A
literal <code>__proto__</code> property in a JavaScript object literal
sets the prototype of the object instead of adding a property named
<code>__proto__</code>, while a literal <code>__proto__</code> property
in a JSON object literal just adds a property named
<code>__proto__</code>. With this release, esbuild will now work around
this problem by converting JSON to JavaScript with a computed property
key in this case:</p>
<pre lang="js"><code>// Original code
import data from
'data:application/json,{"__proto__":{"fail":true}}'
if (Object.getPrototypeOf(data)?.fail) throw 'fail'
<p>// Old output (with --bundle)
(() => {
//
<data:application/json,{"<strong>proto</strong>":{"fail":true}}>
var json_proto_fail_true_default = { <strong>proto</strong>: { fail:
true } };</p>
<p>// entry.js
if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
throw "fail";
})();</p>
<p></code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.20.2</h2>
<ul>
<li>
<p>Support TypeScript experimental decorators on <code>abstract</code>
class fields (<a
href="https://redirect.github.com/evanw/esbuild/issues/3684">#3684</a>)</p>
<p>With this release, you can now use TypeScript experimental decorators
on <code>abstract</code> class fields. This was silently compiled
incorrectly in esbuild 0.19.7 and below, and was an error from esbuild
0.19.8 to esbuild 0.20.1. Code such as the following should now work
correctly:</p>
<pre lang="ts"><code>// Original code
const log = (x: any, y: string) => console.log(y)
abstract class Foo { @log abstract foo: string }
new class extends Foo { foo = '' }
<p>// Old output (with --loader=ts
--tsconfig-raw={&quot;compilerOptions&quot;:{&quot;experimentalDecorators&quot;:true}})
const log = (x, y) => console.log(y);
class Foo {
}
new class extends Foo {
foo = "";
}();</p>
<p>// New output (with --loader=ts
--tsconfig-raw={&quot;compilerOptions&quot;:{&quot;experimentalDecorators&quot;:true}})
const log = (x, y) => console.log(y);
class Foo {
}
__decorateClass([
log
], Foo.prototype, "foo", 2);
new class extends Foo {
foo = "";
}();
</code></pre></p>
</li>
<li>
<p>JSON loader now preserves <code>__proto__</code> properties (<a
href="https://redirect.github.com/evanw/esbuild/issues/3700">#3700</a>)</p>
<p>Copying JSON source code into a JavaScript file will change its
meaning if a JSON object contains the <code>__proto__</code> key. A
literal <code>__proto__</code> property in a JavaScript object literal
sets the prototype of the object instead of adding a property named
<code>__proto__</code>, while a literal <code>__proto__</code> property
in a JSON object literal just adds a property named
<code>__proto__</code>. With this release, esbuild will now work around
this problem by converting JSON to JavaScript with a computed property
key in this case:</p>
<pre lang="js"><code>// Original code
import data from
'data:application/json,{"__proto__":{"fail":true}}'
if (Object.getPrototypeOf(data)?.fail) throw 'fail'
<p>// Old output (with --bundle)
(() => {
//
<data:application/json,{"<strong>proto</strong>":{"fail":true}}>
var json_proto_fail_true_default = { <strong>proto</strong>: { fail:
true } };</p>
<p>// entry.js
if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
throw "fail";
})();
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/617eddaa32b7649ad23ddd15257816df3f0f544c"><code>617edda</code></a>
publish 0.20.2 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/4780075ace9f5f59b61018326ec57da624a7d7a2"><code>4780075</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3700">#3700</a>:
json loader preserves <code>__proto__</code> keys</li>
<li><a
href="https://github.com/evanw/esbuild/commit/30bed2d2d7572b58399a6c07643878f3377800fe"><code>30bed2d</code></a>
better errors for invalid js decorator syntax</li>
<li><a
href="https://github.com/evanw/esbuild/commit/300eeb711261144a70ab33221fe6a1313b309348"><code>300eeb7</code></a>
ts: allow non-null assertions in js decorators</li>
<li><a
href="https://github.com/evanw/esbuild/commit/4d997d948579b2e4e9bd3bf820a0108b58b3732b"><code>4d997d9</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3698">#3698</a>:
yarn pnp edge case with <code>tsconfig.json</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/cf42954760e666c048a866589f43ef937f9ec1e6"><code>cf42954</code></a>
resolver: improve some debug logging</li>
<li><a
href="https://github.com/evanw/esbuild/commit/b0765ae1323363fd61727df54e9e57c2b81bdd4b"><code>b0765ae</code></a>
fix some lints</li>
<li><a
href="https://github.com/evanw/esbuild/commit/dfa62069192b1c49918b2dfe4b8c10278361ae34"><code>dfa6206</code></a>
fix some comments (closes <a
href="https://redirect.github.com/evanw/esbuild/issues/3683">#3683</a>)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/ae5cc175165551016f8e19475c4ac9872e60f247"><code>ae5cc17</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3684">#3684</a>:
<code>abstract</code> experimental decorators</li>
<li><a
href="https://github.com/evanw/esbuild/commit/c809af050a74f022d9cf61c66e13365434542420"><code>c809af0</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/2388">#2388</a>:
allow consuming types without dom types (<a
href="https://redirect.github.com/evanw/esbuild/issues/3679">#3679</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.20.1...v0.20.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `yaml` from 2.4.0 to 2.4.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eemeli/yaml/releases">yaml's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.1</h2>
<ul>
<li>cst: Do not drop trailing newline after line comment in block-map if
followed by unindented block-seq value (<a
href="https://redirect.github.com/eemeli/yaml/issues/525">#525</a>)</li>
<li>Stringify flow collection comments in parent (<a
href="https://redirect.github.com/eemeli/yaml/issues/528">#528</a>)</li>
<li>Do not skip folding lines after the first in indented block scalars
(<a
href="https://redirect.github.com/eemeli/yaml/issues/529">#529</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eemeli/yaml/commit/4aa56d337dc5e286eb0c9111a3b370f21e321117"><code>4aa56d3</code></a>
2.4.1</li>
<li><a
href="https://github.com/eemeli/yaml/commit/e651ce1457e10145b87bd69a11c67e241540c022"><code>e651ce1</code></a>
chore: Refresh lockfile</li>
<li><a
href="https://github.com/eemeli/yaml/commit/1775f1341f9d0676142f95c708fc88531d2dbe12"><code>1775f13</code></a>
test: Drop unused import to satisfy TS</li>
<li><a
href="https://github.com/eemeli/yaml/commit/40903db981917ba5be113e170af00c8bfd85be92"><code>40903db</code></a>
fix(cst): Do not drop trailing newline after line comment in block-map
if fol...</li>
<li><a
href="https://github.com/eemeli/yaml/commit/46a816ecc1ab1767a8a2df26d930bee23c81b3f5"><code>46a816e</code></a>
fix: Do not skip folding lines after the first in indented block scalars
(fix...</li>
<li><a
href="https://github.com/eemeli/yaml/commit/750adbe05dba64ae26425cbc044be7da804d2c4f"><code>750adbe</code></a>
fix: Stringify flow collection comments in parent (fixes <a
href="https://redirect.github.com/eemeli/yaml/issues/528">#528</a>)</li>
<li><a
href="https://github.com/eemeli/yaml/commit/e07998c6074852a4b30c32c99d0197991318aef8"><code>e07998c</code></a>
ci: Move update action to yaml-playground, where it has write
access</li>
<li><a
href="https://github.com/eemeli/yaml/commit/5ba73d1706fbc431b7387c0162286b22ad892d67"><code>5ba73d1</code></a>
ci: Update yaml-playground build & BrowserStack tests (<a
href="https://redirect.github.com/eemeli/yaml/issues/524">#524</a>)</li>
<li>See full diff in <a
href="https://github.com/eemeli/yaml/compare/v2.4.0...v2.4.1">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
It is convenient to use `https://api.github.com/users/$app_slug[bot]` to
obtain the corresponding account ID later.
Then build `Signed-off-by: $app_slug[bot]
<$id+$app_slug[bot]@users.noreply.github.com>`.
Currently, there is no Linux environment to build test snapshot files
Fixes#72
If an Actions job is long enough, more than an hour can pass between
creating and revoking the App token in the post-job clean up step. Since
the token itself is used to authenticate with the revoke API, an expired
token will fail to be revoked.
This PR saves the token expiration in the actions state and uses that in
the post step to determine if the token can be revoked. I've also added
error handling to the revoke token API call, as it's unlikely that users
would want their job to fail if the token can't be revoked.
@@ -8,29 +8,34 @@ GitHub Action for creating a GitHub App installation access token.
In order to use this action, you need to:
1. [Register new GitHub App](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app)
2. [Store the App's ID in your repository environment variables](https://docs.github.com/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows) (example: `APP_ID`)
3. [Store the App's private key in your repository secrets](https://docs.github.com/actions/security-guides/encrypted-secrets?tool=webui#creating-encrypted-secrets-for-a-repository) (example: `PRIVATE_KEY`)
1. [Register new GitHub App](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app).
2. [Store the App's ID or Client ID in your repository environment variables](https://docs.github.com/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows) (example: `APP_ID`).
3. [Store the App's private key in your repository secrets](https://docs.github.com/actions/security-guides/encrypted-secrets?tool=webui#creating-encrypted-secrets-for-a-repository) (example: `PRIVATE_KEY`).
> [!IMPORTANT]
> An installation access token expires after 1 hour. Please [see this comment](https://github.com/actions/create-github-app-token/issues/121#issuecomment-2043214796) for alternative approaches if you have long-running processes.
### Create a token for the current repository
```yaml
on:[issues]
name:Run tests on staging
on:
push:
branches:
- main
jobs:
hello-world:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v1
- uses:actions/create-github-app-token@v3
id:app-token
with:
app-id:${{ vars.APP_ID }}
private-key:${{ secrets.PRIVATE_KEY }}
- uses:peter-evans/create-or-update-comment@v3
- uses:./actions/staging-tests
with:
token:${{ steps.app-token.outputs.token }}
issue-number:${{ github.event.issue.number }}
body:"Hello, World!"
```
### Use app token with `actions/checkout`
@@ -42,13 +47,13 @@ jobs:
auto-format:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v1
- uses:actions/create-github-app-token@v3
id:app-token
with:
# required
app-id:${{ vars.APP_ID }}
private-key:${{ secrets.PRIVATE_KEY }}
- uses:actions/checkout@v4
- uses:actions/checkout@v5
with:
token:${{ steps.app-token.outputs.token }}
ref:${{ github.head_ref }}
@@ -59,6 +64,68 @@ jobs:
github_token:${{ steps.app-token.outputs.token }}
```
### Create a git committer string for an app installation
```yaml
on:[pull_request]
jobs:
auto-format:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v3
id:app-token
with:
# required
app-id:${{ vars.APP_ID }}
private-key:${{ secrets.PRIVATE_KEY }}
- name:Get GitHub App User ID
id:get-user-id
run:echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
# git commands like commit work using the bot user
- run:|
git add .
git commit -m "Auto-generated changes"
git push
```
> [!TIP]
> The `<BOT USER ID>` is the numeric user ID of the app's bot user, which can be found under `https://api.github.com/users/<app-slug>%5Bbot%5D`.
>
> For example, we can check at `https://api.github.com/users/dependabot[bot]` to see the user ID of Dependabot is 49699333.
>
> Alternatively, you can use the [octokit/request-action](https://github.com/octokit/request-action) to get the ID.
### Create a token for all repositories in the current owner's installation
```yaml
@@ -68,7 +135,7 @@ jobs:
hello-world:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v1
- uses:actions/create-github-app-token@v3
id:app-token
with:
app-id:${{ vars.APP_ID }}
@@ -90,13 +157,15 @@ jobs:
hello-world:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v1
- uses:actions/create-github-app-token@v3
id:app-token
with:
app-id:${{ vars.APP_ID }}
private-key:${{ secrets.PRIVATE_KEY }}
owner:${{ github.repository_owner }}
repositories:"repo1,repo2"
repositories:|
repo1
repo2
- uses:peter-evans/create-or-update-comment@v3
with:
token:${{ steps.app-token.outputs.token }}
@@ -113,7 +182,7 @@ jobs:
hello-world:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v1
- uses:actions/create-github-app-token@v3
id:app-token
with:
app-id:${{ vars.APP_ID }}
@@ -126,6 +195,32 @@ jobs:
body:"Hello, World!"
```
### Create a token with specific permissions
> [!NOTE]
> Selected permissions must be granted to the installation of the specified app and repository owner. Setting a permission that the installation does not have will result in an error.
```yaml
on:[issues]
jobs:
hello-world:
runs-on:ubuntu-latest
steps:
- uses:actions/create-github-app-token@v3
id:app-token
with:
app-id:${{ vars.APP_ID }}
private-key:${{ secrets.PRIVATE_KEY }}
owner:${{ github.repository_owner }}
permission-issues:write
- uses:peter-evans/create-or-update-comment@v3
with:
token:${{ steps.app-token.outputs.token }}
issue-number:${{ github.event.issue.number }}
body:"Hello, World!"
```
### Create tokens for multiple user or organization accounts
You can use a matrix strategy to create tokens for multiple user or organization accounts.
**Required:** GitHub App private key. Escaped newlines (`\\n`) will be automatically replaced with actual newlines.
Some other actions may require the private key to be Base64 encoded. To avoid recreating a new secret, it can be decoded on the fly, but it needs to be managed securely. Here is an example of how this can be achieved:
**Optional:** GitHub App installation owner. If empty, defaults to the current repository owner.
**Optional:** The owner of the GitHub App installation. If empty, defaults to the current repository owner.
### `repositories`
**Optional:** Comma-separated list of repositories to grant access to.
**Optional:** Comma or newline-separated list of repositories to grant access to.
> [!NOTE]
> If `owner` is set and `repositories` is empty, access will be scoped to all repositories in the provided repository owner's installation. If `owner` and `repositories` are empty, access will be scoped to only the current repository.
### `permission-<permission name>`
**Optional:** The permissions to grant to the token. By default, the token inherits all of the installation's permissions. We recommend to explicitly list the permissions that are required for a use case. This follows GitHub's own recommendation to [control permissions of `GITHUB_TOKEN` in workflows](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token). The documentation also lists all available permissions, just prefix the permission key with `permission-` (e.g., `pull-requests` → `permission-pull-requests`).
The reason we define one `permision-<permission name>` input per permission is to benefit from type intelligence and input validation built into GitHub's action runner.
### `skip-token-revoke`
**Optional:** If truthy, the token will not be revoked when the current job is complete.
**Optional:** If true, the token will not be revoked when the current job is complete.
### `github-api-url`
**Optional:** The URL of the GitHub REST API. Defaults to the URL of the GitHub Rest API where the workflow is run from.
## Outputs
@@ -203,6 +355,14 @@ jobs:
GitHub App installation access token.
### `installation-id`
GitHub App installation ID.
### `app-slug`
GitHub App slug.
## How it works
The action creates an installation access token using [the `POST /app/installations/{installation_id}/access_tokens` endpoint](https://docs.github.com/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-app). By default,
@@ -210,12 +370,16 @@ The action creates an installation access token using [the `POST /app/installati
1. The token is scoped to the current repository or `repositories` if set.
2. The token inherits all the installation's permissions.
3. The token is set as output `token` which can be used in subsequent steps.
4. Unless the `skip-token-revoke` input is set to a truthy value, the token is revoked in the `post` step of the action, which means it cannot be passed to another job.
4. Unless the `skip-token-revoke` input is set to true, the token is revoked in the `post` step of the action, which means it cannot be passed to another job.
5. The token is masked, it cannot be logged accidentally.
> [!NOTE]
> Installation permissions can differ from the app's permissions they belong to. Installation permissions are set when an app is installed on an account. When the app adds more permissions after the installation, an account administrator will have to approve the new permissions before they are set on the installation.
required: false # TODO:When 'app_id' is removed, make 'app-id' required
app_id:
description:"GitHub App ID"
required:false
deprecationMessage:"'app_id' is deprecated and will be removed in a future version. Use 'app-id' instead."
required:true
private-key:
description:"GitHub App private key"
required: false # TODO:When 'private_key' is removed, make 'private-key' required
private_key:
description:"GitHub App private key"
required:false
deprecationMessage:"'private_key' is deprecated and will be removed in a future version. Use 'private-key' instead."
required:true
owner:
description:"GitHub App owner (defaults to current repository owner)"
description:"The owner of the GitHub App installation (defaults to current repository owner)"
required:false
repositories:
description:"Repositories to install the GitHub App on (defaults to current repository if owner is unset)"
description:"Comma or newline-separated list of repositories to install the GitHub App on (defaults to current repository if owner is unset)"
required:false
skip-token-revoke:
description:"If truthy, the token will not be revoked when the current job is complete"
description:"If true, the token will not be revoked when the current job is complete"
required:false
skip_token_revoke:
description:"If truthy, the token will not be revoked when the current job is complete"
required:false
deprecationMessage:"'skip_token_revoke' is deprecated and will be removed in a future version. Use 'skip-token-revoke' instead."
default:"false"
# Make GitHub API configurable to support non-GitHub Cloud use cases
# see https://github.com/actions/create-github-app-token/issues/77
github-api-url:
description:The URL of the GitHub REST API.
default:${{ github.api_url }}
# <START GENERATED PERMISSIONS INPUTS>
permission-actions:
description:"The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. Can be set to 'read' or 'write'."
permission-administration:
description:"The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. Can be set to 'read' or 'write'."
permission-checks:
description:"The level of permission to grant the access token for checks on code. Can be set to 'read' or 'write'."
permission-codespaces:
description:"The level of permission to grant the access token to create, edit, delete, and list Codespaces. Can be set to 'read' or 'write'."
permission-contents:
description:"The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. Can be set to 'read' or 'write'."
permission-dependabot-secrets:
description:"The level of permission to grant the access token to manage Dependabot secrets. Can be set to 'read' or 'write'."
permission-deployments:
description:"The level of permission to grant the access token for deployments and deployment statuses. Can be set to 'read' or 'write'."
permission-email-addresses:
description:"The level of permission to grant the access token to manage the email addresses belonging to a user. Can be set to 'read' or 'write'."
permission-environments:
description:"The level of permission to grant the access token for managing repository environments. Can be set to 'read' or 'write'."
permission-followers:
description:"The level of permission to grant the access token to manage the followers belonging to a user. Can be set to 'read' or 'write'."
permission-git-ssh-keys:
description:"The level of permission to grant the access token to manage git SSH keys. Can be set to 'read' or 'write'."
permission-gpg-keys:
description:"The level of permission to grant the access token to view and manage GPG keys belonging to a user. Can be set to 'read' or 'write'."
permission-interaction-limits:
description:"The level of permission to grant the access token to view and manage interaction limits on a repository. Can be set to 'read' or 'write'."
permission-issues:
description:"The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. Can be set to 'read' or 'write'."
permission-members:
description:"The level of permission to grant the access token for organization teams and members. Can be set to 'read' or 'write'."
permission-metadata:
description:"The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. Can be set to 'read' or 'write'."
permission-organization-administration:
description:"The level of permission to grant the access token to manage access to an organization. Can be set to 'read' or 'write'."
permission-organization-announcement-banners:
description:"The level of permission to grant the access token to view and manage announcement banners for an organization. Can be set to 'read' or 'write'."
permission-organization-copilot-seat-management:
description:"The level of permission to grant the access token for managing access to GitHub Copilot for members of an organization with a Copilot Business subscription. This property is in public preview and is subject to change. Can be set to 'write'."
permission-organization-custom-org-roles:
description:"The level of permission to grant the access token for custom organization roles management. Can be set to 'read' or 'write'."
permission-organization-custom-properties:
description:"The level of permission to grant the access token for custom property management. Can be set to 'read', 'write', or 'admin'."
permission-organization-custom-roles:
description:"The level of permission to grant the access token for custom repository roles management. Can be set to 'read' or 'write'."
permission-organization-events:
description:"The level of permission to grant the access token to view events triggered by an activity in an organization. Can be set to 'read'."
permission-organization-hooks:
description:"The level of permission to grant the access token to manage the post-receive hooks for an organization. Can be set to 'read' or 'write'."
permission-organization-packages:
description:"The level of permission to grant the access token for organization packages published to GitHub Packages. Can be set to 'read' or 'write'."
description:"The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. Can be set to 'read' or 'write'."
permission-organization-personal-access-tokens:
description:"The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. Can be set to 'read' or 'write'."
permission-organization-plan:
description:"The level of permission to grant the access token for viewing an organization's plan. Can be set to 'read'."
permission-organization-projects:
description:"The level of permission to grant the access token to manage organization projects and projects public preview (where available). Can be set to 'read', 'write', or 'admin'."
permission-organization-secrets:
description:"The level of permission to grant the access token to manage organization secrets. Can be set to 'read' or 'write'."
permission-organization-self-hosted-runners:
description:"The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. Can be set to 'read' or 'write'."
permission-organization-user-blocking:
description:"The level of permission to grant the access token to view and manage users blocked by the organization. Can be set to 'read' or 'write'."
permission-packages:
description:"The level of permission to grant the access token for packages published to GitHub Packages. Can be set to 'read' or 'write'."
permission-pages:
description:"The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. Can be set to 'read' or 'write'."
permission-profile:
description:"The level of permission to grant the access token to manage the profile settings belonging to a user. Can be set to 'write'."
permission-pull-requests:
description:"The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. Can be set to 'read' or 'write'."
permission-repository-custom-properties:
description:"The level of permission to grant the access token to view and edit custom properties for a repository, when allowed by the property. Can be set to 'read' or 'write'."
permission-repository-hooks:
description:"The level of permission to grant the access token to manage the post-receive hooks for a repository. Can be set to 'read' or 'write'."
permission-repository-projects:
description:"The level of permission to grant the access token to manage repository projects, columns, and cards. Can be set to 'read', 'write', or 'admin'."
permission-secret-scanning-alerts:
description:"The level of permission to grant the access token to view and manage secret scanning alerts. Can be set to 'read' or 'write'."
permission-secrets:
description:"The level of permission to grant the access token to manage repository secrets. Can be set to 'read' or 'write'."
permission-security-events:
description:"The level of permission to grant the access token to view and manage security events like code scanning alerts. Can be set to 'read' or 'write'."
permission-single-file:
description:"The level of permission to grant the access token to manage just a single file. Can be set to 'read' or 'write'."
permission-starring:
description:"The level of permission to grant the access token to list and manage repositories a user is starring. Can be set to 'read' or 'write'."
permission-statuses:
description:"The level of permission to grant the access token for commit statuses. Can be set to 'read' or 'write'."
permission-team-discussions:
description:"The level of permission to grant the access token to manage team discussions and related comments. Can be set to 'read' or 'write'."
permission-vulnerability-alerts:
description:"The level of permission to grant the access token to manage Dependabot alerts. Can be set to 'read' or 'write'."
permission-workflows:
description:"The level of permission to grant the access token to update GitHub Actions workflow files. Can be set to 'write'."
// The 'app_id' input was previously required, but it and 'app-id' are both optional now, until the former is removed. Still, we want to ensure that at least one of them is set.
thrownewError("Input required and not supplied: app-id");
// The 'private_key' input was previously required, but it and 'private-key' are both optional now, until the former is removed. Still, we want to ensure that at least one of them is set.
thrownewError("Input required and not supplied: private-key");
"description":"The permissions granted to the user access token.",
"properties":{
"actions":{
"type":"string",
"description":"The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts.",
"enum":[
"read",
"write"
]
},
"administration":{
"type":"string",
"description":"The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation.",
"enum":[
"read",
"write"
]
},
"checks":{
"type":"string",
"description":"The level of permission to grant the access token for checks on code.",
"enum":[
"read",
"write"
]
},
"codespaces":{
"type":"string",
"description":"The level of permission to grant the access token to create, edit, delete, and list Codespaces.",
"enum":[
"read",
"write"
]
},
"contents":{
"type":"string",
"description":"The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.",
"enum":[
"read",
"write"
]
},
"dependabot_secrets":{
"type":"string",
"description":"The level of permission to grant the access token to manage Dependabot secrets.",
"enum":[
"read",
"write"
]
},
"deployments":{
"type":"string",
"description":"The level of permission to grant the access token for deployments and deployment statuses.",
"enum":[
"read",
"write"
]
},
"environments":{
"type":"string",
"description":"The level of permission to grant the access token for managing repository environments.",
"enum":[
"read",
"write"
]
},
"issues":{
"type":"string",
"description":"The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones.",
"enum":[
"read",
"write"
]
},
"metadata":{
"type":"string",
"description":"The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata.",
"enum":[
"read",
"write"
]
},
"packages":{
"type":"string",
"description":"The level of permission to grant the access token for packages published to GitHub Packages.",
"enum":[
"read",
"write"
]
},
"pages":{
"type":"string",
"description":"The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds.",
"enum":[
"read",
"write"
]
},
"pull_requests":{
"type":"string",
"description":"The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges.",
"enum":[
"read",
"write"
]
},
"repository_custom_properties":{
"type":"string",
"description":"The level of permission to grant the access token to view and edit custom properties for a repository, when allowed by the property.",
"enum":[
"read",
"write"
]
},
"repository_hooks":{
"type":"string",
"description":"The level of permission to grant the access token to manage the post-receive hooks for a repository.",
"enum":[
"read",
"write"
]
},
"repository_projects":{
"type":"string",
"description":"The level of permission to grant the access token to manage repository projects, columns, and cards.",
"enum":[
"read",
"write",
"admin"
]
},
"secret_scanning_alerts":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage secret scanning alerts.",
"enum":[
"read",
"write"
]
},
"secrets":{
"type":"string",
"description":"The level of permission to grant the access token to manage repository secrets.",
"enum":[
"read",
"write"
]
},
"security_events":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage security events like code scanning alerts.",
"enum":[
"read",
"write"
]
},
"single_file":{
"type":"string",
"description":"The level of permission to grant the access token to manage just a single file.",
"enum":[
"read",
"write"
]
},
"statuses":{
"type":"string",
"description":"The level of permission to grant the access token for commit statuses.",
"enum":[
"read",
"write"
]
},
"vulnerability_alerts":{
"type":"string",
"description":"The level of permission to grant the access token to manage Dependabot alerts.",
"enum":[
"read",
"write"
]
},
"workflows":{
"type":"string",
"description":"The level of permission to grant the access token to update GitHub Actions workflow files.",
"enum":[
"write"
]
},
"members":{
"type":"string",
"description":"The level of permission to grant the access token for organization teams and members.",
"enum":[
"read",
"write"
]
},
"organization_administration":{
"type":"string",
"description":"The level of permission to grant the access token to manage access to an organization.",
"enum":[
"read",
"write"
]
},
"organization_custom_roles":{
"type":"string",
"description":"The level of permission to grant the access token for custom repository roles management.",
"enum":[
"read",
"write"
]
},
"organization_custom_org_roles":{
"type":"string",
"description":"The level of permission to grant the access token for custom organization roles management.",
"enum":[
"read",
"write"
]
},
"organization_custom_properties":{
"type":"string",
"description":"The level of permission to grant the access token for custom property management.",
"enum":[
"read",
"write",
"admin"
]
},
"organization_copilot_seat_management":{
"type":"string",
"description":"The level of permission to grant the access token for managing access to GitHub Copilot for members of an organization with a Copilot Business subscription. This property is in public preview and is subject to change.",
"enum":[
"write"
]
},
"organization_announcement_banners":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage announcement banners for an organization.",
"enum":[
"read",
"write"
]
},
"organization_events":{
"type":"string",
"description":"The level of permission to grant the access token to view events triggered by an activity in an organization.",
"enum":[
"read"
]
},
"organization_hooks":{
"type":"string",
"description":"The level of permission to grant the access token to manage the post-receive hooks for an organization.",
"enum":[
"read",
"write"
]
},
"organization_personal_access_tokens":{
"type":"string",
"description":"The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization.",
"enum":[
"read",
"write"
]
},
"organization_personal_access_token_requests":{
"type":"string",
"description":"The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization.",
"enum":[
"read",
"write"
]
},
"organization_plan":{
"type":"string",
"description":"The level of permission to grant the access token for viewing an organization's plan.",
"enum":[
"read"
]
},
"organization_projects":{
"type":"string",
"description":"The level of permission to grant the access token to manage organization projects and projects public preview (where available).",
"enum":[
"read",
"write",
"admin"
]
},
"organization_packages":{
"type":"string",
"description":"The level of permission to grant the access token for organization packages published to GitHub Packages.",
"enum":[
"read",
"write"
]
},
"organization_secrets":{
"type":"string",
"description":"The level of permission to grant the access token to manage organization secrets.",
"enum":[
"read",
"write"
]
},
"organization_self_hosted_runners":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization.",
"enum":[
"read",
"write"
]
},
"organization_user_blocking":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage users blocked by the organization.",
"enum":[
"read",
"write"
]
},
"team_discussions":{
"type":"string",
"description":"The level of permission to grant the access token to manage team discussions and related comments.",
"enum":[
"read",
"write"
]
},
"email_addresses":{
"type":"string",
"description":"The level of permission to grant the access token to manage the email addresses belonging to a user.",
"enum":[
"read",
"write"
]
},
"followers":{
"type":"string",
"description":"The level of permission to grant the access token to manage the followers belonging to a user.",
"enum":[
"read",
"write"
]
},
"git_ssh_keys":{
"type":"string",
"description":"The level of permission to grant the access token to manage git SSH keys.",
"enum":[
"read",
"write"
]
},
"gpg_keys":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage GPG keys belonging to a user.",
"enum":[
"read",
"write"
]
},
"interaction_limits":{
"type":"string",
"description":"The level of permission to grant the access token to view and manage interaction limits on a repository.",
"enum":[
"read",
"write"
]
},
"profile":{
"type":"string",
"description":"The level of permission to grant the access token to manage the profile settings belonging to a user.",
"enum":[
"write"
]
},
"starring":{
"type":"string",
"description":"The level of permission to grant the access token to list and manage repositories a user is starring.",
// In the action.yml file, replace the content between the `<START GENERATED PERMISSIONS INPUTS>` and `<END GENERATED PERMISSIONS INPUTS>` comments with the new content
The output from the tests is captured into a snapshot ([tests/snapshots/index.js.md](snapshots/index.js.md)). It includes all requests sent by our scripts to verify it's working correctly and to prevent regressions.
## How to add a new test
We have tests both for the `main.js` and `post.js` scripts.
- If you do not expect an error, take [main-token-permissions-set.test.js](tests/main-token-permissions-set.test.js) as a starting point.
- If your test has an expected error, take [main-missing-app-id.test.js](tests/main-missing-app-id.test.js) as a starting point.
"ghs_16C7e42F292c6912E7710c838347Ae178B4a";// This token is invalidated. It’s from https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-app.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.