Merge lp:~patrick-hetu/charms/precise/gitlab/6-8-stable into lp:charms/gitlab
- Precise Pangolin (12.04)
- 6-8-stable
- Merge into trunk
Proposed by
Patrick Hetu
Status: | Work in progress |
---|---|
Proposed branch: | lp:~patrick-hetu/charms/precise/gitlab/6-8-stable |
Merge into: | lp:charms/gitlab |
Diff against target: |
300 lines (+57/-50) 5 files modified
config.yaml (+3/-3) hooks/db-relation-broken (+1/-1) hooks/db-relation-changed (+27/-17) hooks/install (+25/-28) hooks/start (+1/-1) |
To merge this branch: | bzr merge lp:~patrick-hetu/charms/precise/gitlab/6-8-stable |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Benjamin Saller (community) | Needs Fixing | ||
Review via email: mp+219012@code.launchpad.net |
Commit message
Description of the change
Update the charm to install version 6-8-stable.
To post a comment you must log in.
Revision history for this message
Marco Ceppi (marcoceppi) wrote : | # |
Hey, there's a new review system we're moving this to Work in progress, when ready for another review please move to "Needs review". If you wish to abandon this please move to Rejected.
Thanks!
Unmerged revisions
- 8. By Patrick Hetu
-
update to the last version
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'config.yaml' | |||
2 | --- config.yaml 2013-02-01 22:47:17 +0000 | |||
3 | +++ config.yaml 2014-05-09 15:56:56 +0000 | |||
4 | @@ -1,17 +1,17 @@ | |||
5 | 1 | options: | 1 | options: |
6 | 2 | admin_password: | 2 | admin_password: |
7 | 3 | type: string | 3 | type: string |
9 | 4 | description: Sets the admin password | 4 | description: Sets the admin password. MANDATORY. |
10 | 5 | 5 | ||
11 | 6 | host: | 6 | host: |
12 | 7 | type: string | 7 | type: string |
14 | 8 | description: The FQDN for your GitLab unit | 8 | description: The FQDN for your GitLab unit. MANDATORY. |
15 | 9 | default: localhost | 9 | default: localhost |
16 | 10 | 10 | ||
17 | 11 | email_from: | 11 | email_from: |
18 | 12 | type: string | 12 | type: string |
19 | 13 | description: Email address used in the from field in mails send by GitLab | 13 | description: Email address used in the from field in mails send by GitLab |
21 | 14 | default: gitlab@localhost | 14 | default: git@localhost |
22 | 15 | 15 | ||
23 | 16 | support_email: | 16 | support_email: |
24 | 17 | type: string | 17 | type: string |
25 | 18 | 18 | ||
26 | === modified file 'hooks/db-relation-broken' | |||
27 | --- hooks/db-relation-broken 2013-02-01 22:47:17 +0000 | |||
28 | +++ hooks/db-relation-broken 2014-05-09 15:56:56 +0000 | |||
29 | @@ -1,2 +1,2 @@ | |||
30 | 1 | #!/bin/bash | 1 | #!/bin/bash |
32 | 2 | sudo -u gitlab -H rm -f ~gitlab/gitlab/config/database.yml | 2 | sudo -u gitlab -H rm -f ~git/gitlab/config/database.yml |
33 | 3 | 3 | ||
34 | === modified file 'hooks/db-relation-changed' | |||
35 | --- hooks/db-relation-changed 2013-02-01 22:47:17 +0000 | |||
36 | +++ hooks/db-relation-changed 2014-05-09 15:56:56 +0000 | |||
37 | @@ -13,9 +13,9 @@ | |||
38 | 13 | source inc/common | 13 | source inc/common |
39 | 14 | 14 | ||
40 | 15 | # If there is a config file already, Joomla is already installed & config'ed | 15 | # If there is a config file already, Joomla is already installed & config'ed |
42 | 16 | if [ -f ~gitlab/gitlab/config/database.yml ]; then | 16 | if [ -f ~git/gitlab/config/database.yml ]; then |
43 | 17 | juju-log "Database relation is already setup. Nothing to be done" | 17 | juju-log "Database relation is already setup. Nothing to be done" |
45 | 18 | # TODO: Update the config file with new DB values even | 18 | # TODO: Update the config file with new DB values even |
46 | 19 | exit 0 | 19 | exit 0 |
47 | 20 | fi | 20 | fi |
48 | 21 | 21 | ||
49 | @@ -28,14 +28,14 @@ | |||
50 | 28 | # Admin password from config.yaml | 28 | # Admin password from config.yaml |
51 | 29 | admin_password=`config-get admin_password` | 29 | admin_password=`config-get admin_password` |
52 | 30 | 30 | ||
54 | 31 | # Secret key | 31 | # Secret key |
55 | 32 | secret_key=`pwgen 32 1` | 32 | secret_key=`pwgen 32 1` |
56 | 33 | 33 | ||
57 | 34 | # Sanity checks | 34 | # Sanity checks |
58 | 35 | ## If there is no database name defined, die | 35 | ## If there is no database name defined, die |
59 | 36 | if [ -z "$database" ] ; then | 36 | if [ -z "$database" ] ; then |
60 | 37 | juju-log "Not a valid database" | 37 | juju-log "Not a valid database" |
62 | 38 | exit 1 | 38 | exit 0 |
63 | 39 | fi | 39 | fi |
64 | 40 | 40 | ||
65 | 41 | ## If the user has given no password to the admin user exit with an error | 41 | ## If the user has given no password to the admin user exit with an error |
66 | @@ -48,43 +48,49 @@ | |||
67 | 48 | function configure_mysql_database() { | 48 | function configure_mysql_database() { |
68 | 49 | # Generates the proper database config | 49 | # Generates the proper database config |
69 | 50 | juju-log Configuring MySQL GitLab database | 50 | juju-log Configuring MySQL GitLab database |
75 | 51 | cd ~gitlab/gitlab | 51 | cd ~git/gitlab |
76 | 52 | sudo -u gitlab -H sh -c "sed -e 's/^ database: gitlabhq_production/ database: $database/g' < config/database.yml.mysql > config/database.yml" | 52 | sudo -u git -H sh -c "sed -e 's/^ database: gitlabhq_production/ database: $database/g' < config/database.yml.mysql > config/database.yml" |
77 | 53 | sudo -u gitlab -H sh -c "sed -i -e 's/^ username: root/ username: $user/g' config/database.yml" | 53 | sudo -u git -H sh -c "sed -i -e 's/^ username: git/ username: $user/g' config/database.yml" |
78 | 54 | sudo -u gitlab -H sh -c "sed -i -e 's/^ password: \"secure password\"/ password: \"$password\"/g' config/database.yml" | 54 | sudo -u git -H sh -c "sed -i -e 's/^ password: \"secure password\"/ password: \"$password\"/g' config/database.yml" |
79 | 55 | sudo -u gitlab -H sh -c "sed -i -e 's/^ # host: localhost/ host: $host/g' config/database.yml" | 55 | sudo -u git -H sh -c "sed -i -e 's/^ # host: localhost/ host: $host/g' config/database.yml" |
80 | 56 | cd - | 56 | cd - |
81 | 57 | } | 57 | } |
82 | 58 | 58 | ||
83 | 59 | function install_mysql_gems() { | 59 | function install_mysql_gems() { |
85 | 60 | cd ~gitlab/gitlab | 60 | cd ~git/gitlab |
86 | 61 | 61 | ||
87 | 62 | # TODO: this gem install is probably better off in the install hook | 62 | # TODO: this gem install is probably better off in the install hook |
88 | 63 | sudo gem install charlock_holmes --version '0.6.9' | 63 | sudo gem install charlock_holmes --version '0.6.9' |
89 | 64 | 64 | ||
90 | 65 | # For MySQL (note, the option says "without") | 65 | # For MySQL (note, the option says "without") |
92 | 66 | sudo -u gitlab -H bundle install --deployment --without development test postgres | 66 | sudo -u git -H bundle install --deployment --without development test postgres |
93 | 67 | cd - | 67 | cd - |
94 | 68 | } | 68 | } |
95 | 69 | 69 | ||
96 | 70 | function init_database() { | 70 | function init_database() { |
98 | 71 | cd ~gitlab/gitlab | 71 | cd ~git/gitlab |
99 | 72 | juju-log "Seting up GitLab and initializing database" | 72 | juju-log "Seting up GitLab and initializing database" |
101 | 73 | sudo -u gitlab -H sh -c "yes yes | bundle exec rake gitlab:setup RAILS_ENV=production" | 73 | sudo -u git -H sh -c "yes yes | bundle exec rake gitlab:setup RAILS_ENV=production" |
102 | 74 | cd - | 74 | cd - |
103 | 75 | } | 75 | } |
104 | 76 | 76 | ||
105 | 77 | function precompile() { | 77 | function precompile() { |
106 | 78 | # TODO: maybe this can be done during install, but I am not sure if it needs the db connection to | 78 | # TODO: maybe this can be done during install, but I am not sure if it needs the db connection to |
107 | 79 | # be established already. | 79 | # be established already. |
109 | 80 | cd ~gitlab/gitlab | 80 | cd ~git/gitlab |
110 | 81 | juju-log "Precompiling GitLab. This may take a while (15 minutes on ec2 t1.micro)..." | 81 | juju-log "Precompiling GitLab. This may take a while (15 minutes on ec2 t1.micro)..." |
111 | 82 | juju-log "Please, be patient" | 82 | juju-log "Please, be patient" |
113 | 83 | sudo -u gitlab -H bundle exec rake assets:precompile RAILS_ENV=production | 83 | sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production |
114 | 84 | juju-log "Precompile finished. Thanks for your patience" | 84 | juju-log "Precompile finished. Thanks for your patience" |
115 | 85 | cd - | 85 | cd - |
116 | 86 | } | 86 | } |
117 | 87 | 87 | ||
118 | 88 | function install_git_shell() { | ||
119 | 89 | cd ~git/gitlab-shell/ | ||
120 | 90 | sudo -u git -H cp config.yml.example config.yml | ||
121 | 91 | sudo -u git -H ./bin/install | ||
122 | 92 | } | ||
123 | 93 | |||
124 | 88 | function set_admin_password() { | 94 | function set_admin_password() { |
125 | 89 | encrypted_password=`ruby -e 'require "bcrypt"; puts BCrypt::Password.create(ARGV[0], :cost => 10)' $admin_password` | 95 | encrypted_password=`ruby -e 'require "bcrypt"; puts BCrypt::Password.create(ARGV[0], :cost => 10)' $admin_password` |
126 | 90 | # TODO: allow for email to be config'ed too | 96 | # TODO: allow for email to be config'ed too |
127 | @@ -99,9 +105,13 @@ | |||
128 | 99 | init_database | 105 | init_database |
129 | 100 | set_admin_password | 106 | set_admin_password |
130 | 101 | precompile | 107 | precompile |
131 | 108 | install_git_shell | ||
132 | 102 | 109 | ||
133 | 103 | juju-log "Opening port 80" | 110 | juju-log "Opening port 80" |
134 | 104 | open-port 80/tcp | 111 | open-port 80/tcp |
135 | 105 | 112 | ||
138 | 106 | juju-log "Starting Nginx and GitLab" | 113 | juju-log "Starting GitLab" |
139 | 107 | hooks/start | 114 | sudo service gitlab start |
140 | 115 | juju-log "Starting nginx" | ||
141 | 116 | sudo service nginx start | ||
142 | 117 | |||
143 | 108 | 118 | ||
144 | === modified file 'hooks/install' | |||
145 | --- hooks/install 2013-02-01 22:47:17 +0000 | |||
146 | +++ hooks/install 2014-05-09 15:56:56 +0000 | |||
147 | @@ -58,13 +58,9 @@ | |||
148 | 58 | git | 58 | git |
149 | 59 | 59 | ||
150 | 60 | # This user is for gitlab, a web gui for managing your git repositories | 60 | # This user is for gitlab, a web gui for managing your git repositories |
151 | 61 | sudo adduser --disabled-login --gecos 'GitLab' gitlab | ||
152 | 62 | 61 | ||
153 | 63 | # Add it to the git group | ||
154 | 64 | sudo usermod -a -G git gitlab | ||
155 | 65 | |||
156 | 66 | # Generate the SSH key | 62 | # Generate the SSH key |
158 | 67 | sudo -u gitlab -H ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa | 63 | sudo -u git -H ssh-keygen -q -N '' -t rsa -f /home/git/.ssh/id_rsa |
159 | 68 | } | 64 | } |
160 | 69 | 65 | ||
161 | 70 | function install_gitolite() { | 66 | function install_gitolite() { |
162 | @@ -79,8 +75,8 @@ | |||
163 | 79 | sudo -u git -H sh -c 'gitolite/install -ln /home/git/bin' | 75 | sudo -u git -H sh -c 'gitolite/install -ln /home/git/bin' |
164 | 80 | 76 | ||
165 | 81 | # Copy the gitlab user's (public) SSH key ... | 77 | # Copy the gitlab user's (public) SSH key ... |
168 | 82 | sudo cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub | 78 | sudo cp /home/git/.ssh/id_rsa.pub /home/git/gitlab.pub |
169 | 83 | sudo chmod 0444 /home/git/gitlab.pub | 79 | sudo chmod 0444 /home/git/gitlab.pub |
170 | 84 | 80 | ||
171 | 85 | # ... and use it as the admin key for the Gitolite setup | 81 | # ... and use it as the admin key for the Gitolite setup |
172 | 86 | sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gitolite setup -pk /home/git/gitlab.pub" | 82 | sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gitolite setup -pk /home/git/gitlab.pub" |
173 | @@ -88,19 +84,19 @@ | |||
174 | 88 | # Make sure the Gitolite config dir is owned by git | 84 | # Make sure the Gitolite config dir is owned by git |
175 | 89 | sudo chmod 750 /home/git/.gitolite/ | 85 | sudo chmod 750 /home/git/.gitolite/ |
176 | 90 | sudo chown -R git:git /home/git/.gitolite/ | 86 | sudo chown -R git:git /home/git/.gitolite/ |
178 | 91 | 87 | ||
179 | 92 | # Make sure the repositories dir is owned by git and it stays that way | 88 | # Make sure the repositories dir is owned by git and it stays that way |
180 | 93 | sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/ | 89 | sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/ |
181 | 94 | sudo chown -R git:git /home/git/repositories/ | 90 | sudo chown -R git:git /home/git/repositories/ |
182 | 95 | 91 | ||
183 | 96 | # Adds localhost ssh key to gitlab's known_hosts | 92 | # Adds localhost ssh key to gitlab's known_hosts |
185 | 97 | sudo -u gitlab -H sh -c 'ssh-keyscan -H localhost >> ~/.ssh/known_hosts' | 93 | sudo -u git -H sh -c 'ssh-keyscan -H localhost >> ~/.ssh/known_hosts' |
186 | 98 | } | 94 | } |
187 | 99 | 95 | ||
188 | 100 | function test_gitolite() { | 96 | function test_gitolite() { |
189 | 101 | # Clone the admin repo so SSH adds localhost to known_hosts ... | 97 | # Clone the admin repo so SSH adds localhost to known_hosts ... |
190 | 102 | # ... and to be sure your users have access to Gitolite | 98 | # ... and to be sure your users have access to Gitolite |
192 | 103 | sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin | 99 | sudo -u git -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin |
193 | 104 | 100 | ||
194 | 105 | # If it succeeded without errors you can remove the cloned repo | 101 | # If it succeeded without errors you can remove the cloned repo |
195 | 106 | sudo rm -rf /tmp/gitolite-admin | 102 | sudo rm -rf /tmp/gitolite-admin |
196 | @@ -108,20 +104,21 @@ | |||
197 | 108 | 104 | ||
198 | 109 | function install_gitlab() { | 105 | function install_gitlab() { |
199 | 110 | # We'll install GitLab into home directory of the user "gitlab" | 106 | # We'll install GitLab into home directory of the user "gitlab" |
201 | 111 | cd /home/gitlab | 107 | cd /home/git |
202 | 112 | 108 | ||
203 | 113 | # Clone GitLab repository | 109 | # Clone GitLab repository |
205 | 114 | sudo -u gitlab -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab | 110 | sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab |
206 | 111 | sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v1.9.3 | ||
207 | 115 | 112 | ||
210 | 116 | # Go to gitlab dir | 113 | # Go to gitlab dir |
211 | 117 | cd /home/gitlab/gitlab | 114 | cd /home/git/gitlab |
212 | 118 | 115 | ||
213 | 119 | # Checkout to stable release | 116 | # Checkout to stable release |
215 | 120 | sudo -u gitlab -H git checkout 4-1-stable | 117 | sudo -u git -H git checkout 6-8-stable |
216 | 121 | } | 118 | } |
217 | 122 | 119 | ||
218 | 123 | function configure_gitlab() { | 120 | function configure_gitlab() { |
220 | 124 | cd /home/gitlab/gitlab | 121 | cd /home/git/gitlab |
221 | 125 | 122 | ||
222 | 126 | # Copy the example GitLab config | 123 | # Copy the example GitLab config |
223 | 127 | #sudo -u gitlab -H cp config/gitlab.yml.example config/gitlab.yml | 124 | #sudo -u gitlab -H cp config/gitlab.yml.example config/gitlab.yml |
224 | @@ -130,45 +127,45 @@ | |||
225 | 130 | # charm config | 127 | # charm config |
226 | 131 | host=`config-get host` | 128 | host=`config-get host` |
227 | 132 | # TODO: add default values | 129 | # TODO: add default values |
229 | 133 | sudo -u gitlab -H sh -c "sed -e 's/^ host: localhost/ host: $host/g' < config/gitlab.yml.example > config/gitlab.yml" | 130 | sudo -u git -H sh -c "sed -e 's/^ host: localhost/ host: $host/g' < config/gitlab.yml.example > config/gitlab.yml" |
230 | 134 | 131 | ||
231 | 135 | # TODO: update other config items in gitlab.yml | 132 | # TODO: update other config items in gitlab.yml |
232 | 136 | # sed -itmp | 133 | # sed -itmp |
233 | 137 | 134 | ||
234 | 138 | # Make sure GitLab can write to the log/ and tmp/ directories | 135 | # Make sure GitLab can write to the log/ and tmp/ directories |
237 | 139 | sudo chown -R gitlab log/ | 136 | sudo chown -R git log/ |
238 | 140 | sudo chown -R gitlab tmp/ | 137 | sudo chown -R git tmp/ |
239 | 141 | sudo chmod -R u+rwX log/ | 138 | sudo chmod -R u+rwX log/ |
240 | 142 | sudo chmod -R u+rwX tmp/ | 139 | sudo chmod -R u+rwX tmp/ |
241 | 143 | 140 | ||
242 | 144 | # Make directory for satellites | 141 | # Make directory for satellites |
245 | 145 | sudo -u gitlab -H mkdir /home/gitlab/gitlab-satellites | 142 | sudo -u git -H mkdir /home/git/gitlab-satellites |
246 | 146 | 143 | ||
247 | 147 | # Copy the example Unicorn config | 144 | # Copy the example Unicorn config |
249 | 148 | sudo -u gitlab -H cp config/unicorn.rb.example config/unicorn.rb | 145 | sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb |
250 | 149 | } | 146 | } |
251 | 150 | 147 | ||
252 | 151 | function configure_git { | 148 | function configure_git { |
254 | 152 | sudo -u gitlab -H git config --global user.name "GitLab" | 149 | sudo -u git -H git config --global user.name "GitLab" |
255 | 153 | # TODO: get from charm config.yaml | 150 | # TODO: get from charm config.yaml |
257 | 154 | sudo -u gitlab -H git config --global user.email "gitlab@localhost" | 151 | sudo -u git -H git config --global user.email "gitlab@localhost" |
258 | 155 | } | 152 | } |
259 | 156 | 153 | ||
260 | 157 | function setup_gitlab_hooks() { | 154 | function setup_gitlab_hooks() { |
262 | 158 | cd ~gitlab/gitlab | 155 | cd ~git/gitlab |
263 | 159 | sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive | 156 | sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive |
264 | 160 | sudo chown git:git /home/git/.gitolite/hooks/common/post-receive | 157 | sudo chown git:git /home/git/.gitolite/hooks/common/post-receive |
265 | 161 | cd - | 158 | cd - |
266 | 162 | } | 159 | } |
267 | 163 | 160 | ||
268 | 164 | function init_script() { | 161 | function init_script() { |
270 | 165 | sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/init.d/gitlab | 162 | sudo curl --output /etc/init.d/gitlab https://raw.githubusercontent.com/gitlabhq/gitlabhq/fefa10c3c208cb0cce6e25e498221d1d97d26238/lib/support/init.d/gitlab |
271 | 166 | sudo chmod +x /etc/init.d/gitlab | 163 | sudo chmod +x /etc/init.d/gitlab |
272 | 167 | sudo update-rc.d gitlab defaults 21 | 164 | sudo update-rc.d gitlab defaults 21 |
273 | 168 | } | 165 | } |
274 | 169 | 166 | ||
275 | 170 | function config_nginx() { | 167 | function config_nginx() { |
277 | 171 | sudo curl --output /etc/nginx/sites-available/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/nginx/gitlab | 168 | sudo curl --output /etc/nginx/sites-available/gitlab https://raw.githubusercontent.com/gitlabhq/gitlabhq/fefa10c3c208cb0cce6e25e498221d1d97d26238/lib/support/nginx/gitlab |
278 | 172 | sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab | 169 | sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab |
279 | 173 | # TODO: allow for config of hostname | 170 | # TODO: allow for config of hostname |
280 | 174 | sed -i -e 's/YOUR_SERVER_IP/0.0.0.0/g' /etc/nginx/sites-available/gitlab | 171 | sed -i -e 's/YOUR_SERVER_IP/0.0.0.0/g' /etc/nginx/sites-available/gitlab |
281 | @@ -182,6 +179,6 @@ | |||
282 | 182 | install_gitlab | 179 | install_gitlab |
283 | 183 | configure_gitlab | 180 | configure_gitlab |
284 | 184 | configure_git | 181 | configure_git |
286 | 185 | setup_gitlab_hooks | 182 | #setup_gitlab_hooks |
287 | 186 | init_script | 183 | init_script |
288 | 187 | config_nginx | 184 | config_nginx |
289 | 188 | 185 | ||
290 | === modified file 'hooks/start' | |||
291 | --- hooks/start 2013-02-01 22:47:17 +0000 | |||
292 | +++ hooks/start 2014-05-09 15:56:56 +0000 | |||
293 | @@ -1,6 +1,6 @@ | |||
294 | 1 | #!/bin/bash | 1 | #!/bin/bash |
295 | 2 | # Avoid starting a unconfigured instance that has no database | 2 | # Avoid starting a unconfigured instance that has no database |
297 | 3 | if [ -f ~gitlab/gitlab/config/database.yml ]; then | 3 | if [ -f ~git/gitlab/config/database.yml ]; then |
298 | 4 | juju-log "Starting GitLab" | 4 | juju-log "Starting GitLab" |
299 | 5 | sudo service gitlab start | 5 | sudo service gitlab start |
300 | 6 | juju-log "Starting nginx" | 6 | juju-log "Starting nginx" |
Thank you so much for the submission! I am going to put this MP to "Needs Fixing"
Once the problem has been addressed, click on the “Request another review” link on this merge proposal. That way it will be added to the review queue properly.
If you have any questions/ comments/ concerns about the review contact us in #juju on irc.freenode.net or email the mailing list <email address hidden>
The notes below are pretty minor. I'm also not sure what nesscited the change from gitlab to git everywhere, but implementor's choice :)