はじめに

@shimewtrと申します。
Web エンジニアとして主に Ruby on Rails を用いたプロダクトの開発・運営に携わっています。

作った GitHub Action

shimewtr/submit_pull_request

README にも記載していますが、自分のリポジトリで.github/workflows/submit_pul_request.ymlなどのファイルに以下を記載すれば使用できます。
下記の設定例では新しいブランチが作成されたときに発火します。

name: Submit Pull Request

on:
  create:

jobs:
  SubmitPullRequest:
    runs-on: ubuntu-latest
    steps:
      - name: Submit Pul Request
        uses: shimewtr/submit_pull_request@master
        env:
          GITHUB_ACCESS_TOKEN: $
          LABEL: WIP

また、.github/pull_request_template.mdに以下のようなタグ{submit_pull_request_issue_info}を埋め込むと作成した PR に関連する Issue の情報を記載してくれます。

## Issue

{submit_pull_request_issue_info}

実現したかったことと仕様

実現したかったこと

作成したのは自動で PR を作成する GitHub Actions ですが、以下を実現したかったために作成しました。

  • ブランチの命名ルールを定めたい
  • PR を作成するのが手間なので自動で作成されるようにしたい
  • PR に関連する Issue のタイトルを表示したい
  • PR に関連する Issue へのリンクを表示したい
  • PR に関連する Issue と同じラベルを付与したい
  • PR に作業途中を意味するラベル(WIPなど)を付与したい

仕様

上記を実現するために以下の仕様にしています。
制約を設けることで利点も増えると考えています。

  • ブランチ名は Issue の ID から始まる必要がある(ex. 753-fix-spec)
    • 該当する作業ブランチが明確化される
    • ブランチ名がユニークになる
  • PR が自動で作成され、PR に関連する Issue の情報やラベルが付与される
    • PR タイトルに関連する Issue タイトルが表示されるため PR を一覧で表示したときに視認しやすい
    • PR 内に Issue へのリンクが付与されるため関連する Issue を確認しやすい
    • Issue と同一のラベルを付与するため視認性が向上する
    • PR に指定したラベル(WIPなど)が自動で付与される
    • 上記が自動で行われるためルーチンワークが減少する

まとめ

  • 自動で PR を作成する GitHub Actions を作成した
  • 制約を設けることで手作業を減らし効率化ができる
  • このような仕組みがあることで定めたルールを形骸化せず運用できる

ご意見などがありましたら@shimewtrまでご連絡ください。
最後までご覧いただきありがとうございました。