본문 바로가기
Gerrit/Gerrit <-> Slack 연동

5. 게릿 리뷰 웹훅 (2/3)

by 실짱 2023. 10. 18.

comment-added.sh 파일 작성에 대해 조금 더 자세히 살펴보자.

 

이 쉘 스크립트가 해야 할 일은 크게 3가지다.

1. 슬랙에 포스트 해야하는 조건을 만들고

2. 메시지를 만들어서

3. 슬랙에 post 를 날려야 한다.

 

1. 포스트 조건

조건은 일관되게 젠킨스 빌드가 성공한 상황이다.

이 상황은 verified+1 커멘트가 달린것과 이 커멘트의 주인의 조합으로 완성 가능하다.

Verified+1 은 대충 알아낸것 같다.

모든 커멘트가 달릴때마다 comment-added hook 이 트리거 되는데, 이때 아래 커멘트만 적당히 조건을 걸어주면 될것같다.

comment : Patch Set 1: Verified+1

Build Successful 

http://jenkins.aribio.net/job/BioStream_DoQu_AriJenkins/8/ : SUCCESS

 

이제 저 커멘트를 단게 Jenkins 형님일때만으로 한정해야 할거 같다.

Jenkins 형님의 게릿 아이디는 AriJenkins 니, 최종적으로 아래와 같이 조건 완성

if echo "$author_username" | grep -q "AriJenkins"; then    # author 가 AriJenkins 일때로 한정
  if echo "$comment" | grep -q "Verified+1"; then          # comment 내용중에 "Verified+1" 이 포함되어 있는지 확인
  ...

 

2. 메시지 만들기

이건 내용이 기니 다음장에서 자세히 다루자.

 

 

3. 슬랙에 post 날리기

post 를 날리는것은 이미 앞에서 살펴봤다. ([Gerrit/Gerrit <-> Slack 연동] - 슬랙 채널에 포스팅 하기)

저짓을 sh 에서 해야 한다.

이건 의외로 쉽다. 앞에서 테스트했던 sample 구문을 sh 파일에 그대로 써주고 여기에 text 만 내가 원하는 text 로 바꿔주면 된다.

#!/bin/bash

change=$2
change_url=$4
change_owner=$6
change_owner_username=$8
project=${10}
branch=${12}
topic=${14}
author=${16}
author_username=${18}
commit=${20}
comment=${22}

if echo "$author_username" | grep -q "AriJenkins"; then
 if echo "$comment" | grep -q "Verified+1"; then
 
  # 변수 선언
  message="Hello World!"

  # 테스트를 위한 private 채널로 포스트 (디버깅, 구현시에는 이 채널을 활성화하고 평상시에는 위 채널 활성화)
  curl -X POST -H 'Content-type: application/json' --data '{"text":"'"$message"'"}' https://hooks.slack.com/services/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

 

슬랙 결과!!

 

아싸봉~~~

성공!!!!

 

이제 이 Hello, World 만 내가 원하는 포맷으로 바꾸면 된다. (위에서 스킵했던 2번)

 


< Prev     4. 게릿 리뷰 웹훅 (1/3)                |               Next >     6. 게릿 리뷰 웹훅 (3/3)

'Gerrit > Gerrit <-> Slack 연동' 카테고리의 다른 글

2. 생각의 흐름  (1) 2023.10.18
3. 슬랙 채널에 포스팅 하기  (4) 2023.10.18
4. 게릿 리뷰 웹훅 (1/3)  (0) 2023.10.18
6. 게릿 리뷰 웹훅 (3/3)  (0) 2023.10.18
7. Hook 할때 커밋 메시지 가져오기  (1) 2023.10.18