プロジェクトチームとのカスタマイズの共有

学習の目的

  • プル要求とは何か、いつ使用するかを説明する。
  • GitHub の機能ブランチのしくみを説明する。
  • Git プロジェクトで他のメンバーとコラボレーションする方法を説明する。

これから Tasha はカスタマイズを機能ブランチに取り込み、Isabel が作業内容をレビューできるようにします。機能ブランチを使用すると、確実にすべてのカスタマイズをレビューして承認でき、各変更セットは互いに分離されます。

GitHub に機能ブランチを作成する

ブランチを使用して開発作業内容、つまり「機能」を他のチームメンバーの変更と分離します。機能ブランチを作成して変更を追加するには、次の手順を実行します。

  1. GitHub Desktop でリポジトリを開きます。dev スクラッチ組織から取得された、最後のモジュールでの変更が表示されます。
  2. [Current Branch: main (現在のブランチ: メイン)] というタブを選択します。
  3. [New Branch (新規ブランチ)] をクリックして、メインから新しいブランチを作成します。
  4. ブランチ名として「feature/deliveries」 (機能/配送) と入力し、[Create Branch (ブランチを作成)] をクリックします。
  5. [Bring my changes to feature/deliveries (変更を feature/deliveries に取り込む)] を選択します。これにより、すでに加えた変更で新しいブランチを開始するように GitHub Desktop に指示します。
  6. [Switch Branch (ブランチを切り替え)] をクリックします。

次は、機能ブランチ上にこれらの変更を保持するためのコミットを作成します。コミットとはプロジェクトの履歴内に定義された位置であり、加えた変更はコミットを使用してバージョン管理に追加されます。

  1. [Summary (概要)] と [Description (説明)] に「Created Delivery and Delivery Item objects」 (配送オブジェクトと配送品目オブジェクトの作成) と入力します。
  2. [Commit to feature/deliveries (feature/deliveries にコミット)] をクリックします。

変更を GitHub にプッシュする

現在、カスタマイズを含む新しいブランチはローカルコンピュータ上に保存されています。これをチームメンバーと共有するには、変更を GitHub にプッシュします。GitHub ではプル要求を作成することで、提案した変更のレビューを他のメンバーに依頼できます。チームはプル要求を使用して各チームメンバーの作業内容を追跡、レビュー、結合できます。 

  1. 変更を GitHub で公開します。GitHub Desktop で [feature/deliveries (機能/デリバリ)] ブランチが選択されていることを確認し、[Publish Branch (ブランチを公開)] をクリックします。
  2. [Branch (ブランチ)] > [Create Pull Request (プル要求を作成)] を選択してプル要求を作成します。GitHub がブラウザウィンドウで開きます。
  3. プル要求の本文に複数のヘッダーが入力されます。CumulusCI で、プル要求の本文に入力されたコンテンツを使用したプロジェクトのリリースの累積リリースノート生成が処理されます。次のセクションを編集します。
    1. [Changes (変更)] に作業内容の説明を入力します。たとえば「- Created Delivery and Delivery Items objects and fields」 (- 配送および配送品目オブジェクトと項目) などです。
    2. [Issues Closed (クローズしたイシュー)] に「Fixes #1」 (修正 1) と入力します。1 は、このモジュールの単元 2 「アプリケーションのカスタマイズとその取得」で作成したイシュー番号です。
  4. 加える変更に関する詳細を追加し終えたら、[Create pull request (プル要求を作成)] をクリックします。

この単元で後ほど、このプル要求をメインブランチとマージする方法を学習します。 

プル要求に基づいてコラボレーションする

プル要求とブランチを使用するとコラボレーションをサポートしやすくなります。変更のレビューやカスタマイズに対する品質保証 (QA) プロセスの実行を同僚に依頼する必要があるとき、プル要求を使用します。 

Tasha と Isabel が Tasha のカスタマイズに対してどのようにレビューと承認のプロセスを行うかを見ていきましょう。Isabel がこのプロジェクトでコラボレーションするのは初めてであるため、Tasha はまず Isabel を GitHub Food Bank リポジトリへの「Write」 (書き込み) 権限のあるコラボレータとして追加します。この操作はブラウザの GitHub [Settings (設定)] タブ内で行います。Isabel がリポジトリにアクセスできるようになったので、Tasha は Isabel をプル要求のレビュー担当者として追加します。

Isabel は Tasha の作業内容のレビューを始める用意ができています。最初のステップは、ブラウザで GitHub リポジトリのプル要求を参照することです。[Files changed (変更されたファイル)] タブで、Isabel はアプリケーションのメタデータへの変更を行単位で確認してレビューコメントを追加できます。これにより Tasha は必要な作業を明確にし、潜在的なリスクを特定しやすくなります。変更の全範囲を確認するために、Isabel が Tasha のブランチに基づいてスクラッチ組織を作成することもできます。Isabel のローカルコンピュータ上に Food Bank リポジトリのコピーがない場合は、ローカルコンピュータにスクラッチ組織を作成する前にリポジトリをコピーする必要があります。

カスタマイズについてコードのレビューと動作の確認を終えたので、Isabel は Tasha の作業内容を承認できます。これを行うには、GitHub で [Review changes (変更をレビュー)] をクリックし、[Approve (承認)][Submit review (レビューを送信)] の順に選択します。次に、Isabel は Tasha の作業内容をリポジトリのメインブランチにマージしてパッケージに含めることができます。

皆さんはこれを 1 人で実行していてレビュー前半の手順をほとんど省略することになるので、別のスクラッチ組織でカスタマイズをレビューしてからプル要求をメインブランチにマージする方法を確認しましょう。

新しいスクラッチ組織で変更をレビューする

  1. GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して現在のリポジトリとブランチを開きます。
  2. VS Code ターミナルで cci flow run qa_org --org qa コマンドを入力し、機能ブランチに基づいてスクラッチ組織を作成します。
  3. スクラッチ組織の準備ができたら、Web ブラウザに cci org browser qa コマンドを入力して開きます。

スクラッチ組織を調べ、加えた次のようなカスタマイズを確認します。

  • Delivery (配送) と Delivery Item (配送品目) という 2 つの新規カスタムオブジェクトがある
  • Delivery (配送) ではカスタムタブを使用できる
  • Delivery Item (配送品目) は Delivery (配送) オブジェクトの関連リストである
  • カスタム項目のデータ型が正しい

変更をメインブランチにマージする

プル要求のレビューが終わったので、変更をメインブランチにマージできます。Tasha と Isabel のようにチームで作業している場合は通常、作業内容のレビュー担当者が変更をメインにマージします。

  1. Web ブラウザに表示されたプル要求の [Conversation (会話)] タブで、[Merge pull request (プル要求をマージ)] をクリックして feature/deliveries ブランチをメインブランチにマージします。
  2. [Confirm merge (マージを確認)] をクリックします。
  3. [Delete branch (ブランチを削除)] をクリックして機能ブランチを削除します。スクラッチ組織と同様に、機能ブランチは一時使用目的に設計されており、その中のカスタマイズがメインブランチにマージされると不要になります。

最後のステップでは、ワークスペースをクリーンアップして退出します。 

  1. GitHub Desktop に戻ります。
  2. [Current Branch (現在のブランチ)] が feature/deliveries であることを確認します。
  3. GitHub Desktop メニューバーで [Branch (ブランチ)] → [Delete (削除)] を選択し、feature/deliveries ブランチを削除することを確認します。
  4. GitHub Desktop では [Current Branch (現在のブランチ)] が自動的にメインブランチに戻ります。
  5. メニューから [Repository (リポジトリ)] → [Pull (プル)] を選択して、GitHub の feature/deliveries からマージした変更を削除します。レジストリが更新されます。
  6. 最後に GitHub メニューバーで [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code のターミナルウィンドウを開き、スクラッチ組織を削除します。
    1. dev スクラッチ組織を削除するには、cci org scratch_delete dev コマンドを入力します。
    2. プル要求をレビューするためのスクラッチ組織も作成している場合は、そのスクラッチ組織を削除します。cci org scratch_delete qa と入力します。

Food Bank リポジトリのメインブランチに新しいカスタマイズが追加されたので、Tasha と Isabel が作成するすべてのスクラッチ組織に変更が表示されます。

リソース