Javascript 如何使用VSTS节点API设置积压迭代?

Javascript 如何使用VSTS节点API设置积压迭代?,javascript,node.js,azure-devops,backlog,Javascript,Node.js,Azure Devops,Backlog,我正在尝试使用,我想为我以前使用API创建的团队自动设置backlog迭代 我在使用WorkApi中的updateeamsettings时遇到一些问题: updateTeamSettings(TeamSettingsPath:WorkInterfaces.TeamSettingsPath,teamContext:TfsCoreInterfaces.teamContext):承诺 正如您在这里看到的,我需要提供一个teamsettingspach对象和一个teamContext对象。我已经找到了t

我正在尝试使用,我想为我以前使用API创建的团队自动设置backlog迭代

我在使用
WorkApi
中的
updateeamsettings
时遇到一些问题:

updateTeamSettings(TeamSettingsPath:WorkInterfaces.TeamSettingsPath,teamContext:TfsCoreInterfaces.teamContext):承诺

正如您在这里看到的,我需要提供一个
teamsettingspach
对象和一个
teamContext
对象。我已经找到了
teamContext
,并在其他调用中成功地使用了它,但我似乎无法提供导致API返回成功响应的
teamsetingspach
对象。到目前为止,我得到了
400个错误的请求
,并且对于我所尝试的一切,我得到了一个空对象(
{}
)。(Edit:此空对象和错误请求是由于我自己的包装器代码中的错误造成的,如果TeamSettingsUpdate未成功,您将得到一个返回值未按预期更改的设置对象)

表示我需要提供如下对象:

/**
 * Data contract for what we expect to receive when PATCH
 */
export interface TeamSettingsPatch {
    backlogIteration: string;
    backlogVisibilities: { [key: string] : boolean; };
    bugsBehavior: BugsBehavior;
    defaultIteration: string;
    defaultIterationMacro: string;
    workingDays: SystemInterfaces.DayOfWeek[];
}
我试着提供这样一个对象。在我以前的经验中,
vso节点api
希望定义所有属性,无论它们的值是否填充了任何内容,因此首先我尝试了以下方法:

{
    backlogIteration: 'Backlog-Iteration-Name',
    backlogVisibilities: { },
    bugsBehavior: null,
    defaultIteration: null,
    defaultIterationMacro: '@currentIteration',
    workingDays: [
        1,
        2,
        3,
        4,
        5
    ]
}
但是,当我尝试此操作时,仍然会收到错误的请求消息

我还尝试使用
getTeamSettings
调用,试图找出API对
teamsettingspach
对象的要求,并尝试填充所有可能的内容,包括已从
getTeamSettings
显示给我的值。请注意,归零的GUID正是
getTeamSettings
提供给我的:

{
    backlogIteration: {
      id: '00000000-0000-0000-0000-000000000000'
    },
    backlogVisibilities: {
      'Custom.1f38c336-f308-41a6-adaa-eb78c0f72dd5': false,
      'Microsoft.FeatureCategory': true,
      'Microsoft.EpicCategory': false,
      'Microsoft.RequirementCategory': true
    },
    bugsBehavior: 2,
    defaultIteration: null,
    defaultIterationMacro: '@currentIteration',
    workingDays: [
      1,
      2,
      3,
      4,
      5
    ]
}

我有点不知所措。它不起作用是因为我在请求中提供了一个错误的对象,还是因为这个API功能还不起作用而不起作用?API的响应没有提供任何提示,只提供了一个空对象和一个400错误。

首先,它不适用于BackLogieration的名称,需要ID

第二,backlogIteration的值不正确,我可以通过调用getTeamSettings函数获得正确的值(但您不能),您可以将vso节点api更新到最新版本(例如6.2.8-preview)并检查结果,您也可以手动调用获取值

我的团队设置补丁:

{
        backlogIteration: "d3f3738d-d874-46a9-941d-54a5ca0f6f2d",
        backlogVisibilities:{
            "Microsoft.EpicCategory": false,
            "Microsoft.FeatureCategory": true,
         "Microsoft.RequirementCategory": true
        },
        bugsBehavior: 2,
        defaultIteration: null,
        defaultIterationMacro: null,
        workingDays:[
            1,
            2,
            3,
            4
          ]
    }

在检查最新的API版本时考虑得很好,尤其是在预览中。明天我将在这个答案中尝试您的建议,再次感谢您对这个API的帮助!其他有此问题的人的想法:确保所有输入JSON对象都有正确的大小写(如teamContext或TeamSettingsPath)。我浪费了很长时间,将teamId错误地写为teamId——在这种情况下,vso节点api不会指示失败。