mirror of https://github.com/actions/toolkit
Merge pull request #1969 from actions/bdehamer/workflow-ref
set workflow.ref provenance field from ref claimpull/1220/head
commit
ec9716b3cc
|
@ -1,5 +1,9 @@
|
||||||
# @actions/attest Releases
|
# @actions/attest Releases
|
||||||
|
|
||||||
|
### 1.6.0
|
||||||
|
|
||||||
|
- Update `buildSLSAProvenancePredicate` to populate `workflow.ref` field from the `ref` claim in the OIDC token [#1969](https://github.com/actions/toolkit/pull/1969)
|
||||||
|
|
||||||
### 1.5.0
|
### 1.5.0
|
||||||
|
|
||||||
- Bump @actions/core from 1.10.1 to 1.11.1 [#1847](https://github.com/actions/toolkit/pull/1847)
|
- Bump @actions/core from 1.10.1 to 1.11.1 [#1847](https://github.com/actions/toolkit/pull/1847)
|
||||||
|
|
|
@ -1,47 +1,5 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`provenance functions buildSLSAProvenancePredicate handle tags including "@" character 1`] = `
|
|
||||||
{
|
|
||||||
"params": {
|
|
||||||
"buildDefinition": {
|
|
||||||
"buildType": "https://actions.github.io/buildtypes/workflow/v1",
|
|
||||||
"externalParameters": {
|
|
||||||
"workflow": {
|
|
||||||
"path": ".github/workflows/main.yml",
|
|
||||||
"ref": "foo@1.0.0",
|
|
||||||
"repository": "https://foo.ghe.com/owner/repo",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"internalParameters": {
|
|
||||||
"github": {
|
|
||||||
"event_name": "push",
|
|
||||||
"repository_id": "repo-id",
|
|
||||||
"repository_owner_id": "owner-id",
|
|
||||||
"runner_environment": "github-hosted",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"resolvedDependencies": [
|
|
||||||
{
|
|
||||||
"digest": {
|
|
||||||
"gitCommit": "babca52ab0c93ae16539e5923cb0d7403b9a093b",
|
|
||||||
},
|
|
||||||
"uri": "git+https://foo.ghe.com/owner/repo@refs/heads/main",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
"runDetails": {
|
|
||||||
"builder": {
|
|
||||||
"id": "https://foo.ghe.com/owner/workflows/.github/workflows/publish.yml@main",
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"invocationId": "https://foo.ghe.com/owner/repo/actions/runs/run-id/attempts/run-attempt",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"type": "https://slsa.dev/provenance/v1",
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`provenance functions buildSLSAProvenancePredicate returns a provenance hydrated from an OIDC token 1`] = `
|
exports[`provenance functions buildSLSAProvenancePredicate returns a provenance hydrated from an OIDC token 1`] = `
|
||||||
{
|
{
|
||||||
"params": {
|
"params": {
|
||||||
|
@ -50,7 +8,7 @@ exports[`provenance functions buildSLSAProvenancePredicate returns a provenance
|
||||||
"externalParameters": {
|
"externalParameters": {
|
||||||
"workflow": {
|
"workflow": {
|
||||||
"path": ".github/workflows/main.yml",
|
"path": ".github/workflows/main.yml",
|
||||||
"ref": "main",
|
"ref": "refs/heads/main",
|
||||||
"repository": "https://foo.ghe.com/owner/repo",
|
"repository": "https://foo.ghe.com/owner/repo",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -75,16 +75,6 @@ describe('provenance functions', () => {
|
||||||
const predicate = await buildSLSAProvenancePredicate()
|
const predicate = await buildSLSAProvenancePredicate()
|
||||||
expect(predicate).toMatchSnapshot()
|
expect(predicate).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('handle tags including "@" character', async () => {
|
|
||||||
nock.cleanAll()
|
|
||||||
await mockIssuer({
|
|
||||||
...claims,
|
|
||||||
workflow_ref: 'owner/repo/.github/workflows/main.yml@foo@1.0.0'
|
|
||||||
})
|
|
||||||
const predicate = await buildSLSAProvenancePredicate()
|
|
||||||
expect(predicate).toMatchSnapshot()
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('attestProvenance', () => {
|
describe('attestProvenance', () => {
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "@actions/attest",
|
"name": "@actions/attest",
|
||||||
"version": "1.5.0",
|
"version": "1.6.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@actions/attest",
|
"name": "@actions/attest",
|
||||||
"version": "1.5.0",
|
"version": "1.6.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.11.1",
|
"@actions/core": "^1.11.1",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@actions/attest",
|
"name": "@actions/attest",
|
||||||
"version": "1.5.0",
|
"version": "1.6.0",
|
||||||
"description": "Actions attestation lib",
|
"description": "Actions attestation lib",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"github",
|
"github",
|
||||||
|
|
|
@ -30,11 +30,9 @@ export const buildSLSAProvenancePredicate = async (
|
||||||
// Split just the path and ref from the workflow string.
|
// Split just the path and ref from the workflow string.
|
||||||
// owner/repo/.github/workflows/main.yml@main =>
|
// owner/repo/.github/workflows/main.yml@main =>
|
||||||
// .github/workflows/main.yml, main
|
// .github/workflows/main.yml, main
|
||||||
const [workflowPath, ...workflowRefChunks] = claims.workflow_ref
|
const [workflowPath] = claims.workflow_ref
|
||||||
.replace(`${claims.repository}/`, '')
|
.replace(`${claims.repository}/`, '')
|
||||||
.split('@')
|
.split('@')
|
||||||
// Handle case where tag contains `@` (e.g: when using changesets in a monorepo context),
|
|
||||||
const workflowRef = workflowRefChunks.join('@')
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: SLSA_PREDICATE_V1_TYPE,
|
type: SLSA_PREDICATE_V1_TYPE,
|
||||||
|
@ -43,7 +41,7 @@ export const buildSLSAProvenancePredicate = async (
|
||||||
buildType: GITHUB_BUILD_TYPE,
|
buildType: GITHUB_BUILD_TYPE,
|
||||||
externalParameters: {
|
externalParameters: {
|
||||||
workflow: {
|
workflow: {
|
||||||
ref: workflowRef,
|
ref: claims.ref,
|
||||||
repository: `${serverURL}/${claims.repository}`,
|
repository: `${serverURL}/${claims.repository}`,
|
||||||
path: workflowPath
|
path: workflowPath
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue