@PLUGIN@ Configuration

The configuration of the @PLUGIN@ plugin is done on the project level in the @PLUGIN@.config file of the project.

  [global]
    automergeLabel = Code-Review
    hostName = https://hostname.example.com
    conflictMessage = Merge conflict found on ${branch}\n\
" # Example of multiline conflict message"
    manifestProject = platform/manifest
    manifestFile = default.xml
    alwaysBlankMerge = .*SKIP ME ALWAYS.*
    blankMerge = .*RESTRICT AUTOMERGE.*
    blankMerge = .*SKIP UNLESS MERGEALL SET.*
    missingDownstreamsMessage = there is no ${missingDownstreams}

  [@PLUGIN@ "branch1:branch2"]
    setProjects = some/project
    addProjects = some/other/project
    ignoreProjects = some/ignored/project
    mergeAll = True
    ignoreSourceManifest = False

global.automergeLabel : Label to vote minAutomergeVote on when there is a merge conflict.

When the automerger detects a merge conflict from one branch to another, it will vote minAutomergeVote on this label.

global.maxAutomergeVote : Value to vote on a successful automerge.

When the automerger succeeds in merging downstream, it will vote maxAutomergeVote on the downstream change. The original change uploaded by the user will have a vote of 0, so that it can be easily programatically distinguished from the otheres.

global.minAutomergeVote : Value to vote on a failed automerge.

When the automerger detects a merge conflict from one branch to another, it will vote minAutomergeVote for the configured automergeLabel.

global.hostName : Hostname to use in a custom conflict message.

The automerger will attempt to use the canonicalWebUrl to fill in the hostname. However, if it is unable to do so for whatever reason, it can be overriden using this field.

global.conflictMessage : Message to comment with the automergeLabel vote if there is a merge conflict.

When the automerger detects a merge conflict from one branch to another, it will vote -1 on the automergeLabel. The message on the vote can be custom configured to include:

  • branch
  • revision
  • hostname
  • topic
  • conflict

For example, you could configure the @PLUGIN@.config to include:

  conflictMessage = Conflict message ${conflict} found on branch ${branch}

global.manifestProject : Project to look for a repo manifest in.

The automerger will attempt to look for the manifest project in this project.

global.manifestFile : File to look for a repo manifest in.

The automerger will attempt to look for a repo manifest in this file.

global.blankMerge : Pattern for skipping changes.

If the automerger matches this regex in the subject of the change, it will merge with “-s ours” to all downstream branches, effectively skipping the change.

If mergeAll is set to True for a branch, however, it will merge downstream normally for that branch.

global.alwaysBlankMerge : Pattern for always skipping changes.

If the automerger matches this regex in the subject of the change, it will merge with “-s ours” to all downstream branches, effectively skipping the change.

Even if mergeAll is set to True for a branch, it will still merge with “-s ours”.

global.missingDownstreamsMessage : Message to display when attempting to submit a change without downstreams.

If a change has downstream branches configured for a project, but those downstreams have not been uploaded for review or are abandoned, this message will display as an error message on submit.

The message can be custom configured to include the missing downstream branches.

For example, you could configure the @PLUGIN@.config to include:

  missingDownstreamsMessage = Missing downstreams ${missingDownstreams}

@PLUGIN@.branch1:branch2.setProjects : Projects to automerge for.

If setProjects is set, it overrides the default scope.

@PLUGIN@.branch1:branch2.addProjects : Projects to add on top of the projects already in scope.

If setProjects is set, this will add projects on top of the setProjects. If setProjects is not set, this will add projects on top of the default scope.

@PLUGIN@.branch1:branch2.ignoreProjects : Projects to ignore on top of the projects already in scope

If setProjects is set, this will ignore projects on top of the setProjects. If setProjects is not set, this will ignore projects on top of the default scope.

@PLUGIN@.branch1:branch2.mergeAll : If this is true, the blankMerge regex will be ignored.

When mergeAll is true, the blankMerge regex will be ignored but the alwaysBlankMerge regex will still be honored.

@PLUGIN@.branch1:branch2.ignoreSourceManifest : If this is true, the default scope will be modified.

The default scope normally includes the intersection of all projects in the manifest of branch1 whose revisions are branch1, and all projects in the manifest of branch2 whose revisions are branch2.

If ignoreSourceManifest is true, the scope will become all projects in the manifest of branch2 whose revisions are branch2.