क्या टीएफएस2017 के तहत सूची में रिलीज के तहत टास्क वर्क आइटम के लिए पैरेंट पीबीआई को दिखाने का कोई तरीका है?
नीचे दिया गया स्क्रीनशॉट रिलीज -3 से जुड़े दो कार्यों को दिखाता है। यहां मैं उनमें से प्रत्येक के लिए मूल पीबीआई प्रदर्शित करने में सक्षम होना चाहता हूं। या तो उनका विस्तार करके या केवल मूल पीबीआई के लिंक के साथ एक अतिरिक्त कॉलम प्रदर्शित करके
तुम्हारी सहायता सराहनीय है
संपादित करें: मुझे पता है कि टीएफएस पर एक प्रश्न बनाने की संभावना है। समस्या यह है कि मुझे एक विशिष्ट रिलीज से संबंधित मूल कार्य आइटम पर जानकारी प्रदर्शित करने की आवश्यकता है ताकि उपयोगकर्ता रिपोर्टिंग के लिए उनका उपयोग कर सके। मैंने इस उद्देश्य के लिए एक क्वेरी बनाने की कोशिश की लेकिन मुझे रिलीज के आधार पर फ़िल्टरिंग विकल्प नहीं मिला, इसलिए मैंने सोचा कि कुछ अतिरिक्त कॉलम सक्षम करना संभव हो सकता है या उसके लिए एक एक्सटेंशन हो सकता है लेकिन मैं यह नहीं समझ सका कि कैसे इसे करने के लिए..
1 उत्तर
विस्तार के साथ इसे प्राप्त करने के लिए कदम:
- बिल्ड आईडी प्राप्त करने के लिए निर्दिष्ट रिलीज प्राप्त करें
- उस बिल्ड प्रति बिल्ड आईडी के कार्य आइटम प्राप्त करें
- संबंधित कार्य आइटम प्राप्त करें
विशिष्ट रिलीज़ के कार्य आइटम प्राप्त करने के लिए एक्सटेंशन का सरल कोड है जिसका आप उल्लेख कर सकते हैं:
एचटीएमएल:
<!DOCTYPE html>
<html>
<head>
<title>Custom widget</title>
<meta charset="utf-8" />
<script src="node_modules/vss-web-extension-sdk/lib/VSS.SDK.js"></script>
<script type="text/javascript">
VSS.init({
explicitNotifyLoaded: true,
usePlatformStyles:true
});
VSS.require(["TFS/Dashboards/WidgetHelpers", "TFS/TestManagement/RestClient", "TFS/WorkItemTracking/RestClient", "TFS/Build/RestClient", "VSS/Service", "VSS/Identities/Contracts", "VSS/Identities/RestClient", "VSS/Authentication/Services"], function (WidgetHelpers, TFS_Test_WebApi, TFS_Work_WebApi, TFS_Build_Client, VSS_Service, idContracts, idRest, VSS_Auth_Service) {
WidgetHelpers.IncludeWidgetStyles();
VSS.register("WidgetStarain", function () {
var authHeader = "none";
var vstsAccount = "none";
var projectName = "none";
var releaseRestAPIPrex = "none"
var getReleaseWorkItems= function (widgetSettings) {
var c = VSS.getWebContext();
vstsAccount = c.account.name;
projectName = c.project.name;
releaseRestAPIPrex="https://" + vstsAccount + ".vsrm.visualstudio.com/DefaultCollection/" + projectName + "/_apis/release"
VSS.getAccessToken().then(function (token) {
authHeader = VSS_Auth_Service.authTokenManager.getAuthorizationHeader(token);
$.ajax({
type: 'GET',
url: releaseRestAPIPrex+'/definitions?api-version=3.0-preview.1',
cache: false,
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", authHeader);
},
}).done(function (data) {
var v = data.value;
$("#releaseDefList").empty();
$("#releaseDefList").append('<option value="select">select</option>');
$.each(v, function (index, value) {
$("#releaseDefList").append('<option value="' + value.id + '">' + value.name + '</option>');
});
}).error(function (e) {
var s = "ss";
});
});
};
$("#releaseDefList").change(function () {
var str = "";
$("#releaseList").empty();
$("#releaseList").append('<option value="select">select</option>');
$("#releaseDefList option:selected").each(function () {
var releaseDefId = $(this).val();
if (releaseDefId != "select") {
$.ajax({
type: 'GET',
url: releaseRestAPIPrex+'/releases?definitionId=' + releaseDefId + '&api-version=3.0-preview.2',
cache: false,
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", authHeader);
},
}).done(function (data) {
var v = data.value;
$.each(v, function (index, value) {
$("#releaseList").append('<option value="' + value.id + '">' + value.name + '</option>');
});
}).error(function (e) {
var s = "ss";
});
}
});
});
$("#releaseList").change(function () {
var str = "";
$("#releaseList option:selected").each(function () {
var releaseId = $(this).val();
if (releaseId != "select") {
$.ajax({
type: 'GET',
url: releaseRestAPIPrex+'/release/releases/' + releaseId + '?api-version=3.0-preview.2',
cache: false,
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", authHeader);
},
}).done(function (data) {
var artifacts = data.artifacts;
$.each(artifacts, function (index, value) {
var buildId = value.definitionReference.version.id;
TFS_Build_Client.getClient().getBuildWorkItemsRefs(projectName, buildId).then(function (workitemRefs) {
var workItemIds = new Array();
$.each(workitemRefs, function (index, value) {
workItemIds.push(value.id);
});
var workitemString = "";
TFS_Work_WebApi.getClient().getWorkItems(workItemIds,null,null,"All").then(function (workitems) {
$.each(workitems, function (index, value) {
workitemString += "ID: " + value.id + "; Title: " + value.fields["System.Title"];
});
$("#workitems").text(workitemString);
});
});
});
}).error(function (e) {
var s = "ss";
});
}
});
});
return {
load: function (widgetSettings) {
getReleaseWorkItems(widgetSettings);
return WidgetHelpers.WidgetStatusHelper.Success();
}
}
});
VSS.notifyLoadSucceeded();
});
</script>
</head>
<body>
<div class="widget">
<h2 class="title">widgets starain</h2>
<div class="token">none</div>
<select id="releaseDefList">
<option id="select">select</option>
</select>
<select id="releaseList">
<option id="select">select</option>
</select>
<div id="workitems">
none workitem
</div>
</div>
</body>
</html>
बनाम-एक्सटेंशन.जेसन:
{
"manifestVersion": 1,
"id": "sample-extension",
"version": "0.5.34",
"name": "My test extension",
"description": "my test extension description",
"publisher": "Starain",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"icons": {
"default": "Images/logo.png"
},
"scopes": [
"vso.work",
"vso.build",
"vso.build_execute",
"vso.test",
"vso.test_write",
"vso.release"
],
"contributions": [
{
"id": "WidgetStarain",
"type": "ms.vss-dashboards-web.widget",
"targets": [ "ms.vss-dashboards-web.widget-catalog", "Starain.sample-extension.WidgetStarainConfiguration" ],
"properties": {
"name": "widget starain",
"description": "custom widget",
"catelogIconUrl": "Images/iconProperty.png",
"previewImageUrl": "Images/iconProperty.png",
"uri": "WidgetStarain.html",
"supportedSizes": [
{
"rowSpan": 1,
"columnSpan": 2
}
],
"supportedScopes": [ "project_team" ]
}
}
],
"files": [
{
"path": "node_modules/vss-web-extension-sdk/lib",
"addressable": true
},
{
"path": "Images",
"addressable": true
},
{
"path": "Scripts",
"addressable": true
},
{
"path": "WidgetStarain.html",
"addressable": true
}
]
}
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
tfs
टीम फाउंडेशन सर्वर (टीएफएस) एज़्योर देवओप्स का ऑन-प्रिमाइसेस संस्करण है, जो Git और वर्ज़न कंट्रोल होस्टिंग, निरंतर एकीकरण, फुर्तीली योजना (मुद्दों, कानबन, स्क्रैम, डैशबोर्ड) प्रदान करता है और क्लाउड और ऑन-प्रिमाइसेस को निरंतर वितरण के लिए रिलीज़ प्रबंधन प्रदान करता है। ।