Association de plusieurs éléments de travail à une validation dans DevOps
Plusieurs éléments de travail pour une validation sont pris en charge dans DevOps pour Azure DevOps, Bitbucket, GitHubet GitLab.
La syntaxe de l’élément de travail dans le message de validation peut être personnalisée pour refléter les processus de votre organisation à l’aide de l’include de script DevopsCommitMessageParserSNC dans le module Définition du système > Includes de script .
Afin de lier les validations aux éléments de travail, l’ID natif de l’élément de travail est extrait du message de validation. Dans le système de base, DevOps prend en charge les formats de message de validation suivants :
/**
* Supported patterns
* Colon pattern
* Sample supported formats:
* 1. STRY1,STRY2: Additional bug fixes
* 2. STRY1 , STRY2 : Additional bug fixes
* 3. STRY1, STRY2 : Additional bug fixes
* Hash pattern
* Sample supported formats:
* 1. Fixes for #STRY1, #STRY2, #STRY3
* 2. Fixes @$#3 and #1 work item
* 3. Fixes for #STRY1 #STRY2 #STRY3
* 4. Fixes for AB#123
* Jira pattern
* Sample supported formats:
* 1. JRA-123 fixed
* 2. JRA-123 JRA-234 JRA-345 resolved
*/Si vous souhaitez ajouter la prise en charge de formats de message supplémentaires pour respecter les processus de votre organisation, vous pouvez ajouter une logique personnalisée dans l’include de script DevopsCommitMessageParser en accédant au module Définition du système > Includes de script . L’include de script DevopsCommitMessageParser est étendu à partir de DevopsCommitMessageParserSNC. DevopsCommitMessageParserSNC a trois expressions régulières définies pour identifier les ID natifs d’éléments de travail pour les formats de message pris en charge dans le système de base. Consultez l’exemple suivant pour inclure un nouveau format de message personnalisé qui a les ID natifs des éléments de travail entre crochets.
var DevopsCommitMessageParser = Class.create();
DevopsCommitMessageParser.prototype = Object.extendsObject(DevopsCommitMessageParserSNC, {
initialize: function() {
DevopsCommitMessageParserSNC.prototype.initialize.call(this);
this._customPattern = /\[(.*?)\]/g; // The regex pattern to match the words written inside square brackets.
// Example commits message to match this custom pattern is : "[STRY1], [STRY2] Additional bug fixes"
},
getWorkitemsFromCommitMessage: function(message, branchName) {
var workitems = [];
// We first call the getWorkitemsFromCommitMessage method from the parent class to get the matching workitems ids for OOB formats
var defaultWI = DevopsCommitMessageParserSNC.prototype.getWorkitemsFromCommitMessage.call(this, message, branchName);
if (!gs.nil(defaultWI) && defaultWI.length > 0) {
workitems = workitems.concat(defaultWI);
}
// Now call your custom method that returns an array of workitem native IDs matching custom pattern
var customWI = this.getWIFromCustomPattern(message);
if (!gs.nil(customWI) && customWI.length > 0) {
workitems = workitems.concat(customWI);
}
// getUniqueWorkItems method from parent class removes duplicates from the workitems array
workitems = this.getUniqueWorkItems(workitems);
// return the final list
return workitems;
},
getWIFromCustomPattern: function(message) {
var wi = [];
var l;
var match;
var matches = message.match(this._customPattern);
if (gs.nil(matches))
return wi;
for (var i = 0; i < matches.length; i++) {
l = matches[i].length;
match = matches[i].substring(1, l - 1); // trim the brackets
wi.push(match);
}
return wi;
},
type: 'DevopsCommitMessageParser'
});La liaison des éléments de travail à une validation à l’aide de l’interface utilisateur Azure DevOps est également prise en charge dans DevOps.
Vous pouvez afficher la liste des éléments de travail associés dans l’enregistrement Commit DevOps et dans l’interface utilisateur du pipeline.