8
8
exportAccountId ,
9
9
exportCredentials ,
10
10
exportRegion ,
11
+ getBooleanInput ,
11
12
retryAndBackoff ,
12
13
translateEnvVariables ,
13
14
unsetCredentials ,
@@ -22,64 +23,41 @@ export async function run() {
22
23
try {
23
24
translateEnvVariables ( ) ;
24
25
// Get inputs
26
+ // Undefined inputs are empty strings ( or empty arrays)
25
27
const AccessKeyId = core . getInput ( 'aws-access-key-id' , { required : false } ) ;
26
- const SecretAccessKey = core . getInput ( 'aws-secret-access-key' , {
27
- required : false ,
28
- } ) ;
29
- const sessionTokenInput = core . getInput ( 'aws-session-token' , {
30
- required : false ,
31
- } ) ;
28
+ const SecretAccessKey = core . getInput ( 'aws-secret-access-key' , { required : false } ) ;
29
+ const sessionTokenInput = core . getInput ( 'aws-session-token' , { required : false } ) ;
32
30
const SessionToken = sessionTokenInput === '' ? undefined : sessionTokenInput ;
33
31
const region = core . getInput ( 'aws-region' , { required : true } ) ;
34
32
const roleToAssume = core . getInput ( 'role-to-assume' , { required : false } ) ;
35
33
const audience = core . getInput ( 'audience' , { required : false } ) ;
36
- const maskAccountIdInput = core . getInput ( 'mask-aws-account-id' , { required : false } ) || 'false' ;
37
- const maskAccountId = maskAccountIdInput . toLowerCase ( ) === 'true' ;
38
- const roleExternalId = core . getInput ( 'role-external-id' , {
39
- required : false ,
40
- } ) ;
41
- const webIdentityTokenFile = core . getInput ( 'web-identity-token-file' , {
42
- required : false ,
43
- } ) ;
34
+ const maskAccountId = getBooleanInput ( 'mask-aws-account-id' , { required : false } ) ;
35
+ const roleExternalId = core . getInput ( 'role-external-id' , { required : false } ) ;
36
+ const webIdentityTokenFile = core . getInput ( 'web-identity-token-file' , { required : false } ) ;
44
37
const roleDuration =
45
38
Number . parseInt ( core . getInput ( 'role-duration-seconds' , { required : false } ) ) || DEFAULT_ROLE_DURATION ;
46
39
const roleSessionName = core . getInput ( 'role-session-name' , { required : false } ) || ROLE_SESSION_NAME ;
47
- const roleSkipSessionTaggingInput = core . getInput ( 'role-skip-session-tagging' , { required : false } ) || 'false' ;
48
- const roleSkipSessionTagging = roleSkipSessionTaggingInput . toLowerCase ( ) === 'true' ;
40
+ const roleSkipSessionTagging = getBooleanInput ( 'role-skip-session-tagging' , { required : false } ) ;
49
41
const proxyServer = core . getInput ( 'http-proxy' , { required : false } ) || process . env . HTTP_PROXY ;
50
- const inlineSessionPolicy = core . getInput ( 'inline-session-policy' , {
51
- required : false ,
42
+ const inlineSessionPolicy = core . getInput ( 'inline-session-policy' , { required : false } ) ;
43
+ const managedSessionPolicies = core . getMultilineInput ( 'managed-session-policies' , { required : false } ) . map ( ( p ) => {
44
+ return { arn : p } ;
52
45
} ) ;
53
- const managedSessionPoliciesInput = core . getMultilineInput ( 'managed-session-policies' , { required : false } ) ;
54
- const managedSessionPolicies : { arn : string } [ ] = [ ] ;
55
- const roleChainingInput = core . getInput ( 'role-chaining' , { required : false } ) || 'false' ;
56
- const roleChaining = roleChainingInput . toLowerCase ( ) === 'true' ;
57
- const outputCredentialsInput = core . getInput ( 'output-credentials' , { required : false } ) || 'false' ;
58
- const outputCredentials = outputCredentialsInput . toLowerCase ( ) === 'true' ;
59
- const outputEnvCredentialsInput = core . getInput ( 'output-env-credentials' , { required : false } ) || 'true' ;
60
- const outputEnvCredentials = outputEnvCredentialsInput . toLowerCase ( ) === 'true' ;
61
- const unsetCurrentCredentialsInput = core . getInput ( 'unset-current-credentials' , { required : false } ) || 'false' ;
62
- const unsetCurrentCredentials = unsetCurrentCredentialsInput . toLowerCase ( ) === 'true' ;
63
- const disableRetryInput = core . getInput ( 'disable-retry' , { required : false } ) || 'false' ;
64
- let disableRetry = disableRetryInput . toLowerCase ( ) === 'true' ;
65
- const specialCharacterWorkaroundInput =
66
- core . getInput ( 'special-characters-workaround' , { required : false } ) || 'false' ;
67
- const specialCharacterWorkaround = specialCharacterWorkaroundInput . toLowerCase ( ) === 'true' ;
68
- const useExistingCredentialsInput = core . getInput ( 'use-existing-credentials' , { required : false } ) || 'false' ;
69
- const useExistingCredentials = useExistingCredentialsInput . toLowerCase ( ) === 'true' ;
46
+ const roleChaining = getBooleanInput ( 'role-chaining' , { required : false } ) ;
47
+ const outputCredentials = getBooleanInput ( 'output-credentials' , { required : false } ) ;
48
+ const outputEnvCredentials = getBooleanInput ( 'output-env-credentials' , { required : false , default : true } ) ;
49
+ const unsetCurrentCredentials = getBooleanInput ( 'unset-current-credentials' , { required : false } ) ;
50
+ let disableRetry = getBooleanInput ( 'disable-retry' , { required : false } ) ;
51
+ const specialCharacterWorkaround = getBooleanInput ( 'special-characters-workaround' , { required : false } ) ;
52
+ const useExistingCredentials = core . getInput ( 'use-existing-credentials' , { required : false } ) ;
70
53
let maxRetries = Number . parseInt ( core . getInput ( 'retry-max-attempts' , { required : false } ) ) || 12 ;
71
- switch ( true ) {
72
- case specialCharacterWorkaround :
73
- // 😳
74
- disableRetry = false ;
75
- maxRetries = 12 ;
76
- break ;
77
- case maxRetries < 1 :
78
- maxRetries = 1 ;
79
- break ;
80
- }
81
- for ( const managedSessionPolicy of managedSessionPoliciesInput ) {
82
- managedSessionPolicies . push ( { arn : managedSessionPolicy } ) ;
54
+
55
+ if ( specialCharacterWorkaround ) {
56
+ // 😳
57
+ disableRetry = false ;
58
+ maxRetries = 12 ;
59
+ } else if ( maxRetries < 1 ) {
60
+ maxRetries = 1 ;
83
61
}
84
62
85
63
// Logic to decide whether to attempt to use OIDC or not
0 commit comments