Repository navigation
[lockfile-stats] Lockfile Statistics Audit — 2026-10-27 (349 workflows) #72509
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #72749. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Executive Summary
create_issuetowardcreate_pull_request, and from 15-min to 45-min job timeouts on 11 jobs (see Historical Trends).File Size Distribution
Trigger Analysis
Top combinations:
schedule+workflow_dispatch(216),workflow_dispatchonly (73),pull_request+schedule+workflow_dispatch(33),pull_request+workflow_dispatch(9).Cron frequency detail
Most schedules use unique per-workflow offsets to avoid thundering-herd collisions; the only widely shared slot is
0 0 */2 * *(every 2 days, 61 workflows). The remaining 90+ distinct cron expressions each occur only 1-3 times.Safe Outputs Analysis
Near-universal boilerplate safe outputs:
noop,report_incomplete,report_missing_data,report_missing_tool(342/349 each),create_report_incomplete_issue(341/349).Plus a long tail of ~45 niche integrations (Jira, Linear, Slack, code-scanning alerts, project updates, etc.), each used by 1-4 workflows.
Discussion categories — 94 workflows configure
create_discussion; 93 resolved a category (safe_outputs_config_missing= 0, config found in every lockfile):This is successful detection with one unresolved edge case, not a parsing failure: the gap (1/94, 1.1%) is well within the 10% tolerance threshold. The analyzer's own conservative status flag reads
partial_or_failedwhenever the gap is nonzero, even though this case passes the self-check.Structural Characteristics
Permission Patterns
Agent-job permissions (the effective per-workflow grant — the top-level
permissions: {}block is always empty and carries no signal):agent_job_permissions_unknown= 0 — every lockfile's agent-job permissions resolved. The agent job itself essentially never holds write permissions directly (only 4 workflows grantid-token: writethere) — mutating effects route through safe-outputs in a separate job. Union-across-jobs write grants confirm this:id-tokenwrite in all 349 workflows,issueswrite in 346,contentswrite in 234,pull-requestswrite in 162,discussionswrite in 98.Engine Distribution
engine_unknown= 0 — every lockfile's engine resolved from itsgh-aw-metadataheader.Tool & MCP Patterns
Tool-level granularity (
mcp_tool_counts) was empty this run with zero fallback parses — thegh-aw-manifestentries for this lockfile set list servers but not per-tool detail, not a parsing failure.Interesting Findings
id-tokenin 4 cases); instead 349/349 workflows grantid-token: writeto a separate safe-outputs job — a consistent least-privilege pattern across the entire fleet.create_pull_requestgrew sharply day-over-day (66→77, +16.7%) whilecreate_issueshrank (185→174, −5.9%) — consistent with workflows migrating from issue-based to PR-based output.Historical Trends (vs 2026-10-26)
Engine distribution and MCP server usage were unchanged day-over-day.
Recommendations
create_discussioncategory (93/94) to close the detection gap.create_issue→create_pull_requestmigration (+11/−11 in one day) — if intentional, consider documenting it as the recommended pattern for new workflows.Methodology
Single-script compact JSON analysis: one cached Python analyzer (
scripts/lockfile_stats_v4.py) parses all.github/workflows/*.lock.ymlfiles once viayaml.safe_load, extracts engine fromgh-aw-metadata, permissions from per-jobpermissions:blocks, and safe-output/discussion-category config fromGH_AW_SAFE_OUTPUTS_CONFIG, then writes a compact JSON summary used for all reasoning in this report.References:
All reactions