blob: a7f4a2425a3edb35f04fa0bd4b0169a98345a81c [file] [log] [blame]
Ales Komarek3446a0a2016-03-08 10:21:00 +01001
Ales Komarek7f93ce22016-08-29 23:27:47 +02002======
3Gerrit
4======
Ales Komarek3446a0a2016-03-08 10:21:00 +01005
Ales Komarek7f93ce22016-08-29 23:27:47 +02006Gerrit provides web based code review and repository management for the Git version control system.
Ales Komarek3446a0a2016-03-08 10:21:00 +01007
8Sample pillars
9==============
10
Ales Komarek49a37292016-08-31 16:18:31 +020011Simple gerrit service
Ales Komarek3446a0a2016-03-08 10:21:00 +010012
13.. code-block:: yaml
14
15 gerrit:
16 server:
17 enabled: true
Ales Komarek7f93ce22016-08-29 23:27:47 +020018 source:
19 engine: http
20 address: https://gerrit-ci.gerritforge.com/job/Gerrit-stable-2.13/20/artifact/buck-out/gen/gerrit.war
21 hash: 2e17064b8742c4622815593ec496c571
Ales Komarek3446a0a2016-03-08 10:21:00 +010022
Ales Komarek49a37292016-08-31 16:18:31 +020023Full service setup
24
25.. code-block:: yaml
26
27 gerrit:
28 server:
29 canonical_web_url: http://10.10.10.148:8082/
30 email_private_key: ""
31 token_private_key: ""
32 initial_user:
33 full_name: John Doe
34 email: 'mail@jdoe.com'
35 username: jdoe
36 plugin:
37 download-commands:
38 engine: gerrit
39 # replication:
40 # engine: gerrit
41 reviewnotes:
42 engine: gerrit
43 singleusergroup:
44 engine: gerrit
45 ssh_rsa_key: |
46 -----BEGIN RSA PRIVATE KEY-----
47 MIIEowIBAAKCAQEAs0Y8mxS3dfs5zG8Du5vdBkfOCOng1IEUmFZIirJ8oBgJOd54
48 QgmkDFB7oP9eTCgz9k/rix1uJWhhVCMBzrWzH5IODO+tyy/tK66pv2BWtVfTDhBA
49 nShOLDNbSIBaV8E/NcrbnQN+b0alp4N7rQnavkOYl+JQncKjz1csmCodirscB9Oj
50 rdo6NG9olv9IQd/tDQxEeDyQkoW50aCEWcq7o+QaTzgnlrL+XZEzhzjdcvA9m8go
51 ...
52 jvMXms60iD/A5OpG33LWHNNzQBP486SxG75LB+Xs5sp5j2/b7VF5LJLhpGiJv9Mk
53 ydbuy8iuuvali2uF133kAlLqnrWfVTYQQI1OfW5glOv1L6kv94dU
54 -----END RSA PRIVATE KEY-----
55 ssh_rsa_key_pub: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzRjybFLd1+znMbwO7m90GR84I6eDUgRSYVkiKsnygGAk53nhCCaQMUHug/15MKDP2T+uLHW4laGFUIwHOtbMfkg4M763LL+0rrqm/YFa1V9MOEECdKE4sM1tIgFpXwT81ytudA35vRqWng3utCdq+Q5iX4lCdwqPPVyyYKh2KuxwH06Ot2jo0b2iW/0hB3+0NDER4PJCShbnRoIRZyruj5BpPOCeWsv5dkTOHON1y8D2byCgNGdCBIRx7x9Qb4dKK2F01r0/bfBGxELJzBdQ8XO14bQ7VOd3gTxrccTM4tVS7/uc/vtjiq7MKjnHGf/svbw9bTHAXbXcWXtOlRe51
56 email: mail@domain.com
57 auth:
58 engine: HTTP
59 source:
60 engine: http
61 address: https://gerrit-releases.storage.googleapis.com/gerrit-2.12.4.war
62 hash: sha256=45786a920a929c6258de6461bcf03ddec8925577bd485905f102ceb6e5e1e47c
Jakub Josef09765e12018-01-09 13:28:20 +010063 receive_timeout: 5min
64 sshd:
65 threads: 64
66 batch_threads: 16
67 max_connections_per_user: 64
Ales Komarek49a37292016-08-31 16:18:31 +020068 database:
69 engine: postgresql
70 host: localhost
71 port: 5432
72 name: gerrit
73 user: gerrit
74 password: ${_param:postgresql_gerrit_password}
Jakub Josef09765e12018-01-09 13:28:20 +010075 pool_limit: 250
76 pool_max_idle: 16
77
78Gerrit change auto abandon
79
80.. code-block:: yaml
81
82 gerrit:
83 server:
84 change_cleanup:
85 abandon_after: 3months
Ales Komarek49a37292016-08-31 16:18:31 +020086
Ales Komarek2fc39002016-09-14 11:43:56 +020087
88Gerrit client enforcing groups
89
90.. code-block:: yaml
91
92 gerrit:
93 client:
94 group:
95 Admin001:
96 description: admin 01
97 Admin002:
98 description: admin 02
99
100
Filip Pytloun33d84dd2016-12-20 16:13:24 +0100101Gerrit client enforcing users, install using pip
Ales Komarek2fc39002016-09-14 11:43:56 +0200102
103.. code-block:: yaml
104
105 gerrit:
106 client:
Filip Pytloun33d84dd2016-12-20 16:13:24 +0100107 source:
108 engine: pip
Ales Komarek2fc39002016-09-14 11:43:56 +0200109 user:
110 jdoe:
111 fullname: John Doe
112 email: "jdoe@domain.com"
113 ssh_key: ssh-rsa
114 http_password: password
115 groups:
116 - Admin001
117
118
Ales Komarek49a37292016-08-31 16:18:31 +0200119Gerrit client enforcing projects
120
121.. code-block:: yaml
122
123 gerrit:
124 client:
125 enabled: True
126 server:
127 host: 10.10.10.148
128 user: newt
129 key: |
130 -----BEGIN RSA PRIVATE KEY-----
131 MIIEowIBAAKCAQEAs0Y8mxS3dfs5zG8Du5vdBkfOCOng1IEUmFZIirJ8oBgJOd54
132 QgmkDFB7oP9eTCgz9k/rix1uJWhhVCMBzrWzH5IODO+tyy/tK66pv2BWtVfTDhBA
133 ...
134 l1UrxQKBgEklBTuEiDRibKGXQBwlAYvK2He09hWpqtpt9/DVel6s4A1bbTWDHyoP
135 jvMXms60iD/A5OpG33LWHNNzQBP486SxG75LB+Xs5sp5j2/b7VF5LJLhpGiJv9Mk
136 ydbuy8iuuvali2uF133kAlLqnrWfVTYQQI1OfW5glOv1L6kv94dU
137 -----END RSA PRIVATE KEY-----
Ales Komarek50c558e2016-09-05 23:34:43 +0200138 email: "Project Creator <infra@lists.domain.com>"
Ales Komarek49a37292016-08-31 16:18:31 +0200139 project:
140 test_salt_project:
141 enabled: true
142
Ales Komarek50c558e2016-09-05 23:34:43 +0200143Gerrit client enforcing project, full project example
144
145.. code-block:: yaml
146
147 gerrit:
148 client:
149 enabled: True
150 project:
151 test_salt_project:
152 enabled: true
153 access:
154 "refs/heads/*":
155 actions:
156 - name: abandon
157 group: openstack-salt-core
158 - name: create
159 group: openstack-salt-release
160 labels:
161 - name: Code-Review
162 group: openstack-salt-core
163 score: -2..+2
164 - name: Workflow
165 group: openstack-salt-core
166 score: -1..+1
167 "refs/tags/*":
168 actions:
169 - name: pushSignedTag
170 group: openstack-salt-release
Dmitry Burmistrov9efdff82018-03-21 15:07:05 +0400171 force: true
Alexander Noskov870359d2017-11-02 13:53:15 +0400172 inherit_access: All-Projects
Ales Komarek50c558e2016-09-05 23:34:43 +0200173 require_change_id: true
174 require_agreement: true
175 merge_content: true
Alexander Noskov338d3c72017-09-19 12:10:32 +0400176 action: "fast forward only"
Ales Komarek50c558e2016-09-05 23:34:43 +0200177
Ales Komarek1acb14d2016-09-09 15:14:12 +0200178
179.. code-block:: yaml
180
181 gerrit:
182 client:
183 enabled: True
184 group:
185 groupname:
186 enabled: true
187 members:
188 - username
189 account:
190 username:
191 enabled: true
192 full_name: hovno
193 email: mail@newt.cz
194 public_key: rsassh
195 http_password: passwd
196
Jiri Broulik90a79c62018-04-25 20:53:45 +0200197Gerrit client proxy
198
199.. code-block:: yaml
200
201 gerrit:
202 client:
203 proxy:
204 http_proxy: http://192.168.10.15:8000
205 https_proxy: http://192.168.10.15:8000
206 no_proxy: 192.168.10.90
Ales Komarek1acb14d2016-09-09 15:14:12 +0200207
Ales Komarek50c558e2016-09-05 23:34:43 +0200208Sample project access
209
210.. code-block:: yaml
211
212 [access "refs/*"]
213 read = group Administrators
214 read = group Anonymous Users
215 [access "refs/for/refs/*"]
216 push = group Registered Users
217 pushMerge = group Registered Users
218 [access "refs/heads/*"]
219 create = group Administrators
220 create = group Project Owners
221 forgeAuthor = group Registered Users
222 forgeCommitter = group Administrators
223 forgeCommitter = group Project Owners
224 push = group Administrators
225 push = group Project Owners
226 label-Code-Review = -2..+2 group Administrators
227 label-Code-Review = -2..+2 group Project Owners
228 label-Code-Review = -1..+1 group Registered Users
229 label-Verified = -1..+1 group Non-Interactive Users
230 submit = group Administrators
231 submit = group Project Owners
232 editTopicName = +force group Administrators
233 editTopicName = +force group Project Owners
234 [access "refs/meta/config"]
235 exclusiveGroupPermissions = read
236 read = group Administrators
237 read = group Project Owners
238 push = group Administrators
239 push = group Project Owners
240 label-Code-Review = -2..+2 group Administrators
241 label-Code-Review = -2..+2 group Project Owners
242 submit = group Administrators
243 submit = group Project Owners
244 [access "refs/tags/*"]
245 pushTag = group Administrators
246 pushTag = group Project Owners
Dmitry Burmistrov9efdff82018-03-21 15:07:05 +0400247 pushSignedTag = +force group Administrators
Ales Komarek50c558e2016-09-05 23:34:43 +0200248 pushSignedTag = group Project Owners
249 [label "Code-Review"]
250 function = MaxWithBlock
251 copyMinScore = true
252 value = -2 This shall not be merged
253 value = -1 I would prefer this is not merged as is
254 value = 0 No score
255 value = +1 Looks good to me, but someone else must approve
256 value = +2 Looks good to me, approved
257 [label "Verified"]
258 function = MaxWithBlock
259 copyMinScore = true
260 value = -1 Fails
261 value = 0 No score
262 value = +1 Verified
263
Ales Komarek3446a0a2016-03-08 10:21:00 +0100264Read more
265=========
266
Ales Komarek7f93ce22016-08-29 23:27:47 +0200267* https://www.gerritcodereview.com/
Ales Komarekf93ac812016-08-31 19:37:43 +0200268* https://gerrit-review.googlesource.com/Documentation/
Ales Komarek7f93ce22016-08-29 23:27:47 +0200269* https://github.com/openstack-infra/puppet-gerrit/
270* https://gerrit-ci.gerritforge.com/
Ales Komarek10526762016-09-19 15:21:46 +0200271* https://github.com/morucci/exzuul
Filip Pytlounc5f32652017-02-02 13:02:03 +0100272
273Documentation and Bugs
274======================
275
276To learn how to install and update salt-formulas, consult the documentation
277available online at:
278
279 http://salt-formulas.readthedocs.io/
280
281In the unfortunate event that bugs are discovered, they should be reported to
282the appropriate issue tracker. Use Github issue tracker for specific salt
283formula:
284
285 https://github.com/salt-formulas/salt-formula-gerrit/issues
286
287For feature requests, bug reports or blueprints affecting entire ecosystem,
288use Launchpad salt-formulas project:
289
290 https://launchpad.net/salt-formulas
291
292You can also join salt-formulas-users team and subscribe to mailing list:
293
294 https://launchpad.net/~salt-formulas-users
295
296Developers wishing to work on the salt-formulas projects should always base
297their work on master branch and submit pull request against specific formula.
298
299 https://github.com/salt-formulas/salt-formula-gerrit
300
301Any questions or feedback is always welcome so feel free to join our IRC
302channel:
303
304 #salt-formulas @ irc.freenode.net