在groovy GitBlit钩子中获取内容版本化文件

时间:2018-01-25 12:36:05

标签: git groovy hook gitblit

我有一个用Groovy制作的自定义预接收挂钩GitBlit。我想在当前存储库中读取一个版本化文件,并以字符串形式提取其内容。

我已经看到了REPLICATION{repository} vars来获取存储库的绝对路径,但没有找到。

您是否知道任何参数或工具函数来获取此文件的路径(或内容)? 感谢

1 个答案:

答案 0 :(得分:0)

我找到了咨询此page的解决方案。 com.gitblit.utils.JGitUtilscom.gitblit.GitBlit中有工具函数允许将文件内容作为字符串。

文档可用here

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

// Get repository
def repo = gitblit.getRepository(repository.name)
//logger.info(repo.dump()) // See a dump of the var in the logs

// Get string file content
def str = JGitUtils.getStringContent(repo, null, "myFile.txt", null)
  

注意:repository var由GitBlit自然注入   执行groovy钩子脚本。