在System.History中提及用户

时间:2018-07-17 10:18:27

标签: visual-studio tfs azure-devops azure-pipelines

我正在尝试向提及用户的工作项添加新注释,但是像在网站上那样使用传统的“ @adamh”似乎无法通过API起作用。

数据更新正常,但是“ @adamh”只是纯文本,我需要能够以某种方式将一个标识插入此处。谁能指出我正确的方向?

谢谢!

代码段在这里

const vsts = require('vso-node-api');
const item = require('vso-node-api/WorkItemTrackingApi')
const ti = require('vso-node-api/interfaces/WorkItemTrackingInterfaces');
// your collection url
const collectionUrl = "https://myArea.visualstudio.com/defaultcollection";
// ideally from config
const token = "helloWorld";


async function run() {
    let authHandler = vsts.getPersonalAccessTokenHandler(token);
    let connection = new vsts.WebApi(collectionUrl, authHandler);
    let itemTracking = await connection.getWorkItemTrackingApi();
    //Add all task data to new array
    let taskData = await itemTracking.getWorkItems([15795,15796])

    let newData = taskData[0]

    let wijson = [
        {
            "op": "add",
            "path": "/fields/System.History",
            "value": "@adamh"
        }
    ];

    const updateItem = itemTracking.updateWorkItem(null, wijson, 15795).catch(err => {
        console.log(err)
    }).then(() => console.log("updated"))

    return newData
}

const express = require('express')
const app = express()

app.get('/', async (req, res) => {
    let data = await run()
    res.send(data)
})

app.listen(3000, () => console.log('Example app listening on port 3000!'))

2 个答案:

答案 0 :(得分:1)

您可以使用@来将讨论内容通知其他团队成员。只需键入@及其名称。

它使用 @mention控件,您@mention的人将收到一封电子邮件提醒,其中包含您的评论以及指向工作项,提交,变更集或架子集的链接。

没有任何公开的API显示VSTS的工作原理,您可以尝试在Google浏览器中使用F12来跟踪该过程。另一个解决方法是直接使用API​​向要提及的用户发送通知。

答案 1 :(得分:1)

您可以将here所示的格式用作新注释的文本值的一部分:

<a href="#" data-vss-mention="version:2.0,userid"> ... </a>

这将创建指向该用户的提及链接。链接文本可以是该人的名字,也可以是您选择放置在此处的任何其他文本。如果您的系统配置为发送电子邮件警报给提到的用户(与用户界面相同)。

要获取用户的用户ID字符串,可以按照here所示的方法进行操作。