-
-
Notifications
You must be signed in to change notification settings - Fork 5
Remove GitHub App authentication from tools.github in agentic workflows #1973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Remove app authentication from safe-outputs in all 10 workflows - Remove app authentication from tools.github in all 10 workflows - Recompile all workflows to generate updated lock files - Workflows now use default GITHUB_TOKEN instead of GitHub App Co-authored-by: devantler <26203420+devantler@users.noreply.github.com>
|
@copilot you were not supposed to remove app auth from safe outputs! Remember to recompile |
- Add back app: section to safe-outputs in all 10 workflows - Keep tools.github without app authentication (use GitHub token) - Recompile all workflows with corrected configuration Co-authored-by: devantler <26203420+devantler@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates the repository’s agentic workflows to stop using GitHub App authentication for tools.github, switching those MCP tool calls back to token-based auth while retaining GitHub App auth for safe-outputs.
Changes:
- Removed
tools.github.appconfiguration blocks from agentic workflow source (.md) files. - Recompiled workflows to update generated
.lock.ymlfiles (including removing the GitHub App token generation/invalidation steps for the GitHub MCP server). - Updated GitHub MCP server token wiring to use the standard token fallback chain.
Reviewed changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/weekly-research.md | Removes GitHub App auth from tools.github while keeping safe-outputs app auth. |
| .github/workflows/weekly-research.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/update-docs.md | Removes GitHub App auth from tools.github. |
| .github/workflows/update-docs.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/pr-fix.md | Removes GitHub App auth from tools.github. |
| .github/workflows/pr-fix.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/issue-triage.md | Removes GitHub App auth from tools.github. |
| .github/workflows/issue-triage.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/daily-test-improver.md | Removes GitHub App auth from tools.github. |
| .github/workflows/daily-test-improver.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/daily-qa.md | Removes GitHub App auth from tools.github. |
| .github/workflows/daily-qa.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/daily-progress.md | Removes GitHub App auth from tools.github. |
| .github/workflows/daily-progress.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/daily-perf-improver.md | Removes GitHub App auth from tools.github. |
| .github/workflows/daily-perf-improver.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/ci-doctor.md | Removes GitHub App auth from tools.github. |
| .github/workflows/ci-doctor.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/audit-workflows.md | Removes GitHub App auth from tools.github. |
| .github/workflows/audit-workflows.lock.yml | Regenerated lockfile reflecting token-based GitHub MCP auth and removal of MCP app-token steps. |
| .github/workflows/agentics-maintenance.yml | Regenerated formatting/comments as part of workflow compilation/maintenance. |
Comments suppressed due to low confidence (10)
.github/workflows/daily-perf-improver.lock.yml:895
- The redaction step removed
APP_PRIVATE_KEYfromGH_AW_SECRET_NAMES, but this workflow still usessecrets.APP_PRIVATE_KEYforsafe-outputsGitHub App auth. AddAPP_PRIVATE_KEYback and passSECRET_APP_PRIVATE_KEYso redaction can scrub it from any collected artifacts/logs.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/ci-doctor.lock.yml:927
- The secret redaction configuration no longer includes
APP_PRIVATE_KEY, but the workflow still usessecrets.APP_PRIVATE_KEYforsafe-outputsapp authentication. AddAPP_PRIVATE_KEYback toGH_AW_SECRET_NAMESand provideSECRET_APP_PRIVATE_KEYso redaction can sanitize artifacts/logs.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/update-docs.lock.yml:761
- The secret redaction step no longer includes
APP_PRIVATE_KEY, but this workflow still usessecrets.APP_PRIVATE_KEYforsafe-outputsGitHub App auth. AddAPP_PRIVATE_KEYback toGH_AW_SECRET_NAMESand includeSECRET_APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}so artifacts/logs are properly sanitized.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/daily-test-improver.lock.yml:946
- The redaction step no longer includes
APP_PRIVATE_KEY, butsafe-outputsin this workflow still relies onsecrets.APP_PRIVATE_KEY. AddAPP_PRIVATE_KEYback toGH_AW_SECRET_NAMESand provideSECRET_APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}so the redaction script can remove it from any collected artifacts/logs.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/daily-qa.lock.yml:774
- The secret redaction configuration dropped
APP_PRIVATE_KEY, butsafe-outputsfor this workflow still usessecrets.APP_PRIVATE_KEY. Re-addAPP_PRIVATE_KEYtoGH_AW_SECRET_NAMESand passSECRET_APP_PRIVATE_KEYso the redaction script can sanitize artifacts/logs if the key is ever written.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/daily-progress.lock.yml:831
APP_PRIVATE_KEYwas removed from the redaction configuration even though this workflow still usessecrets.APP_PRIVATE_KEYforsafe-outputsapp auth. Add it back toGH_AW_SECRET_NAMESand includeSECRET_APP_PRIVATE_KEYso redaction can sanitize any collected logs/artifacts.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/audit-workflows.lock.yml:943
APP_PRIVATE_KEYwas removed from the redaction configuration, butsafe-outputsstill usessecrets.APP_PRIVATE_KEYin this workflow. AddAPP_PRIVATE_KEYback toGH_AW_SECRET_NAMESand includeSECRET_APP_PRIVATE_KEYso the redaction script can scrub it from collected logs/artifacts.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/weekly-research.lock.yml:664
- The secret redaction step no longer includes
APP_PRIVATE_KEY, but this workflow still configuressafe-outputs.app.private-keywithsecrets.APP_PRIVATE_KEY. To avoid leaking the GitHub App private key into collected artifacts/logs, addAPP_PRIVATE_KEYback toGH_AW_SECRET_NAMESand pass its value (e.g.,SECRET_APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}) so the redaction script can scan/redact it.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/pr-fix.lock.yml:834
- The secret redaction step removed
APP_PRIVATE_KEYfromGH_AW_SECRET_NAMES, but the workflow still usessecrets.APP_PRIVATE_KEYforsafe-outputsapp authentication. Add it back and provideSECRET_APP_PRIVATE_KEYso redaction can remove it from collected logs/artifacts if it appears.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/issue-triage.lock.yml:724
APP_PRIVATE_KEYwas removed from the redaction configuration, but this workflow still consumessecrets.APP_PRIVATE_KEYforsafe-outputsGitHub App auth. AddAPP_PRIVATE_KEYback toGH_AW_SECRET_NAMESand passSECRET_APP_PRIVATE_KEYso redaction can sanitize artifacts/logs.
GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
All agentic workflows were configured to use GitHub App authentication for both
tools.githubandsafe-outputs. This removes App authentication fromtools.githubto use the standard GitHub token authentication mechanism for MCP tools, while keeping App authentication forsafe-outputsoperations.Changes
app:sections containingapp-idandprivate-keyfromtools.github:configurations onlyapp:authentication insafe-outputs:for safe-output operations.lock.ymlfilesBefore/After
Technical Impact
GITHUB_MCP_SERVER_TOKENwhich falls back toGITHUB_TOKENGH_AW_GITHUB_MCP_SERVER_TOKEN || GH_AW_GITHUB_TOKEN || GITHUB_TOKENOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.