我在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
没有成功。当然,它会返回登录页面。
可能吗?
在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查看器会很有帮助)
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
project_id
my-user-name/my-project
my-user- name%2Fmy-project