Skip to content

Commit 3874ef3

Browse files
authored
chore: simplifies the oidc test / nocks (#8446)
1 parent 19c25b9 commit 3874ef3

File tree

3 files changed

+180
-276
lines changed

3 files changed

+180
-276
lines changed

mock-registry/lib/provenance.js

Lines changed: 80 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,97 @@
1-
'use strict'
2-
const t = require('tap')
31
const mockGlobals = require('@npmcli/mock-globals')
42
const nock = require('nock')
53

6-
class MockProvenance {
7-
static sigstoreIdToken () {
8-
return `.${Buffer.from(JSON.stringify({
9-
iss: 'https://oauth2.sigstore.dev/auth',
10-
11-
})).toString('base64')}.`
12-
}
4+
const sigstoreIdToken = () => {
5+
return `.${Buffer.from(JSON.stringify({
6+
iss: 'https://oauth2.sigstore.dev/auth',
7+
8+
}))
9+
.toString('base64')}.`
10+
}
1311

14-
static successfulNock ({
15-
oidcURL,
16-
requestToken,
17-
workflowPath,
18-
repository,
19-
serverUrl,
20-
ref,
21-
sha,
22-
runID,
23-
runAttempt,
24-
runnerEnv,
25-
}) {
26-
mockGlobals(t, {
27-
'process.env': {
28-
CI: true,
29-
GITHUB_ACTIONS: true,
30-
ACTIONS_ID_TOKEN_REQUEST_URL: oidcURL,
31-
ACTIONS_ID_TOKEN_REQUEST_TOKEN: requestToken,
32-
GITHUB_WORKFLOW_REF: `${repository}/${workflowPath}@${ref}`,
33-
GITHUB_REPOSITORY: repository,
34-
GITHUB_SERVER_URL: serverUrl,
35-
GITHUB_REF: ref,
36-
GITHUB_SHA: sha,
37-
GITHUB_RUN_ID: runID,
38-
GITHUB_RUN_ATTEMPT: runAttempt,
39-
RUNNER_ENVIRONMENT: runnerEnv,
40-
},
41-
})
12+
const mockProvenance = (t, {
13+
oidcURL,
14+
requestToken,
15+
workflowPath,
16+
repository,
17+
serverUrl,
18+
ref,
19+
sha,
20+
runID,
21+
runAttempt,
22+
runnerEnv,
23+
}) => {
24+
const idToken = sigstoreIdToken()
4225

43-
const idToken = this.sigstoreIdToken()
26+
mockGlobals(t, {
27+
'process.env': {
28+
CI: true,
29+
GITHUB_ACTIONS: true,
30+
ACTIONS_ID_TOKEN_REQUEST_URL: oidcURL,
31+
ACTIONS_ID_TOKEN_REQUEST_TOKEN: requestToken,
32+
GITHUB_WORKFLOW_REF: `${repository}/${workflowPath}@${ref}`,
33+
GITHUB_REPOSITORY: repository,
34+
GITHUB_SERVER_URL: serverUrl,
35+
GITHUB_REF: ref,
36+
GITHUB_SHA: sha,
37+
GITHUB_RUN_ID: runID,
38+
GITHUB_RUN_ATTEMPT: runAttempt,
39+
RUNNER_ENVIRONMENT: runnerEnv,
40+
},
41+
})
4442

45-
const url = new URL(oidcURL)
46-
nock(url.origin)
47-
.get(url.pathname)
48-
.query({ audience: 'sigstore' })
49-
.matchHeader('authorization', `Bearer ${requestToken}`)
50-
.matchHeader('accept', 'application/json')
51-
.reply(200, { value: idToken })
43+
const url = new URL(oidcURL)
44+
nock(url.origin)
45+
.get(url.pathname)
46+
.query({ audience: 'sigstore' })
47+
.matchHeader('authorization', `Bearer ${requestToken}`)
48+
.matchHeader('accept', 'application/json')
49+
.reply(200, { value: idToken })
5250

53-
const leafCertificate = `-----BEGIN CERTIFICATE-----\nabc\n-----END CERTIFICATE-----\n`
51+
const leafCertificate = `-----BEGIN CERTIFICATE-----\nabc\n-----END CERTIFICATE-----\n`
5452

55-
// Mock the Fulcio signing certificate endpoint
56-
nock('https://fulcio.sigstore.dev')
57-
.post('/api/v2/signingCert')
58-
.reply(200, {
59-
signedCertificateEmbeddedSct: {
60-
chain: {
61-
certificates: [
62-
leafCertificate,
63-
`-----BEGIN CERTIFICATE-----\nxyz\n-----END CERTIFICATE-----\n`,
64-
],
65-
},
53+
// Mock the Fulcio signing certificate endpoint
54+
nock('https://fulcio.sigstore.dev')
55+
.post('/api/v2/signingCert')
56+
.reply(200, {
57+
signedCertificateEmbeddedSct: {
58+
chain: {
59+
certificates: [
60+
leafCertificate,
61+
`-----BEGIN CERTIFICATE-----\nxyz\n-----END CERTIFICATE-----\n`,
62+
],
6663
},
67-
})
64+
},
65+
})
6866

69-
nock('https://rekor.sigstore.dev')
70-
.post('/api/v1/log/entries')
71-
.reply(201, {
72-
'69e5a0c1663ee4452674a5c9d5050d866c2ee31e2faaf79913aea7cc27293cf6': {
73-
body: Buffer.from(JSON.stringify({
74-
kind: 'hashedrekord',
75-
apiVersion: '0.0.1',
76-
spec: {
77-
signature: {
78-
content: 'ABC123',
79-
publicKey: { content: Buffer.from(leafCertificate).toString('base64') },
80-
},
67+
nock('https://rekor.sigstore.dev')
68+
.post('/api/v1/log/entries')
69+
.reply(201, {
70+
'69e5a0c1663ee4452674a5c9d5050d866c2ee31e2faaf79913aea7cc27293cf6': {
71+
body: Buffer.from(JSON.stringify({
72+
kind: 'hashedrekord',
73+
apiVersion: '0.0.1',
74+
spec: {
75+
signature: {
76+
content: 'ABC123',
77+
publicKey: { content: Buffer.from(leafCertificate).toString('base64') },
8178
},
82-
})).toString(
83-
'base64'
84-
),
85-
integratedTime: 1654015743,
86-
logID:
87-
'c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d',
88-
logIndex: 2513258,
89-
verification: {
90-
signedEntryTimestamp: 'MEUCIQD6CD7ZNLUipFoxzmSL/L8Ewic4SRkXN77UjfJZ7d/wAAIgatokSuX9Rg0iWxAgSfHMtcsagtDCQalU5IvXdQ+yLEA=',
9179
},
80+
})).toString(
81+
'base64'
82+
),
83+
integratedTime: 1654015743,
84+
logID:
85+
'c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d',
86+
logIndex: 2513258,
87+
verification: {
88+
signedEntryTimestamp: 'MEUCIQD6CD7ZNLUipFoxzmSL/L8Ewic4SRkXN77UjfJZ7d/wAAIgatokSuX9Rg0iWxAgSfHMtcsagtDCQalU5IvXdQ+yLEA=',
9289
},
93-
})
94-
}
90+
},
91+
})
9592
}
9693

9794
module.exports = {
98-
MockProvenance,
95+
mockProvenance,
96+
sigstoreIdToken,
9997
}

0 commit comments

Comments
 (0)