gpt4 book ai didi

git - 如何正确地将 Bitbucket post-commit Hook shell 脚本转换为 Powershell 脚本?

转载 作者:太空狗 更新时间:2023-10-29 14:42:56 24 4
gpt4 key购买 nike

我正在尝试为 Bitbucket 设置 Post-commit Hook ,以便在我的存储库发生任何更改时触发 Teamcity。

下面是它的shell脚本:

SERVER=https://buildserver-url
USER=buildserver-user
PASS="<password>"

LOCATOR=$1

# The following is one-line:
(sleep 10; curl --user $USER:$PASS -X POST "$SERVER/app/rest/vcs-root-instances/commitHookNotification?locator=$LOCATOR" -o /dev/null) >/dev/null 2>&1 <&1 &

exit 0

但是,我在 Windows 环境下工作,需要在 Powershell 中使用这个脚本,我尝试将它转换为 Powershell,但它似乎不起作用。

$SERVER=https://buildserver-url
$USER=buildserver-user
$PASS="<password>"

$LOCATOR=%1%

# The following is one-line:
(sleep 10; curl --user $USER:$PASS -X POST "$SERVER/app/rest/vcs-root-instances/commitHookNotification?locator=$LOCATOR" -o /dev/null) >/dev/null 2>&1 <&1 &

exit 0

我不太熟悉 Powershell 脚本。我哪里出错了?

最佳答案

在 PowerShell 中做同样的事情可以说有点复杂。我们需要一份工作才能获得 background task并且必须重定向到 Out-Null .

param (
[string]$locator = "xyz"
)
$SERVER="https://buildserver-url"
$USER="buildserver-user"
$PASS="<password>"

$scriptBlock = {
$output = & curl --user "$($USER):$($PASS)" -X POST "$($SERVER)/app/rest/vcs-root-instances/commitHookNotification?locator=$($args[1])" -o Out-Null 2>&1 | Out-Null;
return $output
}

#Sleep 10
$job = Start-Job -scriptblock $scriptBlock -ArgumentList $locator
Wait-Job $job
Receive-Job $job

exit 0

我无法进行端到端的测试,但这应该能让您抢先一步。

关于git - 如何正确地将 Bitbucket post-commit Hook shell 脚本转换为 Powershell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com