从Jenkins作业中删除远程分支

时间:2017-09-25 17:13:50

标签: git powershell jenkins tfs

我的 Git 存储库中的 Jenkins 维护工作( git on TFS online )删除不匹配的分支条件或陈旧的分支。在运行这份工作时,它说:

Going to remove branch development/Batch_R7
fatal: InvalidOperationException encountered.
   Showing a modal dialog box or form when the application is not running in 
UserInteractive mode is not a valid operation. Specify the ServiceNotification 
or DefaultDesktopOnly style to display a notification from a service 
application.
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'https://everisidbtfs.visualstudio.com': No 
error

我从 Powershell 脚本运行此命令。

其他Git命令在Powershell脚本中正常工作,例如获取分支列表。

如果我从Jenkins服务器(或任何其他计算机)的Powershell命令行运行PowerShell脚本,它可以正常工作。

TFS用户有权删除遥控器,并且会向Jenkins作业提供凭据。

这是我用来删除分支的Git命令:

git push --porcelain --progress --recurse-submodules=check origin :refs/heads/<branch_name>

这有什么解决方法吗?我做错了什么?

我想到,由于git命令是一个“写入”操作(推送),可能在Jenkins中有一些安全限制要做...我在自动化脚本中使用的其余git命令是“只读”。

1 个答案:

答案 0 :(得分:1)

  

我想到了,因为git命令是&#34;写&#34;操作(推动),詹金斯可能存在一些安全限制......

确切地说:除了push one之外,所有其他操作都是repo的本地操作,这将需要身份验证。您需要确保在Jenkins中执行脚本的帐户具有正确的凭据。如果使用的https URL中没有身份验证信息,则表示它应该依赖