| = 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] | |
| SEARCHBOX | |
| --------- |