Github Actions - PR 생성 자동화하기

프로필 사진mingke

Github Actions Auto PR

목차

PR 생성 자동화

오늘은 Github에서 Github Actions 를 이용하여 Pull Request(PR)을 자동으로 생성하는 방법에 대해 포스팅 해보려고합니다. Github Actions를 이용하면 아주 쉽게 그것을 가능하게 만들수 있습니다. Github Actions에 많은 기능들이 있으니까요!

귀찮은 PR 생성

이 글을 작성하게 된 계기가 있습니다.

우선 이 블로그는 MDX 로 작성하는 블로그이고 Vercel 에서 호스팅되고 있습니다. 모든 코드는 이 블로그를 개발한 아내의 계정에서 관리되고 있습니다.

Vercel 무료 버젼에서는 Organization에 연결이 안되더군요.

제가 작성한 글을 포스팅하기 위해서는 다음과 같은 프로세스를 따릅니다.

  • 글 작성
  • Branch 생성 후 커밋
  • Github Push
  • PR 생성
  • Merged by Wife

글 쓰고 나서 매번 PR만드는게 너무 귀찮아서 자동화 해버렸습니다.

YML 만들기

Market Place에 이미 이것을 쉽게 만들수 있도록하게 Action이 존재합니다. 그냥 그것을 사용하면 됩니다.

다음과 같이 작성했습니다.

name: Automatically create PR
 
on:
  push:
    branches:
      - mingke/*
 
jobs:
  create-pr:
    runs-on: ubuntu-latest
 
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
 
      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v6
        with:
          token: ${{ secrets.GH_TOKEN }}
          commit-message: Create PR with changes
          base: main
          branch: ${{ github.ref }}
          assignees: kec0130
          title: BLOG POST UPDATE
          body: 블로그 업데이트 되었습니다. 확인해주세용.

위에서 몇 가지만 설명하도록 하겠습니다.

  • ${{ secrets.GH_TOKEN }}: Repo에서 PR을 생성하기 위해서 Access Token이 필요합니다.
  • base: main : PR을 어디로 날릴 것인가?
  • branch: ${{ github.ref }}: push한 브랜치 이름입니다. 브랜치명을 mingke/ 로 사용하고 있습니다.

assignees 를 지정하여 아내에게 알림이 가도록 합니다.

아래 링크에서 자세한 사용법을 찾아 볼 수 있습니다.

Loading...

Github Token 받기

Github을 사용하는 분들은 다 아시겠지만 다음과 같이 이동해서 Token을 생성합니다.

Github 프로필 선택 → Settings → Developer Setting → Personal Access Tokens → Fine-grained personal access tokens

스크롤을 내리다보면 Repository access가 있습니다. 초기값은 Public Repositories 로 되어 있는데 All repositoriesOnly select repositories 를 선택하여 주세요.

Github token permission

스크롤 내리다보면 나오는 Repository permissions를 선택하고

Github token permissions

Pull requestsRead and write 로 변경합니다.

Github token permission pull requests

그리고 Generate token 을 합니다. 생성된 토큰을 secrets에 추가해줍니다.

Github secrets

GH_TOKEN 보이시죠? (참고: secrets에 GITHUB_ 으로 시작하는 이름은 사용할 수 없음)

마무리

귀찮음으로 인하여 PR 자동화를 만들어보았습니다. PR뿐 아니라 Github에서 이루어지는 다양한 동작들을 자동화할 수 있습니다.(PR, Issue 생성 등)

Loading...