【问题标题】:Not working: GitBlit groovy hook which push changed to other Gitblit server repo不工作:GitBlit groovy hook 将推送更改为其他 Gitblit 服务器 repo
【发布时间】:2015-06-15 13:09:52
【问题描述】:

需要一个 groovy 推送钩子脚本,将更改从您的 Gitblit 实例推送到另一个 Gitblit 实例

我有两个私人linux servers,比如AB,两者都安装了GitBlit。所有开发人员都在服务器A 上提交并推送他们的更改,我希望BA 保持同步。

A : ssh://admin@serverA:29418/testrepo.git

最初我使用linux scp commandtestrepo从服务器A复制到B

B : ssh://admin@serverB:29418/testrepo.git

pushserver.groovy

import com.gitblit.GitBlit
import com.gitblit.Keys
import com.gitblit.models.RepositoryModel
import com.gitblit.models.TeamModel
import com.gitblit.models.UserModel
import com.gitblit.utils.JGitUtils
import com.gitblit.utils.StringUtils
import java.text.SimpleDateFormat
import org.eclipse.jgit.api.CloneCommand
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.lib.Config
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.eclipse.jgit.util.FileUtils
import org.slf4j.Logger

File baseFolder = GitBlit.getFileOrFolder(Keys.git.repositoriesFolder)
File repoFolder = new File(baseFolder, repository.name);
Git git = Git.open(repoFolder, FS.detect())
git.push().setRemote("ssh://admin@serverB:29418/testrepo.git").setPushAll().call();

我已经使用 Gitblit UI 添加了这个脚本

testresopistory.git> edit> receive> post-receive scripts> selected(pushserver)

服务器重新启动: 现在,当我要在 serverA 上推送文件时,为什么这个脚本不将更改推送到 serverB

【问题讨论】:

    标签: git github groovy ssh gitblit


    【解决方案1】:

    感谢james-moger

    Cheers!! :) 它正在与pushhook 合作

    import com.gitblit.GitBlit
    import com.gitblit.Keys
    import com.gitblit.models.RepositoryModel
    import com.gitblit.models.TeamModel
    import com.gitblit.models.UserModel
    import com.gitblit.utils.JGitUtils
    import com.gitblit.utils.StringUtils
    import java.text.SimpleDateFormat
    import org.eclipse.jgit.api.CloneCommand
    import org.eclipse.jgit.api.Git
    import org.eclipse.jgit.lib.Repository
    import org.eclipse.jgit.lib.Config
    import org.eclipse.jgit.revwalk.RevCommit
    import org.eclipse.jgit.transport.ReceiveCommand
    import org.eclipse.jgit.transport.ReceiveCommand.Result
    import org.eclipse.jgit.util.FileUtils
    import org.eclipse.jgit.util.FS
    import org.slf4j.Logger
    
    
    logger.info("*************** START CUSTOM PUSH *******************")
    
    File baseFolder = new File("/root/softwares/apache-tomcat-6.0.32/webapps/gitblit/WEB-INF/data/git");
    File repoFolder = new File(baseFolder, repository.name);
    Git git = Git.open(repoFolder, FS.detect())
    git.push().setRemote("ssh://admin@111.11.111.111:29418/testrepo.git").setPushAll().call();
    
    
    logger.info("*************** DONE CUSTOM PUSH*******************")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2015-08-15
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多