ホームページ  >  記事  >  バックエンド開発  >  Go でのプライベート モジュールのセットアップと利用

Go でのプライベート モジュールのセットアップと利用

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 17:16:031062ブラウズ

Setting up and utilizing private modules in Go

Go でプライベート モジュールを使い始めるのは、参照する適切なリソースがなければ、困難な作業になる可能性があります。これは、Go モジュールが中央リポジトリに保存または提供されるのではなく、別のリポジトリから取得できるようにするためです。例としては Github があります。

パブリック Go パッケージをプロジェクトにインポートするのは、単一のコマンドを実行するだけで簡単です。

$ github.com/author/module-name を取得します

一方、Go でプライベート モジュールをセットアップして使用するには、さらに多くの手順が必要になります。プライベート モジュールを使用すると、コードを公開することなく、選択したリポジトリでプライベート パッケージをホストして使用できます。

プライベート モジュールをセットアップするには、まずディレクトリを作成し、そこに移動します。次のコマンドを実行してモジュールを初期化します:

$ go mod init github.com/author/module-name

次のステップは、コミットし、モジュールのバージョン管理に役立つタグをコミットに追加し、モジュールをリポジトリ (この場合は Github) にプッシュすることです。

この例では、モジュールがプロジェクトのルートですが、別の go モジュールがルートであり、サブモジュールが存在する場合もあります。サブモジュールを使用すると、上記のコマンドは次のように変換されます:

$ go mod init github.com/author/root-module/module-name

プライベートリポジトリを取得しています
このモジュールは現在リポジトリでホストされていますが、プライベートであるため、プロジェクトでプルして使用する前に認証が必要です。プロジェクトは、Github アクションまたは dockerfile を通じて、ローカル環境変数を使用して認証することでモジュールにアクセスできます。

この記事では、ローカル環境変数を利用しながらプライベート リポジトリにアクセスすることに焦点を当てます。これは、次の 2 つのオプションで実現できます。

これら 2 つのオプションの両方で、GOPRIVATE 環境変数を設定することが要件です。 GOPRIVATE 環境変数は、Go コマンドがフェッチされるモジュールがパブリックかプライベートかを判断するのに役立ちます。これには、リポジトリのパッケージ名に対してチェックされるパターンが含まれており、この変数に一致するパッケージ名はパブリック Go キャッシュ サーバー経由で取得されません。

モジュール ディレクトリで以下のコマンドを実行して、GOPRIVATE 環境変数を設定およびエクスポートします。

$export GOPRIVATE=github.com/author/モジュール名

あるいは、Go env コマンドを使用して、以下のように GOPRIVATE 変数を設定することもできます。

$ go env -w GOPRIVATE=github.com/author/module-name
$ go env GOPRIVATE

*HTTP(S) の代わりに SSH 経由で取得するように git を構成する
*

Go get コマンドは、http または https を使用して git からモジュールを取得します。 SSH を使用してモジュールをプルするようにするには、git config ファイルを編集するか、次のコマンドを使用します。

$ go env -w GOPRIVATE=github.com/author/module-name
$ go env GOPRIVATE

*パーソナルアクセストークンを使用した Go の構成
*

GOPRIVATE 変数を設定した場合、このオプションでは他の 2 つの変数を設定してエクスポートする必要があります。

パーソナル アクセス トークンに設定された GITHUB_ACCESS_TOKEN 変数。Github の設定から作成できます: パーソナル アクセス トークン。必ずトークンに名前を付け、スコープ セクションでリポジトリを選択してください。

設定してエクスポートするもう 1 つの変数は、localhost に設定された GONOPROXY 変数です。これは、この URL がチェックサム データベースと比較されないことを強調します。

$ git config --global url."git@github.com:author/module-name".insteadOf "https://github.com/author/module-name"

最後に、生成された個人トークンを使用するようにグローバル git 構成を更新します。

$ export GONOPROXY=localhost 
$ export GITHUB_ACCESS_TOKEN=<your-token>

これらの設定を行うと、上記のオプションのいずれかを使用してプライベート モジュールをフェッチし、プロジェクトで使用できるようになります。モジュールをフェッチするには、 go run を実行します。コマンドを使用してプロジェクトをビルドすると、プロジェクトの依存関係の 1 つが追加されたときにモジュールがプルされるか、モジュールの github パスを指定して go get コマンドを実行します。

以上がGo でのプライベート モジュールのセットアップと利用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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