環境: Jenkins ver. 2.176.2 + gitblit-1.8.0
需要注意 gitblit 要在對應的 repository 下面設置post-receive scripts爲自己的腳本 my-jenkins-notify.groovy
這個腳本放到 gitblit的groovy目錄下 gitblit-1.8.0\data\groovy, 修改腳本中的192.168.31.8爲你自己的jenkins服務器地址:
import com.gitblit.GitBlit
import com.gitblit.Keys
import com.gitblit.models.RepositoryModel
import com.gitblit.models.UserModel
import com.gitblit.utils.JGitUtils
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.slf4j.Logger
def triggerUrl = "http://${user.username}@192.168.31.8:8080/git/notifyCommit?url=${url}/r/${repository.name}"
logger.info("jenkins hook triggered by ${user.username} for ${repository.name}, notify " + triggerUrl)
new URL(triggerUrl).getContent()
Jenkins中建立Free style Project, 在其 Source Code Management 下面設置相應的 GitBlit 的 repository 地址, 同時在Build Triggers 中勾選Poll SCM,內容不填就ok了