mirror of
https://github.com/actions/github-script.git
synced 2026-10-15 20:06:55 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a5c598405 | ||
|
|
cb1c1eb6df | ||
|
|
6203d71574 | ||
|
|
19fe498d7b | ||
|
|
9bd6ae64c1 | ||
|
|
e44260d768 | ||
|
|
05418122f5 | ||
|
|
b82abb9b60 | ||
|
|
d965d37133 | ||
|
|
7cf7d15108 | ||
|
|
9ac08808f9 | ||
|
|
53cdbb4a1b | ||
|
|
6b8d8aaad4 | ||
|
|
6689be4f99 | ||
|
|
5541733ecf | ||
|
|
cd8eebf4a5 | ||
|
|
72fadf4ee8 | ||
|
|
d526c0463a | ||
|
|
2c946f132f | ||
|
|
41e1ab4f53 | ||
|
|
d2ed94b14f | ||
|
|
e3cbab99d3 | ||
|
|
115b09eedf | ||
|
|
df46368761 | ||
|
|
faea5b2adf | ||
|
|
382585067c | ||
|
|
7b791155c1 | ||
|
|
f6f802415c | ||
|
|
0c6f007687 | ||
|
|
b3a068aede | ||
|
|
00e1b58cd9 | ||
|
|
c08c323075 | ||
|
|
9bb3853081 | ||
|
|
415189ab4b | ||
|
|
441359b1a3 | ||
|
|
4e1175c483 | ||
|
|
004e46f649 | ||
|
|
5e5d515dc7 |
No files matched your search
@@ -14,11 +14,11 @@ jobs:
|
|||||||
name: Check licenses
|
name: Check licenses
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # prefer to use a full fetch for licensed workflows
|
||||||
|
# https://github.com/jonabc/setup-licensed/releases/tag/v1.1.1
|
||||||
|
- uses: jonabc/setup-licensed@82c5f4d19e8968efa74a25b132922382c2671fe2
|
||||||
|
with:
|
||||||
|
version: '3.x'
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
- name: Install licensed
|
|
||||||
run: |
|
|
||||||
cd $RUNNER_TEMP
|
|
||||||
curl -Lfs -o licensed.tar.gz https://github.com/github/licensed/releases/download/2.12.2/licensed-2.12.2-linux-x64.tar.gz
|
|
||||||
sudo tar -xzf licensed.tar.gz
|
|
||||||
sudo mv licensed /usr/local/bin/licensed
|
|
||||||
- run: licensed status
|
- run: licensed status
|
||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
// Get the existing comments.
|
// Get the existing comments.
|
||||||
const {data: comments} = await github.issues.listComments({
|
const {data: comments} = await github.rest.issues.listComments({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
issue_number: context.payload.number,
|
issue_number: context.payload.number,
|
||||||
@@ -28,14 +28,14 @@ jobs:
|
|||||||
console.log('Not attempting to write comment on PR from fork');
|
console.log('Not attempting to write comment on PR from fork');
|
||||||
} else {
|
} else {
|
||||||
if (botComment) {
|
if (botComment) {
|
||||||
await github.issues.updateComment({
|
await github.rest.issues.updateComment({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
comment_id: botComment.id,
|
comment_id: botComment.id,
|
||||||
body: commentBody
|
body: commentBody
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
await github.issues.createComment({
|
await github.rest.issues.createComment({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
issue_number: context.payload.number,
|
issue_number: context.payload.number,
|
||||||
|
|||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
npm run pre-commit && git add dist/
|
||||||
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
@@ -27,13 +27,26 @@ arguments will be provided:
|
|||||||
our wrapping applied.
|
our wrapping applied.
|
||||||
|
|
||||||
Since the `script` is just a function body, these values will already be
|
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
|
See [octokit/rest.js](https://octokit.github.io/rest.js/) for the API client
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
**Note** This action is still a bit of an experiment—the API may change in
|
## Breaking Changes
|
||||||
future versions. 🙂
|
|
||||||
|
### Breaking changes in 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#example-using-nodejs-v16
|
||||||
|
|
||||||
|
All scripts are now run with Node 16 instead of Node 12 and are affected by any breaking changes between Node 12 and 16.
|
||||||
|
|
||||||
|
### Breaking changes in 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
|
## Development
|
||||||
|
|
||||||
@@ -45,7 +58,7 @@ The return value of the script will be in the step's outputs under the
|
|||||||
"result" key.
|
"result" key.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
id: set-result
|
id: set-result
|
||||||
with:
|
with:
|
||||||
script: return "Hello!"
|
script: return "Hello!"
|
||||||
@@ -64,7 +77,7 @@ output of a github-script step. For some workflows, string encoding is preferred
|
|||||||
`result-encoding` input:
|
`result-encoding` input:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
id: my-script
|
id: my-script
|
||||||
with:
|
with:
|
||||||
result-encoding: string
|
result-encoding: string
|
||||||
@@ -82,7 +95,7 @@ By default, github-script will use the token provided to your workflow.
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: View context attributes
|
- name: View context attributes
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: console.log(context)
|
script: console.log(context)
|
||||||
```
|
```
|
||||||
@@ -98,10 +111,10 @@ jobs:
|
|||||||
comment:
|
comment:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
github.issues.createComment({
|
github.rest.issues.createComment({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
@@ -120,10 +133,10 @@ jobs:
|
|||||||
apply-label:
|
apply-label:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
github.issues.addLabels({
|
github.rest.issues.addLabels({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
@@ -133,20 +146,22 @@ jobs:
|
|||||||
|
|
||||||
### Welcome a first-time contributor
|
### 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
|
```yaml
|
||||||
on: pull_request
|
on: pull_request_target
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
welcome:
|
welcome:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
// Get a list of all issues created by the PR opener
|
// Get a list of all issues created by the PR opener
|
||||||
// See: https://octokit.github.io/rest.js/#pagination
|
// See: https://octokit.github.io/rest.js/#pagination
|
||||||
const creator = context.payload.sender.login
|
const creator = context.payload.sender.login
|
||||||
const opts = github.issues.listForRepo.endpoint.merge({
|
const opts = github.rest.issues.listForRepo.endpoint.merge({
|
||||||
...context.issue,
|
...context.issue,
|
||||||
creator,
|
creator,
|
||||||
state: 'all'
|
state: 'all'
|
||||||
@@ -163,11 +178,13 @@ jobs:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await github.issues.createComment({
|
await github.rest.issues.createComment({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
body: 'Welcome, new contributor!'
|
body: `**Welcome**, new contributor!
|
||||||
|
|
||||||
|
Please make sure you're read our [contributing guide](CONTRIBUTING.md) and we look forward to reviewing your Pull request shortly ✨`
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -183,7 +200,7 @@ jobs:
|
|||||||
diff:
|
diff:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const diff_url = context.payload.pull_request.diff_url
|
const diff_url = context.payload.pull_request.diff_url
|
||||||
@@ -207,7 +224,7 @@ jobs:
|
|||||||
list-issues:
|
list-issues:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const query = `query($owner:String!, $name:String!, $label:String!) {
|
const query = `query($owner:String!, $name:String!, $label:String!) {
|
||||||
@@ -241,7 +258,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const script = require('./path/to/script.js')
|
const script = require('./path/to/script.js')
|
||||||
@@ -279,7 +296,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
env:
|
env:
|
||||||
SHA: '${{env.parentSHA}}'
|
SHA: '${{env.parentSHA}}'
|
||||||
with:
|
with:
|
||||||
@@ -293,7 +310,7 @@ And then export an async function from your module:
|
|||||||
```javascript
|
```javascript
|
||||||
module.exports = async ({github, context, core}) => {
|
module.exports = async ({github, context, core}) => {
|
||||||
const {SHA} = process.env
|
const {SHA} = process.env
|
||||||
const commit = await github.repos.getCommit({
|
const commit = await github.rest.repos.getCommit({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
ref: `${SHA}`
|
ref: `${SHA}`
|
||||||
@@ -323,7 +340,7 @@ jobs:
|
|||||||
- run: npm ci
|
- run: npm ci
|
||||||
# or one-off:
|
# or one-off:
|
||||||
- run: npm install execa
|
- run: npm install execa
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const execa = require('execa')
|
const execa = require('execa')
|
||||||
@@ -333,6 +350,31 @@ jobs:
|
|||||||
console.log(stdout)
|
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@v2
|
||||||
|
- uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const { default: printStuff } = await import('${{ github.workspace }}/src/print-stuff.js')
|
||||||
|
|
||||||
|
await printStuff()
|
||||||
|
```
|
||||||
|
|
||||||
### Use env as input
|
### Use env as input
|
||||||
|
|
||||||
You can set env vars to use them in your script:
|
You can set env vars to use them in your script:
|
||||||
@@ -344,7 +386,7 @@ jobs:
|
|||||||
echo-input:
|
echo-input:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
env:
|
env:
|
||||||
FIRST_NAME: Mona
|
FIRST_NAME: Mona
|
||||||
LAST_NAME: Octocat
|
LAST_NAME: Octocat
|
||||||
@@ -372,11 +414,11 @@ jobs:
|
|||||||
apply-label:
|
apply-label:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.MY_PAT }}
|
github-token: ${{ secrets.MY_PAT }}
|
||||||
script: |
|
script: |
|
||||||
github.issues.addLabels({
|
github.rest.issues.addLabels({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
|
|||||||
+1
-1
@@ -27,5 +27,5 @@ outputs:
|
|||||||
result:
|
result:
|
||||||
description: The return value of the script, stringified with `JSON.stringify`
|
description: The return value of the script, stringified with `JSON.stringify`
|
||||||
runs:
|
runs:
|
||||||
using: node12
|
using: node16
|
||||||
main: dist/index.js
|
main: dist/index.js
|
||||||
Vendored
+655
-1381
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -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. 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. 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. 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`.
|
||||||
Generated
+1666
-5241
File diff suppressed because it is too large.
Load diff
+13
-17
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "github-script",
|
"name": "github-script",
|
||||||
"description": "A GitHub action for executing a simple script",
|
"description": "A GitHub action for executing a simple script",
|
||||||
"version": "4.2.0",
|
"version": "6.0.0",
|
||||||
"author": "GitHub",
|
"author": "GitHub",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
@@ -14,12 +14,8 @@
|
|||||||
"style:check": "run-p --continue-on-error --aggregate-output format:check lint",
|
"style:check": "run-p --continue-on-error --aggregate-output format:check lint",
|
||||||
"style:write": "run-p --continue-on-error --aggregate-output format:write lint",
|
"style:write": "run-p --continue-on-error --aggregate-output format:write lint",
|
||||||
"pre-commit": "run-s style:write test build",
|
"pre-commit": "run-s style:write test build",
|
||||||
"test": "jest"
|
"test": "jest",
|
||||||
},
|
"prepare": "husky install"
|
||||||
"husky": {
|
|
||||||
"hooks": {
|
|
||||||
"pre-commit": "npm run pre-commit && git add dist/"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"preset": "ts-jest",
|
"preset": "ts-jest",
|
||||||
@@ -35,27 +31,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.8.1",
|
||||||
"@actions/exec": "^1.1.0",
|
"@actions/exec": "^1.1.0",
|
||||||
"@actions/github": "^4.0.0",
|
"@actions/github": "^5.0.0",
|
||||||
"@actions/glob": "^0.1.2",
|
"@actions/glob": "^0.2.0",
|
||||||
"@actions/io": "^1.1.1",
|
"@actions/io": "^1.1.1",
|
||||||
"@octokit/core": "^3.5.1",
|
"@octokit/core": "^3.5.1",
|
||||||
"@octokit/plugin-paginate-rest": "^2.16.4",
|
"@octokit/plugin-paginate-rest": "^2.17.0",
|
||||||
"@octokit/plugin-rest-endpoint-methods": "^4.2.1"
|
"@octokit/plugin-rest-endpoint-methods": "^5.13.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^26.0.24",
|
"@types/jest": "^27.0.2",
|
||||||
"@typescript-eslint/eslint-plugin": "^3.10.1",
|
"@typescript-eslint/eslint-plugin": "^3.10.1",
|
||||||
"@typescript-eslint/parser": "^3.10.1",
|
"@typescript-eslint/parser": "^3.10.1",
|
||||||
"@vercel/ncc": "^0.23.0",
|
"@vercel/ncc": "^0.23.0",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-config-prettier": "^6.15.0",
|
"eslint-config-prettier": "^6.15.0",
|
||||||
"husky": "^4.2.5",
|
"husky": "^7.0.0",
|
||||||
"jest": "^26.6.3",
|
"jest": "^27.2.5",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"prettier": "^2.0.5",
|
"prettier": "^2.0.5",
|
||||||
"ts-jest": "^26.5.6",
|
"ts-jest": "^27.0.5",
|
||||||
"typescript": "^4.3.5"
|
"typescript": "^4.3.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user