Project

General

Profile

HowTo setup automatic refresh of repositories in Redmine on commit » History » Version 8

Etienne Massip, 2010-07-15 14:55
Beautifuling

1 1 Etienne Massip
h1. HowTo setup automatic refresh of repositories in Redmine on commit
2 4 Mischa The Evil
3
{{>toc}}
4 1 Etienne Massip
5 3 Etienne Massip
Since of version 0.9.0, you can use an HTTP submission, either GET or POST, to automatically refresh Redmine after you committed your modification in your repository.
6 1 Etienne Massip
7
Exemples:
8
9
* _/sys/fetch_changesets?key=<your service key>_ fetches changesets for all active projects
10 7 Felix Schäfer
* _/sys/fetch_changesets?id=<project identifier>&key=<your service key>_ fetches changesets from the repository of a specific project
11 1 Etienne Massip
12
See #2925 for original feature request.
13
14
h2. Step 1 : configure Redmine to accept the request
15
16
Web service for repositories must by activated in the Administration menu and the generated key will have to be used by the caller in Step 2.
17
18
h2. Step 2 : setup a post-commit script on the SCM server
19
20
You have to setup a post-commit script which will call the previous URL.
21
22
h3. Subversion
23
24 8 Etienne Massip
Simply add a @post-commit@ (or @post-commit.cmd@ on a Windows system) script file in the hooks sub-directory which contains the HTTP request call :
25
<pre><code class="sh">
26 1 Etienne Massip
#!/bin/sh
27
28 6 Jürgen Hörmann
curl "http://<redmine url>/sys/fetch_changesets?key=<your service key>"
29 8 Etienne Massip
</code></pre>
30 1 Etienne Massip
31
Or, on a Windows system (2 files) :
32
33 8 Etienne Massip
* @post-commit.cmd@ :
34
<pre><code class="cmd">
35 2 Etienne Massip
cscript "%~dp0refresh_redmine.vbs" //Nologo >> "%~dp0refresh_redmine.log" 2>&1
36 8 Etienne Massip
</code></pre>
37 1 Etienne Massip
38 8 Etienne Massip
* @refresh_redmine.vbs@ :
39
<pre><code class="vbs">
40 1 Etienne Massip
private const REDMINE_SERVICE_KEY = "<your service key>"
41
42
Call HTTPPost("http://<redmine url>/sys/fetch_changesets", "key=" & REDMINE_SERVICE_KEY)
43
44
Private Function HTTPPost(sUrl, sRequest)
45
  set oHTTP = CreateObject("Microsoft.XMLHTTP")
46
  oHTTP.open "POST", sUrl,false
47
  oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
48
  oHTTP.setRequestHeader "Content-Length", Len(sRequest)
49
  oHTTP.send sRequest
50
  HTTPPost = oHTTP.responseText
51
End Function
52 8 Etienne Massip
</code></pre>