create-pull-request/src/main.ts

62 lines
2.1 KiB
TypeScript
Raw Normal View History

2020-05-17 10:21:11 +02:00
import * as core from '@actions/core'
2020-07-16 10:57:13 +02:00
import {Inputs, createPullRequest} from './create-pull-request'
2020-05-17 10:21:11 +02:00
import {inspect} from 'util'
2020-07-16 10:57:13 +02:00
import * as utils from './utils'
2020-05-17 10:21:11 +02:00
async function run(): Promise<void> {
try {
2020-07-16 10:57:13 +02:00
const inputs: Inputs = {
2020-05-17 10:21:11 +02:00
token: core.getInput('token'),
gitToken: core.getInput('git-token'),
2020-05-17 10:21:11 +02:00
path: core.getInput('path'),
addPaths: utils.getInputAsArray('add-paths'),
2020-05-17 10:21:11 +02:00
commitMessage: core.getInput('commit-message'),
committer: core.getInput('committer'),
author: core.getInput('author'),
signoff: core.getBooleanInput('signoff'),
2020-07-19 08:09:44 +02:00
branch: core.getInput('branch'),
deleteBranch: core.getBooleanInput('delete-branch'),
2020-07-20 12:14:42 +02:00
branchSuffix: core.getInput('branch-suffix'),
2020-07-19 08:09:44 +02:00
base: core.getInput('base'),
pushToFork: core.getInput('push-to-fork'),
2020-05-17 10:21:11 +02:00
title: core.getInput('title'),
body: core.getInput('body'),
bodyPath: core.getInput('body-path'),
2020-07-16 10:57:13 +02:00
labels: utils.getInputAsArray('labels'),
assignees: utils.getInputAsArray('assignees'),
reviewers: utils.getInputAsArray('reviewers'),
teamReviewers: utils.getInputAsArray('team-reviewers'),
milestone: Number(core.getInput('milestone')),
draft: core.getBooleanInput('draft')
2020-05-17 10:21:11 +02:00
}
core.debug(`Inputs: ${inspect(inputs)}`)
if (!inputs.token) {
throw new Error(`Input 'token' not supplied. Unable to continue.`)
}
if (!inputs.gitToken) {
inputs.gitToken = inputs.token
}
if (inputs.bodyPath) {
if (!utils.fileExistsSync(inputs.bodyPath)) {
throw new Error(`File '${inputs.bodyPath}' does not exist.`)
}
// Update the body input with the contents of the file
inputs.body = utils.readFile(inputs.bodyPath)
}
// 65536 characters is the maximum allowed for the pull request body.
if (inputs.body.length > 65536) {
core.warning(
`Pull request body is too long. Truncating to 65536 characters.`
)
inputs.body = inputs.body.substring(0, 65536)
}
2020-07-16 10:57:13 +02:00
await createPullRequest(inputs)
2022-09-21 08:42:50 +02:00
} catch (error) {
core.setFailed(utils.getErrorMessage(error))
2020-05-17 10:21:11 +02:00
}
}
run()