Skip to content

Commit 04fd455

Browse files
committed
fix: make GITHUB_REF env var optional
1 parent da082bd commit 04fd455

File tree

2 files changed

+33
-10
lines changed

2 files changed

+33
-10
lines changed

index.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ async function assumeRole(params) {
2828
"Missing required input when assuming a Role."
2929
);
3030

31-
const {GITHUB_REPOSITORY, GITHUB_WORKFLOW, GITHUB_ACTION, GITHUB_ACTOR, GITHUB_REF, GITHUB_SHA} = process.env;
31+
const {GITHUB_REPOSITORY, GITHUB_WORKFLOW, GITHUB_ACTION, GITHUB_ACTOR, GITHUB_SHA} = process.env;
3232
assert(
33-
[GITHUB_REPOSITORY, GITHUB_WORKFLOW, GITHUB_ACTION, GITHUB_ACTOR, GITHUB_REF, GITHUB_SHA].every(isDefined),
33+
[GITHUB_REPOSITORY, GITHUB_WORKFLOW, GITHUB_ACTION, GITHUB_ACTOR, GITHUB_SHA].every(isDefined),
3434
'Missing required environment value. Are you running in GitHub Actions?'
3535
);
3636

@@ -52,11 +52,14 @@ async function assumeRole(params) {
5252
{Key: 'Workflow', Value: sanitizeGithubWorkflowName(GITHUB_WORKFLOW)},
5353
{Key: 'Action', Value: GITHUB_ACTION},
5454
{Key: 'Actor', Value: sanitizeGithubActor(GITHUB_ACTOR)},
55-
{Key: 'Branch', Value: GITHUB_REF},
5655
{Key: 'Commit', Value: GITHUB_SHA},
5756
]
5857
};
5958

59+
if (isDefined(process.env.GITHUB_REF)) {
60+
assumeRoleRequest.Tags.push({Key: 'Branch', Value: process.env.GITHUB_REF});
61+
}
62+
6063
if (roleExternalId) {
6164
assumeRoleRequest.ExternalId = roleExternalId;
6265
}

index.test.js

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ const ENVIRONMENT_VARIABLE_OVERRIDES = {
2222
GITHUB_WORKFLOW: 'MY-WORKFLOW-ID',
2323
GITHUB_ACTION: 'MY-ACTION-NAME',
2424
GITHUB_ACTOR: 'MY-USERNAME[bot]',
25-
GITHUB_REF: 'MY-BRANCH',
2625
GITHUB_SHA: 'MY-COMMIT-ID',
26+
GITHUB_REF: 'MY-BRANCH',
2727
};
2828
const GITHUB_ACTOR_SANITIZED = 'MY-USERNAME_bot_'
2929

@@ -142,6 +142,26 @@ describe('Configure AWS Credentials', () => {
142142
expect(core.setSecret).toHaveBeenCalledWith(FAKE_ACCOUNT_ID);
143143
});
144144

145+
test('action fails when github env vars are not set', async () => {
146+
process.env.SHOW_STACK_TRACE = 'false';
147+
core.getInput = jest
148+
.fn()
149+
.mockImplementation(mockGetInput(ASSUME_ROLE_INPUTS));
150+
delete process.env.GITHUB_SHA;
151+
152+
await run();
153+
expect(core.setFailed).toHaveBeenCalledWith('Missing required environment value. Are you running in GitHub Actions?');
154+
});
155+
156+
test('action does not require GITHUB_REF env var', async () => {
157+
core.getInput = jest
158+
.fn()
159+
.mockImplementation(mockGetInput(ASSUME_ROLE_INPUTS));
160+
delete process.env.GITHUB_REF;
161+
162+
await run();
163+
});
164+
145165
test('hosted runners can pull creds from a self-hosted environment', async () => {
146166
const mockInputs = {'aws-region': FAKE_REGION};
147167
core.getInput = jest
@@ -402,8 +422,8 @@ describe('Configure AWS Credentials', () => {
402422
{Key: 'Workflow', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_WORKFLOW},
403423
{Key: 'Action', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_ACTION},
404424
{Key: 'Actor', Value: GITHUB_ACTOR_SANITIZED},
405-
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
406425
{Key: 'Commit', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_SHA},
426+
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
407427
]
408428
})
409429
});
@@ -424,8 +444,8 @@ describe('Configure AWS Credentials', () => {
424444
{Key: 'Workflow', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_WORKFLOW},
425445
{Key: 'Action', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_ACTION},
426446
{Key: 'Actor', Value: GITHUB_ACTOR_SANITIZED},
427-
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
428447
{Key: 'Commit', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_SHA},
448+
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
429449
]
430450
})
431451
});
@@ -446,8 +466,8 @@ describe('Configure AWS Credentials', () => {
446466
{Key: 'Workflow', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_WORKFLOW},
447467
{Key: 'Action', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_ACTION},
448468
{Key: 'Actor', Value: GITHUB_ACTOR_SANITIZED},
449-
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
450469
{Key: 'Commit', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_SHA},
470+
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
451471
]
452472
})
453473
});
@@ -468,8 +488,8 @@ describe('Configure AWS Credentials', () => {
468488
{Key: 'Workflow', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_WORKFLOW},
469489
{Key: 'Action', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_ACTION},
470490
{Key: 'Actor', Value: GITHUB_ACTOR_SANITIZED},
471-
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
472491
{Key: 'Commit', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_SHA},
492+
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
473493
]
474494
})
475495
});
@@ -490,8 +510,8 @@ describe('Configure AWS Credentials', () => {
490510
{Key: 'Workflow', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_WORKFLOW},
491511
{Key: 'Action', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_ACTION},
492512
{Key: 'Actor', Value: GITHUB_ACTOR_SANITIZED},
493-
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
494513
{Key: 'Commit', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_SHA},
514+
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
495515
],
496516
ExternalId: 'abcdef'
497517
})
@@ -517,8 +537,8 @@ describe('Configure AWS Credentials', () => {
517537
{Key: 'Workflow', Value: sanitizedWorkflowName},
518538
{Key: 'Action', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_ACTION},
519539
{Key: 'Actor', Value: GITHUB_ACTOR_SANITIZED},
520-
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
521540
{Key: 'Commit', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_SHA},
541+
{Key: 'Branch', Value: ENVIRONMENT_VARIABLE_OVERRIDES.GITHUB_REF},
522542
]
523543
})
524544
});

0 commit comments

Comments
 (0)