GitHub サービス統合

CA Agile Central の GitHub サービス統合では、CA Agile Central 内に、ワークスペースおよび任意の SCMRepository に関連付けられる変更セットの情報を作成します。CA Agile Central でアーティファクトを表示すると、GitHub プッシュ アクティビティのコミットに関連付けられた変更セットの詳細を見ることができます。CA Agile Central はアーティファクト、変更セット、変更情報を使用するレポートも提供し、頻繁に変更されているファイルはどれであるか、または通常よりも高いディフェクト率に関連付けられるファイルを示し、その他の役立つメトリックベースのレポートを提供します。

統合では、CA Agile Central アーティファクトのフォーマット ID 形式に準拠するコミット メッセージのトークンをスキャンします。これらのトークンは CA Agile Central に対して検証され、有効なアーティファクト(ユーザ ストーリー、ディフェクト、タスク)を参照すると、この統合によって実行された CA Agile Central に掲載された変更セットにアーティファクトが関連付けられます。ただし、GitHub VCS コネクタとは異なり、この GitHub 統合では、アーティファクトの状態を変更することはできません。

この統合はオープン ソースで、ここにあります。

既知の制限: SSO はこの GitHub 統合ではサポートされていません。

セットアップの概要

以下のアイテムは、GitHub サービスを設定するために必要な情報です。

  • サーバ
    CA Agile Central サーバのホスト名。rally1、trial、demo など CA Agile Central SaaS サーバの場合は、サーバのドメイン名部分を指定する必要はありません。CA Agile Central のオンプレミス製品を使用している場合は、完全修飾ホスト名を指定する必要があります。
  • ユーザ名
    CA Agile Central サブスクリプションのユーザ名。必ずユーザ名を指定してください(表示名、姓、名、電子メールは指定しないでください)。
  • パスワード
    上記のユーザ名に関連付けられたパスワード。
  • ワークスペース
    CA Agile Central ワークスペースの名前。ここには、ターゲット SCMRepository が格納されています。
  • リポジトリ
    CA Agile Central SCMRepository の名前。すべての CA Agile Central Changeset オブジェクトは、CA Agile Central SCMRepository オブジェクトに属しています。指定されない場合、これに使用される名前は GitHub リポジトリ名と同じになります。この CA Agile Central SCMRepository がまだ存在しない場合は、作成されます。

上記のユーザ名とパスワードの CA Agile Central ログイン機能を確認するには、ここにアクセスします。

CA Agile Central と GitHub の接続

Web サイト http://www.github.com は無料のクラウド サービスへのホームで、アカウントを登録して、ペット プロジェクトのソース コード用のリポジトリを作成することができます。これらのリポジトリは、プライベート アカウントに登録していない限り、一般の人がアクセスできます(現在の価格についてはこちらを参照)。

GitHub サービスは、プロジェクトのソース コードを格納する場所であるだけでなく、GitHub リポジトリの 1 つにコミットするローカル ソース コードのプッシュ(コミットではない)を実行するたびに、指定した CA Agile Central アーティファクト(ユーザ ストーリーやディフェクトなど)を更新するために使用できます。

以下の手順で使用されるコマンド ウィンドウは、MacOS 10.8 (Mountain Lion)端末です。

CA Agile Central と GitHub を接続するには、以下の手順に従います。

  1. CA Agile Central ワークスペースの設定
  2. CA Agile Central ディフェクトの作成
  3. 無料 GitHub アカウントの作成
  4. GitHub リポジトリの作成
  5. コンピュータ上でのローカル リポジトリの作成
  6. GitHub へのローカル コミットのプッシュ
  7. ローカル ソースの変更および GitHub へのプッシュ
  8. GitHub でのソース変更の表示
  9. CA Agile Central で作成された新しい変更セットの表示

CA Agile Central ワークスペースの設定

ターゲット WorkspaceConfiguration オブジェクトに対して BuildandChangesetEnabled が true に設定されていることを確認します。

CA Agile Central ワークスペースの管理者は、ターゲット ワークスペースに対してこれを有効にする必要があります。 これが有効でない場合、コネクタは機能しますが、 CA Agile Central 作業アイテム(ストーリー、ディフェクト、タスク)に関連付けられている変更セットまたは変更の情報は表示されません。

手順: ワークスペースの管理者は、ワークスペースを編集し、以下の手順に従う必要があります。

  1. [セットアップ]を選択します(画面の右上近く)。
  2. [ワークスペースとプロジェクト]タブを選択します。
  3. リストで目的のワークスペースを検索し、それを選択します。
  4. 左の列で[ワークスペース]リンクを選択します。
  5. [アクション]を選択し(右上近く)、[編集]を選択します。
  6. スクロール ダウンし、[ビルドとチェンジ セットを有効化]というラベルが付いたボックスをオンにします。
  7. [保存して閉じる]を選択します(ウィンドウの下部)。

CA Agile Central ディフェクトの作成

CA Agile Central のディフェクトには、CA Agile Central の変更セットを関連付けることができます。GitHub リポジトリへの各 git プッシュによって、新しい CA Agile Central 変更セット(変更の優れた監査証跡)の作成をトリガすることができます。

  1. ブラウザ ウィンドウで、CA Agile Central サブスクリプション(たとえば、https://rally1.rallydev.com)にログインします。
  2. [品質]タブで、[ディフェクト]を選択します。
  3. [ディフェクト]サマリ ページで、[アクション]-[新規ディフェクト]を選択します。
  4. 新しいディフェクトの名前とその他の必須フィールドを入力します。
  5. [保存]を選択します([保存して閉じる]は選択しません)。
  6. 新しいディフェクトの ID を記録しておきます。
  7. 保存して終了]を選択します。

無料 GitHub アカウントの作成

  1. ブラウザで、https://github.com/signup/free に移動します。
  2. アカウントを作成します。

注意: 場合によっては、2 つの GitHub アカウント(個人用と仕事用など)が不必要な混乱を招くことがあります。セットアップが完了するまで、1 つのアカウントを使用することをお勧めします。

GitHub リポジトリの作成

  1. ブラウザで、https://github.com/login に移動し、ログインします。
  2. [新規リポジトリ]を選択します。
  3. [リポジトリ名][説明]の 2 つのフィールドに、My-Demo-Repo-GitHub を入力します。
  4. [パブリック]フィールドが選択されたままにします。
  5. [リポジトリの作成]を選択します。
  6. アイコンの右の列の下部にある設定アイコン(レンチとねじ回し)を選択します。
  7. 左の列の[オプション]で、[Service Hooks (サービス フック)]を選択します。
  8. 使用可能なサービス フックのリストを下にスクロールし、[Rally]を選択します。
  9. 上にスクロールし、フィールドに以下のように入力します。
    • サーバ: rally1 (または rally1.rallydev.com と入力できます)
    • ユーザ名: Rallyusername
    • ワークスペース: Rallyworkspacename
    • リポジトリ: RallySCMrepository

      CA Agile Central のデータ モデルには、SCMRepository オブジェクトがあります。CA Agile Central で作成されたすべての変更セット オブジェクトは、これらの SCMRepository オブジェクトの 1 つに関連付けられています。この CA Agile Central SCMRepository オブジェクトに名前を付ける場合は、このボックスに値を入力します。この名前の CA Agile Central SCMRepository が存在する場合は、それが使用されます。存在しない場合は、作成されます。このボックスを空白のままにすると、使用される名前は GitHub リポジトリ名に使用される名前と同じになります。CA Agile Central GUI に、SCMRepository のリストを表示する場所はありません。これを行うには、https://rally1.rallydev.com/slm/doc/webservice/objectModel.sp#SCMRepository に移動し、[クエリ]ボタンを選択します。

    • パスワード: Rallypassword
    • アクティブ: このボックスをオンにする必要があります。それ以外の場合は、CA Agile Central に何も送信されません。
  10. [設定の更新]を選択します。
  11. 使用可能なサービス フックのリストを下にスクロールし、CA Agile Central (Rally)エントリの右側に緑色のチェックマークがあることを確認します。

CA Agile Central の GitHub サービスは、この GitHub リポジトリ用に定義され、必要に応じて CA Agile Central に接続する準備ができています。

VCS リポジトリへの SCMRepositories のマッピング

VCS コネクタは、CA Agile Central SCMRepository と VCS リポジトリ(Git、GitHub、Subversion、Mercurial など)の間で 1 対 1 の関係を維持して動作するよう設計されています。VCS コネクタは実行時に、コネクタ設定ファイル内の固有の値に対して、CA Agile Central SCMRepository アイテムを作成します(まだ存在しない場合)。これにより、新しいリポジトリを指定している設定を実行する前に CA Agile Central SCMRepository アイテムを作成する必要がなくなる点で、管理の負担が多少軽減されます。1 対多のマッピングでは、パフォーマンスの問題が発生する可能性があります。

各リポジトリには、設定ファイルと時間ファイルがあります。時間ファイルは、リポジトリに関して最後から 2 番目のコミットのタイムスタンプを記録します。たとえば、昨秋に大量のコミットがあったが、それ以降コミットのない Apricot リポジトリがあり、また、過去数か月間にアクティビティのあった Banana リポジトリがあるとします。これら 2 つのリポジトリのコミットが、単一の CA Agile Central SCMRepository に組み込まれると、以下の効果があります。Apricot リポジトリの設定を処理する際には、Apricot の時間ファイル内の値として recent が定義されている条件下で、CA Agile Central 内の最近の変更セット レコードを検索します。そのリポジトリへの前回のコミットが昨秋であったので、単一の SCMRepository から過剰な量の情報が読み取られます(Apricot の変更セットだけでなく、昨秋以降のすべての変更セットを参照しているため)。

コンピュータ上でのローカル リポジトリの作成

  1. Git がコンピュータ上にまだ存在しない場合は、インストールします。
  2. コマンド プロンプトで以下のコマンドを入力します(出力に注意)。
    • mkdir My-Demo-Repo-Local # (no output)
    • cd My-Demo-Repo-Local # (no output)
    • touch README.md # (no output)
    • git init

      出力:
      /Users/yourname/My-Demo-Repo-Local/.git/ の空の Git リポジトリの初期化

    • git add README.md # (no output)
    • git commit -m "our first commit for DE307"
    • 出力:
      [master (root-commit) a944e47] our first commit for DE307
      0 files changed
      create mode 100644 README.md

GitHub へのローカル コミットのプッシュ

  1. コマンド プロンプトで以下のコマンドを入力します(出力に注意)。
  • git remote add origin https://github.com/yourname/My-Demo-Repo-GitHub.git # (no output)
  • git push -u origin master
  • 出力:
    user name for 'https://github.com': [email protected]
    Password for 'https://[email protected]@github.com': ********
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 226 bytes, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To https://github.com/yourname/My-Demo-Repo-GitHub.git
    * [new branch] master -> master
    Branch master set up to track remote branch master from origin.

  • ブラウザで、https://github.com/login に移動し、ログインします。
  • 新しいソース コードが GitHub のリポジトリにあることを確認します。
  • 左上の yourname/My-Demo-Repo-GitHub を選択します。
  • [ファイル]タブで、README.md というファイル名を選択します。これは空である必要がありますが、ソース コードが表示されます。
  • ファイルまたは変更されたファイルをローカル リポジトリに追加し、次のコミットを使用します: git add

    ローカル ソースの変更および GitHub へのプッシュ

    コマンド プロンプトで以下のコマンドを入力します(出力に注意)。

    • echo "My first code change" >> README.md # (no output)
    • git add README.md # (no output)
    • git commit -m 'second commit for DE307'

      出力:
      [master 502468d] second commit for DE307
      1 file changed, 1 insertion(+)

    • git push -u origin master

      出力:
      user name for 'https://github.com': [email protected]
      Password for 'https://[email protected]@github.com': ********
      Counting objects: 5, done.
      Writing objects: 100% (3/3), 269 bytes, done.
      Total 3 (delta 0), reused 0 (delta 0)
      To https://github.com/yourname/My-Demo-Repo-GitHub.git
      a944e47..502468d master -> master
      Branch master set up to track remote branch master from origin.

    現在、ソース コードのローカル変更は GitHub リポジトリにあります。これは Web ブラウザで表示できます。

    また、CA Agile Central のディフェクト DE307 には新しい変更セット オブジェクトが必要です。

    GitHub でのソース変更の表示

    1. http://github.com にログインします。
    2. ページの右側にあるリポジトリ(x)の下で、yourname/My-Demo-Repo-GitHub を選択します。
    3. 左上隅のコミットを選択します。
    4. 2 番目のコミットが表示され、ソース コードの変更を表示するように選択します。

    CA Agile Central で作成された新しい変更セットの表示

    1. CA Agile Central にログインします。
    2. [品質]タブを選択してから、[ディフェクト]を選択します。
    3. 検索フィールドに「DE307」と入力します。
    4. 「DE307」を選択して、ディフェクトに移動します。
    5. 画面の右上にある[変更セット]タブを選択します。
    6. 以下のいずれかまたは両方を実行します。
      • GitHub 上のソース コードへの変更を表示する新しいブラウザ ウィンドウを開くには、[名前]列のリンクを選択します。
      • 変更されたソース モジュール全体を表示する新しいブラウザ ウィンドウを開くには、[変更]列のリンクを選択します。

    要約すると、以下のものが必要です。

    • GitHub Web サイトにある無料 GitHub アカウント。
    • プロジェクトのソース コードを格納できる、GitHub Web サイトにある無料の GitHub パブリック リポジトリ。
    • コンピュータ上のローカル Git リポジトリ。
    • GitHub リポジトリにプッシュされたローカル プロジェクトの実際のソース コード(これまでは README.md のみ)。
    • 一部の CA Agile Central SCMRepository オブジェクトに関連付けられている変更セットを使用して、CA Agile Central で作成されたディフェクト。

    フィードバック

    ヘルプをお求めですか?CA Agile Central コミュニティは、セルフサービスとサポートのワンストップ ショップです。CA Agile Central サポートにフィードバックを送信したり、答を見つけたり、他のユーザとのコラボレーションには CA Agile Central コミュニティ にご参加ください。