Hello World/DevOps
Gerrit - Commit Message에 Change-Id 입력하도록 설정
Run DaramG
2020. 12. 16. 16:32
보통 Commit Message에 Change-id 가 없어도 Gerrit 에 커밋을 업로드시 자동으로 생성해주지만, 커밋 메세지에 Change-id 가 없으면 Gerrit 에 올리지 못하도록 설정할 수도 있다.
Change-Id 는 Gerrit 이 변경사항을 구분하는 고유 식별값이다(Commit Id와는 다르다).
Browse - Repositories 클릭 -> All-Projects 클릭 (특정 Projecdt 만 적용할 수 도 있다.)
Repository Options 에서 Require Change-Id in commit message 를 False에서 True로 설정.
설정 후 Commit message 에 change-Id가 없는 상태로 Push 하면 아래와 같은 에러가 발생한다.
ERROR: missing Change-Id in message footer
[remote rejected] HEAD -> refs/for/master (commit : missing Change-Id in message footer)
이럴 경우, Message에 change-id 자동생성하는 hook 을 설치해야 하는데, Hint 에 나오는 명령어 두개를 순차적으로 입력 후 다시 Gerrit에 push 하면 해결 된다.
$gitdir=$(git rev-parse --git-dir); scp -p -P <PORT> <GERRIT>:hooks/commit-msg ${gitdir}/hooks/
$git commit --amend --no-edit
$git push origin HEAD:refs/for/master