目前在尝试匹配来自 git ls-remote 的结果时遇到问题。目前正在测试是否存在一个 repo,但是在测试期间我有 6 个 repo 来测试一个不存在的 repo。但是在运行代码时, git ls-remote 报告找不到不存在的 repo,但该函数仍被视为 true。
我已经尝试了很多东西,包括将模式和 git ls-remote 的输出设置为小写。以及修剪两个结果。以前我在脚本末尾没有“|| true”,但是当它没有找到一个 repo 时,它在到达 if 语句之前就失败了。
def is_repository(repository_name)
{
sshagent(['03876f99-2a9d-4980-b543-f8b478d4f1ec'])
{
String repository = sh( script: "git ls-remote git@bitbucket.org:<company_name>/${repository_name}.git || true", returnStdout: true)
println(repository)
String pattern = 'and the repository exists.'
if(repository.contains(pattern))
{
println("Repository: " + repository_name + " not found")
return false
}
else
{
println("Repository: " + repository_name + " found")
return true
}
}
}
如果在 git ls-remote 的输出中发现“未找到”,则预期的输出是返回 false。