tet123/.github/workflows/contributor-check.yml
dependabot[bot] 26f5e30eaf [ci] Bump peter-evans/create-or-update-comment from 3 to 4
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 3 to 4.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](https://github.com/peter-evans/create-or-update-comment/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 16:35:27 -05:00

51 lines
2.5 KiB
YAML

name: Contributor Check
on:
# ATTENTION: See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
# re security implications of using this trigger; in particular, no code from PR branches must
# be executed in any flows triggered by it
pull_request_target:
branches:
- main
- 1.*
- 2.*
types: [ opened ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check if COPYRIGHT.txt has author name?
id: check
env:
pull_request_number: ${{ github.event.pull_request.number }}
run: |
curl -H 'Accept: application/vnd.github.v3.raw' https://raw.githubusercontent.com/debezium/debezium/main/COPYRIGHT.txt >> COPYRIGHT.txt
curl -H 'Accept: application/vnd.github.v3.raw' https://raw.githubusercontent.com/debezium/debezium/main/jenkins-jobs/scripts/config/Aliases.txt >> ALIASES.txt
curl -H 'Accept: application/vnd.github.v3.raw' https://raw.githubusercontent.com/debezium/debezium/main/jenkins-jobs/scripts/config/FilteredNames.txt >> FILTEREDNAMES.txt
curl --silent -X "GET" https://api.github.com/repos/debezium/debezium/pulls/$pull_request_number/commits | jq '.[] | {author: .commit.author.name}' | jq -r '.author' | uniq >> AUTHOR_NAME.txt
while IFS=" " read -r AUTHOR;
do
if ! grep -qi "$AUTHOR" COPYRIGHT.txt; then
if ! grep -qi "$AUTHOR" ALIASES.txt; then
if ! grep -qi "$AUTHOR" FILTEREDNAMES.txt; then
echo "USER_NOT_FOUND=true" >> $GITHUB_OUTPUT
fi
fi
fi
done < AUTHOR_NAME.txt
- name: Create comment
if: ${{ steps.check.outputs.USER_NOT_FOUND == 'true' }}
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
Welcome as a new contributor to Debezium, @${{ github.event.pull_request.user.login }}. Reviewers, please add missing author name(s) and alias name(s) to the [COPYRIGHT.txt](https://github.com/debezium/debezium/blob/main/COPYRIGHT.txt) and [Aliases.txt](https://github.com/debezium/debezium/blob/main/jenkins-jobs/scripts/config/Aliases.txt) respectively.
- name: Check failure
if: ${{ steps.check.outputs.USER_NOT_FOUND == 'true' }}
uses: actions/github-script@v7
continue-on-error: false
with:
script: |
throw new Error('Add new user, @${{ github.event.pull_request.user.login }} to COPYRIGHT.txt and Aliases.txt')