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