diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c38fa4e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +*.iml diff --git a/Dockerfile b/Dockerfile index f1331bf6..67ad8243 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,8 @@ LABEL "repository"="https://github.com/EndBug/add-and-commit" LABEL "homepage"="https://github.com/EndBug/add-and-commit" LABEL "maintainer"="Federico Grandi " +RUN apk add jq + COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["sh", "/entrypoint.sh"] diff --git a/action.yml b/action.yml index 1d13a38c..50a1beb3 100644 --- a/action.yml +++ b/action.yml @@ -3,13 +3,11 @@ description: 'Add & commit files from a path directly from GitHub Actions' inputs: author_name: - description: 'The name of the user that will be displayed as the author of the commit' - required: true - default: 'Add & Commit GitHub Action' + description: 'The name of the user that will be displayed as the author of the commit, defaults to author name of head commit' + required: false author_email: - description: 'The email of the user that will be displayed as the author of the commit' - required: true - default: 'actions@github.com' + description: 'The email of the user that will be displayed as the author of the commit, defaults to author email of head commit' + required: false force: description: 'Whether to use the force option on git add, in order to bypass eventual gitignores' required: false diff --git a/entrypoint.sh b/entrypoint.sh index 4b1ea3ce..9c3402fb 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,6 +1,18 @@ #!/bin/sh set -eu +if [ -z "$INPUT_AUTHOR_NAME" ] # Check if the variable is empty +then AUTHOR_NAME=$(cat "$GITHUB_EVENT_PATH" | jq '.head_commit.author.name' | sed 's/"//g') # If so, fetch the author from the event +else AUTHOR_NAME=$INPUT_AUTHOR_NAME # If not, use that value +fi + +if [ -z "$INPUT_AUTHOR_EMAIL" ] +then AUTHOR_EMAIL=$(cat "$GITHUB_EVENT_PATH" | jq '.head_commit.author.email' | sed 's/"//g') +else AUTHOR_EMAIL=$INPUT_AUTHOR_EMAIL +fi + +echo "Using '$AUTHOR_NAME' and '$AUTHOR_EMAIL' as author information." + # Set up .netrc file with GitHub credentials git_setup() { cat <<- EOF > $HOME/.netrc @@ -14,8 +26,8 @@ git_setup() { EOF chmod 600 $HOME/.netrc - git config --global user.email "actions@github.com" - git config --global user.name "Add & Commit GitHub Action" + git config --global user.email "$AUTHOR_EMAIL" + git config --global user.name "$AUTHOR_NAME" } add() { @@ -52,7 +64,7 @@ then add echo "Creating commit..." - git commit -m "$INPUT_MESSAGE" --author="$INPUT_AUTHOR_NAME <$INPUT_AUTHOR_EMAIL>" + git commit -m "$INPUT_MESSAGE" --author="$AUTHOR_NAME <$AUTHOR_EMAIL>" echo "Pushing to repo..." git push --set-upstream origin "${GITHUB_REF:11}"