アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

【GitHub Actions】IssueやPRが作られたら自分をアサインさせる【GitHub API】

要件

  • PRがOpen、ReOpenしたら動作する
  • IssueがOpen、ReOpenしたら動作する
  • 開いた人自身をアサインする
  • 既に誰かがアサインされている場合はアサインしない
  • 一応デバッグ用にAPIのレスポンスを吐き出す

コード

name: Assign Author
on:
  issues:
    types: [opened, reopened]
  pull_request:
    types: [opened, reopened]
permissions:
  contents: none
  issues: write
  pull-requests: write

jobs:
  assignIssue:
    if: ${{ github.event.issue && !github.event.issue.assignee }}
    runs-on: ubuntu-latest
    steps:
      - name: Assign Issue
        id: assign_issue
        uses: octokit/request-action@v2.x
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          ASSIGNEES: '["${{ github.actor }}"]'
        with:
          route: POST /repos/${{ github.repository }}/issues/{issue_number}/assignees
          issue_number: ${{ github.event.issue.number }}
          assignees: ${{ env.ASSIGNEES }}
      - name: Output Result
        run: |
          echo '${{ toJson(steps.assign_issue.outputs) }}' >> $GITHUB_STEP_SUMMARY
  assignPR:
    if: ${{ github.event.pull_request && !github.event.pull_request.assignee }}
    runs-on: ubuntu-latest
    steps:
      - name: Assign PR
        id: assign_pr
        uses: octokit/request-action@v2.x
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          ASSIGNEES: '["${{ github.actor }}"]'
        with:
          route: POST /repos/${{ github.repository }}/issues/{issue_number}/assignees
          issue_number: ${{ github.event.pull_request.number }}
          assignees: ${{ env.ASSIGNEES }}
      - name: Output Result
        run: |
          echo '${{ toJson(steps.assign_pr.outputs) }}' >> $GITHUB_STEP_SUMMARY