プライベートパッケージ
TLドクター
gitサブモジュール
どうしたの?
あなたがベストプラクティスに従っているとき、状況を想像してください.そして、異なる部分であなたのコードを分割します、そして.それらを収集する問題に直面する.
残念ながら、goはプライベートパッケージをサポートしていません.
では、どうやって?
私が直面した状況を説明します.GITLABサブグループにあるプライベートGo - modパッケージ(例:
まず、gitlabサブグループを実際にサポートしないでください.この問題を回避するには、goprivate env変数を設定して追加する必要があります.最後にgit
長所ネイティブの経験
短所 sshキーは を設定しなければなりません gomodパッケージ名は、命名(最終的に と完全に対応しなければなりません
問題解決.か?
最初の問題は30分後に直面した.これはCI/CD、またはちょうどステップを構築している.
前の「要約」から理解されるように、SSHキーを加えなければなりません.Dockerを使ってプロジェクトを構築し、ssh keyをdockerfile buildに渡すのは実際にセキュリティ上の問題です.
代替法
私はgitのサブモジュールで解決策を見つけ、機能を
例えば、
サブモジュールの追加
PS .あなたのCIで引っ張っているサブモジュールを加えるのを忘れないでください!GitLabの場合には、
読んでくれてありがとう!
gitサブモジュール
どうしたの?
あなたがベストプラクティスに従っているとき、状況を想像してください.そして、異なる部分であなたのコードを分割します、そして.それらを収集する問題に直面する.
残念ながら、goはプライベートパッケージをサポートしていません.
では、どうやって?
私が直面した状況を説明します.GITLABサブグループにあるプライベートGo - modパッケージ(例:
gitlab.com/org/department/repo1.git
など)まず、gitlabサブグループを実際にサポートしないでください.この問題を回避するには、goprivate env変数を設定して追加する必要があります.最後にgit
$ GOPRIVATE="gitlab.com/org/department" go get gitlab.com/org/department/repo1.git
番目の障壁は、そのレポへのアクセスです.プラットフォームにSSHキーを追加しなければなりませんでした.長所
go.mod
)で問題解決.か?
最初の問題は30分後に直面した.これはCI/CD、またはちょうどステップを構築している.
前の「要約」から理解されるように、SSHキーを加えなければなりません.Dockerを使ってプロジェクトを構築し、ssh keyをdockerfile buildに渡すのは実際にセキュリティ上の問題です.
代替法
私はgitのサブモジュールで解決策を見つけ、機能を
.git
に置き換えます.go.mod
でプロジェクトのサブモジュールとして必要なREPOを追加し、git submodule add
にネーミング置換を追加します.例えば、
サブモジュールの追加
$ git submodule add ../repo1
新しく追加されたレポ$ git submodule update --init
代替案の追加replace gitlab.com/org/department/repo1.git => ./repo1
そして、それはすべてです!サブモジュールとして扱うパッケージはgoパッケージよりずっと簡単です.PS .あなたのCIで引っ張っているサブモジュールを加えるのを忘れないでください!GitLabの場合には、
go.mod
変数です.読んでくれてありがとう!
Reference
この問題について(プライベートパッケージ), 我々は、より多くの情報をここで見つけました https://dev.to/yuriizinets/go-private-packages-3boテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol