Subversion 用 CA Agile Central VCS コネクタのインストールおよびユーザ ガイド

コネクタのダウンロード

コネクタをダウンロードするには、ここの手順に従います。

注: このドキュメントは、Subversion コネクタの最新バージョンのポーリング方法に適用されます。

Subversion から CA Agile Central へのコネクタは、CA Agile Central 内のアーティファクトに対するコード変更のトレーサビリティを表示するのに役立ちます。

Subversion から CA Agile Central へのコネクタは、一元化マスタ Subversion リポジトリをスキミングして最近のコミットを探すコードで構成されています。コミット メッセージから情報を抽出し、設定ファイルの仕様に従って CA Agile Central SCMRepository変更セットまたは変更の情報をポストします。コネクタを会社の 1 つのコンピュータだけにインストールすることは可能ですが、組織の構造、および CA Agile Central に反映する必要のあるリポジトリの数に応じて、コネクタを複数のコンピュータにインストールすることもできます。

開発者がコミット、メッセージ内に FormattedID (たとえば US42)を配置すると、コネクタは、設定済みのリポジトリのすべてのコミットを処理し、それらのコミットに関する情報を CA Agile Central 内の変更セット オブジェクトおよび変更オブジェクトにプッシュします。コミット メッセージに有効な FormattedID が見つかった場合、コネクタによって作成された変更セットはそのディフェクト、ストーリー、または CA Agile Central でのタスクに関連付けられます。

例:


"Fixed DE1987 by changing preamble paragraph 3"

コネクタのコミットおよび実行の前に CA Agile Central のディフェクト DE1987 の状態がオープンであった場合、この特定の変更セットを処理するコネクタの操作以降、CA Agile Central のディフェクト DE1987 の状態は「Fixed」として表示されます。このメッセージでは大文字小文字が区別され、fixedFixed は異なります。yml ファイルでは、状態の変更を処理するために UpdateArtifactState 値が True に設定される必要があります。

コミット メッセージには、複数のアーティファクトへの参照を含めることができます。たとえば、以下は正常に機能します。


"Test commit msg with multiple artifacts Fixed DE9 Closed DE8"

一般的なワークフローとしては、CA Agile Central でいずれかのチーム メンバに DE42 が割り当てられます。これらのメンバがコードを変更してコミットする際には、コミット メッセージ内に「Found an issue with line breaks - fixed DE42」のようなテキストを含めます。コネクタが再度実行されると、そのコミット メッセージを検索し、コミットに関する情報を CA Agile Central のディフェクト DE42 にリンクします。

このインストール ガイドの内容は以下のとおりです。

前提条件

  • Ruby 2.2.6 - サポートされているバージョンです。

    このコネクタは、Ruby 2.3.x および 2.4.x とは互換性がない可能性があります。このコネクタとこれらのバージョンとの互換性は認定されておらず、2.2.6 だけが認定されています。特定バージョンの Ruby を簡単にインストールして使用するために Ruby バージョン マネージャ ソフトウェア(rvm)を使用する方法を調べることをお勧めします。

  • Ruby 2.0 ~ 2.3 用 Ruby 開発キット(**Windows のみ**)。
    1. ここから、DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe をダウンロードします。
    2. 開発キットの bin ディレクトリへのパスを環境パス変数に追加します。
    3. cd コマンドで、Ruby 開発キットのルート ディレクトリに移動します。
    4. 次のコマンドを実行します: ruby dk.rb init
    5. 次のコマンドを実行します: ruby dk.rb install
  • コネクタを実行するために使用するマシンを選択します。
  • コネクタ マシンが Subversion サーバとは異なるマシンである場合は、Subversion サーバのアドレスおよび名前に注意してください。
  • 情報を収集する対象の一元化マスタ リポジトリへのパスを収集します。
  • 変更セットまたは変更の情報のポスト先となる CA Agile Central のワークスペースを選択します。

サポートされているプラットフォーム

コネクタは、さまざまなプラットフォームでの実行をサポートします。このソフトウェアは Ruby で作成され、Ruby 2.2.6 を使用してテストおよび認定されています。2018 年 6 月 27 日以降、以前のバージョンの Ruby では動作しなくなります。コネクタは、後続の安定したバージョンの Ruby で動作することが見込まれています。このソフトウェアが Linux、Unix、または MacOSX システム上での使用を目的とする場合は、http クライアントおよび rally_api gem のインストール後にインストールする必要があります。

Subversion 用 CA Agile Central コネクタは、ネットワーク内のマシン上で Ruby スクリプトとして実行されます。

CA Agile Central のセットアップ

注: ワークスペース管理者権限を持つコネクタ ユーザを作成することを強くお勧めします。これにより、コネクタ ユーザは、ワークスペースに今後追加される可能性のある任意の新しいプロジェクトにアクセスできます(エディタ権限のみを持つユーザは、新しいプロジェクトに自動的には追加されません)。コネクタ ユーザがプロジェクトへのアクセス権を持っていない場合、変更セットが SCM リポジトリ内にのみ作成され、孤立します(いずれのアーティファクトにも接続されません)。

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

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

ワークスペースの管理者は、ワークスペースを編集して、以下のことを実行する必要があります。

  1. [セットアップ]アイコン を選択します。
  2. [ワークスペースとプロジェクト]タブを選択します。
  3. [ワークスペースとプロジェクト]サマリ ページで、ワークスペースを選択します。
  4. [アクション]ドロップダウンから[編集]を選択します。
  5. ワークスペース エディタで、[ビルドと変更セットを有効化]というラベルが付いたチェック ボックスをオンにします。
  6. [保存して閉じる]を選択します。

コネクタのセットアップ

Subversion コネクタは、以下の 3 つの異なるファイルによって制御されます。

リポジトリ設定ファイル

CA Agile Central に反映する Subversion リポジトリごとに、コネクタ設定ファイルが必要となります。このファイルは、インストールしたコネクタ ソフトウェアの configs サブディレクトリに格納されます。

この設定ファイルは、YAML 形式である必要があります。コネクタ設定ファイルには、CA Agile Central との対話方法の観点からコネクタがどのように動作するかに関する情報、および Subversion リポジトリの ID と場所に関する情報が含まれています。製品には、configs/sample.yml という名前のサンプル設定ファイルが付属しています。そのコピーを作成し、リポジトリに使用します。YAML 設定ファイルに、リポジトリ名に似た名前を付けることをお勧めします。たとえば、リポジトリ名が My-Svn-Repo である場合、YAML 設定ファイルに My-Svn-Repo.yml という名前を付けます(簡潔化のため)。新しいリポジトリ設定ファイルを編集し、ご使用の環境に合わせて値を変更します。

YAML 構文に関する警告:

  • タブ文字は、有効な YAML 文字ではありません。
  • パスワードに感嘆符(「!」)やハッシュ(「#」)が含まれる場合などは、特殊文字を引用符で囲みます。
  • コメント文字(「#」)は、1 つ以上のスペースで前の要素と区切る必要があります。たとえば、文字列「.../dir/dir2#this is a comment」は無効です。

RepositoryName

従来の方法では、CA Agile Central RepositoryName を Subversion リポジトリと同じ名前にします。RepositoryName 値として指定した値は、CA Agile Central 内の SCMRepository インスタンスに提供されます。必要に応じて、CA Agile Central RepositoryName は Subversion リポジトリ名と異なる名前にすることもできます。YAML 設定ファイルの CA Agile Central セクション内にある RepositoryName の値は、変更セットまたは変更アイテムが関連付けられる CA Agile Central SCMRepository の名前です。この SCMRepository コンテナが存在しない場合、コネクタは、ユーザのターゲット ワークスペース内にこのコンテナを作成します。

Lookback

CA Agile Central セクションと Subversion セクションの一方または両方に表示できる、オプションの Lookback 変数があります。デフォルトでは、このパラメータの値は分単位であることが想定されます。サフィックス文字 m (分)、h (時間)、または d (日数)を指定することで、他の時間単位を使用できます。

Lookback: 90
Lookback: 120 m
Lookback: 8 h
Lookback: 10 d

Lookback 値を明示的に指定しない場合、コネクタはデフォルト値である 1 時間を使用します。一方のセクションで Lookback 値を指定する場合は、もう一方のセクションでもその値を指定することを強くお勧めします。2 つのセクションで Lookback の値が同じでない場合、Subversion の変更セットが CA Agile Central に反映されない可能性があります。

RepositoryBase

設定ファイルの Subversion セクション内で RepositoryBase を使用して、一元化マスタ Subversion リポジトリ(リポジトリの作業コピーではない)のフル パス名を指定します。

リポジトリ設定ファイルの例

---
      
VCSConnector:
      
Rally:
    Server              : rally1.rallydev.com           #
    Protocol            : https                         #
    Username            : [email protected]               #
    Password            : 22333four                     # (this will be encoded after first use)
#   APIKey              : hgiotewhgeiwhgh325930503453490    # can be used in place of Username / Password entries
    Workspace           : VanillaBean                   #
    RepositoryName      : Balloon                       # If it doesn't exist, it'll be created
#   Proxy               : some_proxy.yoursite.com:9876  # or an IP address:port
#   ProxyUser           : outbound                      #
#   ProxyPassword       : bvc-357%GNQ                   #
    Lookback            : 90                            # minutes by default, use h/d suffix for hours/days
    UpdateArtifactState : False                         #
    StateExtractorClass : BasicActionsAndArtifactsExtractor(message) # Only used if above is True
    Debug               : False                         # True for debug output
      
Subversion:
#   Server              : svnsvr.company.com            # specified if repo is not local
    RepositoryBase      : /home/svn/repos/bigproject    # Complete pathname to the centralized-master Subversion repository
    Lookback            : 90                            # minutes (defaults to 120)
    MaxItems            : 100                           # Max number of items to process per run
#   RevURI              : http://svnserver.com/repo/{revnumber}?id={revnumber} # if running web access to repo
#   FileURI             : http://svnserver.com/repo/{filepath}?id={revnumber}  # if running web access
    Debug               : False                         # Set to True for additional debug output
      
Services:
    Preview             : False                         # When True, only show what would happen
    LogLevel            : Debug                         # Default value Info
#   PostBatchExtension  : MetricsPoster                 # For future use
      
Transform:
    Author              : Passthru                      # The default
#   Author              : EmailAddressAsRallyUser
#   Author              : FileBasedUserNameLookup(user_map.txt,":")
#   Author              : RallyUserNameLookup(FirstName,LastName)
#   Author              : UserLookupChainGang(FirstName,LastName,user_map.txt,":")
#   Author              : UserNameDomainAugmentLookup(MyDomain.com)
      
...
  • URI
    システムで Web フロント エンドを使用している場合、RevURI および FileURI (Subversion セクション内)はルート URI であることを想定しています。URI は、CA Agile Central 変更セット内の変更セットおよびファイルへのリンクのベースとして使用されます。たとえば、Subversion への Web アクセスのルート URI が http://server:port/Subversion/rev/ である場合(Apache、ViewVC、WebSVN、VisualSVN と同様)、CA Agile Central で、変更セット 12345 に対して変更セットのリンクが http://server:port/Subversion/rev/12345 として作成されます。文字列 {revnumber} および {filepath} は、CA Agile Central に格納されるリンクをコネクタが作成すると置換されます。
  • プロキシ
    3 つのプロキシ アイテムは、アイテムの前に # を使用してコメント化されています。YAML ファイル内で、# 文字で始まるすべての行が無視され、# 文字シーケンスに続くすべてのコンテンツが無視されます(# シーケンスを含む)。

  • *** 注: ここで説明している用語「ルート URI」は、RepositoryBase 値の同意語ではありません。リポジトリ ベースは、Subversion リポジトリのホスト上の有効なファイル システム パスである必要があります。ルート URI は、実行している Web サーバ、およびリソースへのルートを設定した方法に特化して設定されます。

ユーザ マッピング ファイル

configs/user_map.txt ファイルでは、Subversion システムと CA Agile Central サブスクリプションの間でユーザ名を変換する方法を決定します。両方のシステム内でユーザ名が普遍的に同一である場合は、Transforms セクション下のすべての Author サブアイテムをコメント化するか、または Transforms セクション内の Author フィールドの値を Passthru に設定することができます。Subversion ユーザ名を CA Agile Central ユーザ名に変換できる確定的なマッピングが存在する場合は、Author の変換値を適切なクラス名に調整する必要があります。ニーズに適合する方法を判断するには、ユーザ マッピング方法のテキスト ドキュメント(インストールに含まれる)を参照してください。

Author の適切な変換方法を特定したら、その変換を実装する Ruby クラス名を識別するよう設定ファイル(configs サブディレクトリ内)を変更する必要があります。Ruby クラス名は、plugin サブディレクトリ内のファイル内にある Ruby ソース コードのファイルに存在する必要があります。

user_map.txt ファイルの例:

# Subversion repo username   CA Agile Central username
# ------------------------ : -----------------------
jpkole                     : [email protected]
linuxuser1                 : [email protected]
linuxuser2                 : [email protected]
David Beckham              : [email protected]
Yogi Berra                 : [email protected]

リポジトリ時間ファイル

コネクタは実行を完了するたびに、My-Svn-Repo_time.file などの名前を持つ、ベース インストール ディレクトリ内のリポジトリ時間ファイルを更新します。このファイルには、コネクタによって Subversion コミットが前回処理された日付が含まれています。したがって、コネクタは再度実行された際に、ユーザによって行われたコミットの処理をどこで(たとえば、過去のどの時点で)開始するかを特定できます。

コネクタの最初の呼び出し時には時間ファイルは存在しないので、コネクタは、過去 72 時間にさかのぼってコミットを検索します。

このファイルを編集し、時間を目的の値に設定することができます。たとえば、過去 5 年間に 50,000 のチェックインが実行された場合、CA Agile Central に過去のすべての履歴を反映させることは必ずしも適切ではありません。その場合は、時間ファイルを編集し、最近の開始点の日付を入力します。

このファイルには、GMT/UTC 時間でのタイムスタンプである 1 行のみが含まれています。ファイルの一般的な形式は YYYY-mm-dd HH:MM:SS Z (Z は Zulu または GMT/UTC 時間)です。一般的な時間ファイルの内容を以下に示します。



2013-05-17 18:49:22 Z

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 の変更セットだけでなく、昨秋以降のすべての変更セットを参照しているため)。

SVN リポジトリの作成または使用の詳細については、「一元化マスタ リポジトリの作成」を参照してください。

CA Agile Central API キーの作成

CA Agile Central API キーを作成して、ユーザ名とパスワードを使用せずにサブスクリプションのデータにアクセスするために使用することができます。

コネクタで API キーを使用するには、config.yml ファイルで CA Agile Central セクションを編集し、APIKey 行を追加します。APIKey 設定エントリを指定する際には、CA Agile Central 設定セクションからユーザ名とパスワードを省略します。APIKey エントリが存在する場合、ユーザ名とパスワードは使用されず、これらが設定ファイルに含まれればログ ファイルに警告が表示されます。APIKey エントリの値が無効、空白、または nil の場合でもこのことが当てはまります。サブスクリプションの管理者が、お客様のサブスクリプションを SSO 専用に設定した場合、指定の APIKey 値に関連付けられているユーザを、権限のあるユーザのホワイトリストに追加する必要はなくなりました。

コネクタは、rally_api バージョン 1.2.1 を使用するようになりました。指定された APIKey はフル アクセス権を持つ必要があり、読み取り専用の api キーでは、コネクタが CA Agile Central への書き込みを行うことはできません。

フル アクセス API キーを作成するには、「CA Agile Central Application Manager」を参照してください。

コネクタのインストール

コネクタをダウンロードします。

Subversion サーバと ssh の使用

主なユース ケースとしては、このコネクタが、Subversion ソフトウェアおよび一元化マスタ リポジトリが存在するプラットフォーム上で実行されます。Subversion プラットフォーム以外のプラットフォームでこのコネクタを実行することはできますが、そのユース ケースでは、ssh を使用することと、公開鍵と秘密鍵の情報を適切にセットアップすることを想定しています。ssh およびキー ファイルのセットアップは、このドキュメントの範囲外です。ssh および PKI に関する情報については、インターネットを参照してください。

コネクタの実行時に ssh を使用する場合は、キーのセットアップと権限がコネクタから独立して正しく設定されていることを示すと役立ちます。コネクタを実行するユーザは、ターミナル ウィンドウで実行されているシェルで、以下のことを試行します。

$ ssh [email protected]_server_host  # substitute your actual user name and hostname...
$ ls -l

このコマンドが正しく実行された場合は、svn_server_host 上の connecter_user のホーム ディレクトリについて、長い形式のディレクトリのリストが表示されます。実行されずにその出力が提供されない場合は、秘密鍵が利用できない、ssh 接続に対するディレクトリ/ファイルの権限やターゲット ホスト セットアップが不適切であるなど、一般的な環境エラー状態をトラブルシューティングする必要があります。このコマンドの例が成功した場合にのみ、このコネクタの実行へと進んでください。

キーを使用した基本的な ssh 使用法を実証した後は(これにより、パスワードを指定する手間を省くことができます)、有効な RepositoryBase 値があること、およびコネクタが正常に動作するために必要な特定のコマンドが Subversion インストールによって許可されることを確定できます。以下の例では、RepositoryBase 値は /opt/svn/repos/tech-project です。ssh を使用して、Subversion ホストで svn log コマンドを実行し、ご使用の環境に適した値を代入してみます。

$ repo='file:///opt/svn/repos/tech-project'
$ ssh -i $HOME/.ssh_keys/my_key_file_rsa  [email protected]_server_host svn log $repo

このコマンドが成功した場合は、コネクタのセットアップ、設定、および実行に進むことができます。そうでない場合は、コネクタの操作を試みる前に、環境要因(キー ファイルがない、ユーザが無効であるなど)を特定して修正する必要があります。

詳細については、「SVNServer への SSH アクセスのセットアップ」を参照してください。

インストーラとオペレータ ファイルシステムの権限

このコネクタは、cron または Windows タスク スケジューラ(WTS)によって開始され、継続的に実行することを目的としているので、コネクタのインストールにおけるディレクトリおよびファイルの権限と ACL に関して、コネクタをインストールするユーザの ID と、cron または WTS による実行時のユーザの ID を考慮する必要があります。コネクタのランナーは、すべてのファイルを読み取ることができ、configs サブディレクトリと logs サブディレクトリに書き込むことができる必要があります。

配布コンテンツ

1715 5 月 23 日 13 時 01 分 ライセンス
18419 5 月 23 日 13 時 01 分 README
4811 5 月 23 日 13 時 02 分 ユーザ マッピング方法
170 5 月 23 日 15 時 43 分 設定
136 5 月 23 日 13 時 02 分 拡張
170 5 月 23 日 13 時 02 分 gem
1897 5 月 23 日 13 時 02 分 git2ca_agile_central.rb
2115 5 月 23 日 13 時 02 分 install_gems.rb
102 5 月 23 日 13 時 02 分 ライブラリ
136 5 月 23 日 15 時 36 分 ログ
374 5 月 23 日 13 時 02 分 プラグイン
43520 5 月 23 日 13 時 02 分 vcseif-1.6.0.gem
 

インストール

  1. Ruby および Ruby 開発キットがシステムにインストールされていますか。そうでない場合は、手順についてこのドキュメントの「前提条件」セクションを参照してください。
  2. ソフトウェアをインストールする適切なディレクトリに、svn2ca_agile_central-(version)-master-(build_number).zip ファイルを解凍します。注: このバージョンのコネクタには .exe ファイルは含まれていませんが、コネクタが ruby ファイルによって呼び出されるようになったので、今後期待されます。
  3. 次のように、ディレクトリをコネクタ インストールのルート ディレクトリに変更します: cd CAAgileCentralConnectorforHPALM-4.x.Y-master-z
  4. 環境変数 GEM_COMMAND を Ruby インストール ディレクトリにある gem 実行可能ファイルに設定します。以下に、Linux と Windows 上の場所の例をそれぞれ示します。
    • /myhome/.rvm/rubies/ruby-2.2.6/bin/gem
    • C:\Ruby226\bin\gem
  5. 配布アーカイブを展開すると、以下のファイルおよびフォルダが作成されます。 
    • field_handlers — カスタム フィールド ハンドラ用のフォルダ
    • svn_config.xml — ユーザ ストアおよびディフェクト用のサンプル設定ファイル
    • svn_config_test_workflow.xml — テスト ケース用のサンプル設定ファイル
    • svn_config_run.xml — テスト実行用のサンプル設定ファイル
    • install_gems.rb — このコネクタに必要な gem をインストールする Ruby スクリプト
    • ca_agile_central2_snv_connector.rb — コネクタを実行する実行可能ファイル(rallyeif-qc gem と共に存在)
  6. install_gems.rb Ruby スクリプトを実行して、関連するすべての gem をインストールします。「書き込み権限がありません」のような出力が表示された場合、システム管理者に問い合わせて必要な権限を取得(通常は sudo または他の類似ソフトウェアを使用)するか、またはシステム管理者に install_gems.rb コマンドの実行を依頼する必要があります。コマンドをコンソールまたはターミナル ウィンドウのプロンプトで実行するには、以下のように入力します。
    ruby install_gems.rb

install_ruby.rb コマンドの出力例を以下に示します。

               ruby install_gems.rb 
               rubygems-update installed
               xml-simple installed
               httpclient installed
               multipart-post installed
               faraday installed
               mime-types installed
               rally_api installed
               rallyeif-wrk installed
               rally_hp_alm_api installed
               rallyeif-qc installed

コネクタの実行

プレビュー モード

設定ファイル(たとえば、configs/repo_one.yml)の Services セクション内に、Preview のエントリがあります。存在しない場合、デフォルトは False です。True に設定すると、コネクタは CA Agile Central 内のいずれのデータも変更しませんが、指定した認証情報および情報を使用して CA Agile Central に正常に接続できることを確認できるほか、svn コマンドの使用を検証できます。 プレビュー モードで実行されるコネクタが想定どおりに動作すると判断できたら、設定内の Preview 値を False に設定できます。

svn コマンドへのアクセス

PATH 環境変数には、svn コマンドが存在するファイルシステム パスを含める必要があります。*nix cron ジョブ(または Windows タスク スケジューラ エントリ)内で使用する環境変数を設定する方法については、Linux、Unix、MacOSX、および Windows のドキュメントを参照してください。Unix コマンド which svn を使用して、PATH 内に svn コマンドがあるかどうかを判断します。

注: ボックス上でコネクタを実行し、Subversion リポジトリが含まれるリモート ホストにコネクタをアクセスさせることができます(ssh を使用)。この場合、コネクタ ボックスに Subversion がインストールされている必要はありません。ただし、これは、リモート ホストへの ssh アクセスを有効にしていて、コマンド ssh which svnsvn コマンドへのパスを返すことを前提としています。

スケジュール済みタスクとして実行

cron (Linux)またはタスク スケジューラ(Windows)(またはその他のジョブ タスク スケジューリング ソフトウェア)を使用して、コネクタを定期的に実行できます。CA Agile Central では、最初に、通常の営業時間には 15 分ごと、営業時間外にはより低い頻度でコネクタを実行することをお勧めします。

コマンド ラインからの呼び出し

configs サブディレクトリには多数の設定ファイルが含まれる可能性があり、任意の数のファイルを呼び出すよう指定できます。以下に例を挙げます。

ruby svn2_agile_central.rb apricot banana cherry dogwood

上記の例で、ファイル apricot.ymlbanana.ymlcherry.yml、および dogwood.ymlconfigs サブディレクトリ内に存在している必要があります。コネクタは、configs サブディレクトリ内(インストール ベース ディレクトリ下)の設定ファイルだけを検索します。

ログ ファイル

コネクタを実行すると、以下の名前の各設定ファイルに対して 2 つの異なるログ ファイルが更新されます。

  • logs/svn2ca_agile_central.log — コネクタのステータスを示すグローバル ログ ファイル。

    このログ ファイル内には、コネクタが呼び出されたことを示すエントリが作成されます。呼び出しで指定される設定ごとに、その設定の実行からのリターン コードを記録するエントリがこのログ ファイル内に生成されます。すべて設定についてコネクタの実行が終了すると、コネクタの実行の完了を示すエントリが書き込まれます。

  • logs/.log

    コマンド ラインで指定された設定ファイルごとに、このログ ファイルは、実行中に発生したアクティビティに関する詳細情報で更新されます。

設定ファイルで LogLevel 値を変更することにより、これらのログ ファイルに書き込まれる詳細レベルを調整できます。通常、LogLevel は Info に設定されます。コネクタが正常に完了しない状況が発生した場合は、LogLevel を Debug に調整し、コネクタを実行してトラブルシューティング プロセスを開始できます。これらのログ ファイルは、ケースの調査の効率を高めるために CA Agile Central サポートに送信できます。

時間ファイル

コネクタは、設定名に対応するベース インストール ディレクトリ内で、コミットが前回処理された日付を含めてファイルを作成します。ファイルは _time.file と名付けられ、YYYY-mm-dd HH:MM:SS Z (UTC (Zulu)時間)の形式の時間エントリを含みます。最初の実行時には、設定の時間ファイルは存在せず、コネクタはデフォルトでコネクタ実行の 72 時間前に発生したコミットを検索します。その動作をオーバーライドするには、処理しようとしている設定ファイルに対して時間ファイルを作成および編集します。上記の形式のエントリを指定することで、コミット処理の開始時点を制御できます。

注: コネクタは、処理するコミットが 3 つ以上になるまで、リポジトリのコミットの処理をスキップします。コミットが 3 つ以上になると、スキップされたコミットが処理されます。これは、コミットを処理するときの Agile Central のパフォーマンスの問題による、設計上の決定です。

コネクタの拡張

インストールの extension サブディレクトリ内にある statex.rb という名前のファイル内に、サンプルの Ruby クラスが存在します。そのファイルに含まれているクラス定義の名前は BasicActionsAndArtifactsExtractor です。このサンプル クラスは、コミット メッセージを調査したり、CA Agile Central アーティファクト識別子および状態遷移ターゲット値を抽出する基本的な方法を示します。設定ファイルのアイテム UpdateArtifactState の値が True に設定されている場合にこのクラスを使用すると、識別されたアーティファクトの State (または、UserStory の場合は ScheduleState)が、コミット メッセージに記載されている状態値に遷移します。

たとえば、コミット メッセージに CA Agile Central のディフェクト(DE1987 として識別される)が記載されていて、そのアーティファクト識別子の直前または直後に新しい有効な状態値が含まれる場合、コネクタは、CA Agile Central 内の識別されたアーティファクトの State をその状態に変更します。例:

$  svn  commit  -m  "Fixed DE1987 by changing preamble paragraph 3"  my_file.java

コネクタのコミットおよび実行の前に CA Agile Central のディフェクト DE1987 の状態がオープンであった場合、この特定の変更セットを処理するコネクタの操作以降、CA Agile Central のディフェクト DE1987 の状態は「Fixed」として表示されます。このメッセージでは大文字小文字が区別され、「fixed」と「Fixed」は異なります。

コミット メッセージには、複数のアーティファクトへの参照を含めることができます。たとえば、以下は正常に機能します。

$  svn   commit  -m  "Test commit msg with multiple artifacts Fixed DE9 Closed DE8"  MyFile.rb

extension サブディレクトリは、提供されている例がユーザの慣習に適合しない場合、CA Agile Central のアーティファクト識別子および状態変更を抽出する、ユーザ独自のメッセージ処理を提供できます。拡張は、Ruby で記述されたクラスでなければならず、サービスと呼ばれるインスタンス メソッドを提供する必要があります。このサービスは、コミット メッセージを引数として指定し、状態名(Fixed、Completed など)をキーとするエントリと共に Ruby Hash インスタンスを返すか、または CA Agile Central のアーティファクト識別子(FormattedID)によって取り込まれる関連値として Ruby Array と共に nil を返す必要があります。

ファイル My-Svn-proj1_time.file:

2018-04-19 14:41:34 Z

ファイル configs\My-Svn-proj1.yml:

---
VCSConnector:
  
Rally:
#   -------------------   ------------------------------------ #
#   an onprem rally...
    Server              : 10.32.16.78                          #
    Protocol            : http                                 #
    Username            : [email protected]                    #
    Password            : encoded-d-d-d-d-d-d-d-d-d-d-d-=-     # encoded after first use
    Workspace           : My Sample Workspace            #
#   -------------------   ------------------------------------ #
    RepositoryName      : DogDogDog                            # name of Rally SCMRepository
#   Proxy               : server:port                          #
#   ProxyUser           :                          # when using an authenticating proxy
#   ProxyPassword       :                      # when using an authenticating proxy
    Lookback            : 90                                   # minutes
    UpdateArtifactState : True                                 #
    StateExtractorClass : BasicActionsAndArtifactsExtractor(message) # used if above is True
    Debug               : False                                #
  
Subversion:
#   Server              : svnsvr.company.com                   # specify if repo is not local
    RepositoryBase      : C:/Users/jpkole/vcs-svn/My-Svn-proj1 # Pathname to the centralized master Subversion repository
    Lookback            : 90                                   # minutes
    MaxItems            : 100                                  # maximum items to process in a run
#   RevURI              : http://svn/svnurial/bigproject/rev/{revnumber}             # if running web access to repo
#   FileURI             : http://svn/svnurial/bigproject/file/{revnumber}/{filepath} # if running web access
  
Services:
    Preview             : false                                # when True, show what would happen
    LogLevel            : Debug                                # default value is Info
#   PostBatchExtension  : MetricsPoster                        # for future use
  
Transforms:
Author              : FileBasedUserNameLookup(user_map.txt,":")
#   Author              : Passthru                             # the default
#   Author              : EmailAddressAsRallyUser
#   Author              : RallyUserNameLookup(FirstName,LastName)
#   Author              : UserLookupChainGang(FirstName,LastName,user_map.txt,":")
#   Author              : UserNameDomainAugmentLookup(MyDomain.com)
...

Linux でのインストール

Subversion (SVN)から CA Agile Central へのコネクタは、CA Agile Central 内のアーティファクトに対するコード変更のトレーサビリティを表示します。SVN がインストールされている場合は、ファイルを確認したり、変更を加えたり、Linux に再度チェックインするために使用できます。

このインストール ガイドを使用して、Linux で SVN を実行したり、SSH をセットアップしたりできます。

注: このドキュメントは、Subversion コネクタの最新バージョンのポーリング方法に適用されます。

Linux SVN コネクタおよび SSH をインストールする手順は以下のとおりです。

SVNServer への SSH アクセスのセットアップ

SVN がインストールされているのと同じマシンで、以下の手順に従います。

  1. SvnServer にアクセスするために SSH 情報を生成します。
    $ ssh-keygen -N "" -f ~/.ssh/id_rsa
    Generating public/private rsa key pair.
    /Users/jpkole/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    Your identification has been saved in /Users/jpkole/.ssh/id_rsa.
    Your public key has been saved in /Users/jpkole/.ssh/id_rsa.pub.
    The key fingerprint is:
    bb:40:28:be:54:1f:21:77:01:e5:fa:60:f8:a4:71:11 [email protected]
    The key's randomart image is:
    ......
  2. 生成されたキーを SVNServer にコピーします。
    $ scp ~/.ssh/id_rsa.pub spp-vmubuntu64.f4tech.com:.ssh/id_rsa.pub.mylaptop
    [email protected]'s password:
    $ ssh supp-vmubuntu64.f4tech.com 'cat ./.ssh/id_rsa.pub.mylaptop >> ./.ssh/authorized_keys'
    [email protected]'s password:
  3. SSH セットアップをテストして、theSvnServer にアクセスできることを確認します。
    $ ssh supp-vmubuntu64.f4tech.com ls -l
    total 16
    -rw-r--r-- 1 jpkole jpkole 8445 May 30 11:22 examples.desktop
    -rw------- 1 jpkole jpkole 410 May 30 11:32 x

一元化マスタ リポジトリの作成

一元化マスタ リポジトリは、チームがすべてのコミットメントおよびコード変更を格納する場所です。SVN コネクタへのコード変更のパスは、実行時に一元化マスタ リポジトリから取得します。

例:

  • SvnServer 用インターフェース: http://supp-vmubuntu64.f4tech.com/websvn/
  • Powered by WebSVN 2.3.3 and Subversion 1.7.5 ✓ XHTML & CSS
  • SvnServer 上の既存の subversion リポジトリ名と、その対応する Web アドレス:
    • myrepo --- http://supp-vmubuntu64.f4tech.com/svn/myrepo/
    • joe_repo --- http://supp-vmubuntu64.f4tech.com/svn/joe_repo/
  • リモートの SvnServer ファイルシステムでは、subversion リポジトリは次の場所に存在します: /var/subversion/*

一元化マスタ リポジトリを作成するには、以下の手順に従います。

  1. リモート SVNServer にログインします。
    $ ssh [email protected]
    [email protected]'s password:
    #
  2. リモート SvnServer で、現在インストールされている SVN のバージョンを確認します。
    # svn --version
    Example: svn, version 1.7.5 compiled Jun 22 2013, 03:54:07
  3. リモート SVNServer は、有効な SVN ユーザのリストを保持します。これは、SVNServer へのログインを許可されたユーザの Ubuntu のリストとは別のものです。SVN ユーザ名認証情報は、SVNServer 上の /etc/apache2/svn.passwd ファイルに格納されます。新しい SVN ユーザを追加するには、SVNServer でこのコマンドをルートとして入力します。
    # htpasswd -m /etc/apache2/svn.passwd jpkole
    New password:
    Re-type new password
  4. SVNServer で Ubuntu ユーザとして同じユーザ名を追加し、SSH セットアップ プロセスを開始します。
    # adduser jpkole
    # mkdir -p ~jpkole/.ssh
    # chmod 700 ~jpkole/.ssh
    # chown jpkole ~jpkole/.ssh
  5. SVN で、一元化マスタ リポジトリを作成します。
    # su www-data
    $ bash - l
    $ svnadmin create /var/subversion/Demo-centralized-master-repo
  6. 一元化マスタ リポジトリを同期するために使用されるソース ファイルを含む、一時ディレクトリを作成します。
    $ mkdir /tmp/tmp-proj
    $ echo "# Our first source file" > /tmp/tmp-proj/hw.rb
  7. 新しい一元化マスタ リポジトリを一時プロジェクト ディレクトリと同期します。
    $ svn import /tmp/tmp-proj file:///var/subversion/Demo-centralized-master-repo -m "JPs master svn repo"
    Adding /tmp/tmp-proj/hw.rb
    Committed revision 1.
  8. サーバを終了するには、以下のコマンドを使用します。
    exit # from bash -l
    exit # from su www-data
    exit # from SvnServer as root

リポジトリのコピーをチェックアウトし、必要に応じて変更を加える

注: 初めて変更をコミットする場合は、パスワードが要求されます。

  1. SVNServer から、SVN がインストールされているマシン上の作業コピー リポジトリ(ディレクトリ)に、一元化マスタ リポジトリのバージョンをチェックアウトします。
    $ cd ~
    $ svn checkout http://supp-vmubuntu64.f4tech.com/svn/Demo-centralized-master-repo Demo-working-copy-repo
    A Demo-working-copy-repo/hw.rb
    Checked out revision 1.
  2. ローカルの作業コピー リポジトリで、ソースに変更を加えます。
    $ echo puts '"Hello world - 1st change!"' >> Demo-working-copy-repo/hw.rb
  3. SVNServer で、一元化マスタ リポジトリに変更をコミットします。
    $ svn commit -m "DE421 Fixed - change #1" Demo-working-copy-repo
    Authentication realm:  Subversion Repository
    Password for "jpkole":
    Sending Demo-repo-working-copy/hw.rb
    Transmitting file data .
    Committed revision 2.
  4. テストを行うには、もう 1 つ変更を加えてコミットします。
    $ echo puts '"Hello world - 2nd change!"' >> Demo-working-copy-repo/hw.rb
    $ svn commit -m "DE421 Fixed - change #2" Demo-working-copy-repo
    Sending Demo-repo-working-copy/hw.rb
    Transmitting file data .
    Committed revision 3.
  5. SVNServer 上の一元化マスタ リポジトリに変更が反映されていることを確認します。
    $ svn log http://supp-vmubuntu64.f4tech.com/svn/Demo-centralized-master-repo
    ------------------------------------------------------------------
    r3 | jpkole | 2013-07-25 14:37:04 -0600 (Thu, 25 Jul 2013) | 1 line
    
    DE421 Fixed - change #2
    ------------------------------------------------------------------
    r2 | jpkole | 2013-07-25 14:34:35 -0600 (Thu, 25 Jul 2013) | 1 line
    
    DE421 Fixed - change #1
    ------------------------------------------------------------------
    r1 | www-data | 2013-07-25 13:55:58 -0600 (Thu, 25 Jul 2013) | 1 line
    
    JPs master svn repository
    ------------------------------------------------------------------

 

トラブルシューティング

ログ ファイルのメッセージを参照

コネクタは実行時に、以下の 2 つのログ ファイルを生成します。

  • log/svn2ca_agile_central.log — コネクタのステータスを示すグローバル ログ ファイル。
  • logs/.log - コマンド ラインで指定された設定ファイルごとに、このファイルは、その設定ファイルのすべての問題に関する情報を含むログ ファイルになります。

RepositoryName では大文字と小文字を区別

設定ファイルには、CA Agile Central 内の SCMRepository オブジェクトの名前である、RepositoryName: Chien1 のような行が含まれています。この名前では大文字と小文字が区別されます。名前が誤って chien1 として指定された場合、以下のようなログ ファイル エラーが表示される可能性があります。

 INFO : RallyVCSConnection.validate - SCMRepository: chien1
DEBUG : RallyVCSConnection.getSCMRepository - No SCMRepository named |chien1| in Workspace: |WS1|
 INFO : RallyVCSConnection.createSCMRepository -
        Creating SCMRepository 'chien1' (Subversion) in the 'WS1' workspace...
ERROR : UnrecoverableException (/Users/...../exceptions.rb:42 line in `initialize') -
        Unable to create SCMRepository: 
        Error on request - https://rally1.rallydev.com/slm/webservice/1.40/scmrepository/create.js -
                {:errors=> ["Validation error: SCMRepository.Name:
                There is already a SCMRepository with the name 'chien1' in this Workspace"], ... ]}

Ruby に関する考慮事項

このソフトウェアは Ruby で記述され、サポートされているバージョンの Ruby インタープリタで実行する必要があります。バージョン 1.6.0 の時点でサポートされている Ruby のバージョンは 2.2.6 です。Windows プラットフォームでコネクタを実行する場合は、適切な Ruby 開発キットをインストールしている必要があります。詳細については、「前提条件」を参照してください。

有効なアーティファクトが記述されていない

この問題は、コネクタ ユーザが権限を持たないプロジェクトに対して、コネクタが変更セットを追加しようとすると発生します。

DEBUG : RallyVCSConnection.extract_artifact_references - No valid artifacts were mentioned in message
DEBUG : RallyVCSConnection._createInternal - Created Changeset: OID: 4935999999  Revision: 14d0f533084c700f Timestamp:|2016-01-06T14:58:01.000Z| (not associated with any Artifacts)

ヘルプを表示

質問、問題、または提案がある場合は、CA Agile Central の任意のページの下部にある[サポートに問い合わせ]リンクを選択してください。

リビジョン履歴

  • 1.6.0-master --- 2018 年 5 月 25 日
    • 機能強化:
      • 統合ディストリビューション、TLS V1.2 のサポートに Ruby 2.2.6 の使用が必要です。
  • 1.5.3-master --- 2017 年 12 月 12 日
    • 機能強化:
      • すべての vcs-eif コネクタを同期します。
  • 1.5.1-master --- 2017 年 9 月 12 日
    • 機能強化:
      • 変換の対象となるフィールドにメッセージが追加されました。
      • Ruby 2.2.6 での使用が保証されました。
  • 1.4.3-master --- 2016 年 10 月 24 日
    • 機能強化:
      • 1 つのコミット後に処理を行えるようロジックが更新されました。
  • 1.4.1-master --- 2016 年 10 月 17 日
    • 修正:
      • 空のリポジトリを処理する際にキャッチされなかった例外に対処されました。
  • 1.4.0-master-1046 --- 2015 年 11 月 16 日
    • 機能強化:
      • ブランドの再設計。

  • 1.3.2-master-1043 --- 2015 年 8 月 1 日
    • 機能強化:
      • APIKey エントリの使用に対するサポートが追加され、現在もサポートされている ApiKey の使用よりも優先してこの APIKey の使用を奨励するようにドキュメントが改訂されました。

  • 1.3.1-master-1040 --- 2015 年 6 月 19 日
    • 機能強化:
      • CA Agile Central の任意のユーザ名値を小文字に変換する機能のサポートが追加され、CA Agile Central およびターゲット VCS システムからの取得のシーケンスが反転して、rally_api に対する依存関係が 1.2.1 に更新されました。

  • 1.3.0-master-1038 --- 2015 年 4 月 29 日
    • 修正:
      • CA Agile Central の変更セット メッセージ フィールドの長さ制限である 4000 バイトを超える長さのマルチバイト文字を含む、コミット メッセージを処理します。
    • 機能強化:
      • rally_api に対する依存関係が 1.2.0 に更新されました。

  • 1.2.9-cib1037 --- 2015 年 3 月 10 日
    • 修正:
      • JSON エンコーディング拡張に対応するために 4000 文字を超えるコミット メッセージの処理が調整されました。

  • 1.2.8-cib1036 --- 2015 年 3 月 1 日
    • 機能強化:
      • 角かっこで囲まれたコミット メッセージ内のアーティファクト識別子を識別する機能が向上しました。

  • 1.2.6-cib1035 --- 2015 年 1 月 26 日
    • 機能強化:
      • rally_vcs_connection.rb configureExtensionEnvironment および statex.rb がカスタム アーティファクト プレフィックスに対応するよう更新されました(ディフェクトの場合「BUG」など)。
      • rally_api に対する依存関係がバージョン 1.1.2 に更新されました。

  • 1.2.5-cib1033 --- 2014 年 10 月 15 日
    • 機能強化:
      • CA Agile Central Web サービス API v2.0 および更新済みの rally_api gem を使用するよう更新されました。

  • 1.2.4-cib1031 --- 2014 年 9 月 16 日
    • 機能強化/修正:
      • 設定ファイルの CA Agile Central 部分でユーザ名とパスワードの代わりに API キーを使用するためのサポートが追加されました。
      • rally_api ツールキット バージョン 1.0.1 に更新されました。

  • 1.2.3-cib1030 --- 2014 年 9 月 15 日
    • 機能強化/修正:
      • DE21993 を修正 - CA Agile Central のコミット メッセージ フィールドの 4000 文字という制限に対応するために、コミット メッセージがこの文字制限を超える場合、制限を超えた文字が切り捨てられます。切り捨てが発生すると、コミット メッセージに切り捨ての注釈が追加され、ログ ファイルに警告メッセージが表示されます。

フィードバック

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