Bitbucket Cloud API:有没有办法编辑存储库中的文件?

Bitbucket Cloud API: is there a way to edit a file in a repo?

提问人:Niall Hodgen 提问时间:7/3/2023 更新时间:10/12/2023 访问量:81

问:

Bitbucket Server API 文档概述了用于提交 PUT 请求和编辑指定存储库中的文件的端点。但是,Bitbucket Cloud API 似乎没有包含相同的功能。

是否有直接或间接的方法来使用 Bitbucket Cloud API 编辑文件?

我的具体用例是每次成功发布生产版本时,都会增加生成管道 YAML 文件中指定的版本号。

当前为 Bitbucket 服务器 API 提供的 Python 模板如下所示:

import requests
import json

url = "http://{baseurl}/rest/api/latest/projects/{projectKey}/repos/{repositorySlug}/browse/{path}"

headers = {
  "Accept": "application/json"
}

response = requests.request(
   "PUT",
   url,
   headers=headers
)

print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))

但是,Cloud API 基本 URL 显然不同,因此无法正常工作。

bitbucket-pipelines bitbucket-api bitbucket-cloud

评论


答:

0赞 Niall Hodgen 10/12/2023 #1

在 Bitbucket Cloud API 上解决此问题的方法是:

  1. 获取我要编辑的原始文件

  2. 将此文件的内容写入具有相同名称的新空文件

  3. 编辑文件内容以满足我的需要

  4. POST 编辑后的文件(将同名文件发布到同一位置会导致覆盖原始文件)

注意事项:

  • 我使用 Python 编写脚本,使用 Requests 库进行 HTTP 调用,并使用其他几个库根据需要解析文件。
  • 我的脚本直接提交到主分支。为此,您需要确保自己不受任何分支限制的阻碍。我必须为我们用来执行任何此类自动化任务的 CI 帐户创建一个例外。