Skip to content

Add release artifact sync workflow - #49

Open
welteki wants to merge 1 commit into
inlets:masterfrom
welteki:sync-release-artifacts
Open

Add release artifact sync workflow#49
welteki wants to merge 1 commit into
inlets:masterfrom
welteki:sync-release-artifacts

Add release artifact sync workflow

3703c3d
Select commit
Loading
Failed to load commit list.
reviewfn / succeeded Jul 24, 2026 in 1m 32s

AI Code Review Results

AI Pull Request Overview

Disclaimer: This review was generated by automated AI and may contain errors. Do not trust its outputs without human verification.

Summary

  • Adds a scheduled and manually-dispatchable workflow to sync release assets from an OCI artifact image into GitHub Releases.
  • Adds hack/sync-release-artifacts.sh to list source tags, skip already-published releases in bulk mode, and upload extracted artifacts with --clobber.
  • The script handles explicit tag syncs separately from the missing-release sync path.
  • The workflow grants contents: write, which is required for release creation and upload.
  • One security issue should be addressed before merge: a mutable third-party action is used in a write-privileged workflow.

Approval rating (1-10)

7/10. The sync logic is focused, but the write-privileged workflow should not depend on a mutable third-party action ref.

Summary per file

Summary per file
File path Summary
.github/workflows/sync-release-artifacts.yml Adds scheduled/manual release artifact sync workflow.
hack/sync-release-artifacts.sh Adds OCI export and GitHub Release upload script.

Overall Assessment

The implementation is small and mostly aligns with the stated goal: export artifacts from a tagged OCI bundle, create missing releases, and upload assets. The main issue is supply-chain exposure in the workflow. Because the job has contents: write and can create or overwrite release assets, every action in that job needs to be pinned or otherwise tightly controlled.

Detailed Review

Detailed Review

Findings

High: Mutable third-party action runs with release-write permissions

.github/workflows/sync-release-artifacts.yml:25-28

The workflow grants contents: write at job scope and then executes alexellis/arkade-get@master. Since master is a mutable branch in a third-party repository, a future change or compromise of that action can run in this workflow with the repository token available and can create, alter, or replace release artifacts. That is a direct supply-chain risk for the public release channel this PR is automating.

Pin the action to an immutable commit SHA, or avoid the third-party action in the write-privileged job by installing crane through a pinned and checksummed download. For example, the workflow can use a full commit SHA for alexellis/arkade-get, and the repo should have a process for periodically updating that pin deliberately.

AI agent details.

Agent processing time: 1m28.343s
Environment preparation time: 3.053s
Total time from webhook: 1m33.839s