From be925a70aefcb94d4bc8bebbfb519d541170d9aa Mon Sep 17 00:00:00 2001 From: Noah Shuart Date: Mon, 21 Dec 2020 15:57:11 -0700 Subject: [PATCH 1/2] fix: uploading to s3 when application name includes parentheses --- aws-api-request.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aws-api-request.js b/aws-api-request.js index 72e4389..68383ed 100644 --- a/aws-api-request.js +++ b/aws-api-request.js @@ -52,7 +52,10 @@ function awsApiRequest(options) { //Changed this from double encoding the path to single encoding it, to make S3 paths with spaces work. However, the documentation said to //double encode it...? The only time we actually encode a path other than / is when uploading to S3 so just change this to single encoding here //but it's possible it will mess up if the path has some weird characters that should be double encoded maybe??? If you had weird symbols in your version number? - canonical += encodeURI(path) + '\n'; + // + //Unencoded parentheses in the path is valid. However, they must be encoded in the canonical path to pass signature verification even if + //the actual path has them unencoded. + canonical += encodeURI(path).replace(/\(/g, '%28').replace(/\)/g, '%29') + '\n'; let qsKeys = Object.keys(querystring); qsKeys.sort(); From 3605917d127b551d04b17aebd106e331f4f48ef0 Mon Sep 17 00:00:00 2001 From: Einar Egilsson Date: Tue, 9 Feb 2021 09:31:55 +0000 Subject: [PATCH 2/2] Info about AWS permissions. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index e59cd76..5f7c26c 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,11 @@ triggered the build, `version_description: ${{github.SHA}}`. `environment_name`: In version 10 this parameter becomes optional. If you don't pass an environment in the action will simply create the version but not deploy it anywhere. +### AWS Permissions + +It should be enough for your AWS user to have the policies **AWSElasticBeanstalkWebTier** and **AWSElasticBeanstalkService** attached +to be able to deploy your project. + ### Failure modes If you're uploading a new version the action will fail if that file already exists in S3, if the application version exists in Beanstalk and of course if the deployment fails. The action will wait until Beanstalk reports that the