gpt4 book ai didi

git - Pip 在 Gitlab-CI 上使用个人访问 token 安装来自 Gitlab 的私有(private)仓库

转载 作者:行者123 更新时间:2023-12-04 08:47:00 24 4
gpt4 key购买 nike

我正在使用 Gitlab 托管两个私有(private) Python 包。一个,比如包 B,依赖于另一个,比如 A。
我想正确设置包 B,所以我有一个 setup.py

install_requires=[
'packagea @ git+https://gitlab.com/me/packagea.git',
...
]
以及一个 requirements.txt 包含
git+https://gitlab.com/me/packagea.git@v1.0.1
当用户使用 pip install git+https://gitlab.com/me/packageb.git 安装包 B 时,效果很好。 ,或者当用户克隆包 B 然后运行 ​​ pip install -r requirements.txt .
但是,我想在包 B 上设置持续集成。我的 gitlab-ci.yml 看起来像
image: python:3.7
before_script:
- pip install -r requirements.txt

pylint:
script:
- pylint **/*.py
这失败了,因为 Gitlab-CI 运行器没有任何用户名/密码来验证和提取包 A 存储库。我读过我可以为 CI 运行器生成一个个人访问 token 以进行身份​​验证,但这意味着 setup.py 和 requirements.txt 包含该 token 。这对我来说似乎很难看(我希望其他用户仍然使用他们自己的用户名/密码)。
我怎样才能做到这一 pip ?

最佳答案

万一有人像我一样在试图解决这个管道问题时迷路了,帮助我的解决方案是 this Gitlab issue and the discussion below .
总结一下:
.gitlab-ci.yml将这些行添加到您的 before_script部分:

before_script
- ...
- echo "machine gitlab.com" > ~/.netrc
- echo "login gitlab-ci-token" >> ~/.netrc
- echo "password ${CI_JOB_TOKEN}" >> ~/.netrc
- if [ -f "requirements.txt" ]; then pip install -r requirements.txt ; fi
在您的 requirements.txt文件,使用名称、url 和 egg 指定私有(private)依赖项(egg 必须是
包裹名字)。例如
thispackageisonpip>=1.2.3
soisthisone==1.0.0
...
privatepackage @ git+https://gitlab.com/user/repository.git@tag#egg=privatepackage
其中标签是例如'v1.3.3'(请注意,必须有一个标记版本才能 checkout )。
私有(private)包现在应该被管道成功 checkout 。在 install_requires 中指定要求的情况下,我无法让它工作。的 setup.py ,但至少这是可行的。

关于git - Pip 在 Gitlab-CI 上使用个人访问 token 安装来自 Gitlab 的私有(private)仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64266246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com