Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 2x 2x 2x 13x 13x 12x 12x 11x 11x 10x 10x 9x 9x 8x 1x 2x 7x 10x 10x 2x 1x 1x 1x 5x 5x 5x 2x | import type { ProjectMap } from './types'
import * as core from '@actions/core'
import * as github from '@actions/github'
export function getConfig() {
/** Retrieve required inputs */
const githubToken = core.getInput('github-token')
if (!githubToken) throw new Error('Missing input github-token')
const labelMapping = core.getInput('project-label-mapping')
if (!labelMapping) throw new Error('Missing input project-label-mapping')
const accountId = core.getInput('cloudflare-account-id')
if (!accountId) throw new Error('Missing input cloudflare-account-id')
const cloudflareApiToken = core.getInput('cloudflare-api-token')
if (!cloudflareApiToken) throw new Error('Missing input cloudflare-api-token')
/** Parse project mapping */
let parsedLabelMapping
try {
parsedLabelMapping = JSON.parse(labelMapping) as ProjectMap[]
if (!Array.isArray(parsedLabelMapping)) {
throw new Error('Invalid input project-label-mapping')
}
} catch (e) {
throw new Error('Invalid input project-label-mapping')
}
/** Ensure project mapping has required properties */
for (let i = 0; i < parsedLabelMapping.length; i++) {
const projectMap = parsedLabelMapping[i]
if (!projectMap.label || !projectMap.project) {
if (!projectMap.label)
throw new Error(
`Invalid input project-label-mapping, missing label property at index ${i}`
)
if (!projectMap.project)
throw new Error(
`Invalid input project-label-mapping, missing project property at index ${i}`
)
}
}
/** Ensure pull request context */
const pullRequest = github.context.payload.pull_request
Iif (!pullRequest) throw new Error('Missing pull request context')
return {
projectMap: parsedLabelMapping,
github: {
token: githubToken,
pullRequest
},
cloudflare: {
accountId,
cloudflareApiToken
}
}
}
export default getConfig
|