GItlab merge request 웹훅 전송하기

드한승훈·2020년 6월 25일
0

코드 리뷰 겸 검증 되지 않은 코드가 배포 되지 않기 위해 git release branch 에는 모두 merge request 를 통해서 merge 하고 있다.

merge request 후 메신저로 공유 하는데 이 과정을 자동화 하기 위해서 gitlab 에서 merge request 하면 자동으로 메신저(JANDI 기준)에 웹훅을 보낸다.

.gitlab-ci.yml

test:
  stage: test 
  script: sh ./webhook.sh $CI_PROJECT_NAME $CI_PROJECT_URL $GITLAB_USER_EMAIL
  only:
    - merge_requests
  • git 프로젝트 내 .gitlab-ci.yml 파일 생성
  • {jobName} : test , build , deploy
  • stage : test , build , deploy
  • script : 실행할 쉘 명령어
  • only : 실행한 조건
    • merge_requests : 머지 리퀘스트 생성 및 변경 시
    • master : 브랜치 조건 가능 , 해당 브랜치 변경 시

webhook.sh

CI_PROJECT_NAME=$1
CI_PROJECT_URL=$2
GITLAB_USER_EMAIL=$3

post_data()
{
cat <<EOF
{
  "body": "앙~ 머지띠~.",
  "connectColor": "#f3bef0",
  "connectInfo": [
    {
      "title": "$CI_PROJECT_NAME",
      "description": "누가함 : $GITLAB_USER_EMAIL "
    },
    {
      "title": "MERGE REQUEST URL",
      "description": "$CI_PROJECT_URL/merge_requests"
    },
    {
      "title": "GIT LAB PROJECT URL",
      "description": "$CI_PROJECT_URL"
    }
  ]
}
EOF
}

curl \
-X POST {잔디 웹훅 url} \
-H "Accept: application/vnd.tosslab.jandi-v2+json" \
-H "Content-Type: application/json" \
--data "$(post_data)"

Gitlab Runner 등록

  • gitlab 이 설치되어 있는 서버 os에 맞는 Runner를 설치 및 등록 해준다.

https://docs.gitlab.com/runner/register/

웹훅으로 전송된 메세지

profile
프론트 엔드 개발자

0개의 댓글