Azure DevOps 扩展 - 在工作项上设置只读字段

问题描述 投票:0回答:1

我有一个 Azure DevOps 扩展,我需要更新只读自定义工作项字段。

自定义字段通过流程规则设置为只读。

我意识到我可以做这样的事情,并通过完整的 API 本身绕过规则:

fetch('https://dev.azure.com/aherrick/_apis/wit/workitems/1?api-version=7.0&bypassRules=true', {
            method: 'PATCH',
            headers: {
                'Content-Type': 'application/json-patch+json',
                "Authorization": "Basic " + btoa("" + ":" + "PAT")
            },
            body: JSON.stringify([{
                "op": "add",
                "path": "/fields/Custom.MyField",
                "value": "100"
            }])
        });

但是,我不想在我的 Azure DevOps 扩展中嵌入 PAT。我已经使用 VSS 工作项客户端尝试过类似的操作:

        var document = [{
            "op": "add",
            "path": "/fields/Custom.MyField",
            "value": "10001"
        }];

        witClient.updateWorkItem(document, 1)
            .then(function (response) {

                console.log(response);

            }, function (error) {
                console.log(error);

            });

但是,如何使用内置的 VSS 工作项客户端绕过规则?关于如何实现这一目标还有其他建议吗?

azure-devops azure-devops-rest-api azure-devops-extensions
1个回答
0
投票

我的想法似乎可行,但完全是一个黑客。本质上,我使用的是隐藏的自定义“支持字段”,当设置为值(通过规则)时,我正确的自定义字段将设置为只读。

因此,在代码中,我强制支持字段并删除它的值(从而从我的正确自定义字段中删除只读),实际上更新我的自定义字段,然后重置支持字段。 :(

必须有一种更清洁的方法吗?

© www.soinside.com 2019 - 2024. All rights reserved.