ホームページ >バックエンド開発 >Golang >個人用 Git リポジトリで「go get」でパッケージを利用できるようにするにはどうすればよいですか?

個人用 Git リポジトリで「go get」でパッケージを利用できるようにするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 12:28:02811ブラウズ

How to Make a Package Available for

個人 Git リポジトリでの「go get」の使用: 総合ガイド

課題

個人用 Git リポジトリでパッケージを「go get」できるようにしようとすると、「インポート パスが認識されません」というエラー メッセージが表示されることがよくあります。この記事では、この問題に対する包括的な解決策を提供します。

META タグについて

Go では、パッケージの内容を指定する Git リポジトリのルート HTML ページに META タグが必要です。インポートパスとリポジトリURL。構文は次のとおりです。

<meta name="go-import" content="import_path git repo_url">

サーバーのセットアップ

「go get」機能が動作するには、Git リポジトリをホストするサーバーを構成する必要があります。 「?go-get=1」パラメータを使用してリクエストが行われたときに META タグを返すようにします。

推奨 nginx 構成

次の nginx 書き換えルールを使用できます。これを達成するために使用されます:

location ~ "(/[^/]+/[^/]+)(/.*)?" {
    if ($arg_go-get = "1") {
            echo '<html><head><meta name="go-import" content="my.domain.com git git+ssh://[email protected]"/></head></html>';
    }
    try_files $uri $uri/index.html $uri.html @gitlab;
}

このルールは、Git リポジトリへの SSH アクセスを前提としています。 HTTPS が使用されている場合は、それに応じて URL を変更します。

META タグの例

リクエスト "http://mygit.server/group/project?go-get=1" " は次の META タグを返すはずです:

<meta content='mygit.server/group/project git git+ssh://[email protected]/group/project.git' name='go-import'>

パッケージのテスト

サーバーを構成した後、パッケージが "go get" に利用できるかどうかを確認できます。次のコマンドを実行します:

<code class="Bash">go get example.com/user/package</code>

このコマンドはパッケージを正常にダウンロードしてインストールします。

以上が個人用 Git リポジトリで「go get」でパッケージを利用できるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。