#44493·docs

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

Author: KubaZCreated May 29, 2026Updated Sep 9, 2026
Labelscontentnever-stalecopilot

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:

yaml
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:

yaml
jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    steps:
      - uses: ./.github/actions/shared-setup  # composite action — supported

References