Git & GitHub

[GitHub] GitHub Actions 활용하여 이슈 생성 시 브랜치 자동 생성

시니철 2024. 12. 5. 18:03

GitHub Actions 활용하여 이슈 생성 시 브랜치 자동 생성

‼️ 이슈 생성하면서 브랜치 자동 생성을 설정하기 위해서는 토큰을 먼저 발급 받아야 합니다.

 

1. 개인 프로필 Setting → Developer settings → Tokens (classic)


2. 토큰 이름과 만료 기간을 설정하고, repo, workflow 체크하고 하단의 Generate token 클릭

‼️ 토큰이 생성되면 토큰 값이 노출되는데 다시 확인이 불가하므로, 저장해야 합니다.


3. Repositorie → Setting → Secrets and variables → Actions → New repository secret


4. 토큰 이름을 입력하고, Secret에 생성한 토큰 값을 넣고 Add secret 클릭

‼️ 여기서 토큰 이름은 아래 6번 설명에서 Action 설정 파일 코드 내의 14번 줄의 secrets. 뒤의 토큰 이름과 일치해야 합니다.


5. Repositorie → Actions → set up a workflow yourself


6. Action 이름을 설정하고, Commit changes… 를 클릭하여 변경 사항을 커밋합니다.

 

Action 설정 파일 코드

name: Create Feature Branch on Issue Creation

on:
  issues:
    types: [opened]

jobs:
  create-branch:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.TOKEN }}
          ref: develop

      - name: Create feature branch
        env:
          ISSUE_NUMBER: ${{ github.event.issue.number }}
          ISSUE_TITLE: ${{ github.event.issue.title }}
        run: |
          # 브랜치 이름 생성 (특수문자 및 공백 처리)
          ISSUE_TITLE_CLEAN="${ISSUE_TITLE// /-}"               # 공백을 '-'로 대체
          ISSUE_TITLE_CLEAN="${ISSUE_TITLE_CLEAN//[^a-zA-Z0-9가-힣_-]/}" # 영문, 한글, 숫자, '_'만 남김

          BRANCH_NAME="#${ISSUE_NUMBER}_${ISSUE_TITLE_CLEAN}"

          # 'develop' 브랜치를 기준으로 새 브랜치 생성 및 푸시
          git checkout develop
          git pull origin develop  # 최신 상태로 업데이트
          git checkout -b "$BRANCH_NAME"
          git push origin "$BRANCH_NAME"