lemval
2012-01-31 1c30dad2115fc513791d8a5b292ad0f7d7b85749
commit | author | age
fa54be 1 /*
JM 2  * Copyright 2011 gitblit.com.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 import com.gitblit.GitBlit
17 import com.gitblit.Keys
18 import com.gitblit.models.RepositoryModel
19 import com.gitblit.models.UserModel
20 import com.gitblit.utils.JGitUtils
21 import org.eclipse.jgit.lib.Repository
22 import org.eclipse.jgit.revwalk.RevCommit
23 import org.eclipse.jgit.transport.ReceiveCommand
24 import org.eclipse.jgit.transport.ReceiveCommand.Result
25 import org.slf4j.Logger
26
27 /**
28  * Sample Gitblit Post-Receive Hook: jenkins
29  *
30  * The Post-Receive hook is executed AFTER the pushed commits have been applied
31  * to the Git repository.  This is the appropriate point to trigger an
32  * integration build or to send a notification.
33  * 
34  * This script is only executed when pushing to *Gitblit*, not to other Git
35  * tooling you may be using.
36  * 
37  * If this script is specified in *groovy.postReceiveScripts* of gitblit.properties
38  * or web.xml then it will be executed by any repository when it receives a
39  * push.  If you choose to share your script then you may have to consider
40  * tailoring control-flow based on repository access restrictions.
41  *
42  * Scripts may also be specified per-repository in the repository settings page.
43  * Shared scripts will be excluded from this list of available scripts.
44  * 
45  * This script is dynamically reloaded and it is executed within it's own
46  * exception handler so it will not crash another script nor crash Gitblit.
47  * 
48  * Bound Variables:
49  *  gitblit        Gitblit Server             com.gitblit.GitBlit
50  *  repository    Gitblit Repository        com.gitblit.models.RepositoryModel
51  *  user        Gitblit User            com.gitblit.models.UserModel
52  *  commands    JGit commands             Collection<org.eclipse.jgit.transport.ReceiveCommand>
53  *    url            Base url for Gitblit    String
54  *  logger        Logger instance            org.slf4j.Logger
55  *  
56  */
57 // Indicate we have started the script
58 logger.info("jenkins hook triggered by ${user.username} for ${repository.name}")
59
60 // This script requires Jenkins Git plugin 1.1.14 or later
61 // http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/
62
63 // define your jenkins url here or set groovy.jenkinsServer in 
64 // gitblit.properties or web.xml
198fa1 65 def jenkinsUrl = gitblit.getString('groovy.jenkinsServer', 'http://yourserver/jenkins')
fa54be 66
JM 67 // define the trigger url
198fa1 68 def triggerUrl = jenkinsUrl + "/git/notifyCommit?url=$url/git/$repository.name"
fa54be 69
JM 70 // trigger the build
71 new URL(triggerUrl).getContent()