使用 https API 将提交推送到 gitlab LFS

问题描述 投票:0回答:1

我想知道Gitlab的REST或GraphQL API(Gitlab社区版15.11.2)中是否有一种方法可以在将图像保存在LFS(大文件存储)中的同时提交图像。我知道有一个终点

https://gitlab.com/api/v4/projects/{project_id}/repository/commits

可以用来提交文件,但似乎不支持自动保存正在提交到LFS的文件。不幸的是,与 gitlab 的 LFS 的任何交互似乎都是通过 CLI 进行的。

一些解决方案建议向

发出请求
/api/v4/projects/{project_id}/lfs/objects

首先上传文件的端点,然后使用从响应中检索到的OID和LFS指针来调用前面提到的/repository/commits端点。然而,它似乎也不起作用。

我的唯一目标是将使用 REST 或 GraphQL API 提交的文件保存在 LFS 存储中。我正在考虑任何其他方法来实现这一目标,包括使用 gitlab 的 CI 管道、cron 脚本或我可能不知道的任何其他方法。

git gitlab git-lfs gitlab-api
1个回答
0
投票

根据Commits API,您可以通过以下方式推送/更新LFS文件:

  • action: delete
    首先是 LFS 文件(如果您想更新而不是新建)
  • action: create
    您需要的文件

因此,请求负载将是:

{
   "branch": "main",
   "commit_message": "msg",
   "actions": [
      {
         "action":"delete",
         "file_path":"YOUR_LFS_PATH"
      },
      {
         "action":"create",
         "file_path":"YOUR_LFS_PATH",
         "content": LFS_CONTENT_IN_BASE64_ENCODED
         "encoding":"base64"
      }
   ]
}

update
的技巧是使用
delete + create
而不是普通的
update

© www.soinside.com 2019 - 2024. All rights reserved.