1. Github Actions란?

: GitHub 내 어떤 이벤트(push, pull, merge ...)가 발생하면 해당 이벤트에 대해 정해진 동작을 자동으로 실행하게 하는 도구

GitHub Actions를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완전히 사용자 정의된 워크플로에서 작업을 결합할 수 있습니다.

자세한 내용은 Github Actions(Legacy) 에 정리하였습니다.

2. Label 자동화

# .github/workflows/auto-label.yml
name: Auto Label
on:
  pull_request:
    types: [opened, reopened, edited]
  issues:
    types: [opened, reopened, edited]

jobs:
  labeler:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - name: Check Labels
        id: labeler
        uses: jimschubert/labeler-action@v1
        with:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

jimschubert/labeler-action@v1는 텍스트 기반의 룰을 사용하여 GitHub Issues와 PR에 자동으로 레이블을 추가합니다. 예를 들어, PR 또는 Issue의 제목이나 설명에 특정 키워드가 포함되어 있으면, 해당 키워드와 일치하는 레이블이 자동으로 부착됩니다.

  1. Trigger 조건: 이 Action은 PR 또는 Issue가 열리거나 닫혔다가 다시 열렸을 때, 또는 수정되었을 때 실행됩니다.
  2. Token 전달: GitHub Action에는 **GITHUB_TOKEN**이 전달되어야 합니다. 이 토큰은 GitHub이 자동으로 생성하여 Action에 제공합니다.
  3. 필요한 추가 파일: .github/labeler.yml 파일이 필요합니다. 이 파일에서는 레이블링을 위한 규칙을 정의합니다.

.github/labeler.yml 설정 예시

# .github/labeler.yml
enable:
  issues: true
  prs: true

comments:
  prs: |
    Labeler가 제목과 설명에 있는 특별한 텍스트와 일치하는 레이블을 적용했습니다.
    Label을 검토하고 필요한 변경 사항을 적용해 주세요.

labels:
  'Component':
    include:
      - '\bComponent\b'
  'Fix':
    include:
      - '\bFix\b'
# 추가 레이블 설정

이 파일에서는 레이블을 적용할 조건들을 정의합니다. 예를 들어, 제목이나 설명에 'Component'라는 단어가 포함되어 있으면, 자동으로 'Component' 레이블이 부착됩니다.

2. MileStone 자동 할당

MileStone은 프로젝트 진행 시 일정 관리 및 목표 설정을 효율적으로 돕는데 큰 역할을 합니다. 이 MileStone을 자동 할당하는 방법에 대해 알아보겠습니다.

# .github/workflows/auto-milestone.yml
name: 'Auto Milestone Assign'

on:
  pull_request:
    types: [opened, reopened, edited]
  issues:
    types: [opened, reopened, edited]

jobs:
  assign-milestone:
    runs-on: ubuntu-latest

    steps:
      - uses: zoispag/action-assign-milestone@v1
        with:
          repo-token: '${{ secrets.GITHUB_TOKEN }}'
          milestone: '7월 2주차 Sprint'

GitHub Action : Milestone 자동부여