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
|
|
|
|
2024-09-03 09:54:12 +02:00
|
|
|
function getDraftInput(): {value: boolean; always: boolean} {
|
|
|
|
if (core.getInput('draft') === 'always-true') {
|
|
|
|
return {value: true, always: true}
|
|
|
|
} else {
|
|
|
|
return {value: core.getBooleanInput('draft'), always: false}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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'),
|
2024-09-03 09:54:12 +02:00
|
|
|
branchToken: core.getInput('branch-token'),
|
2020-05-17 10:21:11 +02:00
|
|
|
path: core.getInput('path'),
|
2021-12-14 03:23:29 +01:00
|
|
|
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'),
|
2022-03-23 06:22:01 +01:00
|
|
|
signoff: core.getBooleanInput('signoff'),
|
2020-07-19 08:09:44 +02:00
|
|
|
branch: core.getInput('branch'),
|
2022-03-23 06:22:01 +01:00
|
|
|
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'),
|
2024-09-03 09:54:12 +02:00
|
|
|
signCommits: core.getBooleanInput('sign-commits'),
|
2020-05-17 10:21:11 +02:00
|
|
|
title: core.getInput('title'),
|
|
|
|
body: core.getInput('body'),
|
2023-04-05 01:41:18 +02:00
|
|
|
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')),
|
2024-09-03 09:54:12 +02:00
|
|
|
draft: getDraftInput(),
|
|
|
|
maintainerCanModify: core.getBooleanInput('maintainer-can-modify')
|
2020-05-17 10:21:11 +02:00
|
|
|
}
|
|
|
|
core.debug(`Inputs: ${inspect(inputs)}`)
|
|
|
|
|
2024-01-31 12:05:33 +01:00
|
|
|
if (!inputs.token) {
|
|
|
|
throw new Error(`Input 'token' not supplied. Unable to continue.`)
|
|
|
|
}
|
2024-09-03 09:54:12 +02:00
|
|
|
if (!inputs.branchToken) {
|
|
|
|
inputs.branchToken = inputs.token
|
2024-01-31 12:05:33 +01:00
|
|
|
}
|
|
|
|
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()
|