Skip to content

Backport sha256 verification for yq download in functional-tests.yml #93

Description

@fullsend-ai-retro

What happened

On PR #80, the author added sha256 verification to the yq install step in script-test.yml (commit ee103ac) after the fullsend review agent flagged the missing verification on the second review pass. The third review (run 29048848209) then noted that functional-tests.yml (lines 140-144) downloads the same yq binary without sha256 verification, creating an inconsistency.

The author acknowledged this as out-of-scope: "Out of scope for this PR — we'll pick it up in a follow-up."

Existing issue #77 covers hardening binary installations in functional-tests.yml broadly (fullsend CLI and OpenShell), but does not specifically mention the yq download at lines 143-144.

What could go better

The yq download in functional-tests.yml is the same binary, same version, same pattern — but without the sha256 verification that script-test.yml now has. This inconsistency means one workflow is hardened against supply-chain tampering while the other (which runs with GCP credentials and GitHub tokens) is not. The more sensitive workflow is the one lacking verification.

Confidence: High. The maintainer explicitly acknowledged this as a follow-up item, the fix is trivial (add the same sha256sum line), and the inconsistency is clear.

Proposed change

In .github/workflows/functional-tests.yml, add sha256 verification to the Install yq step (lines 140-144). Change:

- name: Install yq
  if: steps.changes.outputs.relevant != 'false'
  run: |
    curl -sSfL "https://github.com/mikefarah/yq/releases/download/v4.47.1/yq_linux_amd64" -o /usr/local/bin/yq
    chmod +x /usr/local/bin/yq

To:

- name: Install yq
  if: steps.changes.outputs.relevant != 'false'
  run: |
    curl -sSfL "https://github.com/mikefarah/yq/releases/download/v4.47.1/yq_linux_amd64" -o /usr/local/bin/yq
    echo "0fb28c6680193c41b364193d0c0fc4a03177aecde51cfc04d506b1517158c2fb  /usr/local/bin/yq" | sha256sum -c
    chmod +x /usr/local/bin/yq

This can be done as part of issue #77 or as a standalone change. The sha256 hash is the same value already verified in script-test.yml.

Validation criteria

After the change: (1) functional-tests.yml yq install step includes sha256 verification matching script-test.yml. (2) The functional-tests workflow continues to pass on main branch. (3) Both workflows use identical yq version and hash, eliminating the inconsistency flagged in the third review of PR #80.


Generated by retro agent from #80

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions