System Engineering/CI, CD

CI/CD #15. Redmine(레드마인) git 연동하기

ZunoXI 2021. 7. 16.

개요

Redmine과 Git의 연동을 통한 팀 프로젝트 저장소 이슈관리 활성화

Redmine Git 연동

지난 포스팅에서는 Centos7에 Redmine을 설치해봤다. 이번포스팅에서는 설치된 Redmine과 기존 설치된 Gitlab서버의 레포지터리와의 연동 방법에 대해 기술하려한다. 정말이지 아쉽게도 redmine은 오픈소스라 그런것인지 실시간 자동으로 git연동이 되지않는다. 비슷한 계열의 Jira같은 경우는 상용이라 그런가.. 연동기능을 별도로 제공해주는데, redmine같은 경우는 실시간으로 깃레포지터리를 확인할 수 있게끔 크론탭같은것으로 미러링 해줘야한다. 상당히 번거로울것 같지만, 최초설정만 잘 해두면 크게 문제 없이 사용할 수 있기때문에 이번 포스팅을 통해 해당 방법을 정리해본다.

 

참고

Redmine 설치 포스팅

 

CI/CD #14. CentOS Redmine(레드마인) 설치하기

개요 효율적인 애자일 방식구현을 위한 협업툴 Redmine 설치하기 CentOS Redmine 설치 현재 필자가 구축한 CICD 파이프라인은 gitlab서버와 jenkins서버, 쿠버네티스 클러스터를 구축하고 gitlab과 jenkins연동

zunoxi.tistory.com

참고한 포스팅

 

Redmine + Git Remote 연동

 

jistol.github.io

 

 


 

 

1. Redmine과 연동할 저장소 구축

 

 

git credentials 설정

 

서두에 언급했던것처럼 실시간으로 동기화 되지않기때문에 주기적으로 미러링을 해줘야하는데 그때마다 깃랩 계정의 id, pw를 입력할 수 없기에 git credentials를 설정해준다. 

 

※ 해당경우는 저장소가 private할때 적용되는 경우이다. public인경우 본 설정은 필요없다.

 

$ git config --global credential.helper 'store --file ~/.credentials'

 

 

git --mirror 설정

 

미러링에서 중요한건 Remine이 설치된 서버에 git repo를 클론해야한다는 것이다. 즉, Redmine서버와 Git 저장소가 같은 서버에 있어야 연동이 된다는 것이다. 또한, 미러링을 위해 git clone옵션 중 --mirror를 사용하며, git --mirror 옵션은 기본적으로 normal clone과 달리 모든 refs를 복사하는 개념(--bare 옵션을 포함)이다. 이는 다음 링크를 확인하면 더 자세한 정보를 알 수 있다. 

 

What's the difference between git clone --mirror and git clone --bare

The git clone help page has this to say about --mirror: Set up a mirror of the remote repository. This implies --bare. But doesn't go into detail about how the --mirror clone is different from ...

stackoverflow.com

 

$ git clone --mirror https:....git(본인의 git repo 주소)

 

이처럼 설정했다면 이제 별도 인증없이 원격저장소에 갱신이 가능해진다.

 

 

 

 

2. Crontab 설정

 

이제 위 설정했던 일련의 매커니즘이 주기적으로 실행되게끔 crontab으로 설정해준다. 먼저 crontab이 실행시킬 실행파일을 만들어주자.

 

실행파일 생성

$ vi gitupd.sh

cd ~/(git repo 위치)
git remote update

 

경우에따라 gitupd.sh 파일이 어떤권한으로도 실행될 수 있게끔 권한을 부여하는것도 필요하다.

 

$ chmod 777 gitupd.sh

 

crontab 편집

 

$ crontab -e

* * * * * ~/gitupd.sh  #gitupd.sh의 위치

 

* * * * * 는 매 분 해당 파일을 실행시키겠다는 crontab 규칙이다.

 

 

 

3. Redmine git 연동

 

저장소 연동

 

Redmine의 프로젝트 > 설정 > 저장소 탭에 저장소 추가를 클릭한다.

 

 

 

형상관리시스템은 Git으로 설정하고 저장소경로에 서버 미러링 설정을 해놓은 git repo 경로를 설정해준다. 

 

 

아래와 같이 '저장소' 탭에서 저장소 내용이 확인되고 실제 git소스 변경시 1분내에 연동되는것이 확인된다면 git, redmine 연동이 완료된 것이다. 

 

위처럼 연동을 해 놓으면 소스변경된 내역에 대해 간단한 비교가 가능하고 누가 변경을 했는지 확인이 가능하다. 이는 팀프로젝트에서 이슈트래킹을 굳이 깃랩서버에 접근하지 않아도 한번에 확인이 가능하므로 꽤 유용하게 사용이 가능할 것 같다. 

반응형

댓글