|  | = 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` of `All-Projects`: | 
|  | ---- | 
|  | [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. | 
|  | agreementUrl = static/cla_individual.html | 
|  | autoVerify = group CLA Accepted - Individual | 
|  | accepted = group CLA Accepted - Individual | 
|  | matchProjects = ^/.*$ | 
|  | excludeProjects = ^/not/my/project/ | 
|  | ---- | 
|  |  | 
|  | 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 group(s) used in the `autoVerify` and | 
|  | `accepted` variables in the `groups` file: | 
|  | ---- | 
|  | # UUID                                  	Group Name | 
|  | # | 
|  | 3dedb32915ecdbef5fced9f0a2587d164cd614d4	CLA Accepted - Individual | 
|  | ---- | 
|  |  | 
|  | 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.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. | 
|  |  | 
|  | [[contributor-agreement.name.matchProjects]]contributor-agreement.<name>.matchProjects:: | 
|  | + | 
|  | List of project regular expressions identifying projects where the | 
|  | agreement is required. Defaults to every project when omitted. | 
|  |  | 
|  | [[contributor-agreement.name.excludeProjects]]contributor-agreement.<name>.excludeProjects:: | 
|  | + | 
|  | List of project regular expressions identifying projects where the | 
|  | agreement does not apply. Defaults to empty. i.e. no projects excluded. | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |