diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4d6b4dd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM python:3 +COPY entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..967870e --- /dev/null +++ b/action.yml @@ -0,0 +1,38 @@ +name: 'Autopep8' +description: 'Automatically runs the autopep8 command against any pull request created.' + +author: Conrad Großer + +inputs: + commit_message: + description: Commit message + required: false + default: 'Adjusted files for PEP-8 compliance' + commit_options: + description: Commit options + required: false + file_pattern: + description: File pattern used for "git add" + required: false + default: '*' + dependencies: + description: Path for the repositories 'requirements.txt'. If you have none, you may skip this. + required: false + default: 'false' + branch: + description: Branch which the changes are merged to + required: true + +runs: + using: 'docker' + image: 'Dockerfile' + args: + - ${{ inputs.commit_message }} + - ${{ inputs.commit_options }} + - ${{ inputs.file_pattern }} + - ${{ inputs.dependencies }} + - ${{ inputs.branch }} + +branding: + icon: 'fast-forward' + color: 'green' diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..87b1643 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,50 @@ +#!/bin/sh -l + +set -eu + +# Function for setting up git env in the docker container (copied from https://github.com/stefanzweifel/git-auto-commit-action/blob/master/entrypoint.sh) +git_setup ( ) { + cat <<- EOF > $HOME/.netrc + machine github.com + login $GITHUB_ACTOR + password $GITHUB_TOKEN + machine api.github.com + login $GITHUB_ACTOR + password $GITHUB_TOKEN +EOF + chmod 600 $HOME/.netrc + + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" +} + +echo "Installing dependencies..." +pip install --upgrade pip +# Install dependencies +pip install autopep8 + +# Install custom project dependencies if applicable +if ! $INPUT_DEPENDENCIES == "false" +then + pip install -r $INPUT_DEPENDENCIES +fi + +# Apply PEP 8 +echo "Running autopep8..." +autopep8 --in-place -r . + +if ! git diff --quiet +then + echo "Commiting and pushing changes." + # Calling method to configure the git environemnt + git_setup + # Switch to the actual branch + git checkout $INPUT_BRANCH + + git add "${INPUT_FILE_PATTERN}" + + git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} + git push --set-upstream origin "HEAD:$INPUT_BRANCH" +else + echo "Nothing to commit. Exiting." +fi