Compare commits

..

218 Commits

Author SHA1 Message Date
dependabot[bot]
75af19036b Bump @octokit/plugin-paginate-rest from 9.0.0 to 9.2.2
Bumps [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js) from 9.0.0 to 9.2.2.
- [Release notes](https://github.com/octokit/plugin-paginate-rest.js/releases)
- [Commits](https://github.com/octokit/plugin-paginate-rest.js/compare/v9.0.0...v9.2.2)

---
updated-dependencies:
- dependency-name: "@octokit/plugin-paginate-rest"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 23:28:48 +00:00
Josh Gross
378a50fac5 Merge pull request #508 from iamstarkov/patch-2
make octokit instance available as octokit on top of github, to make it easier to seamlessly copy examples from GitHub rest api or octokit documentations
2025-02-04 14:47:03 -05:00
Vladimir Starkov
632050422e fix: adjust types 2025-01-31 11:55:53 +01:00
Vladimir Starkov
f23cd47e29 replace GitHub with octokit in the README, but keep a note of the GitHub still being available 2025-01-31 11:20:25 +01:00
Vladimir Starkov
4024541289 make octokit instance available as octokit on top of github, to make it easier to seamless to copy examples from GitHub api or octokit documentation 2025-01-31 11:20:25 +01:00
Josh Gross
91a83c0917 Merge pull request #473 from nschonni/upstream-setup-license
ci: Use github/setup-licensed
2025-01-29 11:34:59 -05:00
Josh Gross
586a6a1c85 Merge branch 'main' into upstream-setup-license 2025-01-29 11:31:44 -05:00
Josh Gross
8cf50d1501 Merge pull request #533 from nschonni/remove-vscode
chore: Remove .vscode settings
2025-01-29 11:30:27 -05:00
Josh Gross
511abaae1c Merge branch 'main' into remove-vscode 2025-01-29 11:22:32 -05:00
Josh Gross
eb88965f42 Merge pull request #532 from nschonni/sub-action-dependabot
chore: Add Dependabot for .github/actions/install-dependencies
2025-01-29 11:22:24 -05:00
Josh Gross
eef4fd9090 Merge branch 'main' into remove-vscode 2025-01-29 11:22:16 -05:00
Josh Gross
6efc7571cb Merge branch 'main' into sub-action-dependabot 2025-01-29 11:21:01 -05:00
Josh Gross
08caaddc54 Merge pull request #531 from actions/joshmgross/update-workflows
Define `permissions` in workflows and update actions
2025-01-29 11:20:46 -05:00
Nick Schonning
ac230a1936 chore: Remove .vscode settings 2025-01-28 17:18:57 -05:00
Nick Schonning
8e643f1530 chore: Add Dependabot for .github/actions/install-dependencies 2025-01-28 17:04:29 -05:00
Josh Gross
19e58d8525 Define permissions in workflows and update actions 2025-01-28 16:50:07 -05:00
Josh Gross
c94e1c45ff Merge pull request #472 from nschonni/setup-dependabot
chore: Add Dependabot for NPM and Actions
2025-01-28 16:36:48 -05:00
Josh Gross
3e8cf0fede Merge branch 'main' into setup-dependabot 2025-01-28 16:35:38 -05:00
Nick Schonning
fd2cfc12fa ci: pin ruby/setup-ruby 2025-01-25 16:18:58 -05:00
Nick Schonning
f2f7f58db4 ci: Use github/setup-licensed 2025-01-25 16:15:22 -05:00
Josh Gross
d70566966b Merge pull request #478 from timotk/patch-1
Specify that the used script is JavaScript
2025-01-17 15:31:49 -05:00
Josh Gross
ec12a47a4a Merge branch 'main' into patch-1 2025-01-17 15:14:36 -05:00
Josh Gross
ac452803c9 Merge pull request #515 from actions/joshmgross/npm-audit-fix
Update dependencies with `npm audit fix`
2025-01-17 15:06:43 -05:00
Josh Gross
1acfa1ca49 Merge branch 'main' into joshmgross/npm-audit-fix 2025-01-17 15:03:08 -05:00
Josh Gross
c6fc059534 Merge pull request #514 from actions/joshmgross/update-package-name
Clear up package name confusion
2025-01-17 15:00:06 -05:00
Josh Gross
766f5ddf0e Update licenses 2025-01-17 14:58:40 -05:00
Josh Gross
5e738b47b5 Update dependencies with npm audit fix 2025-01-17 14:56:43 -05:00
Josh Gross
2f5a0ceb1a Update integration test for expected package name 2025-01-17 14:44:04 -05:00
Josh Gross
7875aed44f Clear up package name confusion 2025-01-17 14:37:40 -05:00
Josh Gross
2bcb242a0a Merge pull request #512 from actions/joshmgross/upload-artifact-update
Update usage of `actions/upload-artifact`
2025-01-17 13:48:42 -05:00
Josh Gross
a32a57a185 Update usage of actions/upload-artifact 2025-01-16 15:53:49 -05:00
Josh Gross
4020e461ac Merge pull request #497 from actions/joshmgross/fix-status-badges
Fix workflow status badges
2024-11-04 10:31:56 -05:00
Josh Gross
ec3a5c4c4c Fix workflow status badges 2024-11-01 18:11:15 -04:00
Joel Ambass
660ec11d82 Merge pull request #486 from actions/Jcambass-patch-1
Upgrade IA Publish
2024-09-17 08:47:55 +02:00
Joel Ambass
c0ceea4835 Upgrade IA Publish 2024-09-16 17:19:19 +02:00
Joel Ambass
58d7008c60 Merge pull request #485 from actions/Jcambass-patch-1
Add workflow file for publishing releases to immutable action package
2024-09-13 16:53:23 +02:00
Joel Ambass
b9f8f75f36 Add workflow file for publishing releases to immutable action package
This workflow file publishes new action releases to the immutable action package of the same name as this repo.

This is part of the Immutable Actions project which is not yet fully released to the public. First party actions like this one are part of our initial testing of this feature.
2024-09-13 13:35:58 +02:00
Josh Gross
35b1cdd1b2 Merge pull request #482 from benelan/main
Upgrade husky to v9
2024-07-29 16:07:40 -04:00
Ben Elan
3c6a5c5d52 empty commit 2024-07-26 18:10:15 -07:00
Ben Elan
c44be22d0b Upgrade husky to v9 2024-07-24 20:48:36 -07:00
Timo
adfd270e4b Specify that the script is JavaScript 2024-07-10 10:44:37 +02:00
Nick Schonning
adc04e7dd8 chore: Add Dependabot for NPM and Actions 2024-06-03 18:13:31 -04:00
Josh Gross
60a0d83039 Merge pull request #440 from actions/joshmgross/v7.0.1
Update version to 7.0.1
2023-11-17 17:20:07 -05:00
Josh Gross
b7fb2001b4 Update version to 7.0.1 2023-11-17 14:15:20 -05:00
Josh Gross
12e22ed06b Merge pull request #439 from actions/joshmgross/avoid-setting-base-url
Avoid setting `baseUrl` to undefined when input is not provided
2023-11-17 14:13:03 -05:00
Josh Gross
d319f8f5b5 Avoid setting baseUrl to undefined when input is not provided 2023-11-17 11:59:30 -05:00
Josh Gross
e69ef5462f Merge pull request #425 from actions/joshmgross/node-20
Update dependencies and use Node 20
2023-11-13 13:02:38 -05:00
Josh Gross
ee0914b839 Update licenses 2023-11-09 10:06:25 -05:00
Josh Gross
d6fc56f33b Use @types/node for Node 20 2023-11-08 11:16:50 -05:00
Josh Gross
384d6cf581 Fix quotations in tests 2023-11-08 10:07:35 -05:00
Josh Gross
84724927e3 Only validate GraphQL previews 2023-11-08 10:03:49 -05:00
Josh Gross
84903f5182 Remove node-fetch from type 2023-11-08 09:54:09 -05:00
Josh Gross
5349cf9965 Merge branch 'main' into joshmgross/node-20 2023-11-08 09:45:02 -05:00
Josh Gross
ecae9eb535 Merge pull request #402 from typed-actions/export-types
Expose async-function argument type
2023-11-08 09:34:16 -05:00
Viktorlo
044ebbb945 Merge branch 'main' into export-types 2023-11-08 11:14:47 +01:00
Josh Gross
6b5d3eac1f Merge pull request #429 from robandpdx/add-base-url-option
Add base-url option
2023-10-31 14:33:41 -04:00
Rob Anderson
5940a76378 add example to description of base-url parameter 2023-10-23 17:37:49 -06:00
Rob Anderson
ef8023aa4a Update action.yml
Co-authored-by: Josh Gross <joshmgross@github.com>
2023-10-23 19:35:20 -04:00
Rob Anderson
e8957ff5ee generate dist changes for addition of base-url 2023-10-23 16:35:17 -06:00
Rob Anderson
ea121b86f9 add base-url option 2023-10-20 10:16:28 -06:00
Josh Gross
22dcf8ad68 Add shell to run step 2023-10-12 13:14:48 -04:00
Josh Gross
a903cf2d66 Add install deps action to reuse between workflows 2023-10-12 13:11:41 -04:00
Josh Gross
30d8f852ac Fix version number in breaking changes section
Co-authored-by: Martin Costello <martin@martincostello.com>
2023-10-12 13:06:36 -04:00
Josh Gross
999c7fb9fe Use setup-node in licensed workflow 2023-10-11 16:21:07 -04:00
Josh Gross
47bc917394 Specify Node 20 in workflows and examples 2023-10-11 16:18:35 -04:00
Josh Gross
84ab08fe8b Update dependencies and use Node 20 2023-10-11 16:11:59 -04:00
Josh Gross
1f16022c75 Merge pull request #422 from actions/joshmgross/update-codeowners
Update CODEOWNERS to the Launch team
2023-10-02 11:55:52 -04:00
Josh Gross
5d8f827854 Update CODEOWNERS to the Launch team 2023-10-02 11:53:14 -04:00
Viktor Lott
21446ed76b Remove alternative setup documentation 2023-08-18 09:30:09 +02:00
Viktorlo
c857fcb22b Update alternative-setup.md 2023-07-28 11:34:17 +02:00
Viktorlo
ba13a89bc9 Update README.md 2023-07-28 11:30:13 +02:00
Viktor Lott
56bdc6c318 Expose async-function argument type
We are exposing the async-function argument type for jsDoc
type declaration support. This means that we now could do:
"npm i -D @types/github-script@github:actions/github-script"
and the add:
"@param {import('@types/github-script').AsyncFunctionArguments}
AsyncFunctionArguments".

This could obviously be done in other ways too, like using
"@typed-actions/github-script" instead. But it seems better
to use the actual source repository instead of a third-party
library to import the type declaration.
2023-07-03 13:56:46 +02:00
Josh Gross
6f00a0b667 Merge pull request #383 from actions/joshmgross/templates
Add more issue templates
2023-05-05 16:26:55 -04:00
Josh Gross
3a27f0b193 Add more issue templates 2023-05-04 18:17:04 -04:00
Josh Gross
060d68304c Merge pull request #285 from navarroaxel/patch-1
Fix typo in README
2023-04-07 18:13:09 -04:00
Josh Gross
d324628d3c Merge branch 'main' into patch-1 2023-04-07 18:04:40 -04:00
Josh Gross
6dcbc7ebb3 Merge pull request #364 from actions/joshmgross/remove-path-filters
Remove path filters from check-dist workflow
2023-04-07 18:04:15 -04:00
Josh Gross
9e54a4c141 Remove path filters from check-dist workflow 2023-04-07 14:45:58 -04:00
Josh Gross
29423367f0 Merge branch 'main' into patch-1 2023-04-07 11:49:55 -04:00
Josh Gross
d7906e4ad0 Merge pull request #363 from mjpieters/auto_debug
Default debug to current runner debug state
2023-04-05 12:32:04 -04:00
Martijn Pieters
ea954ff83a Default debug to current runner debug state
When the action 'debug' input is not set, default to the current
runner debug state. This ensures that the Octokit client request logs
are included automatically when you re-run a job with debug enabled.
2023-04-05 17:26:25 +01:00
Axel Navarro
c141a9230e Fix typo in README 2023-04-05 10:11:07 -03:00
Josh Gross
57c10d434e Merge pull request #356 from mjpieters/clean_deps
Remove unused dependencies
2023-04-04 17:31:11 -04:00
Josh Gross
eae7dc1b88 Merge branch 'main' into clean_deps 2023-04-04 17:25:20 -04:00
Josh Gross
f1ab5779d6 Merge pull request #357 from mjpieters/fix_input_handling
fix input handling
2023-04-04 17:24:41 -04:00
Martijn Pieters
8d9f8fc050 Fix null handling, covered by integration tests
`core.getInput()` always returns a string, so testing for 'not null'
is always true. This then leads to previews set to an array with
a single empty string, breaking accept-header output.

Updated eslint rules should help avoid this issue in future, and new
integration tests verify that the github client configuration now
reflects the intended configuration options.
2023-04-04 22:11:47 +01:00
Martijn Pieters
a4f398e58b Remove unused dependencies
The @octokit/plugin- references are not actually (directly) used by
@action/github-script and so only serve to confuse about what exact
version of these is included in the action. The actual versions of
these plugins are set by @action/github.

Ignoring newlines, the dist/index.js file is exactly the same without
listing these dependencies in package.json.
2023-04-04 21:34:19 +01:00
Martijn Pieters
806be26275 Clean and spruce up the integration tests a bit
- Use test-specific step ids
- Remove unused input parameters
- Provide clear output on what passed or failed, including
  a step summary for each passed test.
2023-04-04 21:18:14 +01:00
Dan Rigby
8d76c9a913 Merge pull request #358 from mjpieters/request-log-plugin
Add @octokit/plugin-request-log, to produce debug output for requests
2023-04-04 13:58:39 -04:00
Martijn Pieters
78f623b2da Add @octokit/plugin-request-log, to produce debug output for requests
Without this plugin, the debug setting is, effectively, meaningless as
none of the existing plugins produce log output.

The plugin writes the request options to octokit.log.debug, and response
times as *method path - status in ...ms* to octokit.log.info.
2023-03-30 16:00:56 +01:00
Josh Gross
98814c53be Merge pull request #339 from actions/joshmgross/bump-package-version
Bump version to 6.4.0
2023-01-26 11:32:53 -05:00
Josh Gross
ba6cf3fe7c Bump version to 6.4.0 2023-01-26 11:13:37 -05:00
Josh Gross
bcc389184d Merge pull request #321 from danmichaelo/node-fetch
Add node-fetch
2023-01-26 11:11:58 -05:00
Josh Gross
da8818015e Merge main 2023-01-26 11:05:45 -05:00
Josh Gross
4d93f38890 Update dist and audit deps 2023-01-26 11:04:27 -05:00
Josh Gross
0550e85801 Merge pull request #336 from actions/joshmgross/minimatch-license
Update license for minmatch
2023-01-26 10:24:21 -05:00
Josh Gross
5420835fff Merge branch 'main' into joshmgross/minimatch-license 2023-01-26 10:20:07 -05:00
Josh Gross
03377835c3 Merge pull request #338 from actions/joshmgross/fix-dist
Regenerate `dist`
2023-01-26 10:18:09 -05:00
Josh Gross
8c6dda0186 Regenerate dist 2023-01-25 19:38:34 -05:00
Josh Gross
ee0d992b06 Use Node 16 in CI and examples 2023-01-25 19:36:14 -05:00
Josh Gross
00be60ac26 Merge pull request #306 from austinvazquez/update-github-actions-packages
Update GitHub actions packages
2023-01-25 19:26:12 -05:00
Josh Gross
b7f2567036 Update license for minmatch 2023-01-25 19:20:13 -05:00
Dan Michael O. Heggø
4a65b1d78b Re-build 2023-01-16 10:00:23 +01:00
Josh Gross
5a2006bc4f Merge pull request #313 from jongwooo/chore/use-cache-in-check-dist
Use cache in check-dist.yml
2023-01-10 14:34:10 -05:00
Josh Gross
b4677cbffd Merge pull request #320 from actions/dependabot/npm_and_yarn/minimatch-3.1.2
Bump minimatch from 3.0.4 to 3.1.2
2023-01-10 14:33:44 -05:00
Dan Michael O. Heggø
f34078a491 Make node-fetch available 2023-01-07 00:38:19 +01:00
Dan Michael O. Heggø
311d596c3d Bump ncc 2023-01-07 00:37:32 +01:00
dependabot[bot]
7dc29a470d Bump minimatch from 3.0.4 to 3.1.2
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-06 21:43:50 +00:00
Josh Gross
570fe7c5f7 Merge pull request #319 from actions/dependabot/npm_and_yarn/json5-2.2.3
Bump json5 from 2.1.3 to 2.2.3
2023-01-06 16:42:44 -05:00
dependabot[bot]
454eac42ff Bump json5 from 2.1.3 to 2.2.3
Bumps [json5](https://github.com/json5/json5) from 2.1.3 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.1.3...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-06 02:35:34 +00:00
Jongwoo Han
e0306a3c1d Use cache in check-dist.yml
Signed-off-by: jongwooo <jongwooo.han@gmail.com>
2022-12-07 00:51:52 +09:00
Austin Vazquez
20fcf2e7fe Update GitHub actions packages
Update actions/checkout, actions/setup-node, actions/cache, and
actions/upload-artifact from v2 to v3.

Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2022-10-25 21:48:09 +00:00
Josh Gross
d556feaca3 Merge pull request #300 from actions/joshmgross/v6.3.3
Update version to 6.3.3
2022-10-13 18:34:27 -04:00
Josh Gross
01fde8b524 Update version to 6.3.3 2022-10-11 17:38:18 -04:00
Josh Gross
633e9fd3a1 Merge pull request #279 from nineinchnick/update-glob
Update `@actions/glob` to 0.3.0
2022-10-11 17:37:00 -04:00
Josh Gross
ee124b1288 Update dist 2022-10-11 17:33:09 -04:00
Josh Gross
ca24d5fb29 Update @actions/glob license version 2022-10-11 17:31:09 -04:00
Josh Gross
c09747ec1a Merge branch 'main' into update-glob 2022-10-11 17:29:19 -04:00
Josh Gross
100527700e Merge pull request #299 from actions/joshmgross/v6.3.2
Bump version to 6.3.2
2022-10-11 11:43:51 -04:00
Josh Gross
085a7754e8 Bump version to 6.3.2 2022-10-11 11:18:09 -04:00
Josh Gross
6871f0ffce Merge pull request #295 from rentziass/rentziass/update-actions-core
Update @actions/core to 1.10.0
2022-10-11 11:16:19 -04:00
Francesco Renzi
7ed718295b Update @actions/core to 1.10.0 2022-10-06 11:32:55 +01:00
Josh Gross
7dff1a8764 Merge pull request #293 from luketomlinson/main
Fix overriding request options from @actions/github
2022-09-30 16:50:50 -04:00
Luke Tomlinson
8445ca871a Fix overriding request options from @actions/github 2022-09-30 15:15:18 -04:00
Josh Gross
d4560e1570 Merge pull request #288 from luketomlinson/main
Add retry plugin and related options
2022-09-26 17:50:50 -04:00
Luke Tomlinson
d742690307 6.3.0 2022-09-26 11:24:22 -04:00
Luke Tomlinson
ac0c7cb50b Core.debug 2022-09-26 11:23:56 -04:00
Luke Tomlinson
eb0f407f1a Whitespace 2022-09-23 16:30:17 -04:00
Luke Tomlinson
6b09a22cca cleanup quotes 2022-09-23 16:28:30 -04:00
Luke Tomlinson
e7dbaf0565 update action.yml 2022-09-23 16:25:00 -04:00
Luke Tomlinson
3faaff918c PR feedback 2022-09-23 16:16:31 -04:00
Luke Tomlinson
3cca041b86 Fix http-client license 2022-09-23 13:40:59 -04:00
Luke Tomlinson
55053af80a Update licenses 2022-09-23 12:16:53 -04:00
Luke Tomlinson
977060a05e Add more info to action.yml 2022-09-23 11:56:48 -04:00
Luke Tomlinson
660d907517 refactor and add tests for retry options 2022-09-23 11:45:39 -04:00
Luke Tomlinson
355d8955d8 Add retry plugin 2022-09-23 10:56:21 -04:00
Josh Gross
c713e510db Merge pull request #283 from desrosj/update/plugin-rest-endpoint-methods
Update `@octokit/plugin-rest-endpoint-methods` to version 6.x
2022-08-26 13:12:14 -04:00
Josh Gross
fc8cad1c91 Update licenses 2022-08-26 13:08:49 -04:00
Jon Desrosiers
4d94eeabef Update version in package*.json files. 2022-08-25 10:09:03 -04:00
Jon Desrosiers
b9c21f17c0 Update @octokit/plugin-rest-endpoint-methods to v6.3.0. 2022-08-19 08:45:20 -04:00
Jon Desrosiers
6e70142499 Update @octokit/plugin-rest-endpoint-methods.
This updates the dependency to the latest version within current SemVer constraints.
2022-08-18 13:50:01 -04:00
Josh Gross
d50f485531 Merge pull request #280 from cory-miller/main
Bump @actions/core to 1.9.1
2022-08-12 10:09:00 -04:00
Cory Miller
1bdf7b26a5 Bump @actions/core to 1.9.1 2022-08-11 18:35:56 -04:00
Jan Waś
0a9984563e Update @actions/glob to 0.3.0 2022-08-04 23:18:29 +02:00
Josh Gross
46a476b638 Merge pull request #269 from kevgo/patch-1
Improve grammar
2022-06-24 15:33:41 -04:00
Josh Gross
b682e42ddb Merge pull request #270 from actions/dependabot/npm_and_yarn/shell-quote-1.7.3
Bump shell-quote from 1.7.2 to 1.7.3
2022-06-24 15:33:15 -04:00
dependabot[bot]
0cc15d0960 Bump shell-quote from 1.7.2 to 1.7.3
Bumps [shell-quote](https://github.com/substack/node-shell-quote) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/substack/node-shell-quote/releases)
- [Changelog](https://github.com/substack/node-shell-quote/blob/master/CHANGELOG.md)
- [Commits](https://github.com/substack/node-shell-quote/compare/v1.7.2...1.7.3)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-23 03:19:34 +00:00
Kevin Goslar
ebee6048d8 Improve grammar 2022-06-22 13:35:28 -05:00
Josh Gross
377d38faf3 Merge pull request #267 from actions/joshmgross/add-codeql
Create codeql-analysis.yml
2022-06-17 17:33:17 -04:00
Josh Gross
174e8122c8 Create codeql-analysis.yml 2022-06-15 16:25:41 -04:00
Josh Gross
7a5c598405 Merge pull request #263 from smaeda-ks/update-actions-core
Update `@actions/core` to 1.8.1
2022-05-12 18:43:19 -04:00
Josh Gross
cb1c1eb6df Classify http-client licenses 2022-05-12 18:41:55 -04:00
Josh Gross
6203d71574 Update licenses 2022-05-12 18:39:12 -04:00
Shohei Maeda
19fe498d7b Update @actions/core to 1.8.1 2022-05-13 07:29:57 +09:00
Josh Gross
9bd6ae64c1 Merge pull request #254 from dlech/patch-1
README: use pull_request_target in example
2022-03-31 17:21:17 -04:00
David Lechner
e44260d768 README: use pull_request_target in example
Pull requests from forks do not have write permission, so we need to use `pull_request_target` instead of `pull_request` to enable write permission.

Fixes #42.
2022-03-30 13:19:17 -05:00
Josh Gross
05418122f5 Merge pull request #251 from actions/dependabot/npm_and_yarn/minimist-1.2.6
Bump minimist from 1.2.5 to 1.2.6
2022-03-30 11:20:01 -04:00
Josh Gross
b82abb9b60 Merge pull request #252 from josh-/add-formatting-example-readme
Update README with Markdown text formatting example
2022-03-29 11:01:09 -04:00
Josh Parnham
d965d37133 Add text formatting example to README 2022-03-27 23:55:08 +11:00
dependabot[bot]
7cf7d15108 Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 06:03:59 +00:00
Josh Gross
9ac08808f9 Merge pull request #240 from actions/joshmgross/document-esm
Add an example using ESM `import`
2022-02-11 10:21:32 -05:00
Josh Gross
53cdbb4a1b Merge pull request #239 from actions/joshmgross/v6
Release version 6.0.0
2022-02-11 10:21:20 -05:00
Josh Gross
6b8d8aaad4 Merge pull request #238 from actions/joshmgross/update-actions-core
Update `@actions/core` to 1.6.0
2022-02-11 10:19:36 -05:00
Josh Gross
6689be4f99 Merge pull request #237 from actions/joshmgross/audit-fix
Update `node-fetch`
2022-02-11 10:19:26 -05:00
Josh Gross
5541733ecf Add an example using ESM import 2022-02-09 16:17:11 -05:00
Josh Gross
cd8eebf4a5 Release version 6.0.0 2022-02-09 16:05:04 -05:00
Josh Gross
72fadf4ee8 Update @actions/core to 1.6.0 2022-02-09 15:58:07 -05:00
Josh Gross
d526c0463a Update node-fetch license 2022-02-09 15:54:39 -05:00
Josh Gross
2c946f132f Run npm audit fix 2022-02-09 15:47:54 -05:00
Josh Gross
41e1ab4f53 Merge pull request #235 from thboop/patch-1
Update default runtime to node16
2022-02-09 15:46:20 -05:00
Thomas Boop
d2ed94b14f Update default runtime to node16
Node 12 has an end of life on April 30, 2022.

This PR updates the default runtime to [node16](https://github.blog/changelog/2021-12-10-github-actions-github-hosted-runners-now-run-node-js-16-by-default/), rather then node12. 

This is supported on all Actions Runners v2.285.0 or later.
2022-02-07 14:00:27 -05:00
Josh Gross
e3cbab99d3 Merge pull request #228 from actions/joshmgross/license-updates
Update licenses and use `jonabc/setup-licensed` in workflow
2022-01-07 13:30:24 -05:00
Josh Gross
115b09eedf Update licenses with licensed cache 2022-01-06 14:39:31 -05:00
Josh Gross
df46368761 Use jonabc/setup-licensed in Licensed workflow 2022-01-06 14:39:07 -05:00
Josh Gross
faea5b2adf Merge pull request #216 from PeterNitscheMI/update-plugin-dependencies
update plugin dependencies
2022-01-06 14:26:56 -05:00
PeterNitscheMI
382585067c Update license cache 2021-12-30 21:43:15 +01:00
PeterNitscheMI
7b791155c1 prepare release 2021-11-19 19:20:22 +01:00
PeterNitscheMI
f6f802415c update plugin dependencies 2021-11-19 19:07:40 +01:00
Josh Gross
0c6f007687 Merge pull request #215 from ansgarm/patch-1
fix typo
2021-11-18 11:18:10 -05:00
Ansgar Mertens
b3a068aede fix typo 2021-11-18 13:25:08 +01:00
Josh Gross
00e1b58cd9 Merge pull request #204 from actions/joshmgross/update-dev-deps
Update to latest versions for dev dependencies
2021-10-13 18:02:40 -04:00
Josh Gross
c08c323075 Update to latest versions for dev dependencies 2021-10-12 20:59:24 +00:00
Josh Gross
9bb3853081 Merge pull request #201 from johan-lindqvist/fix-readme-example
docs(readme): fix README example
2021-10-08 13:46:06 -04:00
Johan X Lindqvist
415189ab4b docs(readme): fix README example 2021-10-07 12:30:39 +02:00
Josh Gross
441359b1a3 Merge pull request #193 from actions/joshmgross/v5
Upgrade to the latest version of Octokit
2021-09-24 12:41:56 -04:00
Josh Gross
4e1175c483 Update licenses 2021-09-23 21:22:44 +00:00
Josh Gross
004e46f649 Fix breaking change in workflow test 2021-09-23 21:21:43 +00:00
Josh Gross
5e5d515dc7 Upgrade to the latest version of Octokit 2021-09-23 21:16:55 +00:00
Josh Gross
deb7ae927c Merge pull request #192 from actions/joshmgross/update-minor-deps
Update minor versions of dependencies
2021-09-23 14:44:44 -04:00
Josh Gross
b6ebfda822 Update licenses 2021-09-23 17:01:04 +00:00
Josh Gross
6a0bb322b7 Update minor versions of dependencies 2021-09-23 16:36:42 +00:00
Josh Gross
5d31eecbde Merge pull request #190 from patrick91/patch-1
Make it clear that require is a custom wrapper
2021-09-14 11:25:52 -04:00
Patrick Arminio
282dd6ab09 Make it clear that require is a custom wrapper
Happy to change the wording 😊
2021-09-14 12:39:05 +01:00
Josh Gross
f891eff651 Merge pull request #181 from actions/joshmgross/update-dependencies
Run npm audit and update dev dependencies
2021-08-19 13:52:50 -04:00
Josh Gross
43434074d0 Update dev dependencies 2021-08-19 13:46:23 -04:00
Josh Gross
ab3c97fb6b Run npm audit fix 2021-08-19 13:42:15 -04:00
Josh Gross
e02270e59f Merge pull request #178 from bhavanakonchada/bhavanakonchada-exec
Adding @actions/exec to github-script
2021-08-19 13:37:27 -04:00
Bhavana Konchada
c07f5aaf74 Placed the exe.dep.yml file at the right location 2021-08-12 11:27:26 -07:00
Bhavana Konchada
49d397a538 updated package-lock.json to reflect v2 2021-08-11 15:55:57 -07:00
Bhavana Konchada
6f9b9a87b5 Merge branch 'bhavanakonchada-exec' of https://github.com/bhavanakonchada/github-script into bhavanakonchada-exec 2021-08-11 13:52:35 -07:00
Bhavana Konchada
6456c11da2 Adding @actions/exec
adding @actions/exec

adding @qctions/exec

updated readme.md

Added license file for @actions/exec
2021-08-11 13:51:41 -07:00
Bhavana Konchada
a8325789f1 Added license file for @actions/exec 2021-08-11 13:33:27 -07:00
Bhavana Konchada
771c6ccbd2 updated readme.md 2021-08-11 13:25:28 -07:00
Bhavana Konchada
854d2138dc adding @qctions/exec 2021-08-10 16:29:59 -07:00
Bhavana Konchada
f9d46abb2a adding @actions/exec 2021-08-10 16:29:26 -07:00
Josh Gross
aaceb2cf67 Merge pull request #177 from brcrista/main
Create check-dist.yml
2021-08-10 18:27:53 -04:00
Brian Cristante
5ed343d94b Fix triggers in licensed.yml 2021-08-10 11:20:11 -04:00
Brian Cristante
a7abfdfa4d Add check-dist.yml 2021-08-10 11:20:11 -04:00
Josh Gross
4294354415 Merge pull request #174 from oscard0m/add-cache-to-node-workflows
ci(workflow): add cache to workflows using actions/setup-node
2021-08-03 18:12:58 -04:00
Oscar Dominguez
ecb772f447 ci(workflow): add 'npm' cache for actions/setup-node in .github/workflows 2021-07-18 22:31:39 +02:00
Josh Gross
5fa6e37385 Merge pull request #159 from actions/joshmgross/update-workflows
Update workflows
2021-06-28 14:51:56 -04:00
Josh Gross
936c9d9f72 Update to latest actions 2021-06-28 14:45:32 -04:00
Josh Gross
672319273b Merge pull request #153 from actions/joshmgross/npm-audit
Run `npm audit fix`
2021-06-18 14:02:49 -04:00
Josh Gross
7c21e3730f Run npm audit fix 2021-06-18 13:56:15 -04:00
Josh Gross
787406b248 Merge pull request #152 from actions/joshmgross/add-instructions-for-pat
Add instructions for using a separate GitHub token
2021-06-18 13:53:38 -04:00
Josh Gross
bfb7c2383c Add instructions for using a separate GitHub token 2021-06-10 12:15:08 -04:00
Josh Gross
c32ce148a6 Merge pull request #145 from MichaelDeBoey/patch-1
docs: remove `github-token` usage from examples
2021-06-10 12:04:15 -04:00
Michaël De Boey
cec08706ee docs: remove github-token usage from examples 2021-05-23 01:53:58 +02:00
59 changed files with 43826 additions and 19261 deletions

View File

@@ -5,9 +5,12 @@ extends:
- eslint:recommended
- plugin:@typescript-eslint/eslint-recommended
- plugin:@typescript-eslint/recommended
- prettier/@typescript-eslint
- prettier
parserOptions:
project: ['tsconfig.eslint.json']
rules:
# '@typescript-eslint/explicit-function-return-type': 0
'@typescript-eslint/no-use-before-define':
- 2
- functions: false
'@typescript-eslint/no-unnecessary-condition': error

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Ask a question or provide feedback about using this action
about: For general Q&A and feedback, see the Discussions tab.
url: https://github.com/actions/github-script/discussions
- name: Ask a question or provide feedback about GitHub Actions
about: Please check out the GitHub community forum for discussions about GitHub Actions
url: https://github.com/orgs/community/discussions/categories/actions

View File

@@ -0,0 +1,12 @@
name: 'Install dependencies'
description: 'Set up node and install dependencies'
runs:
using: 'composite'
steps:
- uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: npm
- run: npm ci
shell: bash

16
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
- package-ecosystem: 'github-actions'
directory: '/.github/actions/install-dependencies'
schedule:
interval: 'weekly'
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'weekly'

45
.github/workflows/check-dist.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
# `dist/index.js` is a special file in Actions.
# When you reference an action with `uses:` in a workflow,
# `index.js` is the code that will run.
# For our project, we generate this file through a build process
# from other source files.
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
name: Check dist/
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
check-dist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- name: Rebuild the dist/ directory
run: npm run build
- name: Compare the expected and actual dist/ directories
run: |
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
echo "Detected uncommitted changes after build. See status below:"
git diff
exit 1
fi
id: diff
# If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v4
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with:
name: dist
path: dist/

View File

@@ -1,21 +1,19 @@
name: CI
on:
push: {branches: main}
pull_request: {branches: main}
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with: {node-version: 13.x}
- uses: actions/cache@v1
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- run: npm run style:check
- run: npm test

72
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '32 12 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@@ -1,14 +1,20 @@
name: Integration
on:
push: {branches: main}
pull_request: {branches: main}
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
test-return:
name: 'Integration test: return'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- id: output-set
uses: ./
with:
@@ -16,42 +22,307 @@ jobs:
result-encoding: string
input-value: output
- run: |
if [[ "${{steps.output-set.outputs.result}}" != "output" ]]; then
echo "- Validating output is produced"
expected="output"
if [[ "${{steps.output-set.outputs.result}}" != "$expected" ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.output-set.outputs.result}}"
exit 1
fi
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-relative-require:
name: 'Integration test: relative-path require'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- id: output-set
- uses: actions/checkout@v4
- id: relative-require
uses: ./
with:
script: return require('./package.json').name
result-encoding: string
input-value: output
- run: |
if [[ "${{steps.output-set.outputs.result}}" != "github-script" ]]; then
echo "- Validating relative require output"
if [[ "${{steps.relative-require.outputs.result}}" != "@actions/github-script" ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.relative-require.outputs.result}}"
exit 1
fi
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-npm-require:
name: 'Integration test: npm package require'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v1
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- id: output-set
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- id: npm-require
uses: ./
with:
script: return require('@actions/core/package.json').name
result-encoding: string
input-value: output
- run: |
if [[ "${{steps.output-set.outputs.result}}" != "@actions/core" ]]; then
echo "- Validating npm require output"
expected="@actions/core"
if [[ "${{steps.npm-require.outputs.result}}" != "$expected" ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.npm-require.outputs.result}}"
exit 1
fi
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-previews:
name: 'Integration test: GraphQL previews option'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- id: previews-default
name: Default previews not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).headers.accept
result-encoding: string
- id: previews-set-single
name: Previews set to a single value
uses: ./
with:
previews: foo
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).headers.accept
result-encoding: string
- id: previews-set-multiple
name: Previews set to comma-separated list
uses: ./
with:
previews: foo,bar,baz
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).headers.accept
result-encoding: string
- run: |
echo "- Validating previews default"
expected="application/vnd.github.v3+json"
if [[ "${{steps.previews-default.outputs.result}}" != $expected ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.previews-default.outputs.result}}"
exit 1
fi
echo "- Validating previews set to a single value"
expected="application/vnd.github.foo-preview+json"
if [[ "${{steps.previews-set-single.outputs.result}}" != $expected ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.previews-set-single.outputs.result}}"
exit 1
fi
echo "- Validating previews set to multiple values"
expected="application/vnd.github.foo-preview+json,application/vnd.github.bar-preview+json,application/vnd.github.baz-preview+json"
if [[ "${{steps.previews-set-multiple.outputs.result}}" != $expected ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.previews-set-multiple.outputs.result}}"
exit 1
fi
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-user-agent:
name: 'Integration test: user-agent option'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- id: user-agent-default
name: Default user-agent not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({}).headers['user-agent']
result-encoding: string
- id: user-agent-set
name: User-agent set
uses: ./
with:
user-agent: foobar
script: |
const endpoint = github.request.endpoint
return endpoint({}).headers['user-agent']
result-encoding: string
- id: user-agent-empty
name: User-agent set to an empty string
uses: ./
with:
user-agent: ''
script: |
const endpoint = github.request.endpoint
return endpoint({}).headers['user-agent']
result-encoding: string
- run: |
echo "- Validating user-agent default"
expected="actions/github-script octokit-core.js/"
if [[ "${{steps.user-agent-default.outputs.result}}" != "$expected"* ]]; then
echo $'::error::\u274C' "Expected user-agent to start with '$expected', got ${{steps.user-agent-default.outputs.result}}"
exit 1
fi
echo "- Validating user-agent set to a value"
expected="foobar octokit-core.js/"
if [[ "${{steps.user-agent-set.outputs.result}}" != "$expected"* ]]; then
echo $'::error::\u274C' "Expected user-agent to start with '$expected', got ${{steps.user-agent-set.outputs.result}}"
exit 1
fi
echo "- Validating user-agent set to an empty string"
expected="octokit-core.js/"
if [[ "${{steps.user-agent-empty.outputs.result}}" != "$expected"* ]]; then
echo $'::error::\u274C' "Expected user-agent to start with '$expected', got ${{steps.user-agent-empty.outputs.result}}"
exit 1
fi
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-debug:
strategy:
matrix:
environment: ['', 'debug-integration-test']
environment: ${{ matrix.environment }}
name: "Integration test: debug option (runner.debug mode ${{ matrix.environment && 'enabled' || 'disabled' }})"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- id: debug-default
name: Default debug not set
uses: ./
with:
script: |
const log = github.log
return {
runnerDebugMode: core.isDebug(),
debug: log.debug === console.debug,
info: log.info === console.info
}
- id: debug-true
name: Debug set to true
uses: ./
with:
debug: true
script: |
const log = github.log
return {
runnerDebugMode: core.isDebug(),
debug: log.debug === console.debug,
info: log.info === console.info
}
- id: debug-false
name: Debug set to false
uses: ./
with:
debug: false
script: |
const log = github.log
return {
runnerDebugMode: core.isDebug(),
debug: log.debug === console.debug,
info: log.info === console.info
}
- id: evaluate-tests
name: Evaluate test outputs
env:
RDMODE: ${{ runner.debug == '1' }}
run: |
# tests table, pipe separated: label | output | expected
# leading and trailing spaces on any field are trimmed
tests=$(cat << 'TESTS'
Validating debug default |\
${{ steps.debug-default.outputs.result }} |\
{"runnerDebugMode":${{ env.RDMODE }},"debug":${{ env.RDMODE }},"info":${{ env.RDMODE }}}
Validating debug set to true |\
${{ steps.debug-true.outputs.result }} |\
{"runnerDebugMode":${{ env.RDMODE }},"debug":true,"info":true}
Validating debug set to false |\
${{ steps.debug-false.outputs.result }} |\
{"runnerDebugMode":${{ env.RDMODE }},"debug":false,"info":false}
TESTS
)
strim() { shopt -s extglob; lt="${1##+( )}"; echo "${lt%%+( )}"; }
while IFS='|' read label output expected; do
label="$(strim "$label")"; output="$(strim "$output")"; expected="$(strim "$expected")"
echo -n "- $label:"
if [[ "$output" != "$expected" ]]; then
echo $'\n::error::\u274C' "Expected '$expected', got '$output'"
exit 1
fi
echo $' \u2705'
done <<< "$tests"
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-base-url:
name: 'Integration test: base-url option'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
- id: base-url-default
name: API URL with base-url not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({}).url
result-encoding: string
- id: base-url-default-graphql
name: GraphQL URL with base-url not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).url
result-encoding: string
- id: base-url-set
name: API URL with base-url set
uses: ./
with:
base-url: https://my.github-enterprise-server.com/api/v3
script: |
const endpoint = github.request.endpoint
return endpoint({}).url
result-encoding: string
- id: base-url-set-graphql
name: GraphQL URL with base-url set
uses: ./
with:
base-url: https://my.github-enterprise-server.com/api/v3
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).url
result-encoding: string
- run: |
echo "- Validating API URL default"
expected="https://api.github.com/"
actual="${{steps.base-url-default.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
echo "- Validating GraphQL URL default"
expected="https://api.github.com/graphql"
actual="${{steps.base-url-default-graphql.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
echo "- Validating base-url set to a value"
expected="https://my.github-enterprise-server.com/api/v3/"
actual="${{steps.base-url-set.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
echo "- Validating GraphQL URL with base-url set to a value"
expected="https://my.github-enterprise-server.com/api/v3/graphql"
actual="${{steps.base-url-set-graphql.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi

View File

@@ -1,27 +1,30 @@
name: Licensed
on:
push: {branches: main}
pull_request: {branches: main}
repository_dispatch:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
name: Check licenses
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v1
- uses: actions/checkout@v4
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- name: Install licensed
run: |-
cd $RUNNER_TEMP
curl -Lfs -o licensed.tar.gz https://github.com/github/licensed/releases/download/2.9.2/licensed-2.9.2-linux-x64.tar.gz
sudo tar -xzf licensed.tar.gz
sudo mv licensed /usr/local/bin/licensed
fetch-depth: 0 # prefer to use a full fetch for licensed workflows
- uses: ruby/setup-ruby@28c4deda893d5a96a6b2d958c5b47fc18d65c9d3 # v1.213.0
with:
ruby-version: ruby
- uses: github/setup-licensed@v1
with:
version: '4.x'
github_token: ${{ secrets.GITHUB_TOKEN }}
- uses: ./.github/actions/install-dependencies
- run: licensed status

View File

@@ -0,0 +1,20 @@
name: 'Publish Immutable Action Version'
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
steps:
- name: Checking out
uses: actions/checkout@v4
- name: Publish
id: publish
uses: actions/publish-immutable-action@0.0.4

View File

@@ -2,40 +2,44 @@ name: Pull Request Test
on:
pull_request:
branches: main
branches: [main]
types: [opened, synchronize]
permissions:
contents: read
pull-requests: write
jobs:
pull-request-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: ./
with:
script: |
// Get the existing comments.
const {data: comments} = await github.issues.listComments({
const {data: comments} = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.number,
})
// Find any comment already made by the bot.
const botComment = comments.find(comment => comment.user.id === 41898282)
const commentBody = "Hello from actions/github-script! (${{ github.sha }})"
// Find any comment already made by the bot.
const botComment = comments.find(comment => comment.user.id === 41898282)
const commentBody = "Hello from actions/github-script! (${{ github.sha }})"
if (context.payload.pull_request.head.repo.full_name !== 'actions/github-script') {
console.log('Not attempting to write comment on PR from fork');
} else {
if (botComment) {
await github.issues.updateComment({
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: commentBody
})
} else {
await github.issues.createComment({
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.number,

View File

@@ -1,31 +0,0 @@
name: Stale Issues & PRs
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
mark_stale:
name: Mark issues and PRs as stale
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-labels: Not Stale
exempt-pr-labels: Not Stale
stale-issue-message: >
This issue is stale because it has been open for 60 days with no
activity. Remove the "Stale" label or comment on the issue, or it
will be closed in 7 days.
stale-pr-message: >
This pull request is stale because it has been open for 60 days
with no activity. Remove the "Stale" label or comment on the pull
request, or it will be closed in 7 days.
close-issue-message: >
This issue has been marked as stale and closed due to no activity
on it.
close-pr-message: >
This pull request has been marked as stale and closed due to no
activity on it.

3
.gitignore vendored
View File

@@ -1,2 +1 @@
/node_modules/
!/.vscode/
/node_modules/

1
.husky/pre-commit Executable file
View File

@@ -0,0 +1 @@
npm run pre-commit && git add dist/

View File

@@ -1,6 +1,6 @@
---
name: "@actions/core"
version: 1.2.7
version: 1.10.1
type: npm
summary: Actions core lib
homepage: https://github.com/actions/toolkit/tree/main/packages/core

20
.licenses/npm/@actions/exec.dep.yml generated Normal file
View File

@@ -0,0 +1,20 @@
---
name: "@actions/exec"
version: 1.1.1
type: npm
summary: Actions exec lib
homepage: https://github.com/actions/toolkit/tree/main/packages/exec
license: mit
licenses:
- sources: LICENSE.md
text: |-
The MIT License (MIT)
Copyright 2019 GitHub
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
notices: []

View File

@@ -1,30 +1,20 @@
---
name: "@actions/github"
version: 4.0.0
version: 6.0.0
type: npm
summary: Actions github lib
homepage: https://github.com/actions/toolkit/tree/master/packages/github
homepage: https://github.com/actions/toolkit/tree/main/packages/github
license: mit
licenses:
- sources: Auto-generated MIT license text
text: |
MIT License
- sources: LICENSE.md
text: |-
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Copyright 2019 GitHub
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
notices: []

View File

@@ -1,6 +1,6 @@
---
name: "@actions/glob"
version: 0.1.1
version: 0.4.0
type: npm
summary: Actions glob lib
homepage: https://github.com/actions/toolkit/tree/main/packages/glob

View File

@@ -1,9 +1,9 @@
---
name: "@actions/http-client"
version: 1.0.8
version: 2.2.0
type: npm
summary: Actions Http Client
homepage: https://github.com/actions/http-client#readme
homepage: https://github.com/actions/toolkit/tree/main/packages/http-client
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,30 +1,20 @@
---
name: "@actions/io"
version: 1.0.2
version: 1.1.3
type: npm
summary: Actions io lib
homepage: https://github.com/actions/toolkit/tree/master/packages/io
homepage: https://github.com/actions/toolkit/tree/main/packages/io
license: mit
licenses:
- sources: Auto-generated MIT license text
text: |
MIT License
- sources: LICENSE.md
text: |-
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Copyright 2019 GitHub
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
notices: []

30
.licenses/npm/@fastify/busboy.dep.yml generated Normal file
View File

@@ -0,0 +1,30 @@
---
name: "@fastify/busboy"
version: 2.0.0
type: npm
summary: A streaming parser for HTML form data for node.js
homepage:
license: mit
licenses:
- sources: LICENSE
text: |-
Copyright Brian White. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
notices: []

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/auth-token"
version: 2.4.3
version: 4.0.0
type: npm
summary: GitHub API token authentication for browsers and Node.js
homepage: https://github.com/octokit/auth-token.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/core"
version: 3.2.1
version: 5.0.1
type: npm
summary: Extendable client for GitHub's REST & GraphQL APIs
homepage: https://github.com/octokit/core.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/endpoint"
version: 6.0.9
version: 9.0.0
type: npm
summary: Turns REST API endpoints into generic request options
homepage: https://github.com/octokit/endpoint.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/graphql"
version: 4.5.7
version: 7.0.1
type: npm
summary: GitHub GraphQL API client for browsers and Node
homepage: https://github.com/octokit/graphql.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -0,0 +1,20 @@
---
name: "@octokit/openapi-types"
version: 18.0.0
type: npm
summary: Generated TypeScript definitions based on GitHub's OpenAPI spec for api.github.com
homepage:
license: mit
licenses:
- sources: LICENSE
text: |-
Copyright 2020 Gregor Martynus
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- sources: README.md
text: "[MIT](LICENSE)"
notices: []

View File

@@ -0,0 +1,20 @@
---
name: "@octokit/openapi-types"
version: 19.0.0
type: npm
summary: Generated TypeScript definitions based on GitHub's OpenAPI spec for api.github.com
homepage:
license: mit
licenses:
- sources: LICENSE
text: |-
Copyright 2020 Gregor Martynus
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- sources: README.md
text: "[MIT](LICENSE)"
notices: []

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/plugin-paginate-rest"
version: 2.6.0
version: 9.0.0
type: npm
summary: Octokit plugin to paginate REST API endpoint responses
homepage: https://github.com/octokit/plugin-paginate-rest.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -0,0 +1,20 @@
---
name: "@octokit/plugin-request-log"
version: 4.0.0
type: npm
summary: Log all requests and request errors
homepage:
license: mit
licenses:
- sources: LICENSE
text: |
MIT License Copyright (c) 2020 Octokit contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- sources: README.md
text: "[MIT](LICENSE)"
notices: []

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/plugin-rest-endpoint-methods"
version: 4.2.1
version: 10.0.1
type: npm
summary: Octokit plugin adding one method for all of api.github.com REST API endpoints
homepage: https://github.com/octokit/plugin-rest-endpoint-methods.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -0,0 +1,34 @@
---
name: "@octokit/plugin-retry"
version: 6.0.1
type: npm
summary: Automatic retry plugin for octokit
homepage:
license: mit
licenses:
- sources: LICENSE
text: |
MIT License
Copyright (c) 2018 Octokit contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- sources: README.md
text: "[MIT](LICENSE)"
notices: []

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/request-error"
version: 2.0.3
version: 5.0.0
type: npm
summary: Error class for Octokit request errors
homepage: https://github.com/octokit/request-error.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,10 +1,10 @@
---
name: "@octokit/request"
version: 5.4.10
version: 8.1.1
type: npm
summary: Send parameterized requests to GitHubs APIs with sensible defaults in browsers
summary: Send parameterized requests to GitHub's APIs with sensible defaults in browsers
and Node
homepage: https://github.com/octokit/request.js#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,9 +1,9 @@
---
name: "@octokit/types"
version: 5.5.0
version: 11.1.0
type: npm
summary: Shared TypeScript definitions for Octokit projects
homepage: https://github.com/octokit/types.ts#readme
homepage:
license: mit
licenses:
- sources: LICENSE

View File

@@ -0,0 +1,20 @@
---
name: "@octokit/types"
version: 12.0.0
type: npm
summary: Shared TypeScript definitions for Octokit projects
homepage:
license: mit
licenses:
- sources: LICENSE
text: |
MIT License Copyright (c) 2019 Octokit contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- sources: README.md
text: "[MIT](LICENSE)"
notices: []

View File

@@ -1,9 +1,9 @@
---
name: "@types/node"
version: 14.6.0
version: 20.9.0
type: npm
summary: TypeScript definitions for Node.js
homepage: https://github.com/DefinitelyTyped/DefinitelyTyped#readme
summary: TypeScript definitions for node
homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
license: mit
licenses:
- sources: LICENSE

View File

@@ -1,6 +1,6 @@
---
name: before-after-hook
version: 2.1.0
version: 2.2.2
type: npm
summary: asynchronous before/error/after hooks for internal functionality
homepage: https://github.com/gr2m/before-after-hook#readme

31
.licenses/npm/bottleneck.dep.yml generated Normal file
View File

@@ -0,0 +1,31 @@
---
name: bottleneck
version: 2.19.5
type: npm
summary: Distributed task scheduler and rate limiter
homepage:
license: mit
licenses:
- sources: LICENSE
text: |
The MIT License (MIT)
Copyright (c) 2014 Simon Grondin
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
notices: []

View File

@@ -1,9 +1,9 @@
---
name: minimatch
version: 3.0.4
version: 3.1.2
type: npm
summary: a glob matcher in javascript
homepage: https://github.com/isaacs/minimatch#readme
homepage:
license: isc
licenses:
- sources: LICENSE

View File

@@ -1,56 +0,0 @@
---
name: node-fetch
version: 2.6.1
type: npm
summary: A light-weight module that brings window.fetch to node.js
homepage: https://github.com/bitinn/node-fetch
license: mit
licenses:
- sources: LICENSE.md
text: |+
The MIT License (MIT)
Copyright (c) 2016 David Frank
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- sources: README.md
text: |-
MIT
[npm-image]: https://flat.badgen.net/npm/v/node-fetch
[npm-url]: https://www.npmjs.com/package/node-fetch
[travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch
[travis-url]: https://travis-ci.org/bitinn/node-fetch
[codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master
[codecov-url]: https://codecov.io/gh/bitinn/node-fetch
[install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch
[install-size-url]: https://packagephobia.now.sh/result?p=node-fetch
[discord-image]: https://img.shields.io/discord/619915844268326952?color=%237289DA&label=Discord&style=flat-square
[discord-url]: https://discord.gg/Zxbndcm
[opencollective-image]: https://opencollective.com/node-fetch/backers.svg
[opencollective-url]: https://opencollective.com/node-fetch
[whatwg-fetch]: https://fetch.spec.whatwg.org/
[response-init]: https://fetch.spec.whatwg.org/#responseinit
[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams
[mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers
[LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md
[ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md
[UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md
notices: []

30
.licenses/npm/undici-types.dep.yml generated Normal file
View File

@@ -0,0 +1,30 @@
---
name: undici-types
version: 5.26.5
type: npm
summary: A stand-alone types package for Undici
homepage: https://undici.nodejs.org
license: mit
licenses:
- sources: Auto-generated MIT license text
text: |
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
notices: []

34
.licenses/npm/undici.dep.yml generated Normal file
View File

@@ -0,0 +1,34 @@
---
name: undici
version: 5.28.5
type: npm
summary: An HTTP/1.1 client, written from scratch for Node.js
homepage: https://undici.nodejs.org
license: mit
licenses:
- sources: LICENSE
text: |
MIT License
Copyright (c) Matteo Collina and Undici contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- sources: README.md
text: MIT
notices: []

View File

@@ -4,7 +4,7 @@ version: 6.0.0
type: npm
summary: Get a user agent string in both browser and node
homepage: https://github.com/gr2m/universal-user-agent#readme
license: other
license: isc
licenses:
- sources: LICENSE.md
text: |

20
.licenses/npm/uuid.dep.yml generated Normal file
View File

@@ -0,0 +1,20 @@
---
name: uuid
version: 8.3.2
type: npm
summary: RFC4122 (v1, v4, and v5) UUIDs
homepage:
license: mit
licenses:
- sources: LICENSE.md
text: |
The MIT License (MIT)
Copyright (c) 2010-2020 Robert Kieffer and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
notices: []

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
engine-strict=true

10
.vscode/settings.json vendored
View File

@@ -1,10 +0,0 @@
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"files.exclude": {
"**/dist": true,
"**/node_modules": true
}
}

View File

@@ -1 +1 @@
* @actions/actions-experience
* @actions/actions-launch

236
README.md
View File

@@ -1,23 +1,23 @@
# actions/github-script
[![.github/workflows/integration.yml](https://github.com/actions/github-script/workflows/Integration/badge.svg?event=push&branch=main)](https://github.com/actions/github-script/actions?query=workflow%3AIntegration+branch%3Amain+event%3Apush)
[![.github/workflows/ci.yml](https://github.com/actions/github-script/workflows/CI/badge.svg?event=push&branch=main)](https://github.com/actions/github-script/actions?query=workflow%3ACI+branch%3Amain+event%3Apush)
[![.github/workflows/licensed.yml](https://github.com/actions/github-script/workflows/Licensed/badge.svg?event=push&branch=main)](https://github.com/actions/github-script/actions?query=workflow%3ALicensed+branch%3Amain+event%3Apush)
[![Integration](https://github.com/actions/github-script/actions/workflows/integration.yml/badge.svg?branch=main&event=push)](https://github.com/actions/github-script/actions/workflows/integration.yml)
[![CI](https://github.com/actions/github-script/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/actions/github-script/actions/workflows/ci.yml)
[![Licensed](https://github.com/actions/github-script/actions/workflows/licensed.yml/badge.svg?branch=main&event=push)](https://github.com/actions/github-script/actions/workflows/licensed.yml)
This action makes it easy to quickly write a script in your workflow that
uses the GitHub API and the workflow run context.
In order to use this action, a `script` input is provided. The value of that
input should be the body of an asynchronous function call. The following
arguments will be provided:
To use this action, provide an input named `script` that contains the body of an asynchronous JavaScript function call.
The following arguments will be provided:
- `github` A pre-authenticated
[octokit/rest.js](https://octokit.github.io/rest.js) client with pagination plugins
- `octokit` (and `github`) A pre-authenticated
[octokit/rest.js](https://octokit.github.io/rest.js) client _instance_ with pagination plugins
- `context` An object containing the [context of the workflow
run](https://github.com/actions/toolkit/blob/main/packages/github/src/context.ts)
- `core` A reference to the [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) package
- `glob` A reference to the [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) package
- `io` A reference to the [@actions/io](https://github.com/actions/toolkit/tree/main/packages/io) package
- `exec` A reference to the [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec) package
- `require` A proxy wrapper around the normal Node.js `require` to enable
requiring relative paths (relative to the current working directory) and
requiring npm packages installed in the current working directory. If for
@@ -26,13 +26,34 @@ arguments will be provided:
our wrapping applied.
Since the `script` is just a function body, these values will already be
defined, so you don't have to (see examples below).
defined, so you don't have to import them (see examples below).
See [octokit/rest.js](https://octokit.github.io/rest.js/) for the API client
documentation.
**Note** This action is still a bit of an experiment—the API may change in
future versions. 🙂
## Breaking Changes
### V7
Version 7 of this action updated the runtime to Node 20 - https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-javascript-actions
All scripts are now run with Node 20 instead of Node 16 and are affected by any breaking changes between Node 16 and 20
The `previews` input now only applies to GraphQL API calls as REST API previews are no longer necessary - https://github.blog/changelog/2021-10-14-rest-api-preview-promotions/.
### V6
Version 6 of this action updated the runtime to Node 16 - https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-javascript-actions
All scripts are now run with Node 16 instead of Node 12 and are affected by any breaking changes between Node 12 and 16.
### V5
Version 5 of this action includes the version 5 of `@actions/github` and `@octokit/plugin-rest-endpoint-methods`. As part of this update, the Octokit context available via `github` no longer has REST methods directly. These methods are available via `github.rest.*` - https://github.com/octokit/plugin-rest-endpoint-methods.js/releases/tag/v5.0.0
For example, `github.issues.createComment` in V4 becomes `github.rest.issues.createComment` in V5
`github.request`, `github.paginate`, and `github.graphql` are unchanged.
## Development
@@ -44,7 +65,7 @@ The return value of the script will be in the step's outputs under the
"result" key.
```yaml
- uses: actions/github-script@v4
- uses: actions/github-script@v7
id: set-result
with:
script: return "Hello!"
@@ -63,14 +84,54 @@ output of a github-script step. For some workflows, string encoding is preferred
`result-encoding` input:
```yaml
- uses: actions/github-script@v4
- uses: actions/github-script@v7
id: my-script
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: string
script: return "I will be string (not JSON) encoded!"
```
## Retries
By default, requests made with the `github` instance will not be retried. You can configure this with the `retries` option:
```yaml
- uses: actions/github-script@v7
id: my-script
with:
result-encoding: string
retries: 3
script: |
octokit.rest.issues.get({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
})
```
In this example, request failures from `octokit.rest.issues.get()` will be retried up to 3 times.
You can also configure which status codes should be exempt from retries via the `retry-exempt-status-codes` option:
```yaml
- uses: actions/github-script@v7
id: my-script
with:
result-encoding: string
retries: 3
retry-exempt-status-codes: 400,401
script: |
octokit.rest.issues.get({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
})
```
By default, the following status codes will not be retried: `400, 401, 403, 404, 422` [(source)](https://github.com/octokit/plugin-retry.js/blob/9a2443746c350b3beedec35cf26e197ea318a261/src/index.ts#L14).
These retries are implemented using the [octokit/plugin-retry.js](https://github.com/octokit/plugin-retry.js) plugin. The retries use [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff) to space out retries. ([source](https://github.com/octokit/plugin-retry.js/blob/9a2443746c350b3beedec35cf26e197ea318a261/src/error-request.ts#L13))
## Examples
Note that `github-token` is optional in this action, and the input is there
@@ -82,7 +143,7 @@ By default, github-script will use the token provided to your workflow.
```yaml
- name: View context attributes
uses: actions/github-script@v4
uses: actions/github-script@v7
with:
script: console.log(context)
```
@@ -98,11 +159,10 @@ jobs:
comment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.createComment({
octokit.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
@@ -121,11 +181,10 @@ jobs:
apply-label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.addLabels({
octokit.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
@@ -135,26 +194,27 @@ jobs:
### Welcome a first-time contributor
You can format text in comments using the same [Markdown syntax](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) as the GitHub web interface:
```yaml
on: pull_request
on: pull_request_target
jobs:
welcome:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
// Get a list of all issues created by the PR opener
// See: https://octokit.github.io/rest.js/#pagination
const creator = context.payload.sender.login
const opts = github.issues.listForRepo.endpoint.merge({
const opts = octokit.rest.issues.listForRepo.endpoint.merge({
...context.issue,
creator,
state: 'all'
})
const issues = await github.paginate(opts)
const issues = await octokit.paginate(opts)
for (const issue of issues) {
if (issue.number === context.issue.number) {
@@ -166,11 +226,13 @@ jobs:
}
}
await github.issues.createComment({
await octokit.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Welcome, new contributor!'
body: `**Welcome**, new contributor!
Please make sure you've read our [contributing guide](CONTRIBUTING.md) and we look forward to reviewing your Pull request shortly ✨`
})
```
@@ -186,12 +248,11 @@ jobs:
diff:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const diff_url = context.payload.pull_request.diff_url
const result = await github.request(diff_url)
const result = await octokit.request(diff_url)
console.log(result)
```
@@ -211,9 +272,8 @@ jobs:
list-issues:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const query = `query($owner:String!, $name:String!, $label:String!) {
repository(owner:$owner, name:$name){
@@ -229,7 +289,7 @@ jobs:
name: context.repo.repo,
label: 'wontfix'
}
const result = await github.graphql(query, variables)
const result = await octokit.graphql(query, variables)
console.log(result)
```
@@ -245,18 +305,18 @@ jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/github-script@v4
- uses: actions/checkout@v4
- uses: actions/github-script@v7
with:
script: |
const script = require('./path/to/script.js')
console.log(script({github, context}))
console.log(script({octokit, context}))
```
And then export a function from your module:
```javascript
module.exports = ({github, context}) => {
module.exports = ({octokit, context}) => {
return context.payload.client_payload.value
}
```
@@ -283,22 +343,22 @@ jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/github-script@v4
- uses: actions/checkout@v4
- uses: actions/github-script@v7
env:
SHA: '${{env.parentSHA}}'
with:
script: |
const script = require('./path/to/script.js')
await script({github, context, core})
await script({octokit, context, core})
```
And then export an async function from your module:
```javascript
module.exports = async ({github, context, core}) => {
module.exports = async ({octokit, context, core}) => {
const {SHA} = process.env
const commit = await github.repos.getCommit({
const commit = await octokit.rest.repos.getCommit({
owner: context.repo.owner,
repo: context.repo.repo,
ref: `${SHA}`
@@ -309,7 +369,10 @@ module.exports = async ({github, context, core}) => {
### Use npm packages
Like importing your own files above, you can also use installed modules:
Like importing your own files above, you can also use installed modules.
Note that this is achieved with a wrapper on top `require`, so if you're
trying to require a module inside your own file, you might need to import
it externally or pass the `require` wrapper to your file:
```yaml
on: push
@@ -318,14 +381,14 @@ jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 14
node-version: '20.x'
- run: npm ci
# or one-off:
- run: npm install execa
- uses: actions/github-script@v4
- uses: actions/github-script@v7
with:
script: |
const execa = require('execa')
@@ -335,6 +398,52 @@ jobs:
console.log(stdout)
```
### Use ESM `import`
To import an ESM file, you'll need to reference your script by an absolute path and ensure you have a `package.json` file with `"type": "module"` specified.
For a script in your repository `src/print-stuff.js`:
```js
export default function printStuff() {
console.log('stuff')
}
```
```yaml
on: push
jobs:
print-stuff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/github-script@v7
with:
script: |
const { default: printStuff } = await import('${{ github.workspace }}/src/print-stuff.js')
await printStuff()
```
### Use scripts with jsDoc support
If you want type support for your scripts, you could use the command below to install the
`@actions/github-script` type declaration.
```sh
$ npm i -D @actions/github-script@github:actions/github-script
```
And then add the `jsDoc` declaration to your script like this:
```js
// @ts-check
/** @param {import('@actions/github-script').AsyncFunctionArguments} AsyncFunctionArguments */
export default async ({ core, context }) => {
core.debug("Running something at the moment");
return context.actor;
};
```
### Use env as input
You can set env vars to use them in your script:
@@ -346,7 +455,7 @@ jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v7
env:
FIRST_NAME: Mona
LAST_NAME: Octocat
@@ -356,3 +465,32 @@ jobs:
console.log(`Hello ${FIRST_NAME} ${LAST_NAME}`)
```
### Using a separate GitHub token
The `GITHUB_TOKEN` used by default is scoped to the current repository, see [Authentication in a workflow](https://docs.github.com/actions/reference/authentication-in-a-workflow).
If you need access to a different repository or an API that the `GITHUB_TOKEN` doesn't have permissions to, you can provide your own [PAT](https://help.github.com/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) as a secret using the `github-token` input.
[Learn more about creating and using encrypted secrets](https://docs.github.com/actions/reference/encrypted-secrets)
```yaml
on:
issues:
types: [opened]
jobs:
apply-label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
github-token: ${{ secrets.MY_PAT }}
script: |
octokit.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['Triage']
})
```

View File

@@ -0,0 +1,69 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import {getRetryOptions} from '../src/retry-options'
describe('getRequestOptions', () => {
test('retries disabled if retries == 0', async () => {
const [retryOptions, requestOptions] = getRetryOptions(
0,
[400, 500, 502],
[]
)
expect(retryOptions.enabled).toBe(false)
expect(retryOptions.doNotRetry).toBeFalsy()
expect(requestOptions?.retries).toBeFalsy()
})
test('properties set if retries > 0', async () => {
const [retryOptions, requestOptions] = getRetryOptions(
1,
[400, 500, 502],
[]
)
expect(retryOptions.enabled).toBe(true)
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
expect(requestOptions?.retries).toEqual(1)
})
test('properties set if retries > 0', async () => {
const [retryOptions, requestOptions] = getRetryOptions(
1,
[400, 500, 502],
[]
)
expect(retryOptions.enabled).toBe(true)
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
expect(requestOptions?.retries).toEqual(1)
})
test('retryOptions.doNotRetry not set if exemptStatusCodes isEmpty', async () => {
const [retryOptions, requestOptions] = getRetryOptions(1, [], [])
expect(retryOptions.enabled).toBe(true)
expect(retryOptions.doNotRetry).toBeUndefined()
expect(requestOptions?.retries).toEqual(1)
})
test('requestOptions does not override defaults from @actions/github', async () => {
const [retryOptions, requestOptions] = getRetryOptions(1, [], {
request: {
agent: 'default-user-agent'
},
foo: 'bar'
})
expect(retryOptions.enabled).toBe(true)
expect(retryOptions.doNotRetry).toBeUndefined()
expect(requestOptions?.retries).toEqual(1)
expect(requestOptions?.agent).toEqual('default-user-agent')
expect(requestOptions?.foo).toBeUndefined() // this should not be in the `options.request` object, but at the same level as `request`
})
})

View File

@@ -13,19 +13,28 @@ inputs:
default: ${{ github.token }}
required: false
debug:
description: Whether to tell the GitHub client to log details of its requests
default: false
description: Whether to tell the GitHub client to log details of its requests. true or false. Default is to run in debug mode when the GitHub Actions step debug logging is turned on.
default: ${{ runner.debug == '1' }}
user-agent:
description: An optional user-agent string
default: actions/github-script
previews:
description: A comma-separated list of API previews to accept
description: A comma-separated list of GraphQL API previews to accept
result-encoding:
description: Either "string" or "json" (default "json")—how the result will be encoded
description: Either "string" or "json" (default "json")—how the result will be encoded
default: json
retries:
description: The number of times to retry a request
default: "0"
retry-exempt-status-codes:
description: A comma separated list of status codes that will NOT be retried e.g. "400,500". No effect unless `retries` is set
default: 400,401,403,404,422 # from https://github.com/octokit/plugin-retry.js/blob/9a2443746c350b3beedec35cf26e197ea318a261/src/index.ts#L14
base-url:
description: An optional GitHub REST API URL to connect to a different GitHub instance. For example, https://my.github-enterprise-server.com/api/v3
required: false
outputs:
result:
description: The return value of the script, stringified with `JSON.stringify`
runs:
using: node12
using: node20
main: dist/index.js

43004
dist/index.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -25,4 +25,4 @@ Releases are done manually, for now:
1. Ensure that the build is up to date with `npm run build`. It's also good to ensure you have the correct dependencies installed by running `npm install` before you build.
1. Bump the [package.json](/package.json#L3) and [package-lock.json](/package-lock.json#L3) version numbers and commit them. I like to do this with `npm version {major,minor,patch} --no-git-tag-version`. This will bump the version numbers but let you manually commit and tag, yourself.
1. Update documentation (including updated version numbers).
1. Tag main with the new version number and create a GitHub release. Make sure you also force-create and force-push tags for minor and patch updates. For example, when creating v5.1.0 (a minor bump), you want to create (or update) `v5`, `v5.1`, and `v5.1.0`.
1. Tag main with the new version number and create a GitHub release. Make sure you also force-create and force-push tags for minor and patch updates. For example, when creating v5.2.0 (a minor bump), you want to create (or update) `v5`, `v5.2`, and `v5.2.0`.

18494
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,60 +1,67 @@
{
"name": "github-script",
"name": "@actions/github-script",
"description": "A GitHub action for executing a simple script",
"version": "4.0.2",
"version": "7.0.1",
"author": "GitHub",
"license": "MIT",
"main": "dist/index.js",
"types": "types/async-function.d.ts",
"private": true,
"engines": {
"node": ">=20.0.0 <21.0.0"
},
"scripts": {
"build": "ncc build src/main.ts",
"build": "npm run build:types && ncc build src/main.ts",
"build:types": "tsc src/async-function.ts -t es5 --declaration --allowJs --emitDeclarationOnly --outDir types",
"format:check": "prettier --check src __test__",
"format:write": "prettier --write src __test__",
"lint": "eslint src __test__",
"style:check": "run-p --continue-on-error --aggregate-output format:check lint",
"style:write": "run-p --continue-on-error --aggregate-output format:write lint",
"pre-commit": "run-s style:write test build",
"test": "jest"
},
"husky": {
"hooks": {
"pre-commit": "npm run pre-commit && git add dist/"
}
"test": "jest",
"prepare": "husky"
},
"jest": {
"preset": "ts-jest",
"testEnvironment": "node",
"globals": {
"ts-jest": {
"diagnostics": {
"ignoreCodes": [
"151001"
]
"transform": {
"^.+\\.ts$": [
"ts-jest",
{
"diagnostics": {
"ignoreCodes": [
"151001"
]
}
}
}
]
}
},
"dependencies": {
"@actions/core": "^1.2.7",
"@actions/github": "^4.0.0",
"@actions/glob": "^0.1.1",
"@actions/io": "^1.0.2",
"@octokit/core": "^3.2.1",
"@octokit/plugin-paginate-rest": "^2.6.0",
"@octokit/plugin-rest-endpoint-methods": "4.2.1"
"@actions/core": "^1.10.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@actions/glob": "^0.4.0",
"@actions/io": "^1.1.3",
"@octokit/core": "^5.0.1",
"@octokit/plugin-request-log": "^4.0.0",
"@octokit/plugin-retry": "^6.0.1",
"@types/node": "^20.9.0"
},
"devDependencies": {
"@types/jest": "^26.0.10",
"@typescript-eslint/eslint-plugin": "^3.9.1",
"@typescript-eslint/parser": "^3.9.1",
"@vercel/ncc": "^0.23.0",
"eslint": "^7.7.0",
"eslint-config-prettier": "^6.11.0",
"husky": "^4.2.5",
"jest": "^26.4.1",
"@types/jest": "^29.5.5",
"@typescript-eslint/eslint-plugin": "^6.7.5",
"@typescript-eslint/parser": "^6.7.5",
"@vercel/ncc": "^0.38.0",
"eslint": "^8.51.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.1",
"husky": "^9.1.1",
"jest": "^29.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.0.5",
"ts-jest": "^26.2.0",
"typescript": "^4.0.2"
"prettier": "^3.0.3",
"ts-jest": "^29.1.1",
"typescript": "^5.2.2"
}
}
}

View File

@@ -1,4 +1,5 @@
import * as core from '@actions/core'
import * as exec from '@actions/exec'
import {Context} from '@actions/github/lib/context'
import {GitHub} from '@actions/github/lib/utils'
import * as glob from '@actions/glob'
@@ -6,10 +7,12 @@ import * as io from '@actions/io'
const AsyncFunction = Object.getPrototypeOf(async () => null).constructor
type AsyncFunctionArguments = {
export declare type AsyncFunctionArguments = {
context: Context
core: typeof core
github: InstanceType<typeof GitHub>
octokit: InstanceType<typeof GitHub>
exec: typeof exec
glob: typeof glob
io: typeof io
require: NodeRequire

View File

@@ -1,8 +1,14 @@
import * as core from '@actions/core'
import * as exec from '@actions/exec'
import {context, getOctokit} from '@actions/github'
import {defaults as defaultGitHubOptions} from '@actions/github/lib/utils'
import * as glob from '@actions/glob'
import * as io from '@actions/io'
import {requestLog} from '@octokit/plugin-request-log'
import {retry} from '@octokit/plugin-retry'
import {RequestRequestOptions} from '@octokit/types'
import {callAsyncFunction} from './async-function'
import {RetryOptions, getRetryOptions, parseNumberArray} from './retry-options'
import {wrapRequire} from './wrap-require'
process.on('unhandledRejection', handleError)
@@ -11,21 +17,43 @@ main().catch(handleError)
type Options = {
log?: Console
userAgent?: string
baseUrl?: string
previews?: string[]
retry?: RetryOptions
request?: RequestRequestOptions
}
async function main(): Promise<void> {
const token = core.getInput('github-token', {required: true})
const debug = core.getInput('debug')
const debug = core.getBooleanInput('debug')
const userAgent = core.getInput('user-agent')
const previews = core.getInput('previews')
const baseUrl = core.getInput('base-url')
const retries = parseInt(core.getInput('retries'))
const exemptStatusCodes = parseNumberArray(
core.getInput('retry-exempt-status-codes')
)
const [retryOpts, requestOpts] = getRetryOptions(
retries,
exemptStatusCodes,
defaultGitHubOptions
)
const opts: Options = {}
if (debug === 'true') opts.log = console
if (userAgent != null) opts.userAgent = userAgent
if (previews != null) opts.previews = previews.split(',')
const opts: Options = {
log: debug ? console : undefined,
userAgent: userAgent || undefined,
previews: previews ? previews.split(',') : undefined,
retry: retryOpts,
request: requestOpts
}
const github = getOctokit(token, opts)
// Setting `baseUrl` to undefined will prevent the default value from being used
// https://github.com/actions/github-script/issues/436
if (baseUrl) {
opts.baseUrl = baseUrl
}
const github = getOctokit(token, opts, retry, requestLog)
const script = core.getInput('script', {required: true})
// Using property/value shorthand on `require` (e.g. `{require}`) causes compilation errors.
@@ -34,8 +62,10 @@ async function main(): Promise<void> {
require: wrapRequire,
__original_require__: __non_webpack_require__,
github,
octokit: github,
context,
core,
exec,
glob,
io
},

53
src/retry-options.ts Normal file
View File

@@ -0,0 +1,53 @@
import * as core from '@actions/core'
import {OctokitOptions} from '@octokit/core/dist-types/types'
import {RequestRequestOptions} from '@octokit/types'
export type RetryOptions = {
doNotRetry?: number[]
enabled?: boolean
}
export function getRetryOptions(
retries: number,
exemptStatusCodes: number[],
defaultOptions: OctokitOptions
): [RetryOptions, RequestRequestOptions | undefined] {
if (retries <= 0) {
return [{enabled: false}, defaultOptions.request]
}
const retryOptions: RetryOptions = {
enabled: true
}
if (exemptStatusCodes.length > 0) {
retryOptions.doNotRetry = exemptStatusCodes
}
// The GitHub type has some defaults for `options.request`
// see: https://github.com/actions/toolkit/blob/4fbc5c941a57249b19562015edbd72add14be93d/packages/github/src/utils.ts#L15
// We pass these in here so they are not overidden.
const requestOptions: RequestRequestOptions = {
...defaultOptions.request,
retries
}
core.debug(
`GitHub client configured with: (retries: ${
requestOptions.retries
}, retry-exempt-status-code: ${
retryOptions.doNotRetry ?? 'octokit default: [400, 401, 403, 404, 422]'
})`
)
return [retryOptions, requestOptions]
}
export function parseNumberArray(listString: string): number[] {
if (!listString) {
return []
}
const split = listString.trim().split(',')
return split.map(x => parseInt(x))
}

4
tsconfig.eslint.json Normal file
View File

@@ -0,0 +1,4 @@
{
"extends": "./tsconfig.json",
"exclude": []
}

19
types/async-function.d.ts vendored Normal file
View File

@@ -0,0 +1,19 @@
/// <reference types="node" />
import * as core from '@actions/core';
import * as exec from '@actions/exec';
import { Context } from '@actions/github/lib/context';
import { GitHub } from '@actions/github/lib/utils';
import * as glob from '@actions/glob';
import * as io from '@actions/io';
export declare type AsyncFunctionArguments = {
context: Context;
core: typeof core;
github: InstanceType<typeof GitHub>;
octokit: InstanceType<typeof GitHub>;
exec: typeof exec;
glob: typeof glob;
io: typeof io;
require: NodeRequire;
__original_require__: NodeRequire;
};
export declare function callAsyncFunction<T>(args: AsyncFunctionArguments, source: string): Promise<T>;