次の方法で共有


Azure Repos Git で Go install コマンドのサポートを使用する

Azure DevOps Services |Azure DevOps Server 2022 および Azure DevOps Server 2019

Go はオープンソースのプログラミング言語であり、Golang とも呼ばれます。 Go では、 install コマンドを使用してパッケージと依存関係をダウンロードしてインストールできます。 Azure Repos Git では、Azure Repos Git リポジトリ内の go install がサポートされます。 go installを使用すると、インポート パスによって名前が付けられた依存関係を含むパッケージをダウンロードできます。 次のセクションで説明するのと同じ構文を使用して、go ファイル内の import キーワードを使用してインポート パスを指定することもできます。

パブリック プロジェクトでインストールする

Azure Repos Git リポジトリが パブリック プロジェクト内にある場合は、次の形式の Web リポジトリ URL を使用して go install を使用できます。 バージョンの場合は、 latest または特定のバージョンを使用できます。

go install dev.azure.com/<organization>/<project>/_git/<repo>.git@<version>

次の例に示すように、サブフォルダー名を追加して、リポジトリのサブフォルダーに Go パッケージをインストールすることもできます。

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1@<version>

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1/subfolder2@<version>

プライベート プロジェクトでインストールする

Azure Repos Git リポジトリがプライベートの場合は、SSH キー、Microsoft Entra ID トークン (推奨)、または個人用アクセス トークン (AT) を使用して認証できます。

Von Bedeutung

go installを使用してプライベート Azure Repos Git リポジトリにアクセスするには、まず環境変数をGOPRIVATE=dev.azure.com設定する必要があります。 ビルドまたは実行する前に、この環境変数をローカルで設定できます。

SSH

go installで SSH を使用するには、「SSH キー認証を使用する」の説明に従って、Azure DevOps 用に SSH キーを設定します。

SSH キーを設定したら、次のエントリを your.gitconfig ファイルに追加します。

[url "git@ssh.dev.azure.com:v3/<organization>/<project>/<repo>"]
	insteadOf = https://dev.azure.com/<organization>/<project>/<repo>

このエントリと特定の URL 形式を使用して、 go installを使用できるようになりました。

リポジトリ名の後に必ず .git を使用してください。 また、 SSH URL を使用しているため、に渡すパッケージ URL には含まれません。

go install dev.azure.com/<organization>/<project>/<repo>.git

HTTPS

go installで HTTPS を使用するには、Microsoft Entra ID トークン (推奨) または個人用アクセス トークン (AT) を使用して認証できます。

Microsoft Entra ID トークンは、より優れたセキュリティを提供し、推奨される認証方法です。 これらのトークンは、次の方法で取得できます。

  • Azure CLI (開発/テスト用):

    az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
    
  • サービス プリンシパル (運用/自動化されたシナリオの場合):

    • アプリケーションを Microsoft Entra ID に登録します
    • アプリケーションのクライアント シークレットを作成する
    • Azure DevOps でアプリケーションに適切なアクセス許可を付与する
    • サービス プリンシパルの資格情報を使用してプログラムでトークンを取得する

詳細については、Microsoft Entra 認証に関するページを参照してください。

Microsoft Entra ID トークンを取得したら、次のエントリを .gitconfig ファイルに追加します。

[url "https://<user>:<token>@dev.azure.com/<organization>/<project>/_git/<repo>"]
	insteadOf = https://dev.azure.com/<organization>/<project>/_git/<repo>

<user>部分には、任意の空でない文字列を指定できます。entraまたはユーザー名を使用することをお勧めします。

ヒント

Azure CLI から 1 回限りの Microsoft Entra トークンを取得する: Azure CLI を使用して Git 操作用の Microsoft Entra ID トークンをすばやく取得できます。これは、開発とテストのシナリオに役立ちます。 サービス プリンシパルに代わってトークンを生成する場合は、最初に サービス プリンシパルとしてサインイン してください。

トークン管理: Microsoft Entra ID トークンには有効期限があるため、定期的に更新する必要がある場合があります。 自動化されたワークフローの場合は、適切なトークン更新メカニズムでサービス プリンシパルを使用することを検討してください。

個人用アクセス トークン (代替)

PAT を使用する場合は、「 個人用アクセス トークンを使用したアクセスの認証」の説明に従って PAT を作成します。 この PAT では、コード (読み取り)スコープのみが必要です。

PAT を作成したら、次のエントリを .gitconfig ファイルに追加します。

[url "https://<user>:<token>@dev.azure.com/<organization>/<project>/_git/<repo>"]
	insteadOf = https://dev.azure.com/<organization>/<project>/_git/<repo>

<user>部分には、任意の空でない文字列を指定できます。patという単語をお勧めします。

このエントリと特定の URL 形式を使用して、 go installを使用できるようになりました。

リポジトリ名の後に必ず .git を使用してください。

go install dev.azure.com/<organization>/<project>/_git/<repo>.git@<version>

次の例に示すように、サブフォルダー名を追加して、リポジトリのサブフォルダーに Go パッケージをインストールすることもできます。

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1@<version>

go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1/subfolder2@<version>