Blogコードレビュー自動化サービス「Sider」を運営するSider株式会社のコーポレートブログです。本日より、非常に大きな新しい機能のベータ提供を開始しました。この機能はまだベータ版であり、正式な名称が決まっていないことから、社内でのプロジェクト名「アビシニアン」にてご紹介させて頂きます。アビシニアンについてアビシニアンは、既存のSideCIの「問題が発見された場合にGitHubにコメントをする」というコア機能(※)を置き換える試験的な機能です。※本記事内では該当機能を「コメントモード」と記載します。コメントモードでご利用の場合、GitHub上でSideCIからのコメントをレビュアー、もしくはレビュイーの方が確認し、コードを修正するか、コメントをそのプルリクエストにおいては目をつぶるといった運用ケースが多いかと思います。これをより厳密に、かつ現実に即した形で使いやすくした機能がアビシニアンです。アビシニアンでは次のような形でSideCIを使って頂く事を想定しています。RequestをOpenするSideCIから指摘が届いた場合、解析結果をレビュイーが確認する指摘結果を元にコードを修正、もしくは修正しないことを明示するこの流れになることで、全てのコメントへの対応・非対応が厳密に、かつ簡単に管理されます。解析結果の通知アビシニアンでは、1件以上の指摘が該当のプルリクエスト上で発見された場合、GitHubやSlackに次のように解析結果が通知されます。GitHub上ではFailedの扱いになり、必ず何らかの対応をする必要があります。通知イメージ(GitHub)通知イメージ(Slack)必要なアクション解析結果を見た後、次の3つのアクションのいずれかを行う事ができます。指摘に則しコードを修正する指摘に対してGitHubにコメントする指摘をクローズする全ての指摘が修正されるか、もしくは、クローズされた場合、GitHubにSuccessのステータスが通知され、マージ可能な状態になります。指摘には「OPEN」「CLOSED」「FIXED」の3つの状態があり、始めは全て「OPEN」として表示されます。コードの修正を行った場合には自動的に「FIXED」にカテゴライズされます。全ての問題が修正された場合には自動的にGitHubにsuccessの通知が行われ、マージが可能になります。指摘画面のイメージCLOSEDのユースケース解析ツールの一部には絶対のルールではなく、サジェスチョンとして、解析結果を出力します。それらはあくまでサジェスチョンであり、対応するかどうかはそのシーンごとに異なります。対応が不要な場合には「クローズ」することが出来ます。問題になりやすいコードなどを発見し、注意を促す事ができます。注意を促したいパターンをyamlファイルに記載し、それを見つけた場合に、予め記載された内容をサジェスチョンします。メソッドの利用について注意を促しています。使用する場合、指摘を「クローズ」することが出来ます。「コメント」、もしくは「コメントしてクローズ」を行った場合、指摘の内容と、入力した内容がGitHubにコメントされます。多くの場合、クローズする意図を「コメントしてクローズ」する事が望ましいです。GitHubへの通知イメージ「クローズ」についてはGitHubにはコメントされませんが、何がクローズされた情報なのかはSideCI上でいつでも確認することが可能です。「コメント」ボタンより、コメントだけしてクローズしない動作をすることが出来ます。これは、レビュアーの方の意見をもとめる場合など、議論を必要とすると思われる内容についてなどに主に利用します。「直ぐに対応します」など、対応することを明示する事に使う事もあります。これらの機能によって、レビュアーはSideCIによってどんな指摘がされたのか、そしてそれがなぜ未修正なのかをGitHub上から確認することが出来、レビューはGitHub上で完結します。アビシニアンによってレビュアーはより本質的なレビューに集中出来るようになります。アビシニアンモード、コメントモードの変更方法についてアビシニアンモードとコメントモードはいつでも切り替える事が出来ます。設定はプロジェクト設定内の「アビシニアンモード(β)」タブより行って下さい。追記:アビシニアンモードを有効にした場合は、新しくビルドされたプルリクエストからのリンクがアビシニアンモードの解析結果画面になります。新しいプルリクエストを作成する既存のプルリクエストにコミットを追加してpushするなどをお願いします。本機能は現在ベータ版として提供しております。問題が発生した場合には、上述の方法によってコメントモードにお戻しいただけますようお願い致します。ベータ版としての提供のため、一部の機能がアビシニアンモードでは動作しません。動作しない機能は下記のとおりです。Correct(コードの自動修正機能)の利用Gometalinterでの依存パッケージの解決また、下記に記載の一部の解析ツールはアビシニアンモードでは未対応です。今後対応を進めて参ります。LintBundlerOutdatedComposerOutdatedMethodDefinitionValidatorまた、PHP言語については、アビシニアンモードでは極めて実験的なサポートに留まっております。PHP言語のサポートは継続的に改善を続けております。問題が発生しましたらお問い合わせ頂ければ幸いです。本機能はユーザ様方のご利用ワークフローを変えることになる大きな変更のため、ご利用頂きました方々に個別にヒアリングへのご協力の依頼を行わせて頂く場合がございます。ご協力頂けましたら幸いです。追加しましたこんにちは。今週のアップデート情報です。»Siderコードレビュー自動化サービスSiderを提供しています。開発者のインタビュー記事や、活用事例、新しい機能の追加のお知らせ等を更新していきます。RSSはてなブログで読者になるこちらも人気スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。