Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プルリクサイズが大きいと警告してくれる君を作りました!

 プルリクサイズが大きいと警告してくれる君を作りました!

yamamoto-hiroya

October 06, 2023
Tweet

More Decks by yamamoto-hiroya

Other Decks in Programming

Transcript

  1. 自己紹介
 • やまもとひろや
 • NE株式会社 開発部マネージャー
 ◦ NE株式会社は本カンファレンスのシルバースポンサーです。
 ◦ 温泉の素を配っていた会社です!


    ◦ エンジニア募集中ですのでご興味あれば声かけてください!
 • twitter: @HiroyaYamamoto1
 • Qiita: @yamamoto_hiroya
 
 • 登壇実績
 • PHP Conference Japan 2021
 ◦ カンファレンスはフィードバックが大事
 • PHPerKaigi 2023
 ◦ 安全にプロセスを停止するためにシグナル制御を学ぼう!
 ◦ ベストフィードバッカー殿堂入り

  2. 動機
 • プルリクのサイズは小さい方が良い。 
 • 小さく細かくデプロイしていき生産性 (デプロイ数)を上げたい。
 • ただし大きい/小さいの定義は人それぞれ。
 •

    大きいかな?小さいかな?を自身で気付くタイミングがない。 
 
 
 • ということで組織全体として大きい /小さいを定義し
 • プルリク作成時に気付ける仕組みを作ってみました! 

  3. 導入の仕方
 1. 自身のリポジトリ設定にてGithub Actionsを有効化して ください。
 a. その際、書き込み権限も許可してください。
 2. 本スクリプトを.github/workflows/配下に設置してくだ さい。


    3. リポジトリの環境変数に以下を定義してください。 
 a. PULL_REQUEST_LIMIT_FILES: 警告を出す差分ファイル数の閾 値
 b. PULL_REQUEST_LIMIT_LINES: 警告を出す差分行数の閾値
 c. EXCLUDE_PATH: 除外するパス
 4. プルリクエストを作成すると発火し差分を計算してコメント をつけてくれます。

  4. 仕組みの解説
 • ポイント
 • 環境変数によって警告を出す閾値が調整できます。 
 ◦ ちなみにうちは 10ファイル・ 500行の設定です。


    ◦ とりあえず今試しで入れてるところで、閾値は調整の余地あり。
 • 除外パスを設定することで、例えばユニットテストの差分は除外する、などが実現できます。 
 • テストをたくさん書いたがために警告される、というのは本来やりたいことではないですよね。 
 • GitHubの差分の出し方についてはこちらの記事で解説しています。 
 • Qiita「GitHubの差分の出し方、完全に理解した。」 
 ◦ https://qiita.com/yamamoto_hiroya/items/3353005ebd9491321715

  5. 導入後の効果
 この仕組みを入れる前後でのプルリク数を比べてみようと思います。 
 
 
 3166/2312 = 1.36937716263
 約1.37倍
 導入前後で比べて1.37倍もプルリクが増えました!


    もちろんこの仕組みだけの要因ではないとは思いますが、少なくとも「プルリクを小さくすることを意識 する」という点で貢献できたように思います。 
 導入前の一定期間のPR数 導入後の一定期間のPR数 2312 3166