Sider Blog

コードレビュー自動化サービス「Sider」を運営するSider株式会社のコーポレートブログです。

リポジトリの追加フローが新しくなりました

こんにちは。プロダクトチームの渡邉です。この度、Siderにおけるリポジトリの追加フローが新しくなりましたので、ご紹介します。

従来のフロー

従来のフローでは、以下のような手順で、すべてのオーガニゼーションから追加するリポジトリを探し、選択する必要がありました。

  1. サインイン後、ダッシュボードにアクセス
  2. リポジトリ追加ボタンをクリック
  3. すべてのオーガニゼーションのすべてのリポジトリから追加するリポジトリを選択

f:id:sideci:20181113115407g:plain

新しいフロー

新しいフローでは「オーガニゼーションの追加」と「リポジトリの追加」を別のステップとして分けています。まだSiderに登録されていないオーガニゼーションのリポジトリを追加する場合には、以下の手順で、まずオーガニゼーションを登録します。

  1. サインイン後、ダッシュボードにアクセス
  2. オーガニゼーション追加ボタンをクリック
  3. 追加するリポジトリのオーガニゼーションを選択
  4. オーガニゼーションのリポジトリ一覧から追加するリポジトリを選択

f:id:sideci:20181113115702g:plain

既に追加されているオーガニゼーションのリポジトリを追加する場合には、オーガニゼーション設定画面から、以下の手順でリポジトリを追加します。

  1. サインイン後、ダッシュボードにアクセス
  2. 追加したいリポジトリがあるオーガニゼーションをクリック
  3. リポジトリ追加ボタンをクリック
  4. オーガニゼーションのリポジトリ一覧から追加するリポジトリを選択

f:id:sideci:20181113115848g:plain

新しいリポジトリ追加フローについて、フィードバックなどございましたら、お気軽にSiderの右下のチャットからお問い合わせください。

リポジトリページのデザインリニューアル

こんにちは。プロダクトチームの木庭(@ybiquitous)です。 このたび、リポジトリページのデザインをリニューアルしましたので、ご紹介します。

f:id:sideci:20181031171038g:plain

上のデモ動画にあるように、解析結果ページのヘッダーにあるナビゲーションリンクから、今回リニューアルされたリポジトリページへ移動することができます。 変更点については、次の通りです。

  • 左側にあったサイドメニューをなくし、ナビゲーションをヘッダーにまとめました。
  • 解析結果ページと同じページレイアウトを採用しました。

ページの機能自体に、大きな変更はありません。 Siderではより快適なユーザー体験を提供するために、今後とも継続的にデザインの改善を実施していきます。 デザインリニューアルについてフィードバックや疑問点などがございましたら、お気軽にSiderの右下のチャットボタンからお問い合わせください。


あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!

Sider Code Review Meetup #4 レポート

f:id:sideci:20181019121715j:plain

9月27日、Sider主催による『Code Review Meetup #4 ~Code Reviewで集まろう~』が代官山のOpen Network Spaceにて開催されました。コードレビューをテーマにした本Meetupも今回で4回目。この夜は予約段階で満員・キャンセル待ちも発生するなどの注目をいただき、最終的に30名以上の方々のご参加となりました。この日ご登壇いただいた4名のスピーカーの皆さまからは、コードレビューをテーマにそれぞれ独自の切り口でお話を聞くことができました。

RuboCopコミッターである株式会社永和システムマネジメントの伊藤浩一氏 ( @koic )は、「コードレビューしぐさ」(スライド: https://speakerdeck.com/koic/for-whom-the-quality-exists )と題し、コードレビューがなぜ重要か、また多様なメンバーでプロジェクトを進めるとき、それぞれの環境、関係などで、どんなコードレビューが望ましいかなどを話してくださいました。伊藤氏によると、どのようなメンバー構成でプロジェクトを進めるのであれ、コードの質の期待値に対し共通の認識をもつことが大切とのこと。また、Linterツールによるレビューと人間によるレビューとを比較し、人間の行うレビューにおいて機械にはできない領域のレビューを行うための知識を受け渡していくことの重要性に触れ、一方Linterツールを使用することによって、新しいメンバーに既存のルールを共有しながら、どの部分を機械に任せ、どの部分を人間の手でレビューするかを判断しやすくなる、という大変わかりやすいご説明をいただきました。

f:id:sideci:20181019121739j:plain
コードレビューしぐさのタイトル通り、哲学を聞かせてくださった伊藤氏

続いての登壇者は、株式会社ビットジャーニーのGoro Fuji ( @gfx )氏。gfx氏は、「コードレビューを自動化するために『Querly』(注釈:Siderが提供しているツール)を使用する」というテーマにもとづき、「歴史的経緯の説明 as code」(スライド: https://speakerdeck.com/gfx/li-shi-de-jing-wei-falseshuo-ming-as-code )を会場と共有してくださいました。Querly DSLの例や株式会社ビットジャーニーの提供するサービスKibelaの事例などに加え、LinterとQuerlyの違いとして、「Linterは一般的なルールをチェックするものであるのに対し、Querlyはプロジェクトごとのルールをチェックすることで『歴史的経緯』をコードとして形に残すものである」ということを非常にわかりやすく説明していただきました。 この解説に、参加者さまより「今まで知らなかったけど、Querlyを使ってみたい。他社の事例や一般的なルールを知りたい」というお声も頂戴したので、Siderの中の人の我々も、もっと上手にQuerlyの良さを皆さんに伝えなくては!と感じました……!

f:id:sideci:20181019121827j:plain
こうした生の声の要望はとてもありがたいです。

三番目のスピーカーであるTakeru Yasumoto ( @seteen )氏は、コードが長くなりレビューしづらいこともあるRSpecを短く書けるように、RSpecを拡張したGem、RSpecZの使用法について、「レビューしやすいテストを目指して RSpecZ」(スライド: https://www.slideshare.net/ssuser7aa1e3/code-review-meetup4-rspecz ) というタイトルでお話しいただきました。

f:id:sideci:20181019121859j:plain

上の写真のスライド画面にも現れているように、RSpecZを使用するとコードの長さが半分くらいになるそうです。視覚的にも「これはコードレビューしやすくなりそうだな」というのが非常にわかりやすい発表でした。

そして、この夜のトリを務めました弊社エンジニアのKazuma Watanabe ( @wata727 )は、 「快適なコードレビューを目指して」(スライド: https://speakerdeck.com/wata727/for-a-comfortable-code-review )と題し、コードレビューを行う様々な目的のなかから「問題を防ぐこと」と「知識の共有」に的を絞り、それぞれに対して、弊社にて新しくリリースしたPhinderを使った効果的なレビューの方法について説明しました。Phinderを使うことで、コードの臭いを感じるパターンに対し、過去に発生した問題や懸念事項を提示することができます。また、レビュー時に確認するべき項目を自動でリストアップできます。発表の中には、「人間によるレビューの知識を共有していくために経験をYAMLに書き出す」という、gfx氏のお話と共通する話題もありました。

f:id:sideci:20181019121917j:plain

その後、各プレゼンテーション終了後に開催された懇親会では、軽食を囲みながら参加者の皆さんが熱心に登壇者の方々に質問をされている姿があちこちで見受けられました。 コードレビューをテーマとしているMeetupはまだまだ少ないようですが、より快適な開発や、よりスムーズなコーディングに欠かせないコードレビューを、SiderもブログやMeetupを通じて広めていくお手伝いをしこうと考えています。これからもコードレビューに関わる皆さんの勉強のお役に立てれば嬉しいです。

現時点では次回のコードレビューMeetup開催予定は未定ですが、ConnpassやDoorkeeperでは随時Meetupの情報をお知らせしています。今後のMeetup参加に興味のある方は、ぜひ弊社ConnpassまたはDoorkeeperよりSiderコミュニティをフォローしてください!

ーーー

あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!

GitHub認証のスコープの更新

先日、@rmariuzzoの報告によって、SiderがGitHub認証でアカウントの更新に関する権限を要求していることが判明しました。この権限はSiderの動作には不要なもので、平たく言えばバグです。

Siderはリポジトリへの更新権限はWebhookの設定、Pull Requestへの解析結果の送信、コメントの送信などに必要です。一方で、Siderはアカウントの更新をしませんので、更新の権限は必要ありません。

Siderでは、アカウントの更新に必要な権限を要求しないようになりましたので、アナウンスします。

ユーザー体験

ユーザーは次回Siderにサインインするときに、GitHubから権限の確認をするように求められます。これは、Siderがユーザーのメールアドレスという新しいリソースへのアクセスを要求するようになったためです。技術的には、これまで要求していたアカウント更新の権限が、既にメールアドレスへのアクセスを許していたため、この警告には意味がありません。ユーザーの情報の読み取りの権限には、なぜかメールアドレスへのアクセスが含まれていないため、新しく要求する必要がありました。

メールアドレスは、ユーザーの識別やSiderから送信するメールの送り先などに利用されているため、これを要求しないように変更する予定はありません。

権限の更新

この修正によって、新しくサインアップするユーザーにはアカウント更新の権限を要求しなくなりましたが、既存のユーザーに対しては以前に要求されたアカウント更新権限が付与されたままになってしまいます。

既に認可されてしまっているアカウント更新権限を取り除くためには、Siderにログインして操作を行ってください。

アカウント設定ページに「認証のリセット」という項目を追加しています。ここから再度の認可をリクエストし、不要な権限を取り除くことができます。「リセット」ボタンをクリックすると、再度サインインするように要求されますので、サインインしGitHubの認証を行ってください。Siderが要求する権限が更新され、必要最小限の権限のみが認可されるようになります。

GitHubでSiderへの認可をrevokeし、再度Siderにサインインすることでも、権限の更新が可能です。

まとめ

Siderから要求されるGitHub認証の権限を最小化しました。既に認可してしまった権限を更新するためには、アカウント設定ページからリセットの操作をする必要があります。

Siderの挙動でなにかおかしなものを見つけたり質問がある場合は、お気軽にお問い合わせください

10月分の解析ツール更新を行いました

Siderは毎月解析ツールのバージョンを見直しております。このたび、10月分のバージョンアップデートを行いましたのでお知らせいたします。

現在のバージョンについてはドキュメントもあわせてご確認ください。

なお、RuboCop, ESLint, stylelintに関しては、それぞれ任意のバージョンをSider上で動作させることが可能なため、上記のアップデートはデフォルトバージョンの更新になります。詳しくはドキュメントの各解析ツールの設定をご覧ください。

何かご不明点がございましたら、お気軽にSiderの右下のチャットからお問い合わせください。


あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!