【问题标题】:Azure Devops widget using azure-devops-extension-api to fetch all Pull requests by project only fetching one resultAzure Devops 小部件使用 azure-devops-extension-api 获取项目的所有拉取请求,仅获取一个结果
【发布时间】:2022-01-11 09:32:03
【问题描述】:

我正在尝试创建一个 azure devops 小部件来提取与项目关联的所有 PR。该小部件正在工作,但只提取一个 PR 数据,而不是全部。下面是我正在使用的小部件代码

        VSS.require(["TFS/Dashboards/WidgetHelpers","TFS/VersionControl/GitRestClient"], 
        function (WidgetHelpers, TFS_Wit_WebApi) {
            WidgetHelpers.IncludeWidgetStyles();
            VSS.register("PRDuration", function () {                
            var projectId = VSS.getWebContext().project.id;

                var getQueryInfo = function (widgetSettings) {
                    // Get a WIT client to make REST calls to Azure DevOps Services                       
                   return TFS_Wit_WebApi.getClient().getPullRequestsByProject(projectId,"status: All ",null,0,100)
                        .then(function (prs) {
                            var $list = $('<ul>');
                            prs.forEach(function(pr) {                             
                            
                            //$list.append($('<li>').text("Project ID: " + projectId));
                            //$list.append($('<li>').text("Pull Request ID: " + pr.pullRequestId));
                            $list.append($('<li>').text("Pull Request title: " + pr.title));
                            $list.append($('<li>').text("Pull Request createdBy: " + pr.createdBy))
                            $list.append($('<li>').text("Pull Request creationDate: " + pr.creationDate));
                            $list.append($('<li>').text("Pull Request closedDate: " + pr.closedDate));
                            ;
                            //$list.append($('<li>').text("Query Name: " + query.name));
                            //$list.append($('<li>').text("Created By: " + (query.createdBy ? query.createdBy.displayName: "<unknown>") ));
                            })

                            // Append the list to the query-info-container
                            var $container = $('#query-info-container');
                            $container.empty();
                            $container.append($list);

                            // Use the widget helper and return success as Widget Status
                            return WidgetHelpers.WidgetStatusHelper.Success();
                        }, function (error) {
                            // Use the widget helper and return failure as Widget Status
                            return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
                        });
                }

                return {
                    load: function (widgetSettings) {
                        // Set your title
                        var $title = $('h2.title');
                        $title.text('Hello World');

                        return getQueryInfo(widgetSettings);
                    }
                }
            });
        VSS.notifyLoadSucceeded();
    });   

当我使用这个小部件时,它似乎在进行 API 调用并只获取一个结果: https://dev.azure.com/orgname/projectId/_apis/git/pullRequests?searchCriteria=status:All&api-version=6.0

如果我如下更改 api URL,那么我会得到所有结果: https://dev.azure.com/orgname/projectId/_apis/git/pullRequests?searchCriteria.status=All&api-version=6.0

有没有办法可以在函数 getPullRequestsByProject 的搜索条件中解决此问题以获取所有结果?

【问题讨论】:

标签: javascript typescript azure azure-devops


【解决方案1】:

我必须提供以下格式的搜索条件并且它起作用了:

var search_criteria = {"status": "All"}                  
                   return TFS_Wit_WebApi.getClient().getPullRequestsByProject(projectId,search_criteria)

这会将 URL 转换为: https://dev.azure.com/org/projectId/_apis/git/pullRequests?searchCriteria[status]=All&api-version=6.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-08
    • 2021-07-07
    • 1970-01-01
    • 2019-12-03
    • 2021-04-20
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多