github actions를 이용한 커밋 메시지 관리하기
프로젝트에서 팀원들 간의 통일된 코드 컨벤션을 유지하기 위해 github actions를 활용하여 팀원이 올바른 커밋 메시지를 작성하여 pull request를 하였는지 확인할 수 있는 작업을 진행해보았습니다.
1. 레포지토리 생성 후 actions 등록하기
레포지토리 생성 후 Actions 탭으로 이동하여 work flow를 셋업 합니다.
commit-message-checker.yml 파일 내부에 올바른 규칙으로 커밋 메시지를 작성하였는지 여부를 판단하는 코드를 작성합니다.
저는 제목에 feat | fix | docs | style | refactor | test | chore를 포함하여 커밋 메시지를 작성하였는지 정규식으로 확인하는 코드를 추가하였습니다.
name: "Commit Message Check"
on:
pull_request:
types:
- opened
- edited
- reopened
- synchronize
push:
branches:
- main
- "releases/*"
jobs:
check-commit-message:
name: Check Commit Message
runs-on: ubuntu-latest
steps:
- name: Check for commit-message-title
uses: gsactions/commit-message-checker@v1
with:
pattern: '^(feat|fix|docs|style|refactor|test|chore):\s.+$'
error: 'Enter commit message like "feat|fix|docs|style|refactor|test|chore: <commit message>"'
내용 작성이 완료되면 Start commit 버튼을 클릭합니다.
2.vsCode work space에서 작성된 action이 정상적으로 동작하는지 확인합니다.
생성된 레포지토리를 clone하게 되면 git/workflows 디렉터리에 actions탭에서 생성한. yml 파일을 확인할 수 있습니다.
리드미 파일을 수정한 뒤 커밋 컨벤션을 지키지 않은 커밋 메시지로 push를 진행하겠습니다.
push를 하고 나서 pull request과정에서 커밋 메시지를 확인하고 컨벤션이 지켜지지 않으면 에러를 발생시킵니다.
rebase를 활용하여 커밋 메시지를 수정하고 다시 커밋을 진행해보겠습니다.
커밋 메시지를 수정하고 다시 pull request를 진행하면 에러가 표시 되지 않는 것을 확인할 수 있었습니다.
참고 문서 : https://github.com/marketplace/actions/gs-commit-message-checker