GitLabはプライベート.git
リポジトリをホストする無料のオープンソースの方法ですが、Goでは動作しないようです。プロジェクトを作成すると、次の形式のURLが生成されます。
[email protected]:private-developers/project.git
どこ:
1.2.3.4
gitlabサーバーのIPアドレスですprivate-developers
プライベートリポジトリにアクセスできるユーザーグループですGolang 1.2.1はこの構文を理解していないようです。
go get [email protected]:private-developers/project.git
結果は:
package [email protected]/project.git: unrecognized import path "[email protected]/project.git"
これを機能させる方法はありますか?
この問題はGitlab 8. *で解決されましたが、まだ直感的ではありません。実際、最も難しい課題go get
は次のとおりです。次の手順を実行すると、それらを克服できます。
SSHキーペアを作成します。デフォルトでに保存されている既存のペアを上書きしないようにしてください~/.ssh/
。
ssh-keygen -t rsa -b 4096
Gitlabプロジェクトに新しいシークレット変数を作成します。キーSSH_PRIVATE_KEY
として使用し、秘密キーの内容を値として使用します。
あなたを変更し.gitlab-ci.yml
てbefore_script
。
before_script:
# install ssh-agent if not already installed
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
# run ssh-agent
- eval $(ssh-agent -s)
# add the SSH key stored in SSH_PRIVATE_KEY
- ssh-add <(echo "$SSH_PRIVATE_KEY")
# for Docker builds disable host key checking
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
手順1で作成したキーペアの公開キーを、必要なプロジェクトの展開キーとして追加しますgo get
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加