Skip to content

[q] migrate image uploads to upload-artifact with skip-archive in shared workflows #26066

@github-actions

Description

@github-actions

Summary

Migrates chart image uploads in shared Python visualization workflows to use upload-artifact with skip-archive: true, replacing the old actions/upload-artifact@v7 archive-based steps.

Changes

shared/trending-charts-simple.md

  • Added safe-outputs.upload-artifact frontmatter block (max-uploads: 5, retention-days: 30, skip-archive: true, image path filters)
  • Removed the Upload charts step that used actions/upload-artifact@v7 (which archives images as ZIP, preventing inline rendering)
  • Added an "Upload Charts (skip-archive)" guide in the body instructing agents to call upload_artifact per image and embed the returned slot_N_artifact_url in markdown

shared/python-dataviz.md

  • Removed the Upload charts step (actions/upload-artifact@v7) — the safe-outputs.upload-artifact block with skip-archive: true was already present and the body documentation already described the correct approach
  • Updated the "Artifact Upload" section to reflect that chart images are now uploaded via the safe-output tool (with direct-link URL) rather than as a zip archive

Why

The old actions/upload-artifact@v7 step bundles chart images into a ZIP archive. Downloading a ZIP is required to view images, which makes inline rendering in discussions/issues impossible. The upload_artifact safe-output tool with skip-archive: true stores each image as an individual file and returns a direct artifact_url, enabling ![Chart](ARTIFACT_URL) inline rendering.

Validation

All modified workflows (and their dependents) compiled successfully:

  • shared/trending-charts-simple.md
  • shared/python-dataviz.md
  • daily-performance-summary.md (imports trending-charts-simple)
  • daily-firewall-report.md (imports trending-charts-simple)
  • api-consumption-report.md (imports trending-charts-simple)
  • daily-repo-chronicle.md

Note: .lock.yml files will be regenerated after merge.


Warning

Protected Files — Push Permission Denied

This was originally intended as a pull request, but the patch modifies protected files. A human must create the pull request manually.

Protected files

The push was rejected because GitHub Actions does not have workflows permission to push these changes, and is never allowed to make such changes, or other authorization being used does not have this permission.

Create the pull request manually
# Download the patch from the workflow run
gh run download 24353492347 -n agent -D /tmp/agent-24353492347

# Create a new branch
git checkout -b q/migrate-upload-artifact-skip-archive-13b5df63110a7be9 main

# Apply the patch (--3way handles cross-repo patches)
git am --3way /tmp/agent-24353492347/aw-q-migrate-upload-artifact-skip-archive.patch

# Push the branch and create the pull request
git push origin q/migrate-upload-artifact-skip-archive-13b5df63110a7be9
gh pr create --title '[q] migrate image uploads to upload-artifact with skip-archive in shared workflows' --base main --head q/migrate-upload-artifact-skip-archive-13b5df63110a7be9 --repo github/gh-aw

🎩 Equipped by Q · ● 1.9M ·

  • expires on Apr 15, 2026, 4:23 PM UTC

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions