直接从GitLab私有存储库打开一个文件

我有一个GitLab服务器上的私人存储库,并使用SSH我可以使用git克隆拉项目。

但是我想直接从服务器(更具体地说,一个Drupal / Drush .make文件)在Linux命令行上运行一个脚本,

我试图使用原始文件运行它:

drush make http://server.com/user/project/raw/master/file.make 

(为了方便非Drupal用户,让我们假设)

 curl http://server.com/user/project/raw/master/file.make 

没有成功。 当然,它返回我的login页面。

可能吗?

Solutions Collecting From Web of "直接从GitLab私有存储库打开一个文件"

有了Chris的宝贵帮助,以下是如何从GitLab服务器运行脚本(在我的情况下是drupal .make文件)。 (可能它适用于GitHub,但我没有测试它,也许语法会有点不同)。 (当然这适用于任何类型的脚本)

它可以使用认证令牌完成。 这里是GitLab的API的文档, 这里是GitHub的API

为了方便,我将使用https://gitlab.com作为示例服务器。

  • https://gitlab.com/profile/account并找到你的“私人令牌”

  • 然后打印项目列表,找到您正在寻找的项目的ID

    curl https://gitlab.com/api/v3/projects?private_token=<your_private_token>

    或者用你的浏览器去那里(一个json查看器会帮助很多)

  • 然后打印这个项目上的文件列表,找到你正在查找的文件的ID

    curl https://gitlab.com/api/v3/projects/<project_id>/repository/tree?private_token=<your_private_token>

  • 最后得到/运行文件!

    curl https://gitlab.com/api/v3/projects/<project_id>/repository/raw_blobs/<file_id>?private_token=<your_private_token>

如果你想运行脚本(drupal .make)

drush make https://gitlab.com/api/v3/projects/<project_id>/repository/raw_blobs/<file_id>?private_token=<your_private_token> <drupal_folder>

(如果你在这里寻找一个工作流,将GitLab和Aegir .make平台整合起来,而不使用令牌(也许是SSH?),请创建一个线程并粘贴到这里。)

编辑

您可以通过使用编码的项目名称来获取没有project_id的文件。 例如, my-user-name/my-project将变为: my-user-name%2Fmy-project