不工作:GitBlit groovy hook which push changed to other Gitblit server repo
Not working: GitBlit groovy hook which push changed to other Gitblit server repo
Need a groovy push hook scripts which push changes from your Gitblit instance to another
Gitblit instance
我有两个私有的 linux servers
,比如说 A
和 B
,两者都安装了 GitBlit
。所有开发人员都在服务器 A
上提交并推送他们的更改,我希望 B
与 A
保持同步。
A
: ssh://admin@serverA:29418/testrepo.git
最初我使用 linux scp command
将 testrepo
从服务器 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
?
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*******************")
Need a groovy push hook scripts which push changes from your Gitblit instance to another Gitblit instance
我有两个私有的 linux servers
,比如说 A
和 B
,两者都安装了 GitBlit
。所有开发人员都在服务器 A
上提交并推送他们的更改,我希望 B
与 A
保持同步。
A
: ssh://admin@serverA:29418/testrepo.git
最初我使用 linux scp command
testrepo
从服务器 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
?
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*******************")