query 명령어로 게릿에서 데이터 뽑기

게릿(Gerrit)의 리뷰 히스토리는 게릿 웹 페이지의 검색 기능을 통해 확인하거나, 게릿의 query 명령어를 통해 텍스트 데이터로 추출할 수 있다.

여기서는 query 명령어를 이용해 히스토리를 뽑아내자. 아래는 명령어 예제다.

$ ssh -p 29418 review.example.com gerrit query --format json --patch-sets --comments after:2019-6-1 before:2019-7-1 project:tools/gerrit

명령어는 review.example.com 서버에 접속하여 gerrit query 명령어를 사용하고 있다. (참고로, 29418은 Gerrit의 기본 포트 번호다.) query 명령어의 옵션 중에 헷갈리는 것들만 몇 개 살펴보자.

  • 출력 결과는 텍스트(–format text)이나 JSON(–format json) 둘 중 하나로 표시할 수 있다. 출력 결과를 바로 볼 목적이라면 텍스트가 낫지만, 재가공할 목적이라면 JSON이 낫다.
  • after는 표기한 날자를 포함하고, before는 표기한 날자를 표기하지 않는다.  위 명령어 예제로 설명하면, 6월 1일 리뷰는 포함되고 7월 1일 리뷰는 포함하지 않는다. 즉, 6월 한달 리뷰만 반환하는 셈이다.
  •  예시에는 포함되지 않았으나, –limit:500 옵션이 기본 옵션 값이다. 이 옵션은 Gerrit 시스템의 기본 제약 사항이다. 500보다 더 작을 수는 있지만, 클 수는 없다. 추가적인 권한이 있어야 –limit:500 제약을 벗어날 수 있다는데 나는 권한을 얻을 수 없었다. before / after 옵션을 활용해 1개월 단위로 나누어 검색해 검색 결과량을 500개 이하로 줄였다. query 명령어 도움말 속에 언급된 –start 옵션을 사용할 수도 있을 것이다.

참고

나의 Gerrit FAQ

게릿(Gerrit)은 문서화가 잘되어 있는 프로젝트다. 여기서는, 내게 필요한 내용만 골라 예제와 함께 모아둔다.

Code-Review와 Verified의 차이는 무엇인가?

Code-Review는 코드를 보고 주는 점수이고, Verified는 빌드에 이상이 없는 것을 확인하는 점수다. Verified는 젠킨스와 같은 CI 툴을 통해 자동으로 줄 수 있도록 하자.

왜 Gerrit의 계정을 사용하나?

깃은 계정 관리 기능이 없다. 그래서, 게릿을 통해 우회적으로 계정 관리를 지원한다.

review와 commit의 관계는?

게릿의 리뷰(Review)는 깃의 커밋 단위로 올라간다. 커밋을 모아 1개의 리뷰로 만들거나, 반대로 1개의 커밋을 쪼개 여러개의 리뷰로 올릴 수 없다.

그 밖에

  • 리뷰 요청 권한과 merge commit 리뷰 요청 권한은 분리되어 있다.
  • 리뷰에 점수 주기, 적용하기, abandon, rebase 등의 각 버튼 별 권한은 분리되어 있다.

참조