Beispiel: StatusÀnderung in Targetprocess, wenn Merge/Pull-Anfrage aktualisiert wird
Diese Regel reagiert auf eine Reihe von Aktualisierungen von Merge/Pull-Requests und löst eine ZustandsÀnderung eines Targetprocess-Elements aus, die sich auf einen aktualisierten Zweig oder Merge/Pull-Request bezieht
- WIP wird aus dem Namen der ZusammenfĂŒhrungsanforderung entfernt;
- ZusammenfĂŒhrungs-/Ziehungsantrag erhĂ€lt alle erforderlichen Genehmigungen;
- Merge/Pull Request wird zusammengefĂŒhrt;
- Der Zweig wird ohne CodeÀnderungen geschlossen;
const utils = require('utils')
const devOps = require('devOps')
var stateTo = ''
var cmds = []
if (args.ResourceType != 'MergeRequest') return []
var isWIPRemoved = devOps.mergeRequestDraftRemoved(args)
var ifApproved = devOps.mergeRequestApproved(args)
var ifMerged = devOps.mergeRequestMerged(args)
var ifClosed = devOps.mergeRequestClosed(args)
console.log(`isWIPRemoved: ${isWIPRemoved}`)
console.log(`ifApproved: ${ifApproved}`)
console.log(`ifMerged: ${ifMerged}`)
console.log(`ifClosed: ${ifClosed}`)
if (isWIPRemoved) {
stateTo = 'Code Review'
}
if (ifApproved) {
stateTo = 'To Test'
}
if (ifMerged) {
stateTo = 'Integrated'
}
if (ifClosed) {
stateTo = 'Open'
}
// Change state if needed
if (stateTo != '') {
var entityIds = args.TargetprocessEntityIds;
const entities = await api.queryAsync("Assignable", {
select: "{id,entityType: entitytype.name}",
where: `id in ${JSON.stringify(entityIds)}`
});
entities.map(value => cmds.push(
utils.moveToStateByName(value.entityType, value.id, stateTo)
));
}
console.log(`State To: ${stateTo}`)
return cmds;
Die ZustÀnde der EntitÀten in Targetprocess werden durch Namen angegeben. Setzen Sie einfach die richtigen Namen in die DANN-Klausel der Regel anstelle der fettgedruckten Namen:
đ§ Setzen Sie die Namen Ihrer BundeslĂ€nder in DANN der Regel fĂŒr jedes Ereignis ein:
if ( isWIPRemoved ) {
stateTo = 'Code Review '
}if ( ifApproved ) {
stateTo = 'To Test '
}if ( ifMerged ) {
stateTo = 'Integrated '
}if ( ifClosed ) {
stateTo = 'Open '
}
{
"type": "source:devOps:EntityChanged",
"entityTypes": [
"MergeRequest"
],
"modifications": {
"created": false,
"deleted": false,
"updated": [
"repository",
"id",
"sourceId",
"title",
"isDraft",
"url",
"state",
"mergeStatus",
"reviewStatus",
"branch"
]
}
}