Skip to content

Commit c43c7a3

Browse files
authored
Add support for aws session token (#16)
* Added support for supplying session token * Update build * Updated documentation * Updated readme
1 parent 9b747ac commit c43c7a3

File tree

8 files changed

+31
-9
lines changed

8 files changed

+31
-9
lines changed

README.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
This Action provides Amazon Web Services S3 backend (and compatible software) for @actions/cache.
66

7+
It supports assuming credentials from `aws-actions/configure-aws-credentials` directly from `env`, or you can supply them through inputs.
8+
79
## Usage
810

911
```yaml
@@ -19,10 +21,11 @@ This Action provides Amazon Web Services S3 backend (and compatible software) fo
1921
aws-s3-bucket: ${{ secrets.AWS_S3_BUCKET_NAME }}
2022
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
2123
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
22-
aws-region: us-east-1 # Optional
23-
aws-endpoint: https://example.com # Optional
24-
aws-s3-bucket-endpoint: false # Optional
25-
aws-s3-force-path-style: true # Optional
24+
aws-session-token: ${{ secrets.AWS_SESSION_TOKEN }} # Optionally supply session token from aws-actions/configure-aws-credentials
25+
aws-region: us-east-1 # Optional
26+
aws-endpoint: https://example.com # Optional
27+
aws-s3-bucket-endpoint: false # Optional
28+
aws-s3-force-path-style: true # Optional
2629
```
2730
2831
Please see [actions.yml](https://github.com/whywaita/actions-cache-s3/blob/main/action.yml) about input parameters.

action.yml

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ inputs:
3535
aws-secret-access-key:
3636
description: 'An AWS secret access key to access the bucket'
3737
required: false
38+
aws-session-token:
39+
description: 'An AWS session token to access the bucket'
40+
required: false
3841
aws-region:
3942
description: 'An AWS region where the bucket is located'
4043
required: false

dist/restore-only/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -15855,7 +15855,9 @@ function getInputS3ClientConfig() {
1585515855
accessKeyId: core.getInput(constants_1.Inputs.AWSAccessKeyId) ||
1585615856
process.env["AWS_ACCESS_KEY_ID"],
1585715857
secretAccessKey: core.getInput(constants_1.Inputs.AWSSecretAccessKey) ||
15858-
process.env["AWS_SECRET_ACCESS_KEY"]
15858+
process.env["AWS_SECRET_ACCESS_KEY"],
15859+
sessionToken: core.getInput(constants_1.Inputs.AWSSessionToken) ||
15860+
process.env["AWS_SESSION_TOKEN"]
1585915861
},
1586015862
region: core.getInput(constants_1.Inputs.AWSRegion) || process.env["AWS_REGION"],
1586115863
endpoint: core.getInput(constants_1.Inputs.AWSEndpoint),
@@ -46971,6 +46973,7 @@ var Inputs;
4697146973
Inputs["AWSS3Bucket"] = "aws-s3-bucket";
4697246974
Inputs["AWSAccessKeyId"] = "aws-access-key-id";
4697346975
Inputs["AWSSecretAccessKey"] = "aws-secret-access-key";
46976+
Inputs["AWSSessionToken"] = "aws-session-token";
4697446977
Inputs["AWSRegion"] = "aws-region";
4697546978
Inputs["AWSEndpoint"] = "aws-endpoint";
4697646979
Inputs["AWSS3BucketEndpoint"] = "aws-s3-bucket-endpoint";

dist/restore/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -15855,7 +15855,9 @@ function getInputS3ClientConfig() {
1585515855
accessKeyId: core.getInput(constants_1.Inputs.AWSAccessKeyId) ||
1585615856
process.env["AWS_ACCESS_KEY_ID"],
1585715857
secretAccessKey: core.getInput(constants_1.Inputs.AWSSecretAccessKey) ||
15858-
process.env["AWS_SECRET_ACCESS_KEY"]
15858+
process.env["AWS_SECRET_ACCESS_KEY"],
15859+
sessionToken: core.getInput(constants_1.Inputs.AWSSessionToken) ||
15860+
process.env["AWS_SESSION_TOKEN"]
1585915861
},
1586015862
region: core.getInput(constants_1.Inputs.AWSRegion) || process.env["AWS_REGION"],
1586115863
endpoint: core.getInput(constants_1.Inputs.AWSEndpoint),
@@ -46971,6 +46973,7 @@ var Inputs;
4697146973
Inputs["AWSS3Bucket"] = "aws-s3-bucket";
4697246974
Inputs["AWSAccessKeyId"] = "aws-access-key-id";
4697346975
Inputs["AWSSecretAccessKey"] = "aws-secret-access-key";
46976+
Inputs["AWSSessionToken"] = "aws-session-token";
4697446977
Inputs["AWSRegion"] = "aws-region";
4697546978
Inputs["AWSEndpoint"] = "aws-endpoint";
4697646979
Inputs["AWSS3BucketEndpoint"] = "aws-s3-bucket-endpoint";

dist/save-only/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -15855,7 +15855,9 @@ function getInputS3ClientConfig() {
1585515855
accessKeyId: core.getInput(constants_1.Inputs.AWSAccessKeyId) ||
1585615856
process.env["AWS_ACCESS_KEY_ID"],
1585715857
secretAccessKey: core.getInput(constants_1.Inputs.AWSSecretAccessKey) ||
15858-
process.env["AWS_SECRET_ACCESS_KEY"]
15858+
process.env["AWS_SECRET_ACCESS_KEY"],
15859+
sessionToken: core.getInput(constants_1.Inputs.AWSSessionToken) ||
15860+
process.env["AWS_SESSION_TOKEN"]
1585915861
},
1586015862
region: core.getInput(constants_1.Inputs.AWSRegion) || process.env["AWS_REGION"],
1586115863
endpoint: core.getInput(constants_1.Inputs.AWSEndpoint),
@@ -46971,6 +46973,7 @@ var Inputs;
4697146973
Inputs["AWSS3Bucket"] = "aws-s3-bucket";
4697246974
Inputs["AWSAccessKeyId"] = "aws-access-key-id";
4697346975
Inputs["AWSSecretAccessKey"] = "aws-secret-access-key";
46976+
Inputs["AWSSessionToken"] = "aws-session-token";
4697446977
Inputs["AWSRegion"] = "aws-region";
4697546978
Inputs["AWSEndpoint"] = "aws-endpoint";
4697646979
Inputs["AWSS3BucketEndpoint"] = "aws-s3-bucket-endpoint";

dist/save/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -15855,7 +15855,9 @@ function getInputS3ClientConfig() {
1585515855
accessKeyId: core.getInput(constants_1.Inputs.AWSAccessKeyId) ||
1585615856
process.env["AWS_ACCESS_KEY_ID"],
1585715857
secretAccessKey: core.getInput(constants_1.Inputs.AWSSecretAccessKey) ||
15858-
process.env["AWS_SECRET_ACCESS_KEY"]
15858+
process.env["AWS_SECRET_ACCESS_KEY"],
15859+
sessionToken: core.getInput(constants_1.Inputs.AWSSessionToken) ||
15860+
process.env["AWS_SESSION_TOKEN"]
1585915861
},
1586015862
region: core.getInput(constants_1.Inputs.AWSRegion) || process.env["AWS_REGION"],
1586115863
endpoint: core.getInput(constants_1.Inputs.AWSEndpoint),
@@ -46971,6 +46973,7 @@ var Inputs;
4697146973
Inputs["AWSS3Bucket"] = "aws-s3-bucket";
4697246974
Inputs["AWSAccessKeyId"] = "aws-access-key-id";
4697346975
Inputs["AWSSecretAccessKey"] = "aws-secret-access-key";
46976+
Inputs["AWSSessionToken"] = "aws-session-token";
4697446977
Inputs["AWSRegion"] = "aws-region";
4697546978
Inputs["AWSEndpoint"] = "aws-endpoint";
4697646979
Inputs["AWSS3BucketEndpoint"] = "aws-s3-bucket-endpoint";

src/constants.ts

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export enum Inputs {
99
AWSS3Bucket = "aws-s3-bucket",
1010
AWSAccessKeyId = "aws-access-key-id",
1111
AWSSecretAccessKey = "aws-secret-access-key",
12+
AWSSessionToken = "aws-session-token",
1213
AWSRegion = "aws-region",
1314
AWSEndpoint = "aws-endpoint",
1415
AWSS3BucketEndpoint = "aws-s3-bucket-endpoint",

src/utils/actionUtils.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ export function getInputS3ClientConfig(): S3ClientConfig | undefined {
9393
process.env["AWS_ACCESS_KEY_ID"],
9494
secretAccessKey:
9595
core.getInput(Inputs.AWSSecretAccessKey) ||
96-
process.env["AWS_SECRET_ACCESS_KEY"]
96+
process.env["AWS_SECRET_ACCESS_KEY"],
97+
sessionToken:
98+
core.getInput(Inputs.AWSSessionToken) ||
99+
process.env["AWS_SESSION_TOKEN"]
97100
},
98101
region: core.getInput(Inputs.AWSRegion) || process.env["AWS_REGION"],
99102
endpoint: core.getInput(Inputs.AWSEndpoint),

0 commit comments

Comments
 (0)