개요
보통 개발을 완료한 후, 개발을 담당한 개발자가 GitHub에서 PR(Pull Request)을 생성하고, 자기 자신을 Assignees
에 추가합니다. 하지만, 매번 PR을 생성할 때마다 Assignees
에 자기 자신을 추가하는 것은 번거롭습니다.
이번 블로그 포스트에서는 GitHub Actions를 사용하여 PR을 생성할 때마다 자동으로 Assignees
에 PR을 생성하는 개발자를 추가하는 방법에 대해서 알아보겠습니다.
GitHub Actions 생성
PR에 자동으로 Assignees
를 추가하는 GitHub Actions를 만들기 위해 .github/workflows/auto-assign-assignees.yml
파일을 생성하고 다음과 같이 수정합니다.
name: Assign assignees
on:
pull_request:
types:
- opened
jobs:
assign:
name: Set assignees
runs-on: ubuntu-latest
timeout-minutes: 1
if: github.event.pull_request.user.login != 'dependabot[bot]'
steps:
- name: Set assignees
uses: actions/github-script@v7
with:
github-token: $
script: |
const { owner, repo } = context.repo
const prNumber = context.payload.pull_request.number
const response = await github.rest.issues.get({
owner,
repo,
issue_number: prNumber,
})
const { assignees } = response.data
if (assignees.length === 0) {
await github.rest.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: prNumber,
assignees: [context.actor]
})
}
이 GitHub Actions를 좀 더 자세히 살펴보도록 하겠습니다.
...
on:
pull_request:
types:
- opened
...
이 GitHub Actions은 PR이 생성될 때 실행됩니다.
...
jobs:
assign:
...
if: github.event.pull_request.user.login != 'dependabot[bot]'
...
저는 GitHub에서 Dependabot을 사용하고 있습니다. Dependabot이 생성한 PR의 Assignees에 Dependabot을 추가할 수 없으므로, Dependabot이 생성한 PR에는 Assignees를 추가하지 않도록 설정했습니다.
...
jobs:
assign:
...
steps:
- name: Set assignees
uses: actions/github-script@v7
with:
github-token: $
script: |
const { owner, repo } = context.repo
const prNumber = context.payload.pull_request.number
const response = await github.rest.issues.get({
owner,
repo,
issue_number: prNumber,
})
const { assignees } = response.data
if (assignees.length === 0) {
await github.rest.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: prNumber,
assignees: [context.actor]
})
}
GitHub
이 제공하는 GitHub Actions을 사용하여 JavaScript 코드로 PR을 생성하는 개발자(context.actor
)를 Assignees
에 추가하는 코드를 작성했습니다.
완료
이것으로 PR을 생성할 때마다 자동으로 Assignees
에 PR을 생성하는 개발자를 추가하는 GitHub Actions를 만드는 방법에 대해서 알아보았습니다. 여러분도 이 GitHub Actions를 사용하여 수동으로 설정하던 Assignees를 자동으로 설정해 보시기 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.