Clarify limitations of `copilot-setup-steps` concerning call of reusable workflows

Open Beginner friendly
#44,493 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
74/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Quiet
Tech stack
github-actions
Domain
documentation

Research direction

Start with the linked customize-the-agent-environment article and review its copilot-setup-steps job-property documentation, then compare the reusable-workflow and composite-action references. Document that jobs..uses is unsupported, clarify that inline steps are supported, and include the composite-action workaround; verify the article renders correctly and links remain valid.

Written by the indexing model from the issue text.

Description

content copilot never-stale
Code of Conduct
What article on docs.github.com is affected?

https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/customize-the-agent-environment

What part(s) of the article would you like to see updated?

The documentation for copilot-setup-steps does not explicitly state that calling reusable workflows via jobs.<job-id>.uses is not supported. This causes confusion for users who try to extract shared setup logic into a reusable workflow and reference it from the copilot-setup-steps job.

Current behavior

The copilot-setup-steps.yml documentation lists the job-level properties that can be customized (steps, permissions, runs-on, services, snapshot, timeout-minutes). However, it does not explicitly call out that uses at the job level — which is how GitHub Actions reusable workflows are invoked — is not among the supported properties and will be silently ignored or will cause unexpected behavior.

A user might reasonably author:

jobs:
  copilot-setup-steps:
    uses: ./.github/workflows/shared-setup.yml

...expecting the reusable workflow to run as part of Copilot's environment setup, only to find it does not work as intended.

Expected behavior

The documentation should explicitly state that:

  • jobs.<job-id>.uses (reusable workflow calls) is not supported in copilot-setup-steps.
  • Only inline steps are supported; shared setup logic must be inlined or extracted into a composite action (using uses inside a steps entry) rather than a reusable workflow.
Suggested workaround (to be documented)

Instead of a reusable workflow, users can extract shared setup steps into a composite action and reference it within a step:

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    steps:
      - uses: ./.github/actions/shared-setup  # composite action — supported
References
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.