-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathinputs.js
More file actions
137 lines (131 loc) · 5.43 KB
/
inputs.js
File metadata and controls
137 lines (131 loc) · 5.43 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
import * as core from '@actions/core'
import {stringToArray} from '../functions/string-to-array.js'
// Helper function to validate the input values
// :param inputName: The name of the input being validated (string)
// :param inputValue: The input value to validate (string)
// :param validValues: An array of valid values for the input (array)
function validateInput(inputName, inputValue, validValues) {
if (!validValues.includes(inputValue)) {
throw new Error(
`Invalid value for '${inputName}': ${inputValue}. Must be one of: ${validValues.join(
', '
)}`
)
}
}
// Helper function to parse and validate integer inputs
// :param inputName: The name of the input being parsed (string)
// :returns: The parsed integer value
function getIntInput(inputName) {
const value = parseInt(core.getInput(inputName), 10)
if (isNaN(value)) {
throw new Error(`Invalid value for ${inputName}: must be an integer`)
}
return value
}
// Helper function to get all the inputs for the Action
// :returns: An object containing all the inputs
export function getInputs() {
var environment = core.getInput('environment', {required: true})
const trigger = core.getInput('trigger', {required: true})
const reaction = core.getInput('reaction')
const stable_branch = core.getInput('stable_branch')
const noop_trigger = core.getInput('noop_trigger')
const lock_trigger = core.getInput('lock_trigger')
const production_environments = stringToArray(
core.getInput('production_environments')
)
const environment_targets = core.getInput('environment_targets')
const draft_permitted_targets = core.getInput('draft_permitted_targets')
const unlock_trigger = core.getInput('unlock_trigger')
const help_trigger = core.getInput('help_trigger')
const lock_info_alias = core.getInput('lock_info_alias')
const global_lock_flag = core.getInput('global_lock_flag')
const update_branch = core.getInput('update_branch')
const outdated_mode = core.getInput('outdated_mode')
const required_contexts = core.getInput('required_contexts')
const allowForks = core.getBooleanInput('allow_forks')
const skipCi = core.getInput('skip_ci')
var checks = core.getInput('checks')
const skipReviews = core.getInput('skip_reviews')
const mergeDeployMode = core.getBooleanInput('merge_deploy_mode')
const unlockOnMergeMode = core.getBooleanInput('unlock_on_merge_mode')
const admins = core.getInput('admins')
const environment_urls = core.getInput('environment_urls')
const param_separator = core.getInput('param_separator')
const permissions = stringToArray(core.getInput('permissions'))
const sticky_locks = core.getBooleanInput('sticky_locks')
const sticky_locks_for_noop = core.getBooleanInput('sticky_locks_for_noop')
const disable_lock = core.getBooleanInput('disable_lock')
const allow_sha_deployments = core.getBooleanInput('allow_sha_deployments')
const disable_naked_commands = core.getBooleanInput('disable_naked_commands')
const enforced_deployment_order = stringToArray(
core.getInput('enforced_deployment_order')
)
const commit_verification = core.getBooleanInput('commit_verification')
const ignored_checks = stringToArray(core.getInput('ignored_checks'))
const use_security_warnings = core.getBooleanInput('use_security_warnings')
const allow_non_default_target_branch_deployments = core.getBooleanInput(
'allow_non_default_target_branch_deployments'
)
const deployment_confirmation = core.getBooleanInput(
'deployment_confirmation'
)
const deployment_confirmation_timeout = getIntInput(
'deployment_confirmation_timeout'
)
// validate inputs
validateInput('update_branch', update_branch, ['disabled', 'warn', 'force'])
validateInput('outdated_mode', outdated_mode, [
'pr_base',
'default_branch',
'strict'
])
if (checks === 'all' || checks === 'required') {
validateInput('checks', checks, ['all', 'required'])
} else {
checks = stringToArray(checks)
}
// rollup all the inputs into a single object
return {
trigger: trigger,
reaction: reaction,
environment: environment,
stable_branch: stable_branch,
noop_trigger: noop_trigger,
lock_trigger: lock_trigger,
production_environments: production_environments,
environment_targets: environment_targets,
unlock_trigger: unlock_trigger,
global_lock_flag: global_lock_flag,
help_trigger: help_trigger,
lock_info_alias: lock_info_alias,
update_branch: update_branch,
outdated_mode: outdated_mode,
required_contexts: required_contexts,
allowForks: allowForks,
skipCi: skipCi,
checks: checks,
skipReviews: skipReviews,
draft_permitted_targets,
admins: admins,
permissions: permissions,
allow_sha_deployments: allow_sha_deployments,
disable_naked_commands: disable_naked_commands,
mergeDeployMode: mergeDeployMode,
unlockOnMergeMode: unlockOnMergeMode,
environment_urls: environment_urls,
param_separator: param_separator,
sticky_locks: sticky_locks,
sticky_locks_for_noop: sticky_locks_for_noop,
disable_lock: disable_lock,
enforced_deployment_order: enforced_deployment_order,
commit_verification: commit_verification,
ignored_checks: ignored_checks,
deployment_confirmation: deployment_confirmation,
deployment_confirmation_timeout: deployment_confirmation_timeout,
use_security_warnings: use_security_warnings,
allow_non_default_target_branch_deployments:
allow_non_default_target_branch_deployments
}
}