... | ... |
@@ -8,7 +8,8 @@ Installs [gitolite][], creates a [dedicated user][] to run it (defaults to |
8 | 8 |
[personal branches][] for `USERS`, allows users to run [`symbolic-ref`][] (e.g. |
9 | 9 |
to change `HEAD`, the default branch), prepares for [integration with a |
10 | 10 |
webserver][] (including acting as a [`git-http-backend`][] replacement, and |
11 |
-serving repos without the `.git` suffix), and allows [custom local code][]. |
|
11 |
+serving repos without the `.git` suffix), allows [custom local code][], and |
|
12 |
+prepares for [easy usage][`git-multihook`] of [custom local hooks][]. |
|
12 | 13 |
|
13 | 14 |
[`ansible-role-gitolite`]: https://git.rcrnstn.net/rcrnstn/ansible-role-gitolite |
14 | 15 |
[Ansible]: https://docs.ansible.com/ansible |
... | ... |
@@ -24,6 +25,8 @@ serving repos without the `.git` suffix), and allows [custom local code][]. |
24 | 25 |
[integration with a webserver]: https://gitolite.com/gitolite/gitweb-daemon.html |
25 | 26 |
[`git-http-backend`]: https://git-scm.com/docs/git-http-backend |
26 | 27 |
[custom local code]: https://gitolite.com/gitolite/non-core.html#using-the-gitolite-admin-repo-to-manage-non-core-code |
28 |
+[`git-multihook`]: https://git.rcrnstn.net/rcrnstn/git-multihook |
|
29 |
+[custom local hooks]: https://gitolite.com/gitolite/cookbook#adding-other-non-update-hooks |
|
27 | 30 |
|
28 | 31 |
## Try out |
29 | 32 |
|
... | ... |
@@ -4,3 +4,9 @@ gitolite_user_name: "git" |
4 | 4 |
gitolite_user_group: "{{ gitolite_user_name }}" |
5 | 5 |
gitolite_user_home: "/home/{{ gitolite_user_name }}" |
6 | 6 |
gitolite_webserver_user_name: "www-data" |
7 |
+gitolite_deps_dir: "{{ gitolite_user_home }}" |
|
8 |
+gitolite_deps_git_multihook: |
|
9 |
+ - "https://git.rcrnstn.net/rcrnstn/git-multihook" |
|
10 |
+gitolite_deps: "{{ |
|
11 |
+ gitolite_deps_git_multihook |
|
12 |
+}}" |
... | ... |
@@ -133,3 +133,20 @@ |
133 | 133 |
src: "update-gitweb-access-list" |
134 | 134 |
dest: "{{ gitolite_post_compile_dir }}/update-gitweb-access-list" |
135 | 135 |
notify: 'gitolite compile' |
136 |
+ |
|
137 |
+ - name: "Clone dependencies" |
|
138 |
+ git: |
|
139 |
+ repo: "{{ item }}" |
|
140 |
+ dest: "{{ gitolite_deps_dir }}/{{ item | basename }}" |
|
141 |
+ loop: "{{ gitolite_deps }}" |
|
142 |
+ |
|
143 |
+ - name: "Symlink 'git-multihook'" |
|
144 |
+ file: |
|
145 |
+ src: "{{ gitolite_deps_dir }}/git-multihook/git-multihook" |
|
146 |
+ dest: "{{ gitolite_hooks_dir }}/git-multihook" |
|
147 |
+ state: 'link' |
|
148 |
+ |
|
149 |
+ - name: "Run 'git-multihook'" |
|
150 |
+ command: "{{ gitolite_hooks_dir | quote }}/git-multihook update" |
|
151 |
+ register: result |
|
152 |
+ changed_when: result.stdout != "" |