.steps[*].if`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsif) conditional combined with the `conclusion` of the previous run. For example:
+If you specify multiple `workflows` for the `workflow_run` event, only one of the workflows needs to run. For example, a workflow with the following trigger will run whenever the "Staging" workflow or the "Lab" workflow completes.
```yaml
on:
workflow_run:
- workflows: ["Build"]
+ workflows: [Staging, Lab]
+ types:
+ - completed
+```
+
+#### Running a workflow based on the conclusion of another workflow
+
+A workflow run is triggered regardless of the conclusion of the previous workflow. If you want to run a job or step based on the result of the triggering workflow, you can use a conditional with the `github.event.workflow_run.conclusion` property. For example, this workflow will run whenever a workflow named "Build" completes, but the `on-success` job will only run if the "Build" workflow succeeded, and the `on-failure` job will only run if the "Build" workflow failed:
+
+```yaml
+on:
+ workflow_run:
+ workflows: [Build]
types: [completed]
jobs:
@@ -850,16 +1481,105 @@ jobs:
runs-on: ubuntu-latest
if: {% raw %}${{ github.event.workflow_run.conclusion == 'success' }}{% endraw %}
steps:
- ...
+ - run: echo 'The triggering workflow passed'
on-failure:
runs-on: ubuntu-latest
if: {% raw %}${{ github.event.workflow_run.conclusion == 'failure' }}{% endraw %}
steps:
- ...
+ - run: echo 'The triggering workflow failed'
```
-## Triggering new workflows using a personal access token
+#### Limiting your workflow to run based on branches
-{% data reusables.github-actions.actions-do-not-trigger-workflows %} For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)."
+You can use the `branches` or `branches-ignore` filter to specify what branches the triggering workflow must run on in order to trigger your workflow. For more information, see "[Workflow syntax for GitHub Actions](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_runbranchesbranches-ignore)." For example, a workflow with the following trigger will only run when the workflow named `Build` runs on a branch named `canary`.
-If you would like to trigger a workflow from a workflow run, you can trigger the event using a personal access token. You'll need to create a personal access token and store it as a secret. To minimize your {% data variables.product.prodname_actions %} usage costs, ensure that you don't create recursive or unintended workflow runs. For more information on storing a personal access token as a secret, see "[Creating and storing encrypted secrets](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)."
+```yaml
+on:
+ workflow_run:
+ workflows: [Build]
+ types: [requested]
+ branches: [canary]
+```
+
+#### Using data from the triggering workflow
+
+You can access the [`workflow_run` event payload](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_run) that corresponds to the workflow that triggered your workflow. For example, if your triggering workflow generates artifacts, a workflow triggered with the `workflow_run` event can access these artifacts.
+
+The following workflow uploads data as an artifact. (In this simplified example, the data is the pull request number.)
+
+```yaml
+name: Upload data
+
+on:
+ pull_request:
+
+jobs:
+ upload:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Save PR number
+ env:
+ PR_NUMBER: {% raw %}${{ github.event.number }}{% endraw %}
+ run: |
+ mkdir -p ./pr
+ echo $PR_NUMBER > ./pr/pr_number
+ - uses: actions/upload-artifact@v2
+ with:
+ name: pr_number
+ path: pr/
+```
+
+When a run of the above workflow completes, it triggers a run of the following workflow. The following workflow uses the `github.event.workflow_run` context and the {% data variables.product.product_name %} REST API to download the artifact that was uploaded by the above workflow, unzips the downloaded artifact, and comments on the pull request whose number was uploaded as an artifact.
+
+```yaml
+name: Use the data
+
+on:
+ workflow_run:
+ workflows: [Upload data]
+ types:
+ - completed
+
+jobs:
+ download:
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'Download artifact'
+ uses: actions/github-script@v5
+ with:
+ script: |
+ let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ run_id: context.payload.workflow_run.id,
+ });
+ let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
+ return artifact.name == "pr_number"
+ })[0];
+ let download = await github.rest.actions.downloadArtifact({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ artifact_id: matchArtifact.id,
+ archive_format: 'zip',
+ });
+ let fs = require('fs');
+ fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data));
+
+ - name: 'Unzip artifact'
+ run: unzip pr_number.zip
+
+ - name: 'Comment on PR'
+ uses: actions/github-script@v5
+ with:
+ github-token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
+ script: |
+ let fs = require('fs');
+ let issue_number = Number(fs.readFileSync('./pr_number'));
+ await github.rest.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: issue_number,
+ body: 'Thank you for the PR!'
+ });
+```
diff --git a/content/actions/learn-github-actions/understanding-github-actions.md b/content/actions/learn-github-actions/understanding-github-actions.md
index 6e69efdfbc..bfa2cb82a6 100644
--- a/content/actions/learn-github-actions/understanding-github-actions.md
+++ b/content/actions/learn-github-actions/understanding-github-actions.md
@@ -114,7 +114,7 @@ To help you understand how YAML syntax is used to create a workflow file, this s
```
-Specifies the trigger for this workflow. This example uses the push event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request. This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "Workflow syntax for {% data variables.product.prodname_actions %}."
+Specifies the trigger for this workflow. This example uses the push event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request. This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "Workflow syntax for {% data variables.product.prodname_actions %}."
|
diff --git a/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md b/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md
index e2b3572a62..388d25f539 100644
--- a/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md
+++ b/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md
@@ -35,74 +35,149 @@ The name of your workflow. {% data variables.product.prodname_dotcom %} displays
## `on..types`
-Selects the types of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the event for the release resource is triggered when a release is `published`, `unpublished`, `created`, `edited`, `deleted`, or `prereleased`. The `types` keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the `types` keyword is unnecessary.
+Selects the types of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the `label` is triggered when a label is `created`, `edited`, or `deleted`. The `types` keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the `types` keyword is unnecessary.
You can use an array of event `types`. For more information about each event and their activity types, see "[Events that trigger workflows](/articles/events-that-trigger-workflows#webhook-events)."
```yaml
-# Trigger the workflow on release activity
on:
- release:
- # Only use the types keyword to narrow down the activity types that will trigger your workflow.
- types: [published, created, edited]
+ label:
+ types: [created, edited]
```
-## `on..`
+## `on..`
-When using the `push` and `pull_request` events, you can configure a workflow to run on specific branches or tags. For a `pull_request` event, only branches and tags on the base are evaluated. If you define only `tags` or only `branches`, the workflow won't run for events affecting the undefined Git ref.
+When using the `pull_request` and `pull_request_target` events, you can configure a workflow to run only for pull requests that target specific branches.
+
+Use the `branches` filter when you want to include branch name patterns or when you want to both include and exclude branch names patterns. Use the `branches-ignore` filter when you only want to exclude branch name patterns. You cannot use both the `branches` and `branches-ignore` filters for the same event in a workflow.
+
+If you define both `branches`/`branches-ignore` and [`paths`](#onpushpull_requestpull_request_targetpathspaths-ignore), the workflow will only run when both filters are satisfied.
+
+The `branches` and `branches-ignore` keywords accept glob patterns that use characters like `*`, `**`, `+`, `?`, `!` and others to match more than one branch name. If a name contains any of these characters and you want a literal match, you need to escape each of these special characters with `\`. For more information about glob patterns, see the "[Filter pattern cheat sheet](#filter-pattern-cheat-sheet)."
+
+### Example: Including branches
+
+The patterns defined in `branches` are evaluated against the Git ref's name. For example, the following workflow would run whenever there is a `pull_request` event for a pull request targeting:
+
+- A branch named `main` (`refs/heads/main`)
+- A branch named `mona/octocat` (`refs/heads/mona/octocat`)
+- A branch whose name starts with `releases/`, like `releases/10` (`refs/heads/releases/10`)
+
+```yaml
+on:
+ pull_request:
+ # Sequence of patterns matched against refs/heads
+ branches:
+ - main
+ - 'mona/octocat'
+ - 'releases/**'
+```
+
+### Example: Excluding branches
+
+When a pattern matches the `branches-ignore` pattern, the workflow will not run. The patterns defined in `branches` are evaluated against the Git ref's name. For example, the following workflow would run whenever there is a `pull_request` event unless the pull request is targeting:
+
+- A branch named `mona/octocat` (`refs/heads/mona/octocat`)
+- A branch whose name matches `releases/**-alpha`, like `beta/3-alpha` (`refs/releases/beta/3-alpha`)
+
+```yaml
+on:
+ pull_request:
+ # Sequence of patterns matched against refs/heads
+ branches-ignore:
+ - 'mona/octocat'
+ - 'releases/**-alpha'
+```
+
+### Example: Including and excluding branches
+
+You cannot use `branches` and `branches-ignore` to filter the same event in a single workflow. If you want to both include and exclude branch patterns for a single event, use the `branches` filter along with the `!` character to indicate which branches should be excluded.
+
+If you define a branch with the `!` character, you must also define at least one branch without the `!` character. If you only want to exclude branches, use `branches-ignore` instead.
+
+The order that you define patterns matters.
+
+- A matching negative pattern (prefixed with `!`) after a positive match will exclude the Git ref.
+- A matching positive pattern after a negative match will include the Git ref again.
+
+The following workflow will run on `pull_request` events for pull requests that target `releases/10` or `releases/beta/mona`, but for pull requests that target `releases/10-alpha` or `releases/beta/3-alpha` because the negative pattern `!releases/**-alpha` follows the positive pattern.
+
+```yaml
+on:
+ pull_request:
+ branches:
+ - 'releases/**'
+ - '!releases/**-alpha'
+```
+
+## `on..`
+
+When using the `push` event, you can configure a workflow to run on specific branches or tags.
+
+Use the `branches` filter when you want to include branch name patterns or when you want to both include and exclude branch names patterns. Use the `branches-ignore` filter when you only want to exclude branch name patterns. You cannot use both the `branches` and `branches-ignore` filters for the same event in a workflow.
+
+Use the `tags` filter when you want to include tag name patterns or when you want to both include and exclude tag names patterns. Use the `tags-ignore` filter when you only want to exclude tag name patterns. You cannot use both the `tags` and `tags-ignore` filters for the same event in a workflow.
+
+If you define only `tags`/`tag-ignore` or only `branches`/`branches-ignore`, the workflow won't run for events affecting the undefined Git ref. If you define neither `tags`/`tag-ignore` or `branches`/`branches-ignore`, the workflow will run for events affecting either branches or tags. If you define both `branches`/`branches-ignore` and [`paths`](#onpushpull_requestpull_request_targetpathspaths-ignore), the workflow will only run when both filters are satisfied.
The `branches`, `branches-ignore`, `tags`, and `tags-ignore` keywords accept glob patterns that use characters like `*`, `**`, `+`, `?`, `!` and others to match more than one branch or tag name. If a name contains any of these characters and you want a literal match, you need to *escape* each of these special characters with `\`. For more information about glob patterns, see the "[Filter pattern cheat sheet](#filter-pattern-cheat-sheet)."
### Example: Including branches and tags
-The patterns defined in `branches` and `tags` are evaluated against the Git ref's name. For example, defining the pattern `mona/octocat` in `branches` will match the `refs/heads/mona/octocat` Git ref. The pattern `releases/**` will match the `refs/heads/releases/10` Git ref.
+The patterns defined in `branches` and `tags` are evaluated against the Git ref's name. For example, the following workflow would run whenever there is a `push` event to:
+
+- A branch named `main` (`refs/heads/main`)
+- A branch named `mona/octocat` (`refs/heads/mona/octocat`)
+- A branch whose name starts with `releases/`, like `releases/10` (`refs/heads/releases/10`)
+- A tag named `v2` (`refs/tags/v2`)
+- A tag whose name starts with `v1.`, like `v1.9.1` (`refs/tags/v1.9.1`)
```yaml
on:
push:
# Sequence of patterns matched against refs/heads
- branches:
- # Push events on main branch
+ branches:
- main
- # Push events to branches matching refs/heads/mona/octocat
- 'mona/octocat'
- # Push events to branches matching refs/heads/releases/10
- 'releases/**'
# Sequence of patterns matched against refs/tags
- tags:
- - v1 # Push events to v1 tag
- - v1.* # Push events to v1.0, v1.1, and v1.9 tags
+ tags:
+ - v2
+ - v1.*
```
-### Example: Ignoring branches and tags
+### Example: Excluding branches and tags
-Anytime a pattern matches the `branches-ignore` or `tags-ignore` pattern, the workflow will not run. The patterns defined in `branches-ignore` and `tags-ignore` are evaluated against the Git ref's name. For example, defining the pattern `mona/octocat` in `branches` will match the `refs/heads/mona/octocat` Git ref. The pattern `releases/**-alpha` in `branches` will match the `refs/releases/beta/3-alpha` Git ref.
+When a pattern matches the `branches-ignore` or `tags-ignore` pattern, the workflow will not run. The patterns defined in `branches` and `tags` are evaluated against the Git ref's name. For example, the following workflow would run whenever there is a `push` event, unless the `push` event is to:
+
+- A branch named `mona/octocat` (`refs/heads/mona/octocat`)
+- A branch whose name matches `releases/**-alpha`, like `beta/3-alpha` (`refs/releases/beta/3-alpha`)
+- A tag named `v2` (`refs/tags/v2`)
+- A tag whose name starts with `v1.`, like `v1.9` (`refs/tags/v1.9`)
```yaml
on:
push:
# Sequence of patterns matched against refs/heads
- branches-ignore:
- # Do not push events to branches matching refs/heads/mona/octocat
+ branches-ignore:
- 'mona/octocat'
- # Do not push events to branches matching refs/heads/releases/beta/3-alpha
- 'releases/**-alpha'
# Sequence of patterns matched against refs/tags
- tags-ignore:
- - v1.* # Do not push events to tags v1.0, v1.1, and v1.9
+ tags-ignore:
+ - v2
+ - v1.*
```
-### Excluding branches and tags
+### Example: Including and excluding branches and tags
-You can use two types of filters to prevent a workflow from running on pushes and pull requests to tags and branches.
-- `branches` or `branches-ignore` - You cannot use both the `branches` and `branches-ignore` filters for the same event in a workflow. Use the `branches` filter when you need to filter branches for positive matches and exclude branches. Use the `branches-ignore` filter when you only need to exclude branch names.
-- `tags` or `tags-ignore` - You cannot use both the `tags` and `tags-ignore` filters for the same event in a workflow. Use the `tags` filter when you need to filter tags for positive matches and exclude tags. Use the `tags-ignore` filter when you only need to exclude tag names.
+You can't use `branches` and `branches-ignore` to filter the same event in a single workflow. Similarly, you can't use `tags` and `tags-ignore` to filter the same event in a single workflow. If you want to both include and exclude branch or tag patterns for a single event, use the `branches` or `tags` filter along with the `!` character to indicate which branches or tags should be excluded.
-### Example: Using positive and negative patterns
+If you define a branch with the `!` character, you must also define at least one branch without the `!` character. If you only want to exclude branches, use `branches-ignore` instead. Similarly, if you define a tag with the `!` character, you must also define at least one tag without the `!` character. If you only want to exclude tags, use `tags-ignore` instead.
-You can exclude `tags` and `branches` using the `!` character. The order that you define patterns matters.
- - A matching negative pattern (prefixed with `!`) after a positive match will exclude the Git ref.
- - A matching positive pattern after a negative match will include the Git ref again.
+The order that you define patterns matters.
+
+- A matching negative pattern (prefixed with `!`) after a positive match will exclude the Git ref.
+- A matching positive pattern after a negative match will include the Git ref again.
The following workflow will run on pushes to `releases/10` or `releases/beta/mona`, but not on `releases/10-alpha` or `releases/beta/3-alpha` because the negative pattern `!releases/**-alpha` follows the positive pattern.
@@ -114,26 +189,19 @@ on:
- '!releases/**-alpha'
```
-## `on..paths`
+## `on..`
-When using the `push` and `pull_request` events, you can configure a workflow to run when at least one file does not match `paths-ignore` or at least one modified file matches the configured `paths`. Path filters are not evaluated for pushes to tags.
+When using the `push` and `pull_request` events, you can configure a workflow to run based on what file paths are changed. Path filters are not evaluated for pushes of tags.
-The `paths-ignore` and `paths` keywords accept glob patterns that use the `*` and `**` wildcard characters to match more than one path name. For more information, see the "[Filter pattern cheat sheet](#filter-pattern-cheat-sheet)."
+Use the `paths` filter when you want to include file path patterns or when you want to both include and exclude file path patterns. Use the `paths-ignore` filter when you only want to exclude file path patterns. You cannot use both the `paths` and `paths-ignore` filters for the same event in a workflow.
-### Example: Ignoring paths
+If you define both `branches`/`branches-ignore` and `paths`, the workflow will only run when both filters are satisfied.
-When all the path names match patterns in `paths-ignore`, the workflow will not run. {% data variables.product.prodname_dotcom %} evaluates patterns defined in `paths-ignore` against the path name. A workflow with the following path filter will only run on `push` events that include at least one file outside the `docs` directory at the root of the repository.
-
-```yaml
-on:
- push:
- paths-ignore:
- - 'docs/**'
-```
+The `paths` and `paths-ignore` keywords accept glob patterns that use the `*` and `**` wildcard characters to match more than one path name. For more information, see the "[Filter pattern cheat sheet](#filter-pattern-cheat-sheet)."
### Example: Including paths
-If at least one path matches a pattern in the `paths` filter, the workflow runs. To trigger a build anytime you push a JavaScript file, you can use a wildcard pattern.
+If at least one path matches a pattern in the `paths` filter, the workflow runs. For example, the following workflow would run anytime you push a JavaScript file (`.js`).
```yaml
on:
@@ -142,17 +210,29 @@ on:
- '**.js'
```
-### Excluding paths
+### Example: Excluding paths
-You can exclude paths using two types of filters. You cannot use both of these filters for the same event in a workflow.
-- `paths-ignore` - Use the `paths-ignore` filter when you only need to exclude path names.
-- `paths` - Use the `paths` filter when you need to filter paths for positive matches and exclude paths.
+When all the path names match patterns in `paths-ignore`, the workflow will not run. If any path names do not match patterns in `paths-ignore`, even if some path names match the patterns, the workflow will run.
-### Example: Using positive and negative patterns
+A workflow with the following path filter will only run on `push` events that include at least one file outside the `docs` directory at the root of the repository.
-You can exclude `paths` using the `!` character. The order that you define patterns matters:
- - A matching negative pattern (prefixed with `!`) after a positive match will exclude the path.
- - A matching positive pattern after a negative match will include the path again.
+```yaml
+on:
+ push:
+ paths-ignore:
+ - 'docs/**'
+```
+
+### Example: Including and excluding paths
+
+You can not use `paths` and `paths-ignore` to filter the same event in a single workflow. If you want to both include and exclude path patterns for a single event, use the `paths` filter along with the `!` character to indicate which paths should be excluded.
+
+If you define a path with the `!` character, you must also define at least one path without the `!` character. If you only want to exclude paths, use `paths-ignore` instead.
+
+The order that you define patterns matters:
+
+- A matching negative pattern (prefixed with `!`) after a positive match will exclude the path.
+- A matching positive pattern after a negative match will include the path again.
This example runs anytime the `push` event includes a file in the `sub-project` directory or its subdirectories, unless the file is in the `sub-project/docs` directory. For example, a push that changed `sub-project/index.js` or `sub-project/src/index.js` will trigger a workflow run, but a push changing only `sub-project/docs/readme.md` will not.
@@ -290,6 +370,53 @@ A string identifier to associate with the secret.
A boolean specifying whether the secret must be supplied.
{% endif %}
+## `on.workflow_run.`
+
+When using the `workflow_run` event, you can specify what branches the triggering workflow must run on in order to trigger your workflow.
+
+The `branches` and `branches-ignore` filters accept glob patterns that use characters like `*`, `**`, `+`, `?`, `!` and others to match more than one branch name. If a name contains any of these characters and you want a literal match, you need to *escape* each of these special characters with `\`. For more information about glob patterns, see the "[Filter pattern cheat sheet](#filter-pattern-cheat-sheet)."
+
+For example, a workflow with the following trigger will only run when the workflow named `Build` runs on a branch whose name starts with `releases/`:
+
+```yaml
+on:
+ workflow_run:
+ workflows: ["Build"]
+ types: [requested]
+ branches:
+ - 'releases/**'
+```
+
+A workflow with the following trigger will only run when the workflow named `Build` runs on a branch that is not named `canary`:
+
+```yaml
+on:
+ workflow_run:
+ workflows: ["Build"]
+ types: [requested]
+ branches-ignore:
+ - "canary"
+```
+
+You cannot use both the `branches` and `branches-ignore` filters for the same event in a workflow. If you want to both include and exclude branch patterns for a single event, use the `branches` filter along with the `!` character to indicate which branches should be excluded.
+
+The order that you define patterns matters.
+
+- A matching negative pattern (prefixed with `!`) after a positive match will exclude the branch.
+- A matching positive pattern after a negative match will include the branch again.
+
+For example, a workflow with the following trigger will run when the workflow named `Build` runs on a branch that is named `releases/10` or `releases/beta/mona` but will not `releases/10-alpha`, `releases/beta/3-alpha`, or `main`.
+
+```yaml
+on:
+ workflow_run:
+ workflows: ["Build"]
+ types: [requested]
+ branches:
+ - 'releases/**'
+ - '!releases/**-alpha'
+```
+
## `on.workflow_dispatch.inputs`
When using the `workflow_dispatch` event, you can optionally specify inputs that are passed to the workflow.
@@ -1541,7 +1668,7 @@ The characters `*`, `[`, and `!` are special characters in YAML. If you start a
- **/README.md
```
-For more information about branch, tag, and path filter syntax, see "[`on..`](#onpushpull_requestbranchestags)" and "[`on..paths`](#onpushpull_requestpaths)."
+For more information about branch, tag, and path filter syntax, see "[`on..`](#onpushbranchestagsbranches-ignoretags-ignore)", "[`on..`](#onpull_requestpull_request_targetbranchesbranches-ignore)", and "[`on..paths`](#onpushpull_requestpull_request_targetpathspaths-ignore)."
### Patterns to match branches and tags
diff --git a/content/actions/migrating-to-github-actions/migrating-from-jenkins-to-github-actions.md b/content/actions/migrating-to-github-actions/migrating-from-jenkins-to-github-actions.md
index dba3e38286..09e50c0b45 100644
--- a/content/actions/migrating-to-github-actions/migrating-from-jenkins-to-github-actions.md
+++ b/content/actions/migrating-to-github-actions/migrating-from-jenkins-to-github-actions.md
@@ -64,7 +64,7 @@ Jenkins uses directives to manage _Declarative Pipelines_. These directives defi
| [`environment`](https://jenkins.io/doc/book/pipeline/syntax/#environment) | [`jobs..env`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env)
[`jobs..steps[*].env`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv) |
| [`options`](https://jenkins.io/doc/book/pipeline/syntax/#parameters) | [`jobs..strategy`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy)
[`jobs..strategy.fail-fast`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast)
[`jobs..timeout-minutes`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes) |
| [`parameters`](https://jenkins.io/doc/book/pipeline/syntax/#parameters) | [`inputs`](/actions/creating-actions/metadata-syntax-for-github-actions#inputs)
[`outputs`](/actions/creating-actions/metadata-syntax-for-github-actions#outputs) |
-| [`triggers`](https://jenkins.io/doc/book/pipeline/syntax/#triggers) | [`on`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on)
[`on..types`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onevent_nametypes)
[on..](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestbranchestags)
[on..paths](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestpaths) |
+| [`triggers`](https://jenkins.io/doc/book/pipeline/syntax/#triggers) | [`on`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on)
[`on..types`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onevent_nametypes)
[on..](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore)
[on..](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpull_requestpull_request_targetbranchesbranches-ignore)
[on..paths](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore) |
| [`triggers { upstreamprojects() }`](https://jenkins.io/doc/book/pipeline/syntax/#triggers) | [`jobs..needs`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idneeds) |
| [Jenkins cron syntax](https://jenkins.io/doc/book/pipeline/syntax/#cron-syntax) | [`on.schedule`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onschedule) |
| [`stage`](https://jenkins.io/doc/book/pipeline/syntax/#stage) | [`jobs.`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_id)
[`jobs..name`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname) |
diff --git a/content/actions/migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md b/content/actions/migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md
index 2cf18968d5..24854ba998 100644
--- a/content/actions/migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md
+++ b/content/actions/migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md
@@ -102,7 +102,7 @@ jobs:
### Targeting specific branches
-Travis CI and {% data variables.product.prodname_actions %} both allow you to target your CI to a specific branch. For more information, see "[Workflow syntax for GitHub Actions](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags)."
+Travis CI and {% data variables.product.prodname_actions %} both allow you to target your CI to a specific branch. For more information, see "[Workflow syntax for GitHub Actions](/actions/reference/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore)."
Below is an example of the syntax for each system:
diff --git a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md
index 2122636727..eafbc64c0b 100644
--- a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md
+++ b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md
@@ -78,7 +78,7 @@ Additionally, when an `on:push` scan returns results that can be mapped to an op
The default {% data variables.product.prodname_codeql_workflow %} uses the `pull_request` event to trigger a code scan on pull requests targeted against the default branch. {% ifversion ghes %}The `pull_request` event is not triggered if the pull request was opened from a private fork.{% else %}If a pull request is from a private fork, the `pull_request` event will only be triggered if you've selected the "Run workflows from fork pull requests" option in the repository settings. For more information, see "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks)."{% endif %}
-For more information about the `pull_request` event, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags)."
+For more information about the `pull_request` event, see "[Events that trigger workflows](/actions/learn-github-actions/events-that-trigger-workflows#pull_request)."
If you scan pull requests, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)."
@@ -126,7 +126,7 @@ on:
{% endnote %}
-For more information about using `on:pull_request:paths-ignore` and `on:pull_request:paths` to determine when a workflow will run for a pull request, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths)."
+For more information about using `on:pull_request:paths-ignore` and `on:pull_request:paths` to determine when a workflow will run for a pull request, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
### Scanning on a schedule
@@ -466,7 +466,7 @@ paths-ignore:
**Note**:
-* The `paths` and `paths-ignore` keywords, used in the context of the {% data variables.product.prodname_code_scanning %} configuration file, should not be confused with the same keywords when used for `on..paths` in a workflow. When they are used to modify `on.` in a workflow, they determine whether the actions will be run when someone modifies code in the specified directories. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths)."
+* The `paths` and `paths-ignore` keywords, used in the context of the {% data variables.product.prodname_code_scanning %} configuration file, should not be confused with the same keywords when used for `on..paths` in a workflow. When they are used to modify `on.` in a workflow, they determine whether the actions will be run when someone modifies code in the specified directories. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
* The filter pattern characters `?`, `+`, `[`, `]`, and `!` are not supported and will be matched literally.
* `**` characters can only be at the start or end of a line, or surrounded by slashes, and you can't mix `**` and other characters. For example, `foo/**`, `**/foo`, and `foo/**/bar` are all allowed syntax, but `**foo` isn't. However you can use single stars along with other characters, as shown in the example. You'll need to quote anything that contains a `*` character.
@@ -474,7 +474,7 @@ paths-ignore:
For compiled languages, if you want to limit {% data variables.product.prodname_code_scanning %} to specific directories in your project, you must specify appropriate build steps in the workflow. The commands you need to use to exclude a directory from the build will depend on your build system. For more information, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)."
-You can quickly analyze small portions of a monorepo when you modify code in specific directories. You'll need to both exclude directories in your build steps and use the `paths-ignore` and `paths` keywords for [`on.`](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths) in your workflow.
+You can quickly analyze small portions of a monorepo when you modify code in specific directories. You'll need to both exclude directories in your build steps and use the `paths-ignore` and `paths` keywords for [`on.`](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore) in your workflow.
### Example configuration files
diff --git a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md
index 92f3ba7c48..f510f52509 100644
--- a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md
+++ b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md
@@ -180,7 +180,7 @@ The default {% data variables.product.prodname_codeql_workflow %} uses a build m
Analysis time is typically proportional to the amount of code being analyzed. You can reduce the analysis time by reducing the amount of code being analyzed at once, for example, by excluding test code, or breaking analysis into multiple workflows that analyze only a subset of your code at a time.
-For compiled languages like Java, C, C++, and C#, {% data variables.product.prodname_codeql %} analyzes all of the code which was built during the workflow run. To limit the amount of code being analyzed, build only the code which you wish to analyze by specifying your own build steps in a `run` block. You can combine specifying your own build steps with using the `paths` or `paths-ignore` filters on the `pull_request` and `push` events to ensure that your workflow only runs when specific code is changed. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths)."
+For compiled languages like Java, C, C++, and C#, {% data variables.product.prodname_codeql %} analyzes all of the code which was built during the workflow run. To limit the amount of code being analyzed, build only the code which you wish to analyze by specifying your own build steps in a `run` block. You can combine specifying your own build steps with using the `paths` or `paths-ignore` filters on the `pull_request` and `push` events to ensure that your workflow only runs when specific code is changed. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
For languages like Go, JavaScript, Python, and TypeScript, that {% data variables.product.prodname_codeql %} analyzes without compiling the source code, you can specify additional configuration options to limit the amount of code to analyze. For more information, see "[Specifying directories to scan](/code-security/secure-coding/configuring-code-scanning#specifying-directories-to-scan)."
diff --git a/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md
index f98ec58b61..4a8e7f5131 100644
--- a/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md
+++ b/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md
@@ -240,7 +240,7 @@ Webhook events are triggered based on the specificity of the domain you register
{% note %}
-**Note:** You will not receive a webhook for this event when you push more than three tags at once.
+**Note:** You will not receive a webhook for this event when you create more than three tags at once.
{% endnote %}
@@ -382,7 +382,7 @@ Activity related to a discussion. For more information, see the "[Using the Grap
Key | Type | Description
----|------|-------------
-`action` |`string` | The action performed. Can be `created`, `edited`, `deleted`, `pinned`, `unpinned`, `locked`, `unlocked`, `transferred`, `category_changed`, `answered`, or `unanswered`.
+`action` |`string` | The action performed. Can be `created`, `edited`, `deleted`, `pinned`, `unpinned`, `locked`, `unlocked`, `transferred`, `category_changed`, `answered`, `unanswered`, `labeled`, or `unlabeled`.
{% data reusables.webhooks.discussion_desc %}
{% data reusables.webhooks.repo_desc_graphql %}
{% data reusables.webhooks.org_desc_graphql %}
@@ -856,6 +856,38 @@ Key | Type | Description
{{ webhookPayloadsForCurrentVersion.ping }}
+## project
+
+{% data reusables.webhooks.project_short_desc %}
+
+### Availability
+
+- Repository webhooks
+- Organization webhooks
+- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission
+
+{% ifversion fpt or ghec %}
+{% note %}
+
+**Note**: This event does not occur for Projects (beta).
+
+{% endnote %}
+{% endif %}
+
+### Webhook payload object
+
+{% data reusables.webhooks.project_properties %}
+{% data reusables.webhooks.repo_desc %}
+{% data reusables.webhooks.org_desc %}
+{% data reusables.webhooks.app_desc %}
+{% data reusables.webhooks.sender_desc %}
+
+### Webhook payload example
+
+{{ webhookPayloadsForCurrentVersion.project.created }}
+
+{% ifversion fpt or ghes or ghec %}
+
## project_card
{% data reusables.webhooks.project_card_short_desc %}
@@ -866,6 +898,14 @@ Key | Type | Description
- Organization webhooks
- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission
+{% ifversion fpt or ghec %}
+{% note %}
+
+**Note**: This event does not occur for Projects (beta).
+
+{% endnote %}
+{% endif %}
+
### Webhook payload object
{% data reusables.webhooks.project_card_properties %}
@@ -900,29 +940,6 @@ Key | Type | Description
{{ webhookPayloadsForCurrentVersion.project_column.created }}
-## project
-
-{% data reusables.webhooks.project_short_desc %}
-
-### Availability
-
-- Repository webhooks
-- Organization webhooks
-- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission
-
-### Webhook payload object
-
-{% data reusables.webhooks.project_properties %}
-{% data reusables.webhooks.repo_desc %}
-{% data reusables.webhooks.org_desc %}
-{% data reusables.webhooks.app_desc %}
-{% data reusables.webhooks.sender_desc %}
-
-### Webhook payload example
-
-{{ webhookPayloadsForCurrentVersion.project.created }}
-
-{% ifversion fpt or ghes or ghec %}
## public
{% data reusables.webhooks.public_short_desc %}
diff --git a/data/reusables/developer-site/pull_request_forked_repos_link.md b/data/reusables/developer-site/pull_request_forked_repos_link.md
index eb252d7654..6f9bd3c7db 100644
--- a/data/reusables/developer-site/pull_request_forked_repos_link.md
+++ b/data/reusables/developer-site/pull_request_forked_repos_link.md
@@ -1,21 +1,23 @@
+#### Workflows in forked repositories
+
+Workflows don't run in forked repositories by default. You must enable GitHub Actions in the **Actions** tab of the forked repository.
+
+{% data reusables.actions.forked-secrets %} The `GITHUB_TOKEN` has read-only permissions in forked repositories. For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)."
+
#### Pull request events for forked repositories
+For pull requests from a forked repository to the base repository, {% data variables.product.product_name %} sends the `pull_request`, `issue_comment`, `pull_request_review_comment`, `pull_request_review`, and `pull_request_target` events to the base repository. No pull request events occur on the forked repository.
+
+{% ifversion fpt or ghec %}
+When a first-time contributor submits a pull request to a public repository, a maintainer with write access may need to approve running workflows on the pull request. For more information, see "[Approving workflow runs from public forks](/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)."
+{% endif %}
+
{% note %}
**Note:** Workflows do not run on private base repositories when you open a pull request from a forked repository.
{% endnote %}
-When you create a pull request from a forked repository to the base repository, {% data variables.product.prodname_dotcom %} sends the `pull_request` event to the base repository and no pull request events occur on the forked repository.
-
-Workflows don't run on forked repositories by default. You must enable GitHub Actions in the **Actions** tab of the forked repository.
-
-{% ifversion fpt or ghec %}
-When a first-time contributor submits a pull request to a public repository, a maintainer with write access may need to approve running workflows on the pull request. For more information, see "[Approving workflow runs from public forks](/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)."
-{% endif %}
-
-{% data reusables.actions.forked-secrets %} The permissions for the `GITHUB_TOKEN` in forked repositories is read-only. For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)."
-
{% note %}
**Note:** Workflows triggered by {% data variables.product.prodname_dependabot %} pull requests are treated as though they are from a forked repository, and are also subject to these restrictions.
diff --git a/data/reusables/github-actions/actions-do-not-trigger-workflows.md b/data/reusables/github-actions/actions-do-not-trigger-workflows.md
index b7ceafcbbb..4941d69060 100644
--- a/data/reusables/github-actions/actions-do-not-trigger-workflows.md
+++ b/data/reusables/github-actions/actions-do-not-trigger-workflows.md
@@ -1 +1 @@
-When you use the repository's `GITHUB_TOKEN` to perform tasks on behalf of the {% data variables.product.prodname_actions %} app, events triggered by the `GITHUB_TOKEN` will not create a new workflow run. This prevents you from accidentally creating recursive workflow runs. For example, if a workflow run pushes code using the repository's `GITHUB_TOKEN`, a new workflow will not run even when the repository contains a workflow configured to run when `push` events occur.
+When you use the repository's `GITHUB_TOKEN` to perform tasks, events triggered by the `GITHUB_TOKEN` will not create a new workflow run. This prevents you from accidentally creating recursive workflow runs. For example, if a workflow run pushes code using the repository's `GITHUB_TOKEN`, a new workflow will not run even when the repository contains a workflow configured to run when `push` events occur.
diff --git a/data/reusables/github-actions/actions-on-examples.md b/data/reusables/github-actions/actions-on-examples.md
index bb945b991c..c5ae5781a6 100644
--- a/data/reusables/github-actions/actions-on-examples.md
+++ b/data/reusables/github-actions/actions-on-examples.md
@@ -1,34 +1,75 @@
-## Example: Using a single event
+### Using a single event
+
+For example, a workflow with the following `on` value will run when a push is made to any branch in the workflow's repository:
```yaml
-# Triggered when code is pushed to any branch in a repository
on: push
```
-## Example: Using a list of events
+### Using a multiple events
+
+You can specify a single event or multiple events. For example, a workflow with the following `on` value will run when a push is made to any branch in the repository or when someone forks the repository:
```yaml
-# Triggers the workflow on push or pull request events
-on: [push, pull_request]
+on: [push, fork]
```
-## Example: Using multiple events with activity types or configuration
+If you specify multiple events, only one of those events needs to occur to trigger your workflow. If multiple triggering events for your workflow occur at the same time, multiple workflow runs will be triggered.
-If you need to specify activity types or configuration for an event, you must configure each event separately. You must append a colon (`:`) to all events, including events without configuration.
+### Using activity types
+
+Some events have activity types that give you more control over when your workflow should run.
+
+For example, the `issue_comment` event has the `created`, `edited`, and `deleted` activity types. If your workflow triggers on the `label` event, it will run whenever a label is created, edited, or deleted. If you specify the `created` activity type for the `label` event, your workflow will run when a label is created but not when a label is edited or deleted.
+
+```yaml
+on:
+ label:
+ types:
+ - created
+```
+
+If you specify multiple activity types, only one of those event activity types needs to occur to trigger your workflow. If multiple triggering event activity types for your workflow occur at the same time, multiple workflow runs will be triggered. For example, the following workflow triggers when an issue is opened or labeled. If an issue with two labels is opened, three workflow runs will start: one for the issue opened event and two for the two issue labeled events.
+
+```yaml
+on:
+ issue:
+ types:
+ - opened
+ - labeled
+```
+
+### Using filters
+
+Some events have filters that give you more control over when your workflow should run.
+
+For example, the `push` event has a `branches` filter that causes your workflow to run only when a push to a branch that matches the `branches` filter occurs, instead of when any push occurs.
```yaml
on:
- # Trigger the workflow on push or pull request,
- # but only for the main branch
push:
branches:
- main
- pull_request:
+ - 'releases/**'
+```
+
+### Using activity types and filters with multiple events
+
+If you specify activity types or filters for an event and your workflow triggers on multiple events, you must configure each event separately. You must append a colon (`:`) to all events, including events without configuration.
+
+For example, a workflow with the following `on` value will run when:
+
+- A label is created
+- A push is made to the `main` branch in the repository
+- A push is made to a {% data variables.product.prodname_pages %}-enabled branch
+
+```yaml
+on:
+ label:
+ types:
+ - created
+ push:
branches:
- main
- # Also trigger on page_build, as well as release created events
page_build:
- release:
- types: # This configuration does not affect the page_build event above
- - created
```
diff --git a/data/reusables/github-actions/branch-paths-filter.md b/data/reusables/github-actions/branch-paths-filter.md
new file mode 100644
index 0000000000..a0701b5614
--- /dev/null
+++ b/data/reusables/github-actions/branch-paths-filter.md
@@ -0,0 +1 @@
+If you use both the `branches` filter and the `paths` filter, the workflow will only run when both filters are satisfied.
\ No newline at end of file
diff --git a/data/reusables/repositories/actions-scheduled-workflow-example.md b/data/reusables/repositories/actions-scheduled-workflow-example.md
index 3dae8f356e..d61c5baa10 100644
--- a/data/reusables/repositories/actions-scheduled-workflow-example.md
+++ b/data/reusables/repositories/actions-scheduled-workflow-example.md
@@ -1,4 +1,4 @@
-You can schedule a workflow to run at specific UTC times using [POSIX cron syntax](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07). Scheduled workflows run on the latest commit on the default or base branch. The shortest interval you can run scheduled workflows is once every 5 minutes.
+You can schedule a workflow to run at specific UTC times using [POSIX cron syntax](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07). Scheduled workflows run on the latest commit on the default or base branch. The shortest interval you can run scheduled workflows is once every 15 minutes.
This example triggers the workflow every day at 5:30 and 17:30 UTC:
@@ -9,3 +9,22 @@ on:
- cron: '30 5,17 * * *'
```
+
+A single workflow can be triggered by multiple `schedule` events. You can access the schedule event that triggered the workflow through the `github.event.schedule` context. This example triggers the workflow to run at 5:30 UTC every Monday-Thursday, but skips the `Not on Monday or Wednesday` step on Monday and Wednesday.
+
+```yaml
+on:
+ schedule:
+ - cron: '30 5 * * 1,3'
+ - cron: '30 5 * * 2,4'
+
+jobs:
+ test_schedule:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Not on Monday or Wednesday
+ if: github.event.schedule != '30 5 * * 1,3'
+ run: echo "This step will be skipped on Monday and Wednesday"
+ - name: Every time
+ run: echo "This step will always run"
+```
diff --git a/data/reusables/webhooks/create_short_desc.md b/data/reusables/webhooks/create_short_desc.md
index 5cf906a338..ce6f4d355d 100644
--- a/data/reusables/webhooks/create_short_desc.md
+++ b/data/reusables/webhooks/create_short_desc.md
@@ -1 +1 @@
-A Git branch or tag is created. For more information, see the "[Git data](/rest/reference/git)" REST API.
+A Git branch or tag is created. For more information, see the "[Git database](/rest/reference/git#create-a-reference)" REST API.
diff --git a/data/reusables/webhooks/delete_short_desc.md b/data/reusables/webhooks/delete_short_desc.md
index 726e68df82..f514958e94 100644
--- a/data/reusables/webhooks/delete_short_desc.md
+++ b/data/reusables/webhooks/delete_short_desc.md
@@ -1 +1 @@
-A Git branch or tag is deleted. For more information, see the "[Git data](/rest/reference/git)" REST API.
+A Git branch or tag is deleted. For more information, see the "[Git database](/rest/reference/git#delete-a-reference)" REST API.
diff --git a/data/reusables/webhooks/deployment_status_short_desc.md b/data/reusables/webhooks/deployment_status_short_desc.md
index 5c8fe47344..0205b22199 100644
--- a/data/reusables/webhooks/deployment_status_short_desc.md
+++ b/data/reusables/webhooks/deployment_status_short_desc.md
@@ -1 +1 @@
-A deployment is created. {% data reusables.webhooks.action_type_desc %} For more information, see the "[deployment statuses](/rest/reference/deployments#list-deployment-statuses)" REST API.
+A deployment is created. {% data reusables.webhooks.action_type_desc %} For more information, see the "[deployments](/rest/reference/repos#deployments)" REST API.
diff --git a/data/reusables/webhooks/gollum_short_desc.md b/data/reusables/webhooks/gollum_short_desc.md
index 3049191763..fb4c736e27 100644
--- a/data/reusables/webhooks/gollum_short_desc.md
+++ b/data/reusables/webhooks/gollum_short_desc.md
@@ -1 +1 @@
-A wiki page is created or updated. For more information, see the "[About wikis](/communities/documenting-your-project-with-wikis/about-wikis)".
+A wiki page is created or updated. For more information, see "[About wikis](/communities/documenting-your-project-with-wikis/about-wikis)."
diff --git a/data/reusables/webhooks/issues_short_desc.md b/data/reusables/webhooks/issues_short_desc.md
index 3edc02859f..851a1ea93b 100644
--- a/data/reusables/webhooks/issues_short_desc.md
+++ b/data/reusables/webhooks/issues_short_desc.md
@@ -1 +1 @@
-Activity related to an issue. {% data reusables.webhooks.action_type_desc %} For more information, see the "[issues](/rest/reference/issues#comments)" REST API.
+Activity related to an issue. {% data reusables.webhooks.action_type_desc %} For more information, see the "[issues](/rest/reference/issues)" REST API.
diff --git a/data/reusables/webhooks/milestone_properties.md b/data/reusables/webhooks/milestone_properties.md
index 41365074df..2bd860e8a8 100644
--- a/data/reusables/webhooks/milestone_properties.md
+++ b/data/reusables/webhooks/milestone_properties.md
@@ -1,6 +1,6 @@
Key | Type | Description
----|------|-------------
-`action` |`string` | The action that was performed. Can be one of `created`, `closed`, `opened`, `edited`, or `deleted`.
+`action` |`string` | The action that was performed. Can be one of `created`, `closed`, `opened` (a closed milestone is re-opened), `edited`, or `deleted`.
`milestone` |`object` | The milestone itself.
`changes`|`object`| The changes to the milestone if the action was `edited`.
`changes[description][from]`|`string` | The previous version of the description if the action was `edited`.
diff --git a/data/reusables/webhooks/status_short_desc.md b/data/reusables/webhooks/status_short_desc.md
index 6d835788c9..ca8d0b1bed 100644
--- a/data/reusables/webhooks/status_short_desc.md
+++ b/data/reusables/webhooks/status_short_desc.md
@@ -1 +1 @@
-When the status of a Git commit changes. {% data reusables.webhooks.action_type_desc %} For more information, see the "[statuses](/rest/reference/repos#statuses)" REST API.
+When the status of a Git commit changes. For more information, see the "[statuses](/rest/reference/commits#commit-statuses)" REST API.
diff --git a/data/reusables/webhooks/workflow_run_desc.md b/data/reusables/webhooks/workflow_run_desc.md
deleted file mode 100644
index 486a20dcd1..0000000000
--- a/data/reusables/webhooks/workflow_run_desc.md
+++ /dev/null
@@ -1,5 +0,0 @@
-This event occurs when a workflow run is requested or completed, and allows you to execute a workflow based on the finished result of another workflow. A workflow run is triggered regardless of the result of the previous workflow.
-
-For example, if your `pull_request` workflow generates build artifacts, you can create a new workflow that uses `workflow_run` to analyze the results and add a comment to the original pull request.
-
-The workflow started by the `workflow_run` event is able to access secrets and write tokens, even if the previous workflow was not. This is useful in cases where the previous workflow is intentionally not privileged, but you need to take a privileged action in a later workflow.
diff --git a/data/reusables/webhooks/workflow_run_properties.md b/data/reusables/webhooks/workflow_run_properties.md
index 1ff99e14f5..bd5001c6eb 100644
--- a/data/reusables/webhooks/workflow_run_properties.md
+++ b/data/reusables/webhooks/workflow_run_properties.md
@@ -1,4 +1,4 @@
Key | Type | Description
----|------|-------------
`action`|`string` | The action that was performed. Can be one of `requested` or `completed`.
-`workflow_run`| `object` | The workflow run. Many `workflow_run` keys, such as `head_branch`, `conclusion`, and `pull_requests` are the same as those in a [`check_suite`](#check_suite) object.
+`workflow_run`| `object` | The workflow run. Includes information such as `artifacts_url`, `check_suite_id`, `conclusion`, `head_branch`, and `head_sha`.
diff --git a/lib/webhooks/static/dotcom/workflow_dispatch.payload.json b/lib/webhooks/static/dotcom/workflow_dispatch.payload.json
index 0b4f17741f..55f3a28d67 100644
--- a/lib/webhooks/static/dotcom/workflow_dispatch.payload.json
+++ b/lib/webhooks/static/dotcom/workflow_dispatch.payload.json
@@ -2,133 +2,138 @@
"inputs": {
"name": "Mona the Octocat"
},
- "ref": "refs/heads/master",
+ "organization": {
+ "avatar_url": "https://avatars.githubusercontent.com/u/6811672?v=4",
+ "description": null,
+ "events_url": "https://api.github.com/orgs/octo-org/events",
+ "hooks_url": "https://api.github.com/orgs/octo-org/hooks",
+ "id": 79927191,
+ "issues_url": "https://api.github.com/orgs/octo-org/issues",
+ "login": "octo-org",
+ "members_url": "https://api.github.com/orgs/octo-org/members{/member}",
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI",
+ "public_members_url": "https://api.github.com/orgs/octo-org/public_members{/member}",
+ "repos_url": "https://api.github.com/orgs/octo-org/repos",
+ "url": "https://api.github.com/orgs/octo-org"
+ },
+ "ref": "refs/heads/main",
"repository": {
- "id": 17273051,
- "node_id": "MDEwOlJlcG9zaXRvcnkxNzI3MzA1MQ==",
- "name": "octo-repo",
+ "allow_forking": true,
+ "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}",
+ "archived": false,
+ "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}",
+ "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}",
+ "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}",
+ "clone_url": "https://github.com/octo-org/octo-repo.git",
+ "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}",
+ "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}",
+ "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}",
+ "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}",
+ "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors",
+ "created_at": "2021-08-16T21:34:28Z",
+ "default_branch": "main",
+ "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments",
+ "description": null,
+ "disabled": false,
+ "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads",
+ "events_url": "https://api.github.com/repos/octo-org/octo-repo/events",
+ "fork": false,
+ "forks": 1,
+ "forks_count": 1,
+ "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks",
"full_name": "octo-org/octo-repo",
- "private": true,
+ "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}",
+ "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}",
+ "git_url": "git://github.com/octo-org/octo-repo.git",
+ "has_downloads": true,
+ "has_issues": true,
+ "has_pages": false,
+ "has_projects": true,
+ "has_wiki": true,
+ "homepage": null,
+ "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks",
+ "html_url": "https://github.com/octo-org/octo-repo",
+ "id": 6811672,
+ "is_template": false,
+ "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}",
+ "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}",
+ "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}",
+ "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}",
+ "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}",
+ "language": null,
+ "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages",
+ "license": null,
+ "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges",
+ "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}",
+ "mirror_url": null,
+ "name": "octo-repo",
+ "node_id": "MDEwOlJlcG9zaXRvcnkzOTY5ODA4MTI=",
+ "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}",
+ "open_issues": 97,
+ "open_issues_count": 97,
"owner": {
- "login": "octo-org",
- "id": 6811672,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/octo-org",
- "html_url": "https://github.com/octo-org",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6811672?v=4",
+ "events_url": "https://api.github.com/users/octo-org/events{/privacy}",
"followers_url": "https://api.github.com/users/octo-org/followers",
"following_url": "https://api.github.com/users/octo-org/following{/other_user}",
"gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}",
+ "gravatar_id": "",
+ "html_url": "https://github.com/octo-org",
+ "id": 79927191,
+ "login": "octo-org",
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI9",
+ "organizations_url": "https://api.github.com/users/octo-org/orgs",
+ "received_events_url": "https://api.github.com/users/octo-org/received_events",
+ "repos_url": "https://api.github.com/users/octo-org/repos",
+ "site_admin": false,
"starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octo-org/subscriptions",
- "organizations_url": "https://api.github.com/users/octo-org/orgs",
- "repos_url": "https://api.github.com/users/octo-org/repos",
- "events_url": "https://api.github.com/users/octo-org/events{/privacy}",
- "received_events_url": "https://api.github.com/users/octo-org/received_events",
"type": "Organization",
- "site_admin": false
+ "url": "https://api.github.com/users/octo-org"
},
- "html_url": "https://github.com/octo-org/octo-repo",
- "description": "My first repo on GitHub!",
- "fork": false,
- "url": "https://api.github.com/repos/octo-org/octo-repo",
- "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks",
- "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}",
- "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}",
- "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams",
- "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks",
- "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}",
- "events_url": "https://api.github.com/repos/octo-org/octo-repo/events",
- "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}",
- "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}",
- "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags",
- "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}",
- "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}",
- "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}",
- "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}",
- "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}",
- "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages",
+ "private": false,
+ "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}",
+ "pushed_at": "2022-01-07T21:57:21Z",
+ "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}",
+ "size": 144,
+ "ssh_url": "git@github.com:octo-org/octo-repo.git",
+ "stargazers_count": 0,
"stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers",
- "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors",
+ "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers",
"subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription",
- "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}",
- "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}",
- "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}",
- "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}",
- "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}",
- "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}",
- "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges",
- "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}",
- "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads",
- "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}",
- "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}",
- "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}",
- "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}",
- "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}",
- "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}",
- "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments",
- "created_at": "2014-02-28T02:42:51Z",
- "updated_at": "2018-10-10T15:58:51Z",
- "pushed_at": "2018-10-10T15:58:47Z",
- "git_url": "git://github.com/octo-org/octo-repo.git",
- "ssh_url": "git@github.com:octo-org/octo-repo.git",
- "clone_url": "https://github.com/octo-org/octo-repo.git",
"svn_url": "https://github.com/octo-org/octo-repo",
- "homepage": "",
- "size": 59,
- "stargazers_count": 0,
- "watchers_count": 0,
- "language": "JavaScript",
- "has_issues": true,
- "has_projects": true,
- "has_downloads": true,
- "has_wiki": true,
- "has_pages": false,
- "forks_count": 1,
- "mirror_url": null,
- "archived": false,
- "open_issues_count": 23,
- "license": null,
- "forks": 1,
- "open_issues": 23,
+ "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags",
+ "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams",
+ "topics": [],
+ "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}",
+ "updated_at": "2022-01-07T21:57:24Z",
+ "url": "https://api.github.com/repos/octo-org/octo-repo",
+ "visibility": "public",
"watchers": 0,
- "default_branch": "master"
- },
- "organization": {
- "login": "octo-org",
- "id": 6811672,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
- "url": "https://api.github.com/orgs/octo-org",
- "repos_url": "https://api.github.com/orgs/octo-org/repos",
- "events_url": "https://api.github.com/orgs/octo-org/events",
- "hooks_url": "https://api.github.com/orgs/octo-org/hooks",
- "issues_url": "https://api.github.com/orgs/octo-org/issues",
- "members_url": "https://api.github.com/orgs/octo-org/members{/member}",
- "public_members_url": "https://api.github.com/orgs/octo-org/public_members{/member}",
- "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4",
- "description": "Working better together!"
+ "watchers_count": 0
},
"sender": {
- "login": "Codertocat",
- "id": 21031067,
- "node_id": "MDQ6VXNlcjIxMDMxMDY3",
- "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
+ "avatar_url": "https://avatars.githubusercontent.com/u/25328854?v=4",
+ "events_url": "https://api.github.com/users/octocat/events{/privacy}",
+ "followers_url": "https://api.github.com/users/octocat/followers",
+ "following_url": "https://api.github.com/users/octocat/following{/other_user}",
+ "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"gravatar_id": "",
- "url": "https://api.github.com/users/Codertocat",
- "html_url": "https://github.com/Codertocat",
- "followers_url": "https://api.github.com/users/Codertocat/followers",
- "following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
- "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
- "organizations_url": "https://api.github.com/users/Codertocat/orgs",
- "repos_url": "https://api.github.com/users/Codertocat/repos",
- "events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Codertocat/received_events",
+ "html_url": "https://github.com/octocat",
+ "id": 25328754,
+ "login": "octocat",
+ "node_id": "MDQ6VXNlcjI1MzI4ODU0",
+ "organizations_url": "https://api.github.com/users/octocat/orgs",
+ "received_events_url": "https://api.github.com/users/octocat/received_events",
+ "repos_url": "https://api.github.com/users/octocat/repos",
+ "site_admin": true,
+ "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"type": "User",
- "site_admin": false
+ "url": "https://api.github.com/users/octocat"
},
"workflow": ".github/workflows/hello-world-workflow.yml"
}
\ No newline at end of file
diff --git a/lib/webhooks/static/dotcom/workflow_run.payload.json b/lib/webhooks/static/dotcom/workflow_run.payload.json
index 0151f44ce5..6ec2c04adb 100644
--- a/lib/webhooks/static/dotcom/workflow_run.payload.json
+++ b/lib/webhooks/static/dotcom/workflow_run.payload.json
@@ -127,5 +127,194 @@
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
"type": "User",
"url": "https://api.github.com/users/Codertocat"
+ },
+ "workflow": {
+ "badge_url": "https://github.com/octo-org/octo-repo/workflows/Manually%20triggered%20workflow/badge.svg",
+ "created_at": "2021-12-15T20:11:38.000Z",
+ "html_url": "https://github.com/octo-org/octo-repo/blob/main/.github/workflows/syntax.yml",
+ "id": 16340987,
+ "name": "Manually triggered workflow",
+ "node_id": "W_kwDOF6lyTM4A-Vf7",
+ "path": ".github/workflows/syntax.yml",
+ "state": "active",
+ "updated_at": "2021-12-16T18:40:41.000Z",
+ "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/16340987"
+ },
+ "workflow_run": {
+ "artifacts_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1589141559/artifacts",
+ "cancel_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1589141559/cancel",
+ "check_suite_id": 4683454167,
+ "check_suite_node_id": "CS_kwDOF6lyTM8AAAABFyfW1w",
+ "check_suite_url": "https://api.github.com/repos/octo-org/octo-repo/check-suites/4683454167",
+ "conclusion": null,
+ "created_at": "2021-12-16T19:37:22Z",
+ "event": "workflow_dispatch",
+ "head_branch": "main",
+ "head_commit": {
+ "author": {
+ "email": "octocat@github.com",
+ "name": "Mona Lisa"
+ },
+ "committer": {
+ "email": "noreply@github.com",
+ "name": "GitHub"
+ },
+ "id": "5779607b49aab1200488439f02372c57b4f75444",
+ "message": "Update milestone-created.yml",
+ "timestamp": "2021-12-16T19:37:14Z",
+ "tree_id": "8181cee091cf9627ac07c3cc4b94c015a1d56706"
+ },
+ "head_repository": {
+ "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}",
+ "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}",
+ "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}",
+ "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}",
+ "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}",
+ "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}",
+ "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}",
+ "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}",
+ "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors",
+ "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments",
+ "description": null,
+ "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads",
+ "events_url": "https://api.github.com/repos/octo-org/octo-repo/events",
+ "fork": false,
+ "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks",
+ "full_name": "octo-org/octo-repo",
+ "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}",
+ "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}",
+ "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks",
+ "html_url": "https://github.com/octo-org/octo-repo",
+ "id": 396980812,
+ "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}",
+ "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}",
+ "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}",
+ "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}",
+ "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}",
+ "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages",
+ "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges",
+ "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}",
+ "name": "octo-repo",
+ "node_id": "MDEwOlJlcG9zaXRvcnkzOTY5ODA4MTI=",
+ "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}",
+ "owner": {
+ "avatar_url": "https://avatars.githubusercontent.com/u/79927191?v=4",
+ "events_url": "https://api.github.com/users/octo-org/events{/privacy}",
+ "followers_url": "https://api.github.com/users/octo-org/followers",
+ "following_url": "https://api.github.com/users/octo-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}",
+ "gravatar_id": "",
+ "html_url": "https://github.com/octo-org",
+ "id": 79927191,
+ "login": "octo-org",
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc5OTI3MTkx",
+ "organizations_url": "https://api.github.com/users/octo-org/orgs",
+ "received_events_url": "https://api.github.com/users/octo-org/received_events",
+ "repos_url": "https://api.github.com/users/octo-org/repos",
+ "site_admin": false,
+ "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions",
+ "type": "Organization",
+ "url": "https://api.github.com/users/octo-org"
+ },
+ "private": true,
+ "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}",
+ "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}",
+ "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers",
+ "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}",
+ "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers",
+ "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription",
+ "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags",
+ "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams",
+ "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}",
+ "url": "https://api.github.com/repos/octo-org/octo-repo"
+ },
+ "head_sha": "5779607b49aab1200488439f02372c57b4f75444",
+ "html_url": "https://github.com/octo-org/octo-repo/actions/runs/1589141559",
+ "id": 1589141559,
+ "jobs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1589141559/jobs",
+ "logs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1589141559/logs",
+ "name": "Manually triggered workflow",
+ "node_id": "WFR_kwLOF6lyTM5euGA3",
+ "previous_attempt_url": null,
+ "pull_requests": [],
+ "repository": {
+ "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}",
+ "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}",
+ "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}",
+ "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}",
+ "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}",
+ "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}",
+ "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}",
+ "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}",
+ "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors",
+ "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments",
+ "description": null,
+ "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads",
+ "events_url": "https://api.github.com/repos/octo-org/octo-repo/events",
+ "fork": false,
+ "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks",
+ "full_name": "octo-org/octo-repo",
+ "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}",
+ "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}",
+ "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks",
+ "html_url": "https://github.com/octo-org/octo-repo",
+ "id": 396980812,
+ "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}",
+ "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}",
+ "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}",
+ "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}",
+ "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}",
+ "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages",
+ "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges",
+ "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}",
+ "name": "octo-repo",
+ "node_id": "MDEwOlJlcG9zaXRvcnkzOTY5ODA4MTI=",
+ "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}",
+ "owner": {
+ "avatar_url": "https://avatars.githubusercontent.com/u/79927191?v=4",
+ "events_url": "https://api.github.com/users/octo-org/events{/privacy}",
+ "followers_url": "https://api.github.com/users/octo-org/followers",
+ "following_url": "https://api.github.com/users/octo-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}",
+ "gravatar_id": "",
+ "html_url": "https://github.com/octo-org",
+ "id": 79927191,
+ "login": "octo-org",
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc5OTI3MTkx",
+ "organizations_url": "https://api.github.com/users/octo-org/orgs",
+ "received_events_url": "https://api.github.com/users/octo-org/received_events",
+ "repos_url": "https://api.github.com/users/octo-org/repos",
+ "site_admin": false,
+ "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions",
+ "type": "Organization",
+ "url": "https://api.github.com/users/octo-org"
+ },
+ "private": true,
+ "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}",
+ "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}",
+ "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers",
+ "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}",
+ "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers",
+ "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription",
+ "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags",
+ "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams",
+ "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}",
+ "url": "https://api.github.com/repos/octo-org/octo-repo"
+ },
+ "rerun_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1589141559/rerun",
+ "run_attempt": 1,
+ "run_number": 36,
+ "run_started_at": "2021-12-16T19:37:22Z",
+ "status": "queued",
+ "updated_at": "2021-12-16T19:37:22Z",
+ "url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/1589141559",
+ "workflow_id": 16340987,
+ "workflow_url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/16340987"
}
}
\ No newline at end of file