繁体   English   中英

下载 GitLab 私有存储库

[英]Download a GitLab private repository

我想使用curl在 GitLab 中下载我的私人存储库。 我知道我可以使用 Gitlab API,但由于某种原因,它不起作用。

这可能吗? 当我尝试这样做时,它总是返回登录页面。

可能的,只需按照以下步骤操作:

  1. 首先,您必须创建一个“个人访问令牌”:

    1. 转到您的个人资料 > 设置 > 访问令牌

    2. 输入“个人访问令牌”的名称。

    3. 勾选“ api访问认证用户的API”

      个人访问令牌

    4. 点击“创建个人访问令牌”

    5. 该页面将重新加载并保存您的新令牌。

    6. 确保将令牌保存在安全的地方,您将无法再次查看它。

      新的“个人访问令牌”

  2. 现在您有了“个人访问令牌”,您需要获取项目 ID 才能使用 API:

    1. 转到https://gitlab.com/api/v4/projects?private_token=XXXXXXXXXXXXXXXXXXXXX (用新令牌替换 X)

    2. 从 json 中获取项目的 id。

      项目编号

    (或者,您可以从其网页复制项目 ID)

  3. 现在你可以调用:

     wget -O your_project.tar.gz https://gitlab.com/api/v4/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX

这会将您的项目下载为.tar.gz文件。

编辑:您可以通过向 url 添加&sha=...参数来获取特定提交/标签的压缩包,例如: https : &sha=... 606e81c69eff27eccbbc59a05475a043ff

您可以使用属于您的私有令牌(在“配置文件设置”中找到)来访问任何资源。 只需浏览到您要下载的存储库文件,复制“原始”文件链接并附加 ?private_token=...

例子:

curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi

你可以,但你需要对自己进行身份验证(如“ Gitlab API:如何生成私有令牌”)

curl http://gitlab.server/api/v3/session --data 'login=myUser&password=myPass'

然后使用私有令牌

curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" "http://example.com/api/v3/projects"

或者,在您的情况下,获取存储库文件

GET /projects/:id/repository/files

或者,直接下载一个文件。

如果您需要在 CI 运行中执行此操作并且您的私有存储库位于同一服务器上,则您应该能够使用git 子模块同时克隆其他存储库。 自 GitLab 8.12 以来,使用${CI_JOB_TOKEN}另一个选项

如果您有自己的“个人访问令牌”(如其他答案中所述),您可以使用curl命令下载存储库分支的存档:

curl -k --header "PRIVATE-TOKEN: xxxx" https://gitlab.xxxxx/api/v4/projects/<projectID>/repository/archive?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c -o myFilename.tar.gz

ProjectID 显示在 repo 的主页上。 从下拉列表中选择您想要的分支并复制右侧的值作为 SHA 后,您可以从 webUI 获取 SHA 值。 请看下面的截图:

在此处输入图片说明

另一种方法是通过wget像这样:

wget --no-check-certificate -O myFilename.zip --header=PRIVATE-TOKEN:xxxx "https://gitlab.xxxx/api/v4/projects/<projectID>/repository/archive.zip?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c"

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM