You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Step-Level Usage (env blocks in step definitions): ~3,985 occurrences (rough structural scan; most secrets are injected as step/action env: entries rather than job-level env:)
🛡️ Security Posture
✅ Redaction System: 264/264 workflows have redact_secrets steps (100% coverage)
✅ Token Cascades: 947 instances of GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN fallback chains
✅ Permission Blocks: 264 explicit permissions: definitions (one per workflow — full coverage)
Template injection scan: 4,703 raw github.event. matches were found across all lock files, but these are expected — the compiler consistently routes untrusted github.event.* values through intermediate env: variables before use in scripts, rather than interpolating them directly into shell/JS bodies. No raw unguarded ${{ github.event.* }} interpolation inside run: script bodies was found on manual spot-check of several matches.
Secrets-in-outputs scan: 33 raw matches, but on inspection every one is a step-level env: assignment (e.g., ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}) that happened to fall within 5 lines of an unrelated outputs: block — not an actual job outputs: exposing a secret value. ✅ No genuine secret exposure via job outputs found.
🎯 Key Findings
GITHUB_TOKEN dominates usage (4,359 refs, ~50% of all secret references), consistent with GitHub Actions' default token being the primary credential across workflows.
Token fallback cascades are pervasive (947 instances), reflecting the intentional design pattern of preferring GH_AW_GITHUB_MCP_SERVER_TOKEN → GH_AW_GITHUB_TOKEN → GITHUB_TOKEN for MCP server auth, which limits blast radius if a narrower-scoped token is unavailable.
Full redaction and permission coverage: every one of the 264 compiled workflows includes both a redact_secrets step and an explicit permissions: block — a strong baseline security control ensuring least-privilege intent and secret-leak mitigation are present everywhere.
API-key secrets are concentrated in AI provider credentials (ANTHROPIC_API_KEY: 272, OPENAI_API_KEY: 103, CODEX_API_KEY: 102), reflecting the mix of LLM engines (Claude, Codex, Copilot) used across workflows.
💡 Recommendations
Continue monitoring token cascade adoption — a small number of workflows may still reference secrets.GITHUB_TOKEN directly without the fallback cascade; consider auditing for consistency during the next workflow update pass.
Periodic spot-check of github.event.* usage in run: script bodies (not just env: blocks) is recommended to guard against future template-injection regressions as new workflows are added.
🔑 Top 10 Secrets by Usage
Rank
Secret Name
Occurrences
Type
1
GITHUB_TOKEN
4,359
GitHub Token
2
GH_AW_GITHUB_TOKEN
3,730
GitHub Token
3
GH_AW_GITHUB_MCP_SERVER_TOKEN
1,738
GitHub Token
4
COPILOT_GITHUB_TOKEN
752
GitHub Token
5
GH_AW_OTEL_SENTRY_AUTHORIZATION
699
Observability
6
GH_AW_OTEL_SENTRY_ENDPOINT
467
Observability
7
GH_AW_OTEL_GRAFANA_AUTHORIZATION
465
Observability
8
ANTHROPIC_API_KEY
272
AI Provider Key
9
GH_AW_OTEL_GRAFANA_ENDPOINT
233
Observability
10
OPENAI_API_KEY
103
AI Provider Key
📈 Trends
This is the first recorded run of the daily secrets analysis in this environment — no prior "[daily secrets]" discussion was found to compare against. Baseline stats have been captured for future day-over-day comparison.
📖 Reference Documentation
For detailed information about secret usage patterns, see:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
🔐 Daily Secrets Analysis Report
Date: 2026-07-28
Workflow Files Analyzed: 264
Run: §30385571017
📊 Executive Summary
secrets.*)github.token)env:entries rather than job-levelenv:)🛡️ Security Posture
✅ Redaction System: 264/264 workflows have
redact_secretssteps (100% coverage)✅ Token Cascades: 947 instances of
GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKENfallback chains✅ Permission Blocks: 264 explicit
permissions:definitions (one per workflow — full coverage)Template injection scan: 4,703 raw
github.event.matches were found across all lock files, but these are expected — the compiler consistently routes untrustedgithub.event.*values through intermediateenv:variables before use in scripts, rather than interpolating them directly into shell/JS bodies. No raw unguarded${{ github.event.* }}interpolation insiderun:script bodies was found on manual spot-check of several matches.Secrets-in-outputs scan: 33 raw matches, but on inspection every one is a step-level
env:assignment (e.g.,ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}) that happened to fall within 5 lines of an unrelatedoutputs:block — not an actual joboutputs:exposing a secret value. ✅ No genuine secret exposure via job outputs found.🎯 Key Findings
GH_AW_GITHUB_MCP_SERVER_TOKEN→GH_AW_GITHUB_TOKEN→GITHUB_TOKENfor MCP server auth, which limits blast radius if a narrower-scoped token is unavailable.redact_secretsstep and an explicitpermissions:block — a strong baseline security control ensuring least-privilege intent and secret-leak mitigation are present everywhere.💡 Recommendations
secrets.GITHUB_TOKENdirectly without the fallback cascade; consider auditing for consistency during the next workflow update pass.github.event.*usage inrun:script bodies (not justenv:blocks) is recommended to guard against future template-injection regressions as new workflows are added.🔑 Top 10 Secrets by Usage
📈 Trends
This is the first recorded run of the daily secrets analysis in this environment — no prior "[daily secrets]" discussion was found to compare against. Baseline stats have been captured for future day-over-day comparison.
📖 Reference Documentation
For detailed information about secret usage patterns, see:
scratchpad/secrets-yml.mdactions/setup/js/redact_secrets.cjsGenerated: 2026-07-28 18:05 UTC
Workflow: daily-secrets-analysis
All reactions