当前位置: 首页 > 面试题库 >

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

储峻
2023-03-14
问题内容

我在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查看器会很有帮助)

  • 然后打印该项目上文件的列表,并找到您要查找的文件的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



 类似资料:
  • 我的web应用允许用户上传文件,我想为此使用Cloud azure blob存储。 由于下载将非常频繁(超过上传),我想节省服务器计算时间和带宽,并直接从azure blob服务器提供文件。 我相信这是可能的,在谷歌云上使用Firebase(火库)。在那里你可以直接从客户端上传和下载。(我知道身份验证和授权也由Firebase管理,所以它让事情变得更容易) Azure上是否存在类似的机制/服务?

  • 在java构建期间,我如何在azure管道中访问Gitlab的私有maven存储库,该管道依赖于Gitlab repo中的jar文件?

  • 因此,我在gitlab上有一个项目test-project(https://gitlab.com/group/test-project),这是一个我使用gitlab管道构建和部署的java应用程序。在构建阶段,我正在执行,包test-project.jar被推送到gitlab maven存储库(https://gitlab.com/group/test-project/-/packages)。 现

  • 有没有什么简单友好的方法让我的私人回购对自己透明?

  • 在本章中,我们将讨论如何从一个Bitbucket导入一个仓库到GitLab: 步骤(1): 登录到您的GitLab帐户并点击仪表板中的New project按钮: 步骤(2): 单击导入项目选项卡下的按钮: 步骤(3): 接下来,您需要登录到您的帐户。 如果您没有帐户,请点击注册链接创建一个新帐户,然后登录到帐户。 步骤(4): 当点击按钮(如步骤2所示)时,它将显示下面的屏幕并点击授予访问按钮:

  • 问题内容: 我正在尝试运行一个容器,该容器将公开私有GitHub存储库上的软件包中的golang服务。 由于我与GCE合作,因此我的入门图片是google / debian:wheezy。 安装所有必需的依赖项和工具后,我正在运行 包裹是私人仓库。 我添加了GitHub SSH密钥以允许从私有存储库克隆到docker文件: 尽管如此,当go尝试克隆存储库时,我在go get流程中遇到了一个错误: