- Gerrit 개요
- CentOS에서 Gerrit 설치
- Gerrit 한글화
- 관리자 매뉴얼
- Girrit의 고유 구조
- 메뉴 구조
- Project 삭제
- 참고 문헌
Git을 사용하는, 구글의 안드로이드 프로젝트에서 사용하고 있는 코드리뷰 소프트웨어인 Gerrit를 정리 합니다.
다운로드 : https://gerrit-releases.storage.googleapis.com/index.html
라이선스 :
플랫폼 : Java, GWT (Google Web Toolkit)
Gerrit 개요
Code Review (코드 리뷰)는 프로그램 소스 코드 검토를 통해 소스 코드에서 간과하고 지나친 오류를 찾아내 코드의 품질을 향상 시키는 활동이다. Code review를 통해 프로그램의 잠재적 오류 가능성을 낮추어 테스트와 유지보수 비용을 줄이고 취약점을 제거해 보안을 높입니다. 여러가지 Code review 도구들이 있으나 Gerrit가 사용하기 편리 하다.
코드의 품질을 향상 시키는 도구
Gerrit : 코드 리뷰
Jenkins : 자동 빌드, 자동으로 테스트 케이스 실행, 코드 품질 측정 플러그인
Gerrit는 일정 점수 이상의 코드 리뷰 점수를 획득하여야 수정한 코드가 반영이 되는 Code Review 자동화 시스템 이다.
요구 사항
Branch 생성
Branch Checkout
반복되는 개발 프로세스
개발 > 단위 테스트 > Local Commit
Push (> CI 도구에서 코드 검증)
Code Review
통합 테스트
배포
Merge Branch
CentOS에서 Gerrit 설치
인증 방식 : Open ID, HTTP, LDAP
WAS : [[Jetty|Jetty]], Tomcat
Database : [http://www.jopenbusiness.com/mediawiki/H2 H2], [http://www.jopenbusiness.com/mediawiki/MySQL MySQL], PostgreSQL
Others : JDK, OpenSSH, git
'''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를 재기동 합니다.