HowTo setup automatic refresh of repositories in Redmine on commit » History » Revision 9
« Previous |
Revision 9/29
(diff)
| Next »
András Veres-Szentkirályi, 2010-07-22 14:11
Added information about Git
HowTo setup automatic refresh of repositories in Redmine on commit¶
- Table of contents
- HowTo setup automatic refresh of repositories in Redmine on commit
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.
Exemples:
- /sys/fetch_changesets?key=<your service key> fetches changesets for all active projects
- /sys/fetch_changesets?id=<project identifier>&key=<your service key> fetches changesets from the repository of a specific project
See #2925 for original feature request.
Step 1 : configure Redmine to accept the request¶
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.
Step 2 : setup a post-commit script on the SCM server¶
You have to setup a post-commit script which will call the previous URL.
Subversion¶
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 :
#!/bin/sh
curl "http://<redmine url>/sys/fetch_changesets?key=<your service key>"
Or, on a Windows system (2 files) :
post-commit.cmd
:cscript "%~dp0refresh_redmine.vbs" //Nologo >> "%~dp0refresh_redmine.log" 2>&1
refresh_redmine.vbs
:private const REDMINE_SERVICE_KEY = "<your service key>" Call HTTPPost("http://<redmine url>/sys/fetch_changesets", "key=" & REDMINE_SERVICE_KEY) Private Function HTTPPost(sUrl, sRequest) set oHTTP = CreateObject("Microsoft.XMLHTTP") oHTTP.open "POST", sUrl,false oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" oHTTP.setRequestHeader "Content-Length", Len(sRequest) oHTTP.send sRequest HTTPPost = oHTTP.responseText End Function
Git¶
Simply add a post-receive
(even on a Windows system, no extension is required) script file in the hooks sub-directory which contains the HTTP request call:
#!/bin/sh
curl "http://<redmine url>/sys/fetch_changesets?key=<your service key>"
This setup works in the "usual" case, where Redmine's repository is set to a bare Git repository, so no commits can happen directly in there. If you have a rare setup with a non-bare repository linked to Redmine, you need to add the script as a post-commit
hook as well.
Don't forget to make the file(s) executable on UNIXish systems, more information about Git hooks can be found in the githooks man page.
Updated by András Veres-Szentkirályi about 14 years ago · 9 revisions