[GitHub Actions] Pull requestのタイトルチェック

2023-12-27 hit count image

GitHub Actionsを使ってPull requestのタイトルがConventional Commitsを守ってるのかチェックする方法について説明します。

概要

今回のブログポストではGitHub Actionsを使ってPull requestのタイトルがConventional Commitsを守っているのかチェックする方法について説明します。

ブログシリーズ

このブログはシリーズで制作されました。次のリンクを通じて他のブログポストも確認してみてください。

Conventional Commits とは

Conventional Commitsはソフト開発で使ってるコミットメッセージの標準化のためのルールです。これはコード変更をより読みやすくするし、自動化されたバージョン管理システムと統合しやすくする目的があります。

Conventional Commitsは次のような構造を持っています。

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]
  • タイプ(Type): コミットの意図を表す単語で、主に feat(機能追加)、fix(バグ修正)、chore(ビルドやツール関連の変更)などが使われます。
  • スコープ(Scope): 変更がどの部分に影響を与えるかを指定するオプションです。Optional なので省略することができます。
  • コミットメッセージ(Description): 変更の簡潔な説明を含む部分で、命令文の形で書かれる必要があります。

ここでタイプは次のような種類を使うことができます。

  • feat: 新しい機能を追加するときに使われます。
  • fix: バグ修正をするときに使われます。
  • chore: ビルドプロセスやツール関連の変更をするときに使われます。
  • docs: ドキュメントを変更するときに使われます。
  • style: コードスタイルを変更するときに使われます。
  • refactor: コードのリファクタリングをするときに使われます。機能の変更はなく、コードの構造を改善するときに使われます。
  • test: テスト関連の変更や追加をするときに使われます。
  • build: ビルドシステムや外部依存関係の変更をするときに使われます。
  • ci: CI/CD パイプラインに関連する変更をするときに使われます。

GitHubではPull requestを作成するとき、ブランチの最初のコミットメッセージをデフォルトで使うことになります。そのため、コミットするときにConventional Commitsを守るようにすると、Pull requestを作成するとき、より意味のあるタイトルを使うことができます。

Conventional PR Title Action

このブログポストではGitHub ActionsPull requestのタイトルがConventional Commitsを守っているのかチェックするため、Conventional PR Title Actionを使います。

GitHub Actions の生成

GitHub ActionsConventional PR Title Actionを使うため.github/workflows/pr-title-checker.ymlファイルを生成して、次のように修正します。

name: Check PR title

on:
  pull_request:
    types:
      - opened
      - reopened
      - edited
      - synchronize

jobs:
  lint:
    runs-on: ubuntu-latest
    permissions:
      statuses: write
    steps:
      - uses: aslafy-z/conventional-pr-title-action@v3
        env:
          GITHUB_TOKEN: $

このGitHub ActionsPull requestが生成されたり、修正された時、Pull requestのタイトルがConventional Commitsを守っているのかチェックします。

完了

これでGitHub Actionsを使ってPull requestのタイトルがConventional Commitsを守っているのかチェックする方法について説明しました。

私がこのようにPull requestのタイトルがConventional Commitsを守っているのかチェックする理由は、このPull requestのタイトルを使ってRelease notesの自動化をするためです。

GitHub Actionsを使ってRelease notesの自動化する方法については次のリンクを参考してください。

私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!

アプリ広報

今見てるブログを作成たDekuが開発したアプリを使ってみてください。
Dekuが開発したアプリはFlutterで開発されています。

興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。

Posts