git - 下载 GitLab 私有(private)仓库

标签 git curl github gitlab

我想使用 curl 在 GitLab 中下载我的私有(private)仓库。我知道我可以使用 Gitlab API,但出于某种原因,它不起作用。

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

最佳答案

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

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

    1. 转到 Your Profile > Settings > Access Tokens .

    2. 为您的“个人访问 token ”输入一个名称。

    3. 选中“api 访问经过身份验证的用户的 API”

      Personal Access Tokens

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

    5. 页面将重新加载并保存您的新 token 。

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

      New "Personal Access Token"

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

    1. 转到 https://gitlab.com/api/v4/projects?private_token=XXXXXXXXXXXXXXXXXXXX (用你的新 token 替换 Xs)

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

      Project 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://gitlab.com/api/v4/projects/24470128/repository/archive?private_token=XXXXXXXXXXXXX&sha=606e81c69eff27eccbbc59a0546a9439780dff55

关于git - 下载 GitLab 私有(private)仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24463229/

相关文章:

Git如何给人们推送需要由组织者 merge 的访问权限?

git - 调整脚本以 pull 所有远程分支

git - 如何在系统中没有安装git的情况下安装golang包?

git - 我可以在 git 存储库中添加一个作为子目录的依赖包吗?

python-3.x - 在 python 3 中请求 HTTP/2 切换协议(protocol)

github - 如何使用 GitHub API 一次检索多个用户?

git - 如果您一直在使用 git merge origin/master , git reset --soft origin/master 会失败吗?

php - 使用 cURL 保存远程图像?

grails - Grails像帖子一样测试Curl

github - github搜索限制结果