gpt4 book ai didi

azure - 有没有办法在 Azure DevOps 发行说明中对工作项类型进行排序/分组

转载 作者:行者123 更新时间:2023-12-01 15:54:57 25 4
gpt4 key购买 nike

我正在构建管道中设置发行说明步骤,并且我想按类型对工作项进行分组/排序。

在生成发行说明步骤的构建任务中,我从市场添加了任务“为管道构建或发布生成发行说明”该任务已通过 https://marketplace.visualstudio.com/items?itemName=richardfennellBM.BM-VSTS-GenerateReleaseNotes-Task 中给出的指令成功配置。 。使用当前模板,我可以在 .htm 文件中创建发行说明。另外,如果我使用 Markdown 模板,我可以创建一个 .md 文件。

在当前模板中尝试为订购类型添加 javascript 函数,但生成发行说明时,它只打印 javascript 函数体,而不打印结果。

当前模板:

<h1>Release notes for build $defname</h1>  
@@BUILDLOOP@@
<h3>$($build.definition.name) </h3>
<b>Build number</b> : $($build.buildnumber) <br />
<b>Build started</b> : $("{0:dd/MM/yy HH:mm:ss}" -f [datetime]$build.startTime) <br />
<b>Source branch</b> $($build.sourceBranch)

<h3>Associated work items </h3>

@@WILOOP@@
<li> <b>$($widetail.fields.'System.WorkItemType') $($widetail.id)</b> [Assigned by: $($widetail.fields.'System.AssignedTo'.'displayName')] $($widetail.fields.'System.Title') <br />
$($widetail.fields.'System.Description') </li>
@@WILOOP@@

@@BUILDLOOP@@

我想按类型(如功能、产品待办事项、任务、错误)对工作项进行排序/分组,但实际输出是按工作项 ID 排序。

最佳答案

我已经成功解决了这个问题。 javascript 函数被添加到模板中,但不是为了创建 DOM 元素,正如我最初开始的那样,而是作为重新排序列表项元素。

以下是适合我的模板:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function sortByWorkItemType(arr, isReverse = false) {
var worItemType = ["epi", "fea","pro", "tas", "bug"];

const directionFactor = isReverse ? -1 : 1;
const comparator = (a, b) => {
if (!a && !b) return 0;
if (!a && b) return -1 * directionFactor;
if (a && !b) return 1 * directionFactor;

const comparableA = a.innerText.toLowerCase().substring(0, 3);
const comparableB = b.innerText.toLowerCase().substring(0, 3);
const comparisonResult = worItemType.indexOf(comparableA) - worItemType.indexOf(comparableB);
return comparisonResult * directionFactor;
};
const safeCopyMonthNames = [...arr.children];
safeCopyMonthNames.sort(comparator);
return safeCopyMonthNames;
}


function sortList() {
var list, i, switching, b, shouldSwitch;
list = document.getElementById("workItemList");

switching = true;

while (switching) {

switching = false;
b = list.getElementsByTagName("LI");

for (i = 0; i < (b.length - 1); i++) {

shouldSwitch = false;

if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) {

shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
b[i].parentNode.insertBefore(b[i + 1], b[i]);
switching = true;
}
}
var result = sortByWorkItemType(list);
document.getElementById("workItemList").innerHTML = "";
for(i = 0; i < result.length; i++) {
document.getElementById("workItemList").insertAdjacentHTML("beforeend", result[i].outerHTML.valueOf());
}

}
</script>
</head>

<body onload="sortList()">
<h1>Release notes for build $defname</h1>
@@BUILDLOOP@@
<h3>$($build.definition.name) </h3>
<b>Build number</b> : $($build.buildnumber) <br />
<b>Build started</b> : $("{0:dd/MM/yy HH:mm:ss}" -f [datetime]$build.startTime) <br />
<b>Source branch</b> $($build.sourceBranch)

<h3>Associated work items </h3>


<ul id="workItemList">
@@WILOOP@@

<li> <b>$($widetail.fields.'System.WorkItemType') $($widetail.id)</b> [Assigned by: $($widetail.fields.'System.AssignedTo'.'displayName')] $($widetail.fields.'System.Title') <br /> $($widetail.fields.'System.Description') </li>

@@WILOOP@@
</ul>

@@BUILDLOOP@@


</body>
</html>

关于azure - 有没有办法在 Azure DevOps 发行说明中对工作项类型进行排序/分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56774669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com