首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将儿童卡讨论笔记汇总到家长卡上?

如何将儿童卡讨论笔记汇总到家长卡上?
EN

Stack Overflow用户
提问于 2022-06-13 23:32:40
回答 1查看 120关注 0票数 3

如何在Azure DevOps中将子卡讨论记录汇总到家长卡上?

我们使用ADO的方式如下:

代码语言:javascript
复制
User Story -> Task 1
           -> Task 2
           -> Task 3

用户故事卡和任务卡都包含讨论字段,对于“我们应该使用哪些卡片的讨论字段来输入正在进行的注释和讨论”,我们遇到了一个困惑。父(用户故事)?还是孩子(任务)?对于devs来说,在任务中输入讨论笔记更有意义,但是我们的支持人员和经理只想看看家长的用户故事卡,他们希望看到所有的讨论笔记。

目前,我在两个任务和他们的父母用户故事卡中双输入讨论笔记,这不仅是一种低效的痛苦,而且违反了干法。

然后我想到,理想的解决方案是用户故事卡能够显示(在讨论部分)所有儿童卡片的所有讨论笔记。因此,如果我在任务(子)卡中输入一个便条并保存它,它将自动显示为它的父用户故事卡中的讨论笔记。理想情况下,我仍然可以输入特定于用户故事的讨论笔记,但所有儿童卡片的笔记都会自动被拉进来并显示出来(也许是只读的?)只能在孩子身上编辑?)在父母卡里,在任何情况下。

  1. 有什么简单的方法可以让这一切发生吗?
  2. 如果上面第一条的答案是否定的,那么是否有一种困难的方法来实现它呢?也许是通过自定义或自定义API调用?达到我想要的结果最好的方法是什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-03 12:58:54

在Azure DevOps中,这是不可能的(至少据我所知)。

然而,我可以想出几种方法来完成这个任务,但是它需要一些定制脚本,并且有一些可能不会影响您的用例的缺点。

选项1.创建聚合父级注释的自定义扩展

此选项为您提供了如何可视化设计功能的完全自由。它也是完全干燥的

您可以在用户故事卡上创建一个为Azure DevOps开发自己的自定义扩展并创建一个动态部分,该部分可以从所有任务中提取注释。

选项2.为“工作项注释”事件设置一个网络钩

这个选项并不完全是干的,但它至少会自动复制跨工作项的注释.

通过将Azure中的web钩子配置为将包含有关新注释的信息的json对象发布到您选择的REST端点。发布的有效载荷如下所示。

代码语言:javascript
复制
{
    "subscriptionId": "5be97cbc-ee4b-4c21-91ea-866a61d624c4",
    "notificationId": 4,
    "id": "fb2617ed-60df-4518-81fa-749faa6c5cd6",
    "eventType": "workitem.commented",
    "publisherId": "tfs",
    "message": {
        "markdown": "[Bug #5](http://fabrikam-fiber-inc.visualstudio.com/web/wi.aspx?pcguid=74e918bf-3376-436d-bd20-8e8c1287f465&id=5) (Some great new idea!) commented on by Jamal Hartnett."
    },
    "detailedMessage": {
        "markdown": "[Bug #5](http://fabrikam-fiber-inc.visualstudio.com/web/wi.aspx?pcguid=74e918bf-3376-436d-bd20-8e8c1287f465&id=5) (Some great new idea!) commented on by Jamal Hartnett.\r\nThis is a great new idea"
    },
    "resource": {
        "id": 5,
        "rev": 4,
        "fields": {
            "System.AreaPath": "FabrikamCloud",
            "System.TeamProject": "FabrikamCloud",
            "System.IterationPath": "FabrikamCloud\\Release 1\\Sprint 1",
            "System.WorkItemType": "Bug",
            "System.State": "New",
            "System.Reason": "New defect reported",
            "System.CreatedDate": "2014-07-15T17:42:44.663Z",
            "System.CreatedBy": {
                "displayName": "Jamal Hartnett",
                "url": "https://vssps.dev.azure.com/fabrikam/_apis/Identities/e5a5f7f8-6507-4c34-b397-6c4818e002f4",
                "_links": {
                    "avatar": {
                        "href": "https://dev.azure.com/mseng/_apis/GraphProfile/MemberAvatars/aad.YTkzODFkODYtNTYxYS03ZDdiLWJjM2QtZDUzMjllMjM5OTAz"
                    }
                },
                "id": "e5a5f7f8-6507-4c34-b397-6c4818e002f4",
                "uniqueName": "Jamal Hartnett",
                "imageUrl": "https://dev.azure.com/fabrikam/_api/_common/identityImage?id=e5a5f7f8-6507-4c34-b397-6c4818e002f4",
                "descriptor": "ukn.VXkweExUVXRNakV0TWpFME5qYzNNekE0TlMwNU1ETXpOak15T0RVdE56RTVNelEwTnpBM0xURXpPRGswTlRN"
            },
            "System.ChangedDate": "2014-07-15T17:42:44.663Z",
            "System.ChangedBy": {
                "displayName": "Jamal Hartnett",
                "url": "https://vssps.dev.azure.com/fabrikam/_apis/Identities/e5a5f7f8-6507-4c34-b397-6c4818e002f4",
                "_links": {
                    "avatar": {
                        "href": "https://dev.azure.com/mseng/_apis/GraphProfile/MemberAvatars/aad.YTkzODFkODYtNTYxYS03ZDdiLWJjM2QtZDUzMjllMjM5OTAz"
                    }
                },
                "id": "e5a5f7f8-6507-4c34-b397-6c4818e002f4",
                "uniqueName": "Jamal Hartnett",
                "imageUrl": "https://dev.azure.com/fabrikam/_api/_common/identityImage?id=e5a5f7f8-6507-4c34-b397-6c4818e002f4",
                "descriptor": "ukn.VXkweExUVXRNakV0TWpFME5qYzNNekE0TlMwNU1ETXpOak15T0RVdE56RTVNelEwTnpBM0xURXpPRGswTlRN"
            },
            "System.Title": "Some great new idea!",
            "System.Parent": 26
            "Microsoft.VSTS.Common.Severity": "3 - Medium",
            "WEF_EB329F44FE5F4A94ACB1DA153FDF38BA_Kanban.Column": "New",
            "System.History": "This is a great new idea"
        },
        "_links": {
            "self": {
                "href": "http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/wit/workItems/5"
            },
            "workItemUpdates": {
                "href": "http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/wit/workItems/5/updates"
            },
            "workItemRevisions": {
                "href": "http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/wit/workItems/5/revisions"
            },
            "workItemType": {
                "href": "http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/wit/ea830882-2a3c-4095-a53f-972f9a376f6e/workItemTypes/Bug"
            },
            "fields": {
                "href": "http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/wit/fields"
            }
        },
        "url": "http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/wit/workItems/5"
    },
    "resourceVersion": "1.0",
    "resourceContainers": {
        "collection": {
            "id": "c12d0eb8-e382-443b-9f9c-c52cba5014c2"
        },
        "account": {
            "id": "f844ec47-a9db-4511-8281-8b63f4eaf94e"
        },
        "project": {
            "id": "be9b3917-87e6-42a4-a549-2bc06a7a878f"
        }
    },
    "createdDate": "2022-07-03T12:30:03.0691717Z"
}

尤其是message下的注释消息、fields.System.ChangedBy下消息的作者、fields.System.ChangedDate中注释的日期和System.Parent中的父工作项id。

使用这些信息,接收json对象的REST服务可以使用评论 Rest在父工作项上创建一个注释,或者向将System.History字段设置为注释值的工作项发布更新。这还允许您设置原始评论时间和作者,因为您在自动化中使用的用户帐户具有授予Bypass rules on work item updates的权限。

弊端

  1. 如果任务可以从一个用户故事移动到另一个用户故事,那么需要移动用户故事上的任务注释。同样的想法可以应用于解决这一问题。通过为WorkItem updated配置webhook,您可以侦听任务的所有更新。通过从resource.rev中获取以前的修订(在修订Rest中可以找到修订版),并比较字段System.Parent,您可以确定任务是否已被移动,并将注释添加到新父级中并将它们从旧版本中删除。
  2. 类似地,如果要传播评论更新和反应,则需要进一步扩展web钩子功能。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72610075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档