小编典典

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

linux

我在GitLab服务器上有一个专用存储库,使用SSH可以使用git clone拉出一个项目。

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

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

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

(为了方便非Drupal用户,我们可以说)

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

没有成功。当然,它会返回登录页面。

可能吗?


阅读 437

收藏
2020-06-07

共1个答案

小编典典

Chris的宝贵帮助下,您可以通过以下方法从GitLab服务器运行脚本(在我的情况下为drupal
.make文件)。(可能它适用于GitHub,但我没有对其进行测试。语法可能会有所不同)。(当然,这适用于任何类型的脚本)

可以使用身份验证令牌来完成。这里是GitLab的API的文档这里是GitHub的API

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

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>

(如果您在这里寻找不使用令牌(可能是SSH?)来集成GitLab与Aegir .make平台的工作流,请创建线程并将其粘贴在此处。)

编辑

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

2020-06-07