[Chore] Update actions to work together #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automated review | |
# **What it does**: Adds a comment to highlight potential issues and fixes. | |
# **Why we have it**: Makes contributing and reviewing easier. | |
# **Who does it impact**: All contributors. | |
on: | |
pull_request: | |
branches: | |
- production | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
review: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Check for existing comment (if not create a new one) | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
existing_comment_id=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
"https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" | \ | |
jq '.[] | select(.user.id == 41898282) | select(.body | contains("Automatically generated comment")) | .id') | |
comment_body_unformatted="## Automatically generated comment | |
**This comment is automatically generated and will be overwritten every time changes are committed to this branch.** | |
### Typo and language issues (non-blocking) | |
<!-- TYPO_PLACEHOLDER_START --> | |
<!-- TYPO_PLACEHOLDER_END -->" | |
comment_body=$(jq -n --arg body "$comment_body_unformatted" '{body: $body}') | |
# If a comment exists, update it. Otherwise, post a new comment. | |
if [ ! -z "$existing_comment_id" ]; then | |
curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
-X PATCH -d "$comment_body" \ | |
"https://api.github.com/repos/${{ github.repository }}/issues/comments/$existing_comment_id" | |
else | |
curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
-X POST -d "$comment_body" \ | |
"https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" | |
fi | |
- name: Get Changed Files from Pull Request | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
# get file names and separate them with space ' ' | |
files=$(gh pr diff ${{ github.event.pull_request.number }} --name-only | grep -E "\.md$" | xargs -I {} sh -c 'echo "\"./{}\""' | tr '\n' ' ') | |
echo "CHANGED_FILES=$files" >> "$GITHUB_ENV" | |
- name: Output Changed Files | |
run: echo ${{ env.CHANGED_FILES }} | |
- name: Set up Python environment | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.x | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} | |
- name: Create virtual environment | |
run: python -m venv venv | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} | |
- name: Activate virtual environment | |
run: source venv/bin/activate | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} | |
- name: Install codespell | |
run: pip install codespell | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} | |
- name: Install case-police | |
run: npm install -g case-police | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} | |
- name: Install alex | |
run: npm install -g alex | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} | |
- name: Case Police | |
run: case-police ${{ env.CHANGED_FILES }} --disable DoS | |
if: ${{ !cancelled() && env.CHANGED_FILES != '' }} |