Самый простой способ сделать это с помощью GitHub Action, который позволит вам выполнить любой код, который вы хотите реализовать для CI или проверки linting.
Вы можете создать сценарий оболочки в своем хранилище (например,, script/lint
), которая принимает два аргумента: базовая ветвь и проверяемая ветвь. Lint и проверьте все, что вы хотите, печатая полезные сообщения об ошибках и выходя из нуля, если коммиты приемлемы и ненулевые, если они неприемлемы.
Затем создайте рабочий процесс в .github/workflow/lint.yml
с чем-то вроде этого (изменение имени скриптаесли необходимо):
name: lint
on: pull_request
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- run: script/lint "$GITHUB_SHA" "$GITHUB_REF"
Это появится в интерфейсе проверок, как и другие проверки CI под именем «Lint». Вы можете настроить поле имени для изменения имени.
AnПример сценария lint, который проверяет теги JIRA в сообщениях о фиксации, может выглядеть следующим образом:
#!/bin/sh
RET=0
for i in $(git rev-list "$1".."$2")
do
printf "Checking $i for JIRA reference..."
if git log -1 --format="%B" $i | grep -qsE "[A-Z]+-[0-9]+"
then
echo "looks ok."
else
echo "failed."
RET=1
fi
done
exit $RET