Conversation
…stead of upload-asset Agent-Logs-Url: https://github.com/github/gh-aw/sessions/fb67ca71-2153-4c7e-b596-e7abd53251b4 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…rchive instead of upload-asset Agent-Logs-Url: https://github.com/github/gh-aw/sessions/fb67ca71-2153-4c7e-b596-e7abd53251b4 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…ifact migration Agent-Logs-Url: https://github.com/github/gh-aw/sessions/fb67ca71-2153-4c7e-b596-e7abd53251b4 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot merge main and recompile |
There was a problem hiding this comment.
Pull request overview
This PR updates workflow templates, documentation, and compiled workflow lockfiles to recommend and standardize using upload-artifact with skip-archive: true in place of upload-asset for uploading images/charts/screenshots.
Changes:
- Migrated multiple workflow frontmatters and instructions from
upload-assettoupload-artifactwithskip-archive: true. - Updated shared/workflow documentation to deprecate
upload-assetand document the preferred artifact-based approach. - Regenerated affected
.lock.ymlcompiled workflows to remove theupload_assetsjob and associatedcontents: writepermissions.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/data/action_pins.json | Reorders/adds pinned container image entry used by workflows. |
| pkg/cli/workflows/test-playwright-args.md | Switches safe-outputs config/instructions to upload-artifact. |
| pkg/cli/workflows/test-copilot-playwright-screenshots.md | Switches safe-outputs config/instructions to upload-artifact. |
| pkg/cli/workflows/test-claude-playwright-screenshots.md | Switches safe-outputs config/instructions to upload-artifact. |
| pkg/cli/workflows/test-all.md | Updates instructional text to reference upload_artifact tool. |
| docs/src/content/docs/reference/safe-outputs.md | Adds deprecation guidance for upload-asset and preference for upload-artifact. |
| .github/workflows/weekly-issue-summary.lock.yml | Removes upload_asset tool/job and related permissions/env in compiled workflow. |
| .github/workflows/weekly-editors-health-check.md | Migrates safe-outputs config/instructions to upload-artifact. |
| .github/workflows/stale-repo-identifier.md | Migrates safe-outputs config to upload-artifact. |
| .github/workflows/stale-repo-identifier.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/shared/python-dataviz.md | Removes upload-asset approach and updates guidance to artifact-based uploads. |
| .github/workflows/python-data-charts.md | Migrates safe-outputs config to upload-artifact. |
| .github/workflows/python-data-charts.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/portfolio-analyst.md | Migrates safe-outputs config to upload-artifact. |
| .github/workflows/org-health-report.md | Migrates safe-outputs config to upload-artifact. |
| .github/workflows/org-health-report.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/github-mcp-structural-analysis.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/daily-repo-chronicle.md | Migrates safe-outputs config/instructions to upload-artifact. |
| .github/workflows/daily-repo-chronicle.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/daily-news.md | Migrates safe-outputs config to upload-artifact. |
| .github/workflows/daily-news.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/daily-multi-device-docs-tester.md | Migrates safe-outputs config to upload-artifact. |
| .github/workflows/daily-issues-report.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/daily-integrity-analysis.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/daily-code-metrics.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/copilot-token-audit.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/copilot-session-insights.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/workflows/copilot-pr-nlp-analysis.lock.yml | Removes upload_assets job and upload_asset config in compiled workflow. |
| .github/aw/github-agentic-workflows.md | Marks upload-asset as deprecated and recommends upload-artifact with skip-archive. |
| .github/aw/charts.md | Updates chart workflow templates to use upload-artifact. |
| .github/aw/actions-lock.json | Reorders/adds pinned container image entry for agentic workflow tooling. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 34/34 changed files
- Comments generated: 12
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is configured without allowed-paths. With the current upload_artifact handler, an empty allowed-paths list means “all staging files allowed”, and the handler will auto-copy arbitrary absolute/workspace paths into staging before upload. Add a restrictive allowed-paths list (e.g., image-only globs like **/*.png, **/*.jpg, **/*.svg) to prevent accidental/abusive exfiltration of non-image files.
| skip-archive: true | |
| skip-archive: true | |
| allowed-paths: | |
| - "**/*.png" | |
| - "**/*.jpg" | |
| - "**/*.svg" |
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is missing allowed-paths. Without it, upload_artifact will allow uploading any file that can be auto-copied into the staging directory. Add allowed-paths to constrain uploads to the intended outputs (e.g., **/*.png, **/*.jpg, **/*.svg for charts/screenshots).
| skip-archive: true | |
| skip-archive: true | |
| allowed-paths: | |
| - "**/*.png" | |
| - "**/*.jpg" | |
| - "**/*.jpeg" | |
| - "**/*.svg" |
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is configured without allowed-paths, which means the upload_artifact handler will permit uploading any staged file (including files auto-copied from arbitrary paths). Add an allowed-paths allowlist appropriate for this workflow (e.g., image-only globs for report screenshots/charts).
| skip-archive: true | |
| skip-archive: true | |
| allowed-paths: | |
| - reports/**/*.png | |
| - reports/**/*.jpg | |
| - reports/**/*.jpeg | |
| - reports/**/*.svg | |
| - reports/**/*.pdf |
| 1. Upload both charts using the `upload_artifact` tool | ||
| 2. Collect the returned URLs for embedding in the discussion |
There was a problem hiding this comment.
The instructions say to “Upload both charts” while skip-archive: true is enabled. The upload_artifact handler enforces that skip-archive uploads select exactly one file per tool call, so uploading both charts in a single request (e.g., via filters) will fail. Clarify that each chart must be uploaded in a separate upload_artifact call (or disable skip-archive).
| 1. Upload both charts using the `upload_artifact` tool | |
| 2. Collect the returned URLs for embedding in the discussion | |
| 1. Upload `/tmp/gh-aw/python/charts/issues_prs_trends.png` using a single `upload_artifact` tool call | |
| 2. Upload `/tmp/gh-aw/python/charts/commit_trends.png` using a separate `upload_artifact` tool call | |
| 3. Collect the two returned URLs for embedding in the discussion |
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is missing allowed-paths. Since the handler can auto-copy arbitrary paths into staging, leaving this empty makes it possible to upload unintended files. Add an explicit allowed-paths allowlist appropriate for the docs test artifacts (e.g., **/*.png, **/*.jpg).
| skip-archive: true | |
| skip-archive: true | |
| allowed-paths: | |
| - "**/*.png" | |
| - "**/*.jpg" | |
| - "**/*.jpeg" |
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is configured without allowed-paths. Since the handler auto-copies files into staging, an empty allowlist can permit uploading unintended files. Add allowed-paths (e.g., **/*.png) to constrain uploads to screenshots.
| upload-asset: | ||
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 |
There was a problem hiding this comment.
safe-outputs.upload-artifact is configured without allowed-paths. Because the handler auto-copies arbitrary absolute/workspace paths into staging, leaving allowed-paths empty effectively allows uploading any accessible file. Add a restrictive allowlist (e.g., **/*.png, **/*.jpg, **/*.svg) so only generated charts can be uploaded.
| retention-days: 30 | |
| retention-days: 30 | |
| allowed-paths: | |
| - "**/*.png" | |
| - "**/*.jpg" | |
| - "**/*.svg" |
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is set up without allowed-paths. With an empty allowlist, the upload_artifact handler will allow uploading any staged/auto-copied file. Add allowed-paths restricting uploads to the expected file types for this workflow (e.g., screenshots).
| skip-archive: true | |
| skip-archive: true | |
| allowed-paths: | |
| - "**/*.md" |
| safe-outputs: | ||
| upload-asset: | ||
| max: 5 | ||
| upload-artifact: |
There was a problem hiding this comment.
safe-outputs.upload-artifact is enabled without allowed-paths. The upload_artifact handler treats an empty list as “all staging files allowed” and will auto-copy arbitrary paths into staging before upload. Add allowed-paths to limit uploads to the expected screenshot formats (e.g., **/*.png).
| upload-artifact: | |
| upload-artifact: | |
| allowed-paths: | |
| - "**/*.png" |
| upload-artifact: | ||
| max-uploads: 3 | ||
| retention-days: 30 | ||
| skip-archive: true |
There was a problem hiding this comment.
safe-outputs.upload-artifact is configured without allowed-paths. With no allowlist, upload_artifact can upload any staged/auto-copied file. Add allowed-paths (e.g., **/*.png) to ensure only screenshots can be uploaded.
…ctions-upload-asset # Conflicts: # .github/workflows/copilot-pr-nlp-analysis.lock.yml # .github/workflows/copilot-token-audit.lock.yml # .github/workflows/daily-code-metrics.lock.yml # .github/workflows/daily-integrity-analysis.lock.yml # .github/workflows/daily-issues-report.lock.yml # .github/workflows/github-mcp-structural-analysis.lock.yml # .github/workflows/org-health-report.lock.yml # .github/workflows/portfolio-analyst.lock.yml # .github/workflows/stale-repo-identifier.lock.yml # .github/workflows/stale-repo-identifier.md Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done — merged main and recompiled all 187 workflows successfully in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Summary
Updates workflow instructions and documentation to recommend
upload-artifactwithskip-archive: trueinstead ofupload-assetfor uploading images, charts, and screenshots.Why
upload-artifactwithskip-archiveis preferred because it:Changes
Workflow files migrated (frontmatter
upload-asset→upload-artifactwithskip-archive: true):stale-repo-identifier.mddaily-repo-chronicle.mddaily-news.mdorg-health-report.mddaily-multi-device-docs-tester.mdportfolio-analyst.mdweekly-editors-health-check.mdpython-data-charts.mdShared workflow updated:
shared/python-dataviz.md— removedupload-asset, kept onlyupload-artifactwithskip-archive: true. Updated documentation section to remove the "Approach 2: Upload Asset" alternative.Custom agent instructions updated:
.github/aw/charts.md— all three chart workflow templates now useupload-artifact.github/aw/github-agentic-workflows.md— markedupload-assetas deprecated, recommendedupload-artifactwithskip-archiveTest workflows updated:
test-copilot-playwright-screenshots.mdtest-claude-playwright-screenshots.mdtest-playwright-args.mdtest-all.mdDocumentation updated:
docs/src/content/docs/reference/safe-outputs.md— added deprecation notice with caution block on theupload-assetsectionLock files recompiled: All affected
.lock.ymlfiles regenerated (upload_assets job removed from compiled workflows).Validation
make build— successfulmake recompile— 187/187 workflows compiled successfullymake fmt— formatting passesmake lint— linting passes