Skip to content

Commit

Permalink
Merge pull request #1735 from kommendorkapten/dynamic-urls
Browse files Browse the repository at this point in the history
Read the server url from the environment variable.
  • Loading branch information
kommendorkapten committed May 21, 2024
2 parents ae38557 + d3d7736 commit d1df13e
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 11 deletions.
41 changes: 41 additions & 0 deletions packages/attest/__tests__/endpoints.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import {signingEndpoints} from '../src/endpoints'

describe('signingEndpoints', () => {
const originalEnv = process.env

afterEach(() => {
process.env = originalEnv
})

describe('when using github.com', () => {
beforeEach(async () => {
process.env = {
...originalEnv,
GITHUB_SERVER_URL: 'https://github.com'
}
})

it('returns expected endpoints', async () => {
const endpoints = signingEndpoints('github')

expect(endpoints.fulcioURL).toEqual('https://fulcio.githubapp.com')
expect(endpoints.tsaServerURL).toEqual('https://timestamp.githubapp.com')
})
})

describe('when using custom domain', () => {
beforeEach(async () => {
process.env = {
...originalEnv,
GITHUB_SERVER_URL: 'https://foo.bar.com'
}
})

it('returns a expected endpoints', async () => {
const endpoints = signingEndpoints('github')

expect(endpoints.fulcioURL).toEqual('https://fulcio.foo.bar.com')
expect(endpoints.tsaServerURL).toEqual('https://timestamp.foo.bar.com')
})
})
})
4 changes: 2 additions & 2 deletions packages/attest/__tests__/provenance.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {mockFulcio, mockRekor, mockTSA} from '@sigstore/mock'
import * as jose from 'jose'
import nock from 'nock'
import {MockAgent, setGlobalDispatcher} from 'undici'
import {SIGSTORE_GITHUB, SIGSTORE_PUBLIC_GOOD} from '../src/endpoints'
import {SIGSTORE_PUBLIC_GOOD, signingEndpoints} from '../src/endpoints'
import {attestProvenance, buildSLSAProvenancePredicate} from '../src/provenance'

describe('provenance functions', () => {
Expand Down Expand Up @@ -95,7 +95,7 @@ describe('provenance functions', () => {
})

describe('when using the github Sigstore instance', () => {
const {fulcioURL, tsaServerURL} = SIGSTORE_GITHUB
const {fulcioURL, tsaServerURL} = signingEndpoints('github')

beforeEach(async () => {
// Mock Sigstore
Expand Down
23 changes: 14 additions & 9 deletions packages/attest/src/endpoints.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ const GITHUB_ID = 'github'
const FULCIO_PUBLIC_GOOD_URL = 'https://fulcio.sigstore.dev'
const REKOR_PUBLIC_GOOD_URL = 'https://rekor.sigstore.dev'

const FULCIO_INTERNAL_URL = 'https://fulcio.githubapp.com'
const TSA_INTERNAL_URL = 'https://timestamp.githubapp.com'

export type SigstoreInstance = typeof PUBLIC_GOOD_ID | typeof GITHUB_ID

export type Endpoints = {
Expand All @@ -22,11 +19,6 @@ export const SIGSTORE_PUBLIC_GOOD: Endpoints = {
rekorURL: REKOR_PUBLIC_GOOD_URL
}

export const SIGSTORE_GITHUB: Endpoints = {
fulcioURL: FULCIO_INTERNAL_URL,
tsaServerURL: TSA_INTERNAL_URL
}

export const signingEndpoints = (sigstore?: SigstoreInstance): Endpoints => {
let instance: SigstoreInstance

Expand All @@ -45,6 +37,19 @@ export const signingEndpoints = (sigstore?: SigstoreInstance): Endpoints => {
case PUBLIC_GOOD_ID:
return SIGSTORE_PUBLIC_GOOD
case GITHUB_ID:
return SIGSTORE_GITHUB
return buildGitHubEndpoints()
}
}

function buildGitHubEndpoints(): Endpoints {
const serverURL = process.env.GITHUB_SERVER_URL || 'https://github.com'
let host = new URL(serverURL).hostname

if (host === 'github.com') {
host = 'githubapp.com'
}
return {
fulcioURL: `https://fulcio.${host}`,
tsaServerURL: `https://timestamp.${host}`
}
}

0 comments on commit d1df13e

Please sign in to comment.