我正在尝试使用 vso-node-api ,并且我想自动为我之前使用 API 创建的团队设置待办事项迭代。
我在使用 updateTeamSettings
时遇到一些问题在 WorkApi
:
updateTeamSettings(teamSettingsPatch: WorkInterfaces.TeamSettingsPatch, teamContext: TfsCoreInterfaces.TeamContext): Promise<WorkInterfaces.TeamSetting>;
正如您在此处看到的,我需要提供 teamSettingsPatch
对象和一个teamContext
目的。我已经弄清楚了teamContext
并在其他通话中成功使用它,但我似乎无法提供 teamSettingsPatch
导致 API 返回成功响应的对象。到目前为止我得到 400 Bad Request
和一个空对象作为我尝试过的一切的返回( { }
)。 (编辑:这个空对象和错误的请求是由于我自己的包装器代码中的错误造成的,如果 TeamSettingsUpdate 不成功,您真正得到的是返回的设置对象,其值不是没有像您期望的那样改变)。
WorkInterfaces.ts表明我需要提供一个像这样的对象:
/**
* 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-node-api
希望定义所有属性,无论它们的值是否填充任何内容,所以首先我尝试了以下方法:
{
backlogIteration: 'Backlog-Iteration-Name',
backlogVisibilities: { },
bugsBehavior: null,
defaultIteration: null,
defaultIterationMacro: '@currentIteration',
workingDays: [
1,
2,
3,
4,
5
]
}
但是,当我尝试此操作时,我仍然收到错误请求消息。
我也尝试过使用 getTeamSettings
调用以尝试找出 API 想要 TeamSettingsPatch
的内容对象,并且我尝试填写所有可能的内容,包括已经从 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 错误。
请您参考如下方法:
首先,它不适用于 backlogIteration 的名称,需要 ID。
其次,backlogIteration的值不正确,我可以通过调用getTeamSettings函数获取正确的值(但你不能),你可以将vso-node-api更新到最新版本(例如6.2.8-preview)查看结果,您也可以调用Get a team’s settings REST api手动获取值。
我的 teamSettingPatch:
{
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
]
}