BASEプロダクトチームブログ

ネットショップ作成サービス「BASE ( https://thebase.in )」、ショッピングアプリ「BASE ( https://thebase.in/sp )」のプロダクトチームによるブログです。

君は GitHub の Suggested change を知っているか?

f:id:yaakaito:20181202130543p:plain

これは「BASE Advent Calendar 2018」の2日目の記事です。

devblog.thebase.in

Native Application Group の右京です。

ネットショップ作成サービス「BASE」では日々機能追加や改善の為、無数の Pull Request が作成され、レビューされています。今日はそんな中で知っているととっても便利な機能を紹介します。

レビューをしていたら typo をみつけてしまった...

f:id:yaakaito:20181202023611p:plain

ありませんか?前後に真面目なレビューがあるとなんとなく指摘するのを躊躇してしまいますね...。シレッと修正するにも編集するなりブランチを切るなりして...はコンフリクトの可能性などもあり、コストが高く面倒ですよね。

そんなときはこれ、「Suggested change」です。

Incorporating feedback in your pull request - User Documentation

これは最近 GitHub に追加された機能(public beta)なのですが、僕はこれを知ってからというものおすすめの機能の一つになりました。では、実際にこれを使って見つけてしまった typo をそっと修正してみます。

修正を送る側はとっても簡単

レビューでコメントをつけるときと同じ要領で行を選択して、ここクリックすると...

f:id:yaakaito:20181202024119p:plain

変更点に対してこのようなコメントが挿入されます

```suggestion
    function niec() {
```

この状態ではまだ typo したままなので、正しい内容に修正してプレビューしてみると...

f:id:yaakaito:20181202024134p:plain

このように「Suggested Change」が作られます。そしてこれをコメントかレビューとして送信すると...

f:id:yaakaito:20181202024148p:plain

こうなります!これで、この変更をパッチとして送っている状態になりました、取り込まれるのを待ちましょう。

取り込む側もすごく簡単

パッチをもらった側は、変更が妥当ならそれを取り込むことができます。「Commit Suggestion」から「Commit changes」で変更をコミットできます。

f:id:yaakaito:20181202024908p:plain

f:id:yaakaito:20181202024924p:plain

変更が取り込まれて、コミットが作られました。今回は自作自演したので僕だけがコミットしたことになっていますが、実際はこんな風に提案した側、取り込んだ側の両方がコミットに記録されます。

f:id:yaakaito:20181202025012j:plain

お互いに手間も無駄な気遣いも少なく、コードを少し良くすることができました。小さなことからコツコツと!

Move Fast

今回は typo を例に出しましたが、文章の推敲、設定ファイルに対する小さな修正など、BASE のコードレビューシーンではすでにいろんなところで「Suggested changes」が活用されています。「提案を即座に取り込んでいける」という面が本当便利で、行動指針である「Move Fast」を体現した小回りの効く機能だと感じています。パッチをもらった側は uniposで #MoveFast すれば完璧 ですね!

以上、「Suggested changes」の紹介でした、この機能であなたも BASE にパッチを送りませんか? 明日は id:yuhei_kagaya です!楽しみですね!

「BASE Advent Calendar」の記事一覧はこちら。 devblog.thebase.in