如何通过C#配置Jira过滤器以获取全部问题?
获取Jira过滤器所有问题的解决方案
直接设置固定数值(如350)无法确保覆盖所有问题,因为过滤器匹配的问题数量可能动态变化。正确做法是通过分页遍历获取全部问题,具体步骤和代码如下:
- 先获取过滤器匹配的总问题数
- 循环发起分页请求,直到获取完所有问题
// 获取过滤器详情,拿到总问题数 var filterInfo = jiraConnection.Filters.GetFilterAsync(filter.Id).Result; int total = filterInfo.IssueCount.Value; List<Issue> allFilterIssues = new List<Issue>(); int startPosition = 0; // Jira API单次请求最大返回1000条,设为该值提升效率 int batchSize = 1000; while (startPosition < total) { // 分页拉取问题,注意使用带startAt参数的方法重载 var currentBatch = jiraConnection.Filters.GetIssuesFromFilterAsync(filter.Id, startPosition, batchSize).Result; allFilterIssues.AddRange(currentBatch); startPosition += batchSize; } // allFilterIssues 即为过滤器中的所有问题
关键提示
- Jira API默认限制单次请求最多返回1000条数据,设置超过该值会被自动截断
- 建议用
await替代.Result调用异步方法,避免线程阻塞(需将外层方法改为异步) - 若遍历过程中问题数量发生变化(新增/删除),可能出现重复或遗漏,可根据业务场景做相应处理
内容的提问来源于stack exchange,提问作者ATiNoTeImporta
相关产品推荐
相关产品推荐

