상단

Git을 사용하는, 구글의 안드로이드 프로젝트에서 사용하고 있는 코드리뷰 소프트웨어인 Gerrit를 정리 합니다.

 
 

Gerrit 개요


 

Code Review (코드 리뷰)는 프로그램 소스 코드 검토를 통해 소스 코드에서 간과하고 지나친 오류를 찾아내 코드의 품질을 향상 시키는 활동이다. Code review를 통해 프로그램의 잠재적 오류 가능성을 낮추어 테스트와 유지보수 비용을 줄이고 취약점을 제거해 보안을 높입니다. 여러가지 Code review 도구들이 있으나 Gerrit가 사용하기 편리 하다.

 

코드의 품질을 향상 시키는 도구

  • Gerrit : 코드 리뷰

  • Jenkins : 자동 빌드, 자동으로 테스트 케이스 실행, 코드 품질 측정 플러그인

 
 
 
 

Gerrit는 일정 점수 이상의 코드 리뷰 점수를 획득하여야 수정한 코드가 반영이 되는 Code Review 자동화 시스템 이다.

  • 요구 사항

  • Branch 생성

  • Branch Checkout

  • 반복되는 개발 프로세스

    • 개발 > 단위 테스트 > Local Commit

    • Push (> CI 도구에서 코드 검증)

    • Code Review

    • 통합 테스트

  • 배포

  • Merge Branch

 
 
 
 

https://gerrit-documentation.storage.googleapis.com/Documentation/2.11.3/images/intro-quick-central-gerrit.png

 

CentOS에서 Gerrit 설치


 
 

'''Apache HTTP Server 설치'''

yum install httpd httpd-tools openssl mod_ssl

vim /etc/httpd/conf.d/options.conf

    TraceEnable off

    ## Disable Signature
    ServerSignature Off     ## Disable Banner
    ServerTokens Prod vim /etc/httpd/conf.d/vhosts.conf     # Load my vhosts
    Include vhosts.d/*.conf mkdir /etc/httpd/vhosts.d vim /etc/httpd/vhosts.d/gerrit.conf   <VirtualHost *:80>
      ServerName gerrit.osscloud.biz       ProxyRequests Off
      ProxyVia Off
      ProxyPreserveHost On       <Proxy *>
                  Order deny,allow
                  Allow from all
      </Proxy>       <Location /login/>
                  AuthType Basic
                  AuthName "Gerrit Code Review"
                  Require valid-user
                  AuthUserFile /etc/httpd/gerrit.htpasswd
      </Location>       ProxyPass / [http://127.0.0.1:8080/](http://127.0.0.1:8080/)
  </VirtualHost> htpasswd -c /etc/httpd/gerrit.htpasswd admin service httpd restart
 

'''Gerrit 설치'''

cd ~/install

wget [https://www.gerritcodereview.com/download/gerrit-2.11.2.war](https://www.gerritcodereview.com/download/gerrit-2.11.2.war)

java -jar ~/install/*.war init -d /cloudnas/appl/gerrit

vim /cloudnas/appl/gerrit/etc/gerrit.config

cd /cloudnas/appl/gerrit

./bin/gerrit.sh restart

  

사용 Port : 29418
 

Gerrit 한글화


gerrit.war 파일에 포함되어 있는 gerrit_ui/deferredjs/*/3.cache.js 파일에서 메시지를 찾아서 수정 합니다.

 

관리자 매뉴얼


 

Girrit의 고유 구조

 
  • refs/for/master : refs/heads/master의 변경 사항 정보를 저장하는 reference

 
 

메뉴 구조

{| border="1" cellspacing="0" cellpadding="2" style="width:100%;" 
|- | style="text-align: center; background-color: rgb(204, 204, 204);" | 메뉴 | style="text-align: center; background-color: rgb(204, 204, 204);" | 하위 메유

| style="text-align: center; background-color: rgb(204, 204, 204);" | 상세 
|- | style="text-align: center;" | All | style="text-align: center;" | Open

Push된 코드 관리
style="text-align: center;"
style="text-align: center;"
Merged된 코드 관리
-
style="text-align: center;"
style="text-align: center;"
Abandoned된 코드 관리
-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"
그룹과 그룹 구성원 관리
-
style="text-align: center;"
style="text-align: center;"
프로젝트 목록 조회
-
style="text-align: center;"
style="text-align: center;"
프로젝트의 일반 정보 조회/관리
-
style="text-align: center;"
style="text-align: center;"
프로젝트의 브랜치 조회/관리
-
style="text-align: center;"
style="text-align: center;"
프로젝트 접근 권한 조회/관리
-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"
프로젝트 생성
-
style="text-align: center;"
style="text-align: center;"
그룹 목록 조회
-
style="text-align: center;"
style="text-align: center;"
그룹 생성
-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"

-
style="text-align: center;"
style="text-align: center;"
사용자 정보
Username 변경 가능
-
style="text-align: center;"
style="text-align: center;"
화면 설정 정보 관리
-
style="text-align: center;"
style="text-align: center;"
모니터링할 프로젝트와 모니터링 범위 설정
-
style="text-align: center;"
style="text-align: center;"
사용자 이름과 이메일 관리
-
style="text-align: center;"
style="text-align: center;"
사용자가 Git 접속시 사용할 SSH 공개키 관리
-
style="text-align: center;"
style="text-align: center;"
HTTP 접속시 사용할 비밀번호 관리
-
style="text-align: center;"
style="text-align: center;"
사용자의 Identity 관리
-
style="text-align: center;"
style="text-align: center;"
그룹과 그룹 구성원 관리
}
 

Project 삭제

Repository를 삭제한 후 Gerrit를 재기동 합니다.

 

참고 문헌


최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :