Config Server Git Push Notification System (KR)

개요

Config Server와 Git repository가 연동되어, Git에 YAML 파일 변경 사항이 푸시되면 이를 자동으로 감지하여 Config Server가 백엔드 서버에 푸시 알림을 보내는 기능을 포함하고 있다. 이를 통해 Config Server의 설정 변경이 자동으로 백엔드 서버에 전달되며, 설정 업데이트를 쉽게 관리할 수 있다.

기능 설명

  1. Config Server와 Git Repository 연동
  2. Git의 푸시 이벤트 감지 및 백엔드 서버 알림
  3. 백엔드 서버 알림 API

Git Hook Script (post-receive)

Git repository의 post-receive 스크립트를 사용하여 푸시 이벤트를 감지하고, 백엔드 서버에 알림을 전송한다.

#!/bin/sh

# Config Server 및 Backend Server 주소 설정
BACKEND_SERVER="localhost:8888"  # 백엔드 서버 주소

# 로그 파일 설정
GIT_DIR="$(cd ..; pwd)"
LOG_DIR="$GIT_DIR/logs"
LOGFILE="$LOG_DIR/post-receive.log"

# 로그 디렉토리 생성
mkdir -p "$LOG_DIR"
touch "$LOGFILE"

echo "$(date): Post-receive hook started" >> "$LOGFILE"

while read oldrev newrev ref
do
    # main 브랜치에서만 동작하도록 설정
    if [[ $ref == refs/heads/main ]]; then
        echo "$(date): Detected push to main branch" >> "$LOGFILE"

        # 백엔드에 푸시 성공 알림 전송
        curl -X POST "<http://$>{BACKEND_SERVER}/api/git/notify" \\
            -H "Content-Type: application/json" \\
            -d '{"message": "Push to main branch"}' >> "$LOGFILE" 2>&1
    fi
done

실행 방법

  1. Config Server와 백엔드 서버를 실행한다.
  2. Git의 main 브랜치에 변경 사항을 커밋하고 푸시한다.
  3. Git repository의 post-receive hook이 실행되며, 백엔드 서버에 알림이 전송된다.
  4. 백엔드 서버의 콘솔에 푸시 성공 메시지가 출력되며, 알림이 성공적으로 전송되었음을 확인할 수 있다.