Compare commits

...
41 Commits
Author SHA1 Message Date
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
Josh Gross a3e7071a34 Merge pull request #137 from actions/joshgross/update-actions-core
Update @actions/core to 1.2.7
2021-04-23 13:29:23 -04:00
Josh Gross 3858e71d11 Update license for @actions/core 2021-04-23 11:50:36 -04:00
Josh Gross 2b34a689ec Update @actions/core to 1.2.7 2021-04-23 11:42:24 -04:00
Jonathan Clem 85e88a66ea Merge pull request #136 from actions/search-cwd-first
Only search cwd on user-script require calls
2021-04-21 18:31:08 -04:00
Jonathan Clem 5cbb702e24 v4.0.1 2021-04-21 18:30:43 -04:00
Jonathan Clem 1ef7fd09ca Remove require search fallback 2021-04-21 18:13:51 -04:00
Jonathan Clem a49bf6b2cd Search the cwd first, then existing module paths 2021-04-21 18:10:10 -04:00
34 changed files with 8449 additions and 7084 deletions

No files matched your search

+52
View File
@@ -0,0 +1,52 @@
# `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
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
workflow_dispatch:
jobs:
check-dist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Install dependencies
run: npm ci
- 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@v2
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with:
name: dist
path: dist/
+7 -8
View File
@@ -1,21 +1,20 @@
name: CI
on:
push: {branches: main}
pull_request: {branches: main}
push:
branches: [main]
pull_request:
branches: [main]
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
- uses: actions/setup-node@v2
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
node-version: 12
cache: npm
- run: npm ci
- run: npm run style:check
- run: npm test
+5 -3
View File
@@ -1,8 +1,10 @@
name: Integration
on:
push: {branches: main}
pull_request: {branches: main}
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test-return:
@@ -39,7 +41,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v1
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
+8 -11
View File
@@ -1,10 +1,12 @@
name: Licensed
on:
push: {branches: main}
pull_request: {branches: main}
repository_dispatch:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
@@ -12,16 +14,11 @@ jobs:
name: Check licenses
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
- name: Install licensed
run: |-
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
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
+4 -4
View File
@@ -2,7 +2,7 @@ name: Pull Request Test
on:
pull_request:
branches: main
branches: [main]
types: [opened, synchronize]
jobs:
@@ -14,7 +14,7 @@ jobs:
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,
@@ -28,14 +28,14 @@ jobs:
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,
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+57 -25
View File
@@ -18,6 +18,7 @@ arguments will be provided:
- `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
@@ -31,8 +32,13 @@ defined, so you don't have to (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 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
@@ -44,7 +50,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@v5
id: set-result
with:
script: return "Hello!"
@@ -63,10 +69,9 @@ 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@v5
id: my-script
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: string
script: return "I will be string (not JSON) encoded!"
```
@@ -82,7 +87,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@v5
with:
script: console.log(context)
```
@@ -98,11 +103,10 @@ jobs:
comment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v5
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.createComment({
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
@@ -121,11 +125,10 @@ jobs:
apply-label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v5
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.addLabels({
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
@@ -142,14 +145,13 @@ jobs:
welcome:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v5
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 = github.rest.issues.listForRepo.endpoint.merge({
...context.issue,
creator,
state: 'all'
@@ -166,7 +168,7 @@ jobs:
}
}
await github.issues.createComment({
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
@@ -186,9 +188,8 @@ jobs:
diff:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v5
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const diff_url = context.payload.pull_request.diff_url
const result = await github.request(diff_url)
@@ -211,9 +212,8 @@ jobs:
list-issues:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v5
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const query = `query($owner:String!, $name:String!, $label:String!) {
repository(owner:$owner, name:$name){
@@ -246,7 +246,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/github-script@v4
- uses: actions/github-script@v5
with:
script: |
const script = require('./path/to/script.js')
@@ -284,7 +284,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/github-script@v4
- uses: actions/github-script@v5
env:
SHA: '${{env.parentSHA}}'
with:
@@ -309,7 +309,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
@@ -325,7 +328,7 @@ jobs:
- run: npm ci
# or one-off:
- run: npm install execa
- uses: actions/github-script@v4
- uses: actions/github-script@v5
with:
script: |
const execa = require('execa')
@@ -346,7 +349,7 @@ jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v4
- uses: actions/github-script@v5
env:
FIRST_NAME: Mona
LAST_NAME: Octocat
@@ -356,3 +359,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@v5
with:
github-token: ${{ secrets.MY_PAT }}
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['Triage']
})
```
+4116 -551
View File
File diff suppressed because it is too large. Load diff
+4169 -6452
View File
File diff suppressed because it is too large. Load diff
+18 -17
View File
@@ -1,7 +1,7 @@
{
"name": "github-script",
"description": "A GitHub action for executing a simple script",
"version": "4.0.0",
"version": "5.0.0",
"author": "GitHub",
"license": "MIT",
"main": "dist/index.js",
@@ -35,26 +35,27 @@
}
},
"dependencies": {
"@actions/core": "^1.2.6",
"@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.5.0",
"@actions/exec": "^1.1.0",
"@actions/github": "^5.0.0",
"@actions/glob": "^0.2.0",
"@actions/io": "^1.1.1",
"@octokit/core": "^3.5.1",
"@octokit/plugin-paginate-rest": "^2.16.4",
"@octokit/plugin-rest-endpoint-methods": "^5.11.1"
},
"devDependencies": {
"@types/jest": "^26.0.10",
"@typescript-eslint/eslint-plugin": "^3.9.1",
"@typescript-eslint/parser": "^3.9.1",
"@types/jest": "^26.0.24",
"@typescript-eslint/eslint-plugin": "^3.10.1",
"@typescript-eslint/parser": "^3.10.1",
"@vercel/ncc": "^0.23.0",
"eslint": "^7.7.0",
"eslint-config-prettier": "^6.11.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^6.15.0",
"husky": "^4.2.5",
"jest": "^26.4.1",
"jest": "^26.6.3",
"npm-run-all": "^4.1.5",
"prettier": "^2.0.5",
"ts-jest": "^26.2.0",
"typescript": "^4.0.2"
"ts-jest": "^26.5.6",
"typescript": "^4.3.5"
}
}
}
+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'
@@ -10,6 +11,7 @@ type AsyncFunctionArguments = {
context: Context
core: typeof core
github: InstanceType<typeof GitHub>
exec: typeof exec
glob: typeof glob
io: typeof io
require: NodeRequire
+2
View File
@@ -1,4 +1,5 @@
import * as core from '@actions/core'
import * as exec from '@actions/exec'
import {context, getOctokit} from '@actions/github'
import * as glob from '@actions/glob'
import * as io from '@actions/io'
@@ -36,6 +37,7 @@ async function main(): Promise<void> {
github,
context,
core,
exec,
glob,
io
},
+9 -13
View File
@@ -7,20 +7,16 @@ export const wrapRequire = new Proxy(__non_webpack_require__, {
return target.apply(thisArg, [moduleID])
}
try {
return target.apply(thisArg, [moduleID])
} catch (err) {
const modulePath = target.resolve.apply(thisArg, [
moduleID,
{
// Webpack does not have an escape hatch for getting the actual
// module, other than `eval`.
paths: eval('module').paths.concat(process.cwd())
}
])
const modulePath = target.resolve.apply(thisArg, [
moduleID,
{
// Webpack does not have an escape hatch for getting the actual
// module, other than `eval`.
paths: [process.cwd()]
}
])
return target.apply(thisArg, [modulePath])
}
return target.apply(thisArg, [modulePath])
},
get: (target, prop, receiver) => {