如何在Bitbucket Cloud拉取请求中过滤已删除评论?
解决Bitbucket Cloud拉取请求过滤已删除评论的问题
我明白你想筛选出Bitbucket Cloud拉取请求中未被删除的指定用户评论,之前尝试的两个API端点确实踩了坑——v1评论API不支持按deleted字段过滤,而v2的activity端点又混进了更新、状态变更这类无关内容。这里给你两个可行的解决方案:
方案一:使用v2版本的评论API(推荐)
Bitbucket Cloud的v2评论API专门针对PR评论设计,而且支持按deleted字段进行服务端过滤,完全符合你的需求。你可以构造这样的请求:
GET /2.0/repositories/leremede321/test-bitbucket-api/pullrequests/2/comments?q=deleted="false" AND user.username="leremede321"
注意v2的查询语法细节:
- 字符串类型的查询值需要用双引号包裹
- 逻辑连接词要用大写的
AND/OR
这个端点只会返回PR的评论内容,不会混入其他无关活动,效率和精准度都更高。
方案二:客户端过滤(备选)
如果因为某些限制必须使用v1 API,那只能先获取该PR的所有评论,再在本地代码中过滤掉deleted=true的条目。比如拿到返回的评论列表后,遍历每个评论对象,只保留deleted字段为false且用户匹配的内容。不过这种方式在评论数量较多时,会增加客户端的处理负担,不如v2 API直接过滤高效。
另外要提一句:Bitbucket的v1 API已经进入维护阶段,官方更推荐使用v2 API,所以优先选择方案一后续能获得更好的官方支持。
内容的提问来源于stack exchange,提问作者Tuan Nguyen




