Skip to content

feat: add GitHub Actions for CI verification workflow#5

Open
astefano wants to merge 20 commits intomasterfrom
la/create_github_actions
Open

feat: add GitHub Actions for CI verification workflow#5
astefano wants to merge 20 commits intomasterfrom
la/create_github_actions

Conversation

@astefano
Copy link
Copy Markdown
Collaborator

@astefano astefano commented Jan 28, 2026

Summary

Add reusable GitHub Actions workflows and composite actions for integrating verilib into any project's CI pipeline:

  • Verus projects: full verification pipeline (create -> atomize -> specify -> verify) with check/generate modes
  • Pure Rust projects: atomization only (atomize with rust-analyzer)
  • Deploy: both workflows support an optional deploy step via verilib-cli reclone to trigger backend re-processing

Note on deploy: reclone is a stopgap -- it tells the backend to re-process from scratch rather than uploading the .verilib/ artifacts the CI just generated. A proper solution will use verilib-cli deploy once it's wired into the CLI (#36).

Files

File Description
action/action.yml Verus composite action (check/generate modes)
action/rust/action.yml Pure Rust composite action (atomize only)
action/deploy/action.yml Deploy composite action (reclone to backend)
.github/workflows/verilib-verify.yml Reusable workflow for Verus projects
.github/workflows/verilib-atomize.yml Reusable workflow for pure Rust projects
docs/GITHUB_ACTIONS_DESIGN.md Design rationale and architecture decisions

Quick start

Verus project

jobs:
  verify:
    uses: beneficial-ai-foundation/verilib-cli/.github/workflows/verilib-verify.yml@v1
    with:
      project-path: .
      deploy-enabled: true
      repo-id: '42'
    secrets:
      VERILIB_API_KEY: ${{ secrets.VERILIB_API_KEY }}

See action/README.md for full details on modes, inputs, outputs, and what commands run.

Pure Rust project

jobs:
  atomize:
    uses: beneficial-ai-foundation/verilib-cli/.github/workflows/verilib-atomize.yml@v1
    with:
      project-path: .
      deploy-enabled: true
      repo-id: '42'
    secrets:
      VERILIB_API_KEY: ${{ secrets.VERILIB_API_KEY }}

See action/rust/README.md for full details.

Related issues

@astefano astefano marked this pull request as ready for review February 12, 2026 10:26
Copilot AI review requested due to automatic review settings February 12, 2026 10:26
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request introduces GitHub Actions integration for verilib-cli, enabling Verus projects to integrate verification workflows into their CI/CD pipelines. The implementation provides a composite action with two modes (check and generate) and a reusable workflow that automatically selects the appropriate mode based on the triggering event. The design is well-documented with comprehensive rationale and acknowledges that the deploy functionality is not yet available.

Changes:

  • Added composite GitHub Action supporting check mode (PR validation) and generate mode (full pipeline execution)
  • Created reusable workflow for easy integration into Verus projects
  • Documented design decisions, architecture, and implementation status
  • Added placeholder for future deploy action (pending CLI command integration)

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 27 comments.

Show a summary per file
File Description
docs/GITHUB_ACTIONS_DESIGN.md Comprehensive design document explaining architecture decisions, workflow patterns, and implementation status
action/action.yml Main composite action with auto-detection of versions, tool installation, and dual-mode operation
action/README.md User-facing documentation with usage examples and input/output specifications
.github/workflows/verilib-verify.yml Reusable workflow template for external Verus projects with automatic mode selection
action/deploy/README.md Placeholder documentation for future deploy action functionality

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread action/action.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/action.yml
Comment thread action/README.md Outdated
Comment thread action/action.yml
Comment thread action/action.yml Outdated
Comment thread .github/workflows/verilib-verify.yml Outdated
Copilot AI review requested due to automatic review settings February 12, 2026 10:54
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 17 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread action/action.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/action.yml
Comment thread action/action.yml
Comment thread .github/workflows/verilib-verify.yml Outdated
Comment thread action/action.yml
Comment thread action/action.yml
Comment thread action/action.yml
Comment thread action/action.yml
astefano and others added 8 commits February 27, 2026 09:28
Add reusable workflow and composite action for integrating verilib
verification into Verus projects' CI pipelines.

New files:
- action/action.yml: Main action with check/generate modes
- action/README.md: Action documentation
- action/deploy/README.md: Placeholder for future deploy action
- .github/workflows/verilib-verify.yml: Reusable workflow
- docs/GITHUB_ACTIONS_DESIGN.md: Design rationale

Usage in any Verus project:
  uses: beneficial-ai-foundation/verilib-cli/.github/workflows/verilib-verify.yml@v1

On PR: runs --check-only validation
On merge to main: runs full pipeline, uploads artifacts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The .verilib directory is hidden (starts with dot) and upload-artifact@v4
defaults to include-hidden-files: false, causing the upload to fail silently.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Function signatures may contain characters like < and > that are
invalid for GitHub artifact paths. Create a tar.gz archive of the
.verilib directory and provide it as a new output (results-archive).

- Add results-archive output to action
- Update workflows to use archive for uploads
- Update README with guidance on using archive

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@astefano astefano force-pushed the la/create_github_actions branch from 8513646 to 0497979 Compare February 27, 2026 08:28
astefano and others added 2 commits February 27, 2026 10:28
Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove trailing whitespace throughout action.yml
- Add cache checks for probe-verus and verilib-cli (skip cargo
  install --force when already cached, matching verus-analyzer/scip)
- Add error checking after uv installation

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 27, 2026 09:43
@astefano
Copy link
Copy Markdown
Collaborator Author

Copilot Review Triage

Fixed (commit d423785)

Comment Fix
Trailing whitespace in action.yml Stripped all trailing whitespace
probe-verus always reinstalls with --force Added cache check (command -v) like verus-analyzer/scip
verilib-cli always reinstalls with --force Added cache check (command -v) like verus-analyzer/scip
uv install doesn't verify success Added command -v check after install

Already addressed in prior commits

Comment Status
Deploy job commented out / inputs unused Uncommented in 568602e — deploy job now active
UUOC with jq (cat | jq) Already fixed — current code passes file directly to jq
Missing set -euo pipefail Already present on line 66
Archive name uniqueness Already uses $RANDOM/timestamps (from a8c5c74)
Design doc: deploy not wired Updated in 568602e

Won't fix (incorrect or not applicable)

  • ${{ github.token }} invalid as default: This is valid in composite actions (docs).
  • Bearer vs token auth for GitHub API: Authorization: Bearer works with GITHUB_TOKEN and is the recommended format.
  • Division by zero in coverage %: The arithmetic is inside if [ "$total" -gt 0 ], so it only runs when safe.
  • Ternary expression clarity: The suggestion is identical to the existing code.
  • sudo mv to /usr/local/bin: Standard practice on GitHub-hosted runners; all steps already run sudo apt-get for other installs.
  • Platform-specific downloads: README documents "Linux runner (ubuntu-latest recommended)" as a requirement.
  • Auto-certify all specs in CI: Intentional design for generate mode — CI has no interactive terminal.
  • ./action reference in reusable workflow: Correct — reusable workflows resolve ./ relative to their own repo.
  • Check CLI utilities (jq, wget, etc.): Standard on ubuntu-latest; documented in requirements.
  • Cache key version conflicts: Key includes verus version + Cargo.lock hash, providing reasonable invalidation.

astefano and others added 2 commits February 27, 2026 10:53
Add a separate composite action and reusable workflow for pure Rust
(non-Verus) projects that runs `verilib-cli atomize` with rust-analyzer.

New files:
- action/rust/action.yml: composite action (stable Rust, rust-analyzer,
  scip, probe-verus, verilib-cli)
- action/rust/README.md: documentation
- .github/workflows/verilib-atomize.yml: reusable workflow with optional
  deploy via reclone

Closes #38

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread action/action.yml
Comment thread action/action.yml Outdated
Comment thread action/deploy/action.yml Outdated
Comment thread action/action.yml
Comment thread action/action.yml
Comment thread action/action.yml
Comment thread .github/workflows/verilib-verify.yml
Comment thread .github/workflows/verilib-verify.yml Outdated
astefano and others added 2 commits February 27, 2026 11:37
Manual workflow_dispatch to test if VERRILIB_CLI_AUTH_KEY works
for verilib-cli reclone. Remove once testing is complete.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitHub Actions expressions don't support the ternary operator (? :).
Use the && / || short-circuit pattern instead.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 3, 2026 12:06
Local action references (uses: ./action) resolve to the caller's
workspace, not the reusable workflow's repository. Use fully qualified
references so the actions are downloaded from verilib-cli regardless
of which repo calls the workflow.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 12 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/verilib-atomize.yml
Comment thread action/action.yml Outdated
Comment thread .github/workflows/test-deploy.yml Outdated
Comment thread action/rust/action.yml
Comment thread action/deploy/action.yml Outdated
Comment thread action/rust/action.yml
Comment thread .github/workflows/test-deploy.yml Outdated
Comment thread action/action.yml Outdated
Comment thread action/deploy/action.yml
Comment thread action/deploy/action.yml Outdated
astefano and others added 2 commits March 3, 2026 13:18
Allow callers to override the auto-detected mode (generate vs check).
Default remains auto-detect: generate on push to main/master, check
otherwise.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Manual triggers (workflow_dispatch) should also run the deploy step
when deploy-enabled is true, not just pushes to main/master.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 3, 2026 12:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 15 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread action/action.yml
Comment thread .github/workflows/verilib-verify.yml
Comment thread .github/workflows/verilib-verify.yml
Comment thread .github/workflows/verilib-verify.yml Outdated
Comment thread .github/workflows/verilib-atomize.yml Outdated
Comment thread action/rust/action.yml Outdated
Comment thread .github/workflows/verilib-verify.yml Outdated
Comment thread .github/workflows/verilib-atomize.yml
Comment thread .github/workflows/verilib-atomize.yml
Comment thread action/deploy/action.yml
verilib-cli create generates tracked_functions.csv via probe-verus;
it does not require a pre-existing CSV file. Remove the check that
blocked generate mode and the now-unused functions-to-track input.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@astefano
Copy link
Copy Markdown
Collaborator Author

astefano commented Mar 3, 2026

Copilot Review Triage (Rounds 3–5)

Fixed (this commit)

Comment Fix
github.event_name checks in reusable workflows (deploy conditions, artifact upload, auto mode detection) Replaced with github.ref checks — event_name is always workflow_call inside reusable workflows
Feature branch refs @la/create_github_actions Updated to @main in both verilib-verify.yml and verilib-atomize.yml
scip installed to /usr/local/bin (not cached) Now installed to ~/.cargo/bin (covered by actions/cache) in both action.yml and rust/action.yml
dtolnay/rust-toolchain@master unpinned Changed to @stable
Version detection errors when inputs provided Now skips Cargo.toml metadata discovery when both verus-version and rust-version inputs are provided
repo-id marked required: true in deploy action Changed to required: false with runtime validation — fails with clear error if neither repo-id input nor .verilib/config.json provides a repo ID
--force in deploy action cargo install Removed; cache check (command -v) handles this
Secret name typo VERRILIB_CLI_AUTH_KEY in test-deploy.yml Fixed to VERILIB_API_KEY
functions-to-track listed in README but not in action.yml Removed from README inputs table and requirements
results-archive output description in README Updated to reflect actual naming (includes run ID and timestamp)

Won't fix (incorrect or not applicable)

  • Hyphenated output names in expressions (verified-count, total-functions, results-archive, atoms-path): GitHub Actions property dereference syntax supports hyphens in property names with dot notation. The - is only an operator in arithmetic contexts, not in property access.
  • ${{ github.token }} invalid as default: Valid in composite actions per docs.
  • Bearer auth format: Correct for GITHUB_TOKEN per REST API docs.
  • ./action in reusable workflows: Workflows already use beneficial-ai-foundation/verilib-cli/action@ref (full path), not ./action.
  • Unpinned cargo install for probe-verus/verilib-cli: No stable release tags exist yet; will pin when tagging releases.
  • verus-analyzer from releases/latest: The action uses the verus version tag from steps.versions.outputs.verus_version when available.
  • Platform-specific downloads: README documents "Linux runner (ubuntu-latest recommended)" as a requirement.
  • Auto-certify specs in CI: Intentional — CI has no interactive terminal; generate mode is designed for automated pipelines.
  • test-deploy.yml temporary: Intentional; workflow_dispatch only, will remove after integration testing.
  • functions_to_track.csv required: verilib-cli create generates tracked_functions.csv via probe-verus tracked-csv; external CSV not required.
  • Division by zero: Already gated by if [ "$total" -gt 0 ].
  • CLI utilities check (jq, wget, etc.): Standard on ubuntu-latest; documented in requirements.

Copilot AI review requested due to automatic review settings March 3, 2026 14:23
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@astefano astefano force-pushed the la/create_github_actions branch from a33a45f to 7f15e2c Compare March 3, 2026 14:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +96 to +101
- name: Deploy to verilib backend
# NOTE: Update ref when tagging a release (e.g., @v1)
uses: beneficial-ai-foundation/verilib-cli/action/deploy@main
with:
api-key: ${{ secrets.VERILIB_API_KEY }}
repo-id: ${{ inputs.repo-id }}
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The deploy step here also uses @main, which defeats pinning for consumers of the reusable workflow. Please pin this to the same ref as the workflow release (e.g., @v1) or keep it otherwise in lockstep with the workflow ref.

Copilot uses AI. Check for mistakes.
Comment thread action/action.yml
Comment on lines +78 to +90
# If not found in root, search subdirectories (workspace members)
if [ -z "$METADATA" ]; then
echo "No verus metadata in root Cargo.toml, searching subdirectories..."
for toml in "$PROJECT_PATH"/*/Cargo.toml; do
if [ -f "$toml" ]; then
METADATA=$(awk '/^\[package.metadata.verus\]/{flag=1;next}/^\[.*\]/{flag=0}flag' "$toml")
if [ -n "$METADATA" ]; then
CARGO_TOML="$toml"
echo "Found verus metadata in $CARGO_TOML"
break
fi
fi
done
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Cargo.toml metadata discovery only checks the root and one level of subdirectories ($PROJECT_PATH/*/Cargo.toml), but many workspaces nest members deeper (e.g., crates/foo/Cargo.toml). This can incorrectly error even when [package.metadata.verus] exists. Consider using find (bounded depth) or parsing the workspace members list to locate the correct Cargo.toml reliably.

Copilot uses AI. Check for mistakes.
Comment thread action/action.yml
Comment on lines +228 to +236
run: |
if command -v probe-verus &> /dev/null; then
echo "probe-verus already installed (from cache)"
probe-verus --version
else
echo "Installing probe-verus..."
cargo install --git https://github.com/Beneficial-AI-Foundation/probe-verus
probe-verus --version || echo "probe-verus installed"
fi
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probe-verus is installed from a moving git target (cargo install --git ...) and is then reused from ~/.cargo/bin if present. This can produce non-reproducible runs where a workflow pinned to a tag ends up using whatever probe-verus happened to be cached. Pin the install to a specific ref/tag/sha (and incorporate it into the cache key) or add a version check + reinstall when it doesn’t match the expected version.

Suggested change
run: |
if command -v probe-verus &> /dev/null; then
echo "probe-verus already installed (from cache)"
probe-verus --version
else
echo "Installing probe-verus..."
cargo install --git https://github.com/Beneficial-AI-Foundation/probe-verus
probe-verus --version || echo "probe-verus installed"
fi
env:
PROBE_VERUS_VERSION: "0.1.0"
run: |
echo "Expected probe-verus version: $PROBE_VERUS_VERSION"
if command -v probe-verus &> /dev/null; then
INSTALLED_PROBE_VERUS_VERSION=$(probe-verus --version | awk '{print $NF}')
echo "probe-verus already installed (from cache): $INSTALLED_PROBE_VERUS_VERSION"
if [ "$INSTALLED_PROBE_VERUS_VERSION" != "$PROBE_VERUS_VERSION" ]; then
echo "probe-verus version mismatch (expected $PROBE_VERUS_VERSION, found $INSTALLED_PROBE_VERUS_VERSION); reinstalling..."
cargo install --git https://github.com/Beneficial-AI-Foundation/probe-verus --tag "v$PROBE_VERUS_VERSION" --force
else
echo "probe-verus version matches expected version ($PROBE_VERUS_VERSION)"
fi
else
echo "Installing probe-verus..."
cargo install --git https://github.com/Beneficial-AI-Foundation/probe-verus --tag "v$PROBE_VERUS_VERSION"
fi
probe-verus --version || echo "probe-verus installed"

Copilot uses AI. Check for mistakes.
Comment thread action/rust/action.yml
Comment on lines +80 to +91
# Step 4: Install probe-verus
- name: Install probe-verus
shell: bash
run: |
if command -v probe-verus &> /dev/null; then
echo "probe-verus already installed (from cache)"
probe-verus --version
else
echo "Installing probe-verus..."
cargo install --git https://github.com/Beneficial-AI-Foundation/probe-verus
probe-verus --version || echo "probe-verus installed"
fi
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This action installs probe-verus from an unpinned git source and then skips installation if it’s already present in the cached ~/.cargo/bin. That can make runs non-reproducible (especially when consumers pin the action version) and can lead to subtle incompatibilities. Pin to a specific ref/tag/sha (and include it in the cache key) or check the installed version and force reinstall when it differs.

Copilot uses AI. Check for mistakes.
Comment thread action/rust/action.yml
Comment on lines +101 to +112
# Step 6: Install verilib-cli
- name: Install verilib-cli
shell: bash
run: |
if command -v verilib-cli &> /dev/null; then
echo "verilib-cli already installed (from cache)"
verilib-cli --version
else
echo "Installing verilib-cli..."
cargo install --git https://github.com/Beneficial-AI-Foundation/verilib-cli
verilib-cli --version || echo "verilib-cli installed"
fi
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

verilib-cli is installed from the repo’s default branch via cargo install --git ...verilib-cli and then reused from cache if present. This breaks version pinning: a workflow/action pinned to a tag/sha can still execute a different verilib-cli than intended (or a stale cached one). Prefer installing from the action checkout (via $GITHUB_ACTION_PATH) or pin the git ref/tag/sha explicitly and ensure the cache key enforces that version.

Copilot uses AI. Check for mistakes.
Comment thread action/deploy/action.yml
Comment on lines +78 to +89
# Step 4: Install verilib-cli
- name: Install verilib-cli
shell: bash
run: |
if command -v verilib-cli &> /dev/null; then
echo "verilib-cli already installed (from cache)"
else
echo "Installing verilib-cli..."
cargo install --git https://github.com/Beneficial-AI-Foundation/verilib-cli
fi
verilib-cli --version || echo "verilib-cli installed"

Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same versioning/reproducibility concern as the other actions: verilib-cli is installed from an unpinned git source and then reused if present in cached ~/.cargo/bin, which can cause deploy runs to use a different CLI version than the action/workflow version a consumer pinned. Prefer installing from the action’s own checkout (via $GITHUB_ACTION_PATH) or pin the git ref/tag/sha and make the cache key include it (or force reinstall when mismatched).

Copilot uses AI. Check for mistakes.
Comment on lines +121 to +126
- name: Deploy to verilib backend
# NOTE: Update ref when tagging a release (e.g., @v1)
uses: beneficial-ai-foundation/verilib-cli/action/deploy@main
with:
api-key: ${{ secrets.VERILIB_API_KEY }}
repo-id: ${{ inputs.repo-id }}
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue as the verify job: the deploy job uses beneficial-ai-foundation/verilib-cli/action/deploy@main, so consumers pinning this reusable workflow to a tag/sha will still execute whatever is currently on main. Please pin this to the same ref as the reusable workflow release (e.g., @v1) or otherwise keep the action reference in lockstep with the workflow ref.

Copilot uses AI. Check for mistakes.
probe-verus v4.0.0 renamed the `verify` subcommand to `extract`.
Update the subprocess invocation, mock test helper, and docs to match.

Made-with: Cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants