The global configuration of the @PLUGIN@ plugin is stored in the gerrit.config
file in the plugin.@PLUGIN@
subsection.
This page describes all available configuration parameters. For configuration recommendations please consult the config guide.
In addition some configuration can be done on the project level in @PLUGIN@.config
files that are stored in the refs/meta/config
branches of the projects.
Parameters that are not set for a project are inherited from the parent project or the global configuration in gerrit.config
.
A config setting on project level overrides the corresponsing setting that is inherited from parent projects and the global configuration in gerrit.config
.
NOTE: Some configuration parameters have a list of values and can be specified multiple times (e.g. disabledBranch
). If such a value is set on project level it means that the complete inherited list is overridden. It's not possible to just add a value to the inherited list, but if this is wanted the complete list with the additional value has to be set on project level.
plugin.@PLUGIN@.disabled : Whether the code owners functionality is disabled for the project.
If true
submitting changes doesn't require code owner approvals.
This allows projects to opt-out of the code owners functionality.
Can be overridden per project by setting codeOwners.disabled in @PLUGIN@.config
.
By default false
.
plugin.@PLUGIN@.disabledBranch : An exact ref, a ref pattern or a regular expression to disable the code owners functionality for the matched branches.
By using a negative lookahead, it‘s possible to match all but one branches. E.g. to disable the code owners functionality for all branches except the refs/heads/master
branch the following regular expression can be used: ^refs/(?!heads/master$).*
For matched branches submitting changes doesn’t require code owner approvals.
This allows branches to opt-out of the code owners functionality.
Can be set multiple times.
Can be overridden per project by setting codeOwners.disabledBranch in @PLUGIN@.config
.
By default unset.
plugin.@PLUGIN@.backend : The code owners backend that should be used.
Can be overridden per project by setting codeOwners.backend in @PLUGIN@.config
.
The supported code owner backends are listed at the Backends page.
By default find-owners
.
NOTE: Be careful with changing this parameter as it invalidates all existing code owner config files. E.g. by changing the backend code owner configurations may now be read from different files, or even worse from the same files but with another syntax so that the existing code owner config files can no longer be parsed.
plugin.@PLUGIN@.fileExtension : The file extension that should be used for code owner config files.
Allows to use a different code owner configuration in a fork. E.g. if the original repository uses OWNERS
code owner config files (no file extension configured) one could set fork
as file extension in the fork so that the fork uses OWNERS.fork
files and the existing OWNERS
files are ignored.
Can be overridden per project by setting codeOwners.fileExtension in @PLUGIN@.config
.
By default unset (no file extension is used).
plugin.@PLUGIN@.overrideInfoUrl : A URL for a page that provides host-specific information about how to request a code owner override.
The frontend displays a link to this page on the change screen so that users can discover the override instructions easily.
Can be overridden per project by setting codeOwners.overrideInfoUrl in @PLUGIN@.config
.
By default unset (no override info URL).
plugin.@PLUGIN@.enableImplictApprovals : Whether an implicit code owner approval from the last uploader is assumed.
Can be FALSE
, TRUE
or FORCED
.FALSE
:
Implicit code-owner approvals of the the patch set uploader are disabled.TRUE
:
Implicit code-owner approvals of the patch set uploader are enabled, but only if the configured required label is not configured to ignore self approvals from the uploader.FORCED
:
Implicit code-owner approvals of the patch set uploader are enabled, even if the configured required label disallows self approvals.
If enabled/enforced, code owners need to be aware of their implicit approval when they upload new patch sets for other users (e.g. if a contributor pushes a change to a wrong branch and a code owner helps them to get it rebased onto the correct branch, the rebased change has implicit approvals from the code owner, since the code owner is the uploader).
If implicit code owner approvals are disabled, code owners can still self-approve their own changes by voting on the change.
Can be overridden per project by setting codeOwners.enableImplictApprovals in @PLUGIN@.config
.
By default FALSE
.
plugin.@PLUGIN@.globalCodeOwner : The email of a user that should be a code owner globally across all branches.
If global code owners should be omitted in the code owner suggestion (e.g. because they are bots and cannot react to review requests), they can be added to the Service Users
group (since members of this group are not suggested as code owners).
Can be specified multiple time to set multiple global code owners.
Can be overridden per project by setting codeOwners.globalCodeOwner in @PLUGIN@.config
.
By default unset (no global code owners).
plugin.@PLUGIN@.readOnly : Whether code owner config files are read-only.
Can be overridden per project by setting codeOwners.readOnly in @PLUGIN@.config
.
By default false
.
plugin.@PLUGIN@.exemptPureReverts : Whether pure revert changes are exempted from needing code owner approvals for submit.
Only works for pure reverts which have been created through the Gerrit REST API (but not for pure reverts which were done locally and then pushed to Gerrit).
Can be overridden per project by setting codeOwners.exemptPureReverts in @PLUGIN@.config
.
By default false
.
plugin.@PLUGIN@.enableValidationOnCommitReceived : Policy for validating code owner config files when a commit is received. Allowed values are true
(the code owner config file validation is enabled and the upload of invalid code owner config files is rejected), false
(the code owner config file validation is disabled, invalid code owner config files are not rejected) and dry_run
(code owner config files are validated, but invalid code owner config files are not rejected).
Should only be disabled if there is bot that validates the code owner config files in open changes as part of a pre-submit validation.
Can be overridden per project by setting codeOwners.enableValidationOnCommitReceived in @PLUGIN@.config
.
By default true
.
plugin.@PLUGIN@.enableValidationOnSubmit : Policy for validating code owner config files when a change is submitted. Allowed values are true
(the code owner config file validation is enabled and the submission of invalid code owner config files is rejected), false
(the code owner config file validation is disabled, invalid code owner config files are not rejected) and dry_run
(code owner config files are validated, but invalid code owner config files are not rejected).
Disabling the submit validation is not recommended.
Can be overridden per project by setting codeOwners.enableValidationOnSubmit in @PLUGIN@.config
.
By default true
.
plugin.@PLUGIN@.rejectNonResolvableCodeOwners : Whether modifications of code owner config files that newly add non-resolvable code owners should be rejected on commit received and submit.
if true
newly added non-resolveable code owners are reported as errors and the commit is rejected.
If false
newly added non-resolvable code owners are only reported as warnings and the commit is not rejected.
This setting has no effect if the validation is disabled via enableValidationOnCommitReceived or enableValidationOnSubmit. Can be overridden per project by setting codeOwners.rejectNonResolvableCodeOwners in @PLUGIN@.config
.
By default true
.
plugin.@PLUGIN@.rejectNonResolvableImports : Whether modifications of code owner config files that newly add non-resolvable imports should be rejected on commit received an submit.
if true
newly added non-resolveable imports are reported as errors and the commit is rejected.
If false
newly added non-resolvable imports are only reported as warnings and the commit is not rejected.
This setting has no effect if the validation is disabled via enableValidationOnCommitReceived or enableValidationOnSubmit. Can be overridden per project by setting codeOwners.rejectNonResolvableImports in @PLUGIN@.config
.
By default true
.
plugin.@PLUGIN@.allowedEmailDomain : Email domain that allows to assign code ownerships to emails with this domain.
Can be specified multiple times.
Code ownerships that are assigned to emails with non-allowed domains are ignored and rejected on push.
By default unset (all email domains are allowed).
plugin.@PLUGIN@.requiredApproval : Approval that is required from code owners to approve the files in a change.
Any approval on the configured label that has a value >= the configured value is considered as code owner approval.
The required approval must be specified in the format “<label-name>+<label-value>”.
The configured label must exist for all projects for which this setting applies (all projects that have code owners enabled and for which this setting is not overridden).
If the definition of the configured label has copy rules enabled so that votes are sticky across patch sets, also the code owner approvals will be sticky.
If the definition of the configured label ignores self approvals from the uploader, any vote from the uploader is ignored for the code owners check.
Can be overridden per project by setting codeOwners.requiredApproval in @PLUGIN@.config
.
By default “Code-Review+1”.
plugin.@PLUGIN@.overrideApproval : Approval that counts as override for the code owners submit check.
Any approval on the configured label that has a value >= the configured value is considered as code owner override.
The override approval must be specified in the format “<label-name>+<label-value>”.
Can be specifed multiple times to configure multiple override approvals. If multiple approvals are configured, any of them is sufficient to override the code owners submit check.
The configured labels must exist for all projects for which this setting applies (all projects that have code owners enabled and for which this setting is not overridden).
If the definition of the configured labels has copy rules enabled so that votes are sticky across patch sets, also the code owner overrides will be sticky.
If the definition of a configured label ignores self approvals from the uploader, any override vote from the uploader on that label is ignored for the code owners check.
Can be overridden per project by setting codeOwners.overrideApproval in @PLUGIN@.config
.
By default unset which means that the override functionality is disabled.
plugin.@PLUGIN@.enableExperimentalRestEndpoints : Whether experimental REST endpoints are enabled.
By default false
.
plugin.@PLUGIN@.mergeCommitStrategy : Strategy that defines for merge commits which files require code owner approvals.
Can be ALL_CHANGED_FILES
or FILES_WITH_CONFLICT_RESOLUTION
.ALL_CHANGED_FILES
:
All files which differ between the merge commmit that is being reviewed and its first parent commit (which is the HEAD of the destination branch) require code owner approvals.
Using this strategy is the safest option, but requires code owners to also approve files which have been merged automatically.
Using this strategy makes sense if the code owners differ between branches and the code owners in one branch don‘t trust what the code owners in other branches have approved, or if there are branches that do not require code owner approvals at all.FILES_WITH_CONFLICT_RESOLUTION
:
Only files which differ between the merge commmit that is being reviewed and the auto merge commit (the result of automatically merging the 2 parent commits, may contain Git conflict markers) require code owner approvals.
Using this strategy means that files that have been merged automatically and for which no manual conflict resolution has been done do not require code owner approval.
Using this strategy is only recommended, if all branches require code owner approvals and if the code owners in all branches are trusted. If this is not the case, it is recommended to use the ALL_CHANGED_FILES
strategy instead.
Example: If this strategy is used and there is a branch that doesn’t require code owner approvals (e.g. a user sandbox branch or an experimental branch) the code owners check can be bypassed by:
a) setting the branch that doesn‘t require code owner approvals to the same commit as the main branch that does require code owner approvals
b) making a change in the branch that doesn’t require code owner approvals
c) merging this change back into the main branch that does require code owner approvals
d) since it's a clean merge, all files are merged automatically and no code owner approval is required
Can be overridden per project by setting codeOwners.mergeCommitStrategy in @PLUGIN@.config
.
By default ALL_CHANGED_FILES
.
plugin.@PLUGIN@.fallbackCodeOwners : Policy that controls who should own paths that have no code owners defined. This policy only applies if the inheritance of parent code owners hasn't been explicity disabled in a relevant code owner config file and if there are no unresolved imports.
Can be NONE
, PROJECT_OWNERS
or ALL_USERS
.NONE
:
Paths for which no code owners are defined are owned by no one. This means changes that touch these files can only be submitted with a code owner override.PROJECT_OWNERS
:
Paths for which no code owners are defined are owned by the project owners. This means changes to these paths can be approved by the project owners.ALL_USERS
:
Paths for which no code owners are defined are owned by all users. This means changes to these paths can be approved by anyone. If implicit approvals are enabled, these files are always automatically approved. The ALL_USERS
option should only be used with care as it means that any path that is not covered by the code owner config files is automatically opened up to everyone and mistakes with configuring code owners can easily happen. This is why this option is intended to be only used if requiring code owner approvals should not be enforced.
Please note that fallback code owners are not suggested as code owners in the UI.
Can be overridden per project by setting codeOwners.fallbackCodeOwners in @PLUGIN@.config
.
By default NONE
.
plugin.@PLUGIN@.maxPathsInChangeMessages : The @PLUGIN@ plugin lists owned paths in change messages when:
1. A code owner votes on the code owners label:
The paths that are affected by the vote are listed in the change message that is posted when the vote is applied.
2. A code owner is added as reviewer:
The paths that are owned by the reviewer are posted as a change message.
This configuration parameter controls the maximum number of paths that are included in change messages. This is to prevent that the change messages become too big for large changes that touch many files.
Setting the value to 0
disables including owned paths into change messages.
Can be overridden per project by setting codeOwners.maxPathsInChangeMessages in @PLUGIN@.config
.
By default 100
.
codeOwners.disabled : Whether the code owners functionality is disabled for the project.
If true
submitting changes doesn't require code owner approvals.
This allows projects to opt-out of the code owners functionality.
Overrides the global setting plugin.@PLUGIN@.disabled in gerrit.config
and the codeOwners.disabled
setting from parent projects.
By default false
.
codeOwners.disabledBranch : An exact ref, a ref pattern or a regular expression to disable the code owners functionality for the matched branches.
By using a negative lookahead, it‘s possible to match all but one branches. E.g. to disable the code owners functionality for all branches except the refs/heads/master
branch the following regular expression can be used: ^refs/(?!heads/master$).*
For matched branches submitting changes doesn’t require code owner approvals.
This allows branches to opt-out of the code owners functionality.
Can be set multiple times.
Overrides the global setting plugin.@PLUGIN@.disabledBranch in gerrit.config
and the codeOwners.disabledBranch
setting from parent projects.
By default unset.
codeOwners.backend : The code owners backend that should be used for the project.
Overrides the global setting plugin.@PLUGIN@.backend in gerrit.config
and the codeOwners.backend
setting from parent projects.
Can be overridden per branch by setting codeOwners.<branch>.backend.
The supported code owner backends are listed at the Backends page.
If not set, the global setting plugin.@PLUGIN@.backend in gerrit.config
is used.
NOTE: Be careful with changing this parameter as it invalidates all existing code owner config files. E.g. by changing the backend code owner configurations may now be read from different files, or even worse from the same files but with another syntax so that the existing code owner config files can no longer be parsed.
codeOwners.<branch>.backend : The code owners backend that should be used for this branch.
The branch can be the short or full name. If both configurations exist the one for the full name takes precedence.
Overrides the per repository setting codeOwners.backend and the codeOwners.\<branch\>.backend
setting from parent projects.
The supported code owner backends are listed at the Backends page.
If not set, the project level configuration codeOwners.backend is used.
NOTE: Be careful with changing this parameter as it invalidates all existing code owner config files. E.g. by changing the backend code owner configurations may now be read from different files, or even worse from the same files but with another syntax so that the existing code owner config files can no longer be parsed.
codeOwners.fileExtension : The file extension that should be used for the code owner config files in this project.
Allows to use a different code owner configuration in a fork. E.g. if the original repository uses OWNERS
code owner config files (no file extension configured) one could set fork
as file extension in the fork so that the fork uses OWNERS.fork
files and the existing OWNERS
files are ignored.
Overrides the global setting plugin.@PLUGIN@.fileExtension in gerrit.config
and the codeOwners.fileExtension
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.fileExtension in gerrit.config
is used.
codeOwners.overrideInfoUrl : A URL for a page that provides project-specific information about how to request a code owner override.
The frontend displays a link to this page on the change screen so that users can discover the override instructions easily.
Overrides the global setting plugin.@PLUGIN@.overrideInfoUrl in gerrit.config
and the codeOwners.overrideInfoUrl
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.overrideInfoUrl in gerrit.config
is used.
codeOwners.enableImplicitApprovals : Whether an implicit code owner approval from the last uploader is assumed.
Can be FALSE
, TRUE
or FORCED
(see plugin.@PLUGIN@.enableImplicitApprovals for an explanation of these values).
If enabled/enforced, code owners need to be aware of their implicit approval when they upload new patch sets for other users (e.g. if a contributor pushes a change to a wrong branch and a code owner helps them to get it rebased onto the correct branch, the rebased change has implicit approvals from the code owner, since the code owner is the uploader).
If implicit code owner approvals are disabled, code owners can still self-approve their own changes by voting on the change.
Overrides the global setting plugin.@PLUGIN@.enableImplicitApprovals in gerrit.config
and the codeOwners.enableImplicitApprovals
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.enableImplicitApprovals in gerrit.config
is used.
codeOwners.globalCodeOwner : The email of a user that should be a code owner globally across all branches.
If global code owners should be omitted in the code owner suggestion (e.g. because they are bots and cannot react to review requests), they can be added to the Service Users
group (since members of this group are not suggested as code owners).
Can be specified multiple time to set multiple global code owners.
Overrides the global setting plugin.@PLUGIN@.globalCodeOwner in gerrit.config
and the codeOwners.globalCodeOwner
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.globalCodeOwner in gerrit.config
is used.
codeOwners.readOnly : Whether code owner config files are read-only.
Overrides the global setting plugin.@PLUGIN@.readOnly in gerrit.config
and the codeOwners.readOnly
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.readOnly in gerrit.config
is used.
codeOwners.exemptPureReverts : Whether pure revert changes are exempted from needing code owner approvals for submit.
Only works for pure reverts which have been created through the Gerrit REST API (but not for pure reverts which were done locally and then pushed to Gerrit).
Overrides the global setting plugin.@PLUGIN@.exemptPureReverts in gerrit.config
and the codeOwners.exemptPureReverts
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.exemptPureReverts in gerrit.config
is used.
codeOwners.enableValidationOnCommitReceived : Policy for validating code owner config files when a commit is received. Allowed values are true
(the code owner config file validation is enabled and the upload of invalid code owner config files is rejected), false
(the code owner config file validation is disabled, invalid code owner config files are not rejected) and dry_run
(code owner config files are validated, but invalid code owner config files are not rejected).
Should only be disabled if there is bot that validates the code owner config files in open changes as part of a pre-submit validation.
Overrides the global setting plugin.@PLUGIN@.enableValidationOnCommitReceived in gerrit.config
and the codeOwners.enableValidationOnCommitReceived
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.enableValidationOnCommitReceived in gerrit.config
is used.
codeOwners.enableValidationOnSubmit : Policy for validating code owner config files when a change is submitted. Allowed values are true
(the code owner config file validation is enabled and the submit of invalid code owner config files is rejected), false
(the code owner config file validation is disabled, invalid code owner config files are not rejected) and dry_run
(code owner config files are validated, but invalid code owner config files are not rejected).
Disabling the submit validation is not recommended.
Overrides the global setting plugin.@PLUGIN@.enableValidationOnSubmit in gerrit.config
and the codeOwners.enableValidationOnSubmit
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.enableValidationOnSubmit in gerrit.config
is used.
codeOwners.rejectNonResolvableCodeOwners : Whether modifications of code owner config files that newly add non-resolvable code owners should be rejected on commit received and submit.
if true
newly added non-resolveable code owners are reported as errors and the commit is rejected.
If false
newly added non-resolvable code owners are only reported as warnings and the commit is not rejected.
This setting has no effect if the validation is disabled via enableValidationOnCommitReceived or enableValidationOnSubmit. Overrides the global setting plugin.@PLUGIN@.rejectNonResolvableCodeOwners in gerrit.config
and the codeOwners.rejectNonResolvableCodeOwners
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.rejectNonResolvableCodeOwners in gerrit.config
is used.
codeOwners.rejectNonResolvableImports : Whether modifications of code owner config files that newly add non-resolvable imports should be rejected on commit received an submit.
if true
newly added non-resolveable imports are reported as errors and the commit is rejected.
If false
newly added non-resolvable imports are only reported as warnings and the commit is not rejected.
This setting has no effect if the validation is disabled via enableValidationOnCommitReceived or enableValidationOnSubmit. Overrides the global setting plugin.@PLUGIN@.rejectNonResolvableImports in gerrit.config
and the codeOwners.rejectNonResolvableImports
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.rejectNonResolvableImports in gerrit.config
is used.
codeOwners.requiredApproval : Approval that is required from code owners to approve the files in a change.
Any approval on the configured label that has a value >= the configured value is considered as code owner approval.
The required approval must be specified in the format “<label-name>+<label-value>”.
The configured label must exist for all projects for which this setting applies (all child projects that have code owners enabled and for which this setting is not overridden).
If the definition of the configured label has copy rules enabled so that votes are sticky across patch sets, also the code owner approvals will be sticky.
If the definition of the configured label ignores self approvals from the uploader, any vote from the uploader is ignored for the code owners check.
Overrides the global setting plugin.@PLUGIN@.requiredApproval in gerrit.config
and the codeOwners.requiredApproval
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.requiredApproval in gerrit.config
is used.
codeOwners.overrideApproval : Approval that counts as override for the code owners submit check.
Any approval on the configured label that has a value >= the configured value is considered as code owner override.
The override approval must be specified in the format “<label-name>+<label-value>”.
Can be specifed multiple times to configure multiple override approvals. If multiple approvals are configured, any of them is sufficient to override the code owners submit check.
The configured labels must exist for all projects for which this setting applies (all projects that have code owners enabled and for which this setting is not overridden).
If the definition of the configured labels has copy rules enabled so that votes are sticky across patch sets, also the code owner overrides will be sticky.
If the definition of a configured label ignores self approvals from the uploader, any override vote from the uploader on that label is ignored for the code owners check.
Overrides the global setting plugin.@PLUGIN@.overrideApproval in gerrit.config
and the codeOwners.overrideApproval
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.overrideApproval in gerrit.config
is used.
codeOwners.mergeCommitStrategy : Strategy that defines for merge commits which files require code owner approvals.
Can be ALL_CHANGED_FILES
or FILES_WITH_CONFLICT_RESOLUTION
(see plugin.@PLUGIN@.mergeCommitStrategy for an explanation of these values).
Overrides the global setting plugin.@PLUGIN@.mergeCommitStrategy in gerrit.config
and the codeOwners.mergeCommitStrategy
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.mergeCommitStrategy in gerrit.config
is used.
codeOwners.fallbackCodeOwners : Policy that controls who should own paths that have no code owners defined. This policy only applies if the inheritance of parent code owners hasn't been explicity disabled in a relevant code owner config file and if there are no unresolved imports.
Can be NONE
, PROJECT_OWNERS
or ALL_USERS
(see plugin.@PLUGIN@.fallbackCodeOwners for an explanation of these values).
Overrides the global setting plugin.@PLUGIN@.fallbackCodeOwners in gerrit.config
and the codeOwners.fallbackCodeOwners
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.fallbackCodeOwners in gerrit.config
is used.
codeOwners.maxPathsInChangeMessages : The @PLUGIN@ plugin lists owned paths in change messages when:
1. A code owner votes on the code owners label:
The paths that are affected by the vote are listed in the change message that is posted when the vote is applied.
2. A code owner is added as reviewer:
The paths that are owned by the reviewer are posted as a change message.
This configuration parameter controls the maximum number of paths that are included in change messages. This is to prevent that the change messages become too big for large changes that touch many files.
Setting the value to 0
disables including owned paths into change messages.
Overrides the global setting plugin.@PLUGIN@.maxPathsInChangeMessages in gerrit.config
and the codeOwners.maxPathsInChangeMessages
setting from parent projects.
If not set, the global setting plugin.@PLUGIN@.maxPathsInChangeMessages in gerrit.config
is used.
By default 100
.
Back to @PLUGIN@ documentation index
Part of Gerrit Code Review