Merge

The merge condition tests whether the given node is being merged. A configuration can be provided that can test whether the node is being merged from a specific source branch or to a specific target branch. It can also test whether the merge is part of a Release.

The following properties are supported:

  • sourceBranchId
  • sourceBranchTitle
  • targetBranchId
  • targetBranchTitle
  • releaseId
  • releaseTitle

Each of these properties supports Regular Expression matching.

The condition will evaluate to true if all of the specified properties are matched.

If no configuration is provided, then the condition will evaluate to true to indicate that the node is being merged (from anywhere and to anywhere).

JSON Schema

{
    "title": "Merge",
    "properties": {
        "sourceBranchId": {
            "type": "string",
            "title": "Source Branch ID"
        },
        "sourceBranchTitle": {
            "type": "string",
            "title": "Source Branch Title"
        },
        "targetBranchId": {
            "type": "string",
            "title": "Target Branch ID"
        },
        "targetBranchTitle": {
            "type": "string",
            "title": "Target Branch Title"
        },
        "releaseId": {
            "type": "string",
            "title": "Release ID"
        },
        "releaseTitle": {
            "type": "string",
            "title": "Release Title"
        }                                        
    }
}

Example #1

Suppose you wanted a rule to only trigger if the node in question is being written as part of a merge. That's easy.
You can simply do something like this:

{
    "type": "merge"
}

Example #2

Here is a condition that triggers when the node is being merged from a source branch with a specific ID.

{
    "type": "merge",
    "config": {
        "sourceBranchId": "8145944078a7f223ebde"
    }
}

Example #3

Here is a condition that triggers when the node is being merged to a target branch with a specific name:

{
    "type": "merge",
    "config": {
        "targetBranchTitle": "Live Branch"
    }
}

Example #4

Here is a condition that triggers when the node that is being merged is part of a specific release (identified by a regular expression on the title):

{
    "type": "merge",
    "config": {
        "releaseTitle": ".*-PROD-.*"
    }
}