Inconsistent allowed contexts for reusable workflow secrets/inputs

Open Beginner friendly
#40,391 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Active
Tech stack
markdown
Domain
documentation

Research direction

Start by comparing actions/reference/workflows-and-actions/contexts.md with actions/reference/workflows-and-actions/reusable-workflows.md, focusing on the jobs.<job_id>.secrets.<secret_id> and jobs.<job_id>.with.<input_id> entries. Resolve the documented allowed contexts and align the workflow key names so both pages describe the same behavior.

Written by the indexing model from the issue text.

Description

content github_actions never-stale
Code of Conduct
What article on docs.github.com is affected?
What part(s) of the article would you like to see updated?

I have found inconsistencies between the actions/reference/workflows-and-actions/contexts.md and the actions/reference/workflows-and-actions/reusable-workflows.md pages.

The reusable-workflows.md page defines contexts for jobs.<job_id>.secrets.<secret_id> and jobs.<job_id>.with.<input_id> like so:

## `jobs.<job_id>.with.<input_id>`

[...]

Allowed expression contexts: `github`, and `needs`.
## `jobs.<job_id>.secrets.<secret_id>`

[...]

Allowed expression contexts: `github`, `needs`, and `secrets`.

This seems to match observed behavior that the following using vars, using a reusable workflow that requires a secret, does not work: After testing in a different and cleaner environment, this actually does not match the observed behavior, as the following using vars, using a reusable workflow that requires a secret, does work:

jobs:
  job:
    uses: job.yml
    secrets:
      MY_SECRET: ${{ vars.MY_SECRET }}

Indeed, the contexts.md page defines these contexts like so:

| `jobs.<job_id>.secrets.<secrets_id>` | `github, needs, strategy, matrix, secrets, inputs, vars` | None |
| `jobs.<job_id>.with.<with_id>` | `github, needs, strategy, matrix, inputs, vars` | None |

So I would have expected vars to work in this context, but it does not.

Also while we are at it, note the workflow keys are not consistent: secrets_id vs secret_id, and with_id vs input_id.

Therefore I would suggest to:

  • Rename the workflow keys in the contexts.md page to match those in the reusable-workflows.md page,
  • Update the "allowed expression contexts" in the reusable-workflows.md page to match what is described in the contexts.md page.
Additional information

No response

Dominant language
TypeScript
Stars
20.9k
Forks
68.8k
Avg merge
15h 4m
Merged PRs (30d)
103

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/docs

All issues in github/docs

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.