88 exportAccountId ,
99 exportCredentials ,
1010 exportRegion ,
11+ getBooleanInput ,
1112 retryAndBackoff ,
1213 translateEnvVariables ,
1314 unsetCredentials ,
@@ -22,64 +23,41 @@ export async function run() {
2223 try {
2324 translateEnvVariables ( ) ;
2425 // Get inputs
26+ // Undefined inputs are empty strings ( or empty arrays)
2527 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 } ) ;
3230 const SessionToken = sessionTokenInput === '' ? undefined : sessionTokenInput ;
3331 const region = core . getInput ( 'aws-region' , { required : true } ) ;
3432 const roleToAssume = core . getInput ( 'role-to-assume' , { required : false } ) ;
3533 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 } ) ;
4437 const roleDuration =
4538 Number . parseInt ( core . getInput ( 'role-duration-seconds' , { required : false } ) ) || DEFAULT_ROLE_DURATION ;
4639 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 } ) ;
4941 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 } ;
5245 } ) ;
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 } ) ;
7053 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 ;
8361 }
8462
8563 // Logic to decide whether to attempt to use OIDC or not
0 commit comments