blob: 6404d4e1dbf8c7b1525c7b75e353bbd82be05ad1 [file] [log] [blame]
Gerrit Code Review - Contributor Agreements
===========================================
Users can be required to sign one or more contributor agreements before
being able to submit a change in a project.
Contributor agreements are global and can be configured by modifying
the `project.config` file on the `All-Projects` project. Push permission
needs to be granted for the `refs/meta/config` branch to be able to push
back the `project.config` file. Consult
link:access-control.html[access controls] for details on how access
permissions work.
To retrieve the `project.config` file, initialize a temporary Git
repository to edit the configuration:
====
mkdir cfg_dir
cd cfg_dir
git init
====
Download the existing configuration from Gerrit:
====
git fetch ssh://localhost:29418/All-Projects refs/meta/config
git checkout FETCH_HEAD
====
Contributor agreements are defined as contributor-agreement sections in
`project.config`:
====
[contributor-agreement "Individual"]
description = If you are going to be contributing code on your own, this is the one you want. You can sign this one online.
requireContactInformation = true
agreementUrl = static/cla_individual.html
autoVerify = group CLA Accepted - Individual
accepted = group CLA Accepted - Individual
====
Each `contributor-agreement` section within the `project.config` file must
have a unique name. The section name will appear in the web UI.
If not already present, add the UUID of the groups used in the
`autoVerify` and `accepted` variables in the groups file.
Commit the configuration change, and push it back:
====
git commit -a -m "Add Individual contributor agreement"
git push ssh://localhost:29418/All-Projects HEAD:refs/meta/config
====
[[contributor-agreement.name.description]]contributor-agreement.<name>.description::
+
Short text describing the contributor agreement. This text will appear
when the user selects an agreement.
[[contributor-agreement.name.requireContactInformation]]contributor-agreement.<name>.requireContactInformation::
+
True if the user must provide contact information when signing a
contributor agreement. Default is false.
[[contributor-agreement.name.agreementUrl]]contributor-agreement.<name>.agreementUrl::
+
An absolute URL or a relative path to an HTML file containing the text
of the contributor agreement. The URL must use the http or https
scheme. The path is relative to the `gerrit.basePath` variable in
`gerrit.config`.
[[contributor-agreement.name.autoVerify]]contributor-agreement.<name>.autoVerify::
+
If present, the user can sign the contributor agreement online. The
value is the group to which the user will be added after signing the
agreement. The group's UUID must also appear in the `groups` file.
[[contributor-agreement.name.accepted]]contributor-agreement.<name>.accepted::
+
List of groups that will be considered when verifying that a
contributor agreement has been accepted. The groups' UUID must also
appear in the `groups` file.
GERRIT
------
Part of link:index.html[Gerrit Code Review]