You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BitBucket Cloud获取所有Pipelines API未返回下一页问题排查

BitBucket Cloud流水线API无next分页链接问题

问题详情

我使用以下Python代码获取BitBucket Cloud仓库的所有流水线:

def get_pipelines(token, repo):
    """Return list of pipelines for repo"""
    full_pipeline_list = []
    next_page_url = f"https://api.bitbucket.org/2.0/repositories/{TEAM}/{repo}/pipelines/"

    headers = {"Accept": "application/json", "Authorization": f"Bearer {token}"}

    while next_page_url is not None:
        response = requests.request("GET", next_page_url, headers=headers, timeout=15)
        print(response)
        page_json = response.json()
        print(page_json)
        for repo in page_json["values"]:
            full_pipeline_list.append(repo)
        next_page_url = page_json.get("next", None)

    return full_pipeline_list

这段代码无法完整获取数据:API返回的结果中缺少next字段,当前响应显示总共有124条流水线记录,但仅返回10条(API最大支持每页100条),无法通过分页获取剩余数据。响应示例如下:

{
'page': 1,
'pagelen': 10,
'values': [{...}],
'size': 124
}

根据BitBucket Pipelines API文档:

next string
若存在下一页则提供链接。集合的最后一页无此字段。请使用该链接导航结果集,请勿自行构造URL。
格式: uri

明明存在100+条记录,理论上应该生成下一页链接,请问是代码遗漏了配置还是API存在Bug?

解决思路与方案

1. 确认工作区ID正确性

代码中{TEAM}必须使用BitBucket的工作区ID(而非显示名称),若使用显示名称,API可能返回异常分页结构,导致不生成next链接。

2. 显式设置分页大小

默认每页仅返回10条,显式指定pagelen=100(API允许的最大值),既能减少分页次数,也能验证分页链接是否正常生成。修改初始请求URL:

next_page_url = f"https://api.bitbucket.org/2.0/repositories/{TEAM}/{repo}/pipelines/?pagelen=100"

3. 校验Token权限

确保Bearer token拥有仓库的repository:pipeline:read权限,权限不足时API可能隐藏后续分页数据,导致next字段缺失。

4. 添加HTTP状态码校验

代码中仅打印response但未校验状态码,若请求返回403(权限不足)、429(限流)等非200状态,响应JSON可能不包含正确分页字段。建议在获取响应JSON前添加校验:

response.raise_for_status()

5. 排查API服务问题

若以上配置均正确,可通过curl直接调用API验证:

curl -H "Authorization: Bearer YOUR_TOKEN" "https://api.bitbucket.org/2.0/repositories/YOUR_TEAM/YOUR_REPO/pipelines/?pagelen=100"

若curl返回结果仍无next字段,大概率是BitBucket API的临时故障,需联系Atlassian技术支持提交工单。

内容的提问来源于stack exchange,提问作者DenCowboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:02:51