컴퓨터/LibreOffice

리브레오피스(LibreOffice)에 소스코드 제출을 위한 gerrit설정 및 제출 정리

StudioEgo 2020. 6. 29. 01:50

리브레오피스(LibreOffice)에 소스코드 제출을 위한 gerrit설정 및 제출 정리

리브레오피스(LibreOffice) Gerrit 소스코드 리뷰 시스템 설정

리브레오피스(LibreOffice)의 Gerrit은 문서재단의 인증을 위한 싱글 사인온(Single Sign-On)서비스를 사용하고 있습니다.

우선, Gerrit사용을 위한 계정을 생성 Create an account

참고: LibreOffice Wiki - Setting yourself up for gerrit

개인 컴퓨터에 SSH 키를 생성합니다.

SSH생성은 Github의 글을 참조하면 됩니다.
Generating a new SSH key and adding it to the ssh-agent

키생성은 아래와 같습니다

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

이후, gerrit시스템에 등록된 userid를 확인후, gerrit시스템에 SSH Key 설정 등록을합니다.

다음의 명령어로 키 조회후 gerrit시스템에 SSH Key 설정 등록하면 됩니다.

$ cat ~/.ssh/id_rsa.pub

gerrit에 SSH키 등록을 하였으면 ${HOME}/.ssh/config 파일 생성하거나 아님 기존 파일이 있으면 기존 파일에 에 아래와 같이 내용을 추가합니다

 Host logerrit gerrit.libreoffice.org
       IdentityFile /path/to/your/private-key
       User YOUR_USERNAME_HERE
       Port 29418
       HostName gerrit.libreoffice.org

IdentityFile 속성에는 생성한 ${HOME}/.ssh/id_rsa를넣으면 됩니다. User 속성에는 gerrit에 등록된 id를 넣습니다.

이후, logerrit 실행을 해봅니다

$ ./logerrit test
There seems to be trouble. Please have the output of:
ssh -vvvv logerrit
at hand when looking for help.

일단 실행해보니, 우선 ssh -vvvv logerrit을 실행하라는군요

아래와 같이 실행해봅니다.

$ ssh -vvvv logerrit

테스트가 성공하면, SSH키에 대한 비밀번호 입력하라고 나오고, 입력이 완료되면 아래와 같은 메세지를 확인할 수 있습니다

  ****    Welcome to Gerrit Code Review    ****

  Hi {Your Name}, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://{your user id}@gerrit.libreoffice.org:29418/REPOSITORY_NAME.git

debug2: channel 0: written 292 to efd 6
debug3: send packet: type 1
debug1: channel 0: free: client-session, nchannels 1
debug3: channel 0: status: The following connections are open:
  #0 client-session (t4 r0 i0/0 o0/0 e[write]/0 fd 4/5/6 sock -1 cc -1)

debug3: fd 1 is not O_NONBLOCK
Connection to gerrit.libreoffice.org closed by remote host.
Connection to gerrit.libreoffice.org closed.
Transferred: sent 3928, received 2040 bytes, in 9.5 seconds
Bytes per second: sent 415.1, received 215.6
debug1: Exit status -1

이제, logerrit이 제대로 실행되는지 확인해봅니다

$ ./logerrit test
Enter passphrase for key '/home/${HOME}/.ssh/id_rsa':
Your gerrit setup was successful!

gerrit시스템 설정이 제대로 되었으면 위와 같이 나옵니다.

소스 커밋하기

저장소에 수정한 내용을 git commit으로 커밋합니다.

커밋한 소스코드를 리브레오피스 gerrit 소스코드 리뷰시스템에 전달하기

커밋된 내용을 저장소에 적용을 하기 위해서, gerrit소스코드 리뷰 시스템에 이제 전달해야겠죠?

이제, logerrit을 이용하여 gerrit 코드 리뷰시스템에 커밋한 소스코드를 제출합니다.

$ ./logerrit submit master
Enter passphrase for key '/home/${HOME}/.ssh/id_rsa':
오브젝트 나열하는 중: 96, 완료.
오브젝트 개수 세는 중: 100% (96/96), 완료.
Delta compression using up to 4 threads
오브젝트 압축하는 중: 100% (50/50), 완료.
오브젝트 쓰는 중: 100% (57/57), 8.84 KiB | 55.00 KiB/s, 완료.
Total 57 (delta 45), reused 16 (delta 5), pack-reused 0
remote: Resolving deltas: 100% (45/45)
remote: Counting objects: 119475, done
remote: Processing changes: refs: 1, new: 1, done
remote: commit 6821939: warning: subject >50 characters; use shorter first paragraph
remote:
remote: SUCCESS
remote:
remote:   https://gerrit.libreoffice.org/c/core/+/97344 Hardcode script for "Noto" CJK fonts & add USCRIPT_JAMO [NEW]
remote:
To ssh://logerrit/core
 * [new branch]                HEAD -> refs/for/master

이제, LibreOffice의 gerrit 코드 리뷰 시스템 설정 및 소스코드 제출 방법을 확인해보았습니다.