我在 BitBucket 中有超过 100 个存储库。我想订阅所有存储库的所有通知。我可以一一完成(转到每个存储库 - >“...”选项 - >管理通知 - >选择所有通知)
但也许有人知道一种方法来对项目的所有存储库执行此操作。 有人能帮我吗?谢谢你的时间。 乔恩
如果您使用 Bitbucket Server,执行此操作的一种方法是获取所有存储库名称并循环它们,并向
watch
所有存储库发送请求。可以使用 api 文档中定义的查询参数进一步过滤此查询。
DATA
中,作为带有键 project
和 repo
的对象数组。这些是创建新的 watch
请求POST
向.../watch
POST
中,X-Atlassian-Token
标头是必需的,因为 Atlassian api 检查 CSRF 验证,如果省略,将发送错误。 这只能用于 cli 请求。#!/bin/bash
BASEURL=""
APIKEY=""
readarray -t DATA < <(curl -X GET https://$BASEURL/rest/api/latest/repos \
-H "accept: application/json" \
-H "authorization: Bearer $APIKEY" \
-H "cache-control: no-store" \
| jq -c ' .values[] | {repo: .slug, project: .project.key} ')
for repo in "${DATA[@]}"
do
REPO=$(jq -r ' .repo' <<< $repo)
PROJ=$(jq -r ' .project' <<< $repo)
echo -e "Processing $REPO : $PROJ"
curl -X POST https://$BASEURL/rest/api/latest/projects/$PROJ/repos/$REPO/watch \
-H "authorization: Bearer $APIKEY" \
-H "X-Atlassian-Token: no-check"
done;
Atlassian 在使用 API 时存在一个小问题。此操作后
Manage Account > Watched repositories
似乎没有更新。如果您查看实际的存储库,您将看到 Watching
图标已更新。我向他们提交了一个错误 https://support.atlassian.com/requests/CA-2562481/