我想下载一个.zip与github上托管的库的源,但我不想要主人,因为每次下载我都可以下载不同的版本.
这个特殊的库没有标签,所以我不能使用它.
那么如何为特定的提交sha下载source.zip呢?
我正在setup.py为项目创建一个文件,该文件依赖于私有GitHub存储库.该文件的相关部分如下所示:
from setuptools import setup
setup(name='my_project',
...,
install_requires=[
'public_package',
'other_public_package',
'private_repo_1',
'private_repo_2',
],
dependency_links=[
'https://github.com/my_account/private_repo_1/master/tarball/',
'https://github.com/my_account/private_repo_2/master/tarball/',
],
...,
)
Run Code Online (Sandbox Code Playgroud)
我使用的setuptools,而不是distutils因为后者不支持install_requires和dependency_links参数每这一答案.
上面的安装文件无法访问带有404错误的私有存储库 - 这是预期的,因为GitHub会将404返回到未经授权的私有存储库请求.但是,我无法弄清楚如何进行setuptools身份验证.
以下是我尝试过的一些事情:
使用git+ssh://,而不是https://在dependency_links为我想如果安装与回购pip.这失败是因为setuptools无法识别此协议("未知的url类型:git + ssh"),尽管分发文档说它应该.同上git+https和git+http.
https://<username>:<password>@github.com/...- 仍然得到404.(此方法不能与命令行一起使用curl或wget从命令行使用 - 尽管curl -u <username> <repo_url> -O <output_file_name>确实有效.)
将setuptools(0.9.7)和virtualenv(1.10)升级到最新版本.也尝试安装分发虽然这个概述说它被合并回setuptools.无论哪种方式,没有骰子.
目前我只是setup.py打印出一个警告,必须单独下载私人回购.这显然不太理想.我觉得有一些显而易见的东西让我失踪,但却想不到它会是什么.:)
这里没有答案的重复问题.
在通过命令行访问GitHub API时是否有某种方法可以使用基于ssh的身份验证(例如,通过curl等?).
FWIW,我尝试了以下的许多变体(改变了我指定我的公共ssh密钥文件的方式),但在每种情况下我仍然提示我输入密码:
% curl --pubkey ~/.ssh/id_rsa.pub --user yrstruly https://api.github.com/user/repos
Run Code Online (Sandbox Code Playgroud)
我有一个嵌入式系统,我无法安装任何东西,我可能用来获取东西的唯一工具是wget.事实证明,你不能用curl做同样的事情.我也不能为这个系统交叉编译,所以我需要求助于Python或shell脚本.有一个名为Dulwich的git的纯Python实现实际上有一些我需要交叉编译的C代码......所以我甚至试图调查那个,仅供参考.
我需要的是从github存储库获取代码,显而易见的解决方案是使用它们提供的tarball.我通常会从存储库页面复制链接以下载zip按钮,并使用授权令牌而不是用户名和密码.它的工作非常简单,如下所示:
curl -L https://<token>@github.com/<org|user>/<repo>/archive/master.tar.gz | tar xz
Run Code Online (Sandbox Code Playgroud)
原来wget有点尴尬,无论我尝试过什么都行.
github ×4
curl ×2
git ×1
github-api ×1
linux ×1
python ×1
setuptools ×1
shell ×1
ssh ×1
wget ×1