Git
GitHub
semantic-pull-request

Githubの便利な機能であるSemantic Pull Requestを解説します

この記事の内容を一言で

commitのメッセージやPull Requestの内容がひと目で内容がわかるように、メッセージ冒頭に(GitHubが用意した)慣例的なキーワードをつけてください。

はじめに

Githubをより便利に使えるツールを調べていたら、semantic-pull-requestsという機能を見つけた。
見てみるとなかなか便利だったため、どのようなものかを解説。

semantic-pull-requestって何?

まず、これがどういう機能かについて。
簡単に言えば、commitのメッセージとPull Requestにおけるタイトルのつけ方をチェックしてくれるもの。

semantic-pull-requestsのページのスクリーンショットを使いながら、具体的にどんな感じか解説。

semantic-pull-requestの機能

付け直したほうが良いメッセージ、タイトル ▶ 黄色

赤丸で囲ったPull Requestのタイトルに注目とSemantic Pull Requestに注目。


「別に普通でしょ?」って思った人もいると思う。
だが、Semantic Pull Requestのチェックによると、
Pending - add sementic commit or PR title
つまり、直してほしいとのこと。

「じゃあ、どういう風にメッセージやタイトルをつければ良いのさ」
その答えが次。

効果的なメッセージ、タイトル ▶ 緑色


「いや、feat:付けただけやん」

そう。
それがSemantic Pull Request

ひと目で内容がわかるように、冒頭にキーワードをつけてください。

ってだけ。

タイトルだけじゃなくて、どういう作業をしたかがわかる単語があれば、検索のときにも便利。
Serch欄にfeat:だけ打てば、開発に関係するPullRequestだけが表示されるからね。

使い方

上でも説明したように、commitのメッセージやPull Requestのタイトルに、作業内容を意味するキーワード:をつければいいだけ。

どんなキーワードがあるの?

以下はGithubにあったキーワードの一覧に日本語解説を加えたもの。

index.json
 { 
   "types": { 
     "feat": { 
       "description": "A new feature", 
       "title": "Features" 
       "日本語":"開発"
     }, 
     "fix": { 
       "description": "A bug fix", 
       "title": "Bug Fixes" 
       "日本語":"修正"
     }, 
     "docs": { 
       "description": "Documentation only changes", 
       "title": "Documentation" 
       "日本語":"文書の変更"
     }, 
     "style": { 
       "description": "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)", 
       "title": "Styles" 
       "日本語": "Styleの修正"
     }, 
     "refactor": { 
       "description": "A code change that neither fixes a bug nor adds a feature", 
       "title": "Code Refactoring" 
       "日本語": "エラーが起きない範囲でより良いコードに変更"
     }, 
     "perf": { 
       "description": "A code change that improves performance", 
       "title": "Performance Improvements" 
       "日本語": "パフォーマンスの改善"
     }, 
     "test": { 
       "description": "Adding missing tests or correcting existing tests", 
       "title": "Tests" 
       "日本語": "テストの改善"
     }, 
     "build": { 
       "description": "Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)", 
       "title": "Builds" 
       "日本語": "npmといった外部に依存しているシステムの変更"
     }, 
     "ci": { 
       "description": "Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)", 
       "title": "Continuous Integrations" 
       "日本語": "npmといった外部に依存しているシステムの変更"
     }, 
     "chore": { 
       "description": "Other changes that don't modify src or test files", 
       "title": "Chores" 
       "日本語": "srcやテストに関連するファイルなど製品に関与しないモノの変更"
     }, 
     "revert": { 
       "description": "Reverts a previous commit", 
       "title": "Reverts" 
       "日本語": "前の状態に戻す"
     }
   } 
 } 

インストール

インストールはこちらから ▶ Semantic Pull Requests

おわりに

Githubだけでもメチャクチャ便利だが、自分がいま使用している以上に機能がある。
今後も調べてみよう。