-
Notifications
You must be signed in to change notification settings - Fork 0
Add JFrog RLM evidence collection GitHub Actions workflow #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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 PR adds a comprehensive GitHub Actions workflow for demonstrating JFrog Release Lifecycle Management (RLM) with evidence collection and signed attestations. The workflow automates the process of building, signing, verifying, and promoting release candidates through SDLC-aligned repositories.
Key changes:
- Implements a two-job workflow with OIDC authentication for JFrog CLI
- Automates build artifact upload to RC repo, SBOM generation, and keyless attestation signing
- Establishes evidence verification gates before promoting release bundles to production
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| --predicate sbom.spdx.json \ | ||
| --type spdx \ | ||
| --yes \ | ||
| "${RC_REPO}/podinfo/${GITHUB_SHA}/" |
Copilot
AI
Dec 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The cosign attest command is attempting to attest a repository path rather than a specific artifact. The subject should be a concrete artifact (like a file digest or specific binary path) rather than a directory path. This will likely fail or produce an invalid attestation since cosign expects a specific artifact reference or digest to attest.
| "${RC_REPO}/podinfo/${GITHUB_SHA}/" | |
| "sbom.spdx.json" |
| jf rbd "${RELEASE_BUNDLE_NAME}" "${BUILD_NUMBER}" \ | ||
| --project "${JF_PROJECT}" \ | ||
| --repo "${RELEASE_REPO}" |
Copilot
AI
Dec 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 'rbd' command is missing required parameters for a complete Release Bundle distribution. According to JFrog CLI documentation, 'jf rbd' typically requires additional parameters such as '--signing-key' or '--target' to specify the distribution target. The current command only specifies the bundle name, version, project, and repo, which is insufficient for actual distribution.
| env: | ||
| COSIGN_EXPERIMENTAL: "1" |
Copilot
AI
Dec 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The COSIGN_EXPERIMENTAL environment variable is deprecated. As of cosign v2.0+, keyless signing is the default behavior and this environment variable is no longer needed. Using deprecated features may cause issues with newer versions of cosign or lead to unexpected behavior.
| env: | |
| COSIGN_EXPERIMENTAL: "1" |
|
|
||
| jobs: | ||
| build_and_attest: | ||
| name: Build + attest RC |
Copilot
AI
Dec 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job name contains a space followed by a plus sign which may cause confusion. Consider using a more conventional format like 'Build and Attest RC' or 'Build & Attest RC' for better readability and consistency with standard naming conventions.
| name: Build + attest RC | |
| name: Build and attest RC |
| --project "${JF_PROJECT}" | ||
|
|
||
| verify_and_promote: | ||
| name: Verify + promote to production |
Copilot
AI
Dec 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job name contains a space followed by a plus sign which may cause confusion. Consider using a more conventional format like 'Verify and Promote to Production' or 'Verify & Promote to Production' for better readability and consistency with standard naming conventions.
| name: Verify + promote to production | |
| name: Verify and promote to production |
3d62ac1 to
13bcb3b
Compare
6baa9e3 to
8adc4c9
Compare
7785948 to
6d3b4f7
Compare
Motivation
Description
.github/workflows/jfrog-rlm-evidence.ymlthat runs onpushtomainand viaworkflow_dispatchand configuresid-tokenOIDC permissions.make build, upload artifacts to an RC repo usingjf rt upload, and collect build metadata withjf rt build-collect-envandjf rt build-add-git.anchore/sbom-action@v0, installcosignviasigstore/cosign-installer@v3, and create a keyless signed attestation usingcosign attest.jf evc add, publish build info withjf rt build-publish, create a Release Bundle withjf rbc, verify evidence withjf evc verify, and promote the bundle to the production repo withjf rbd.Testing
workflow_dispatchor pushing tomainto observe runtime behavior.Codex Task