我目前正在尝试使用 gh api 设置分支保护,并且当我运行它时它在独立的 powershell 命令上工作正常:
'{"required_status_checks":{"strict":false,"contexts":[]},"enforce_admins":true,"required_pull_request_reviews": {"dismiss_stale_reviews":true},"restrictions":{"users":[],"teams":[],"apps":[]}}' | gh api -X PUT repos/<orgName>/<repoName>/branches/main/protection --input -
但是,我需要将它用作我正在运行的 C# 程序的一部分,该程序ProcessStartInfo
接受一个 .exe 文件和要传入的命令。目前,我已经传入powershell.exe
并测试了它对于类似Write-Host
和一些命令的工作正常基本的 git 命令也是如此。
但是,当我传递与上面在 powershell 中传递的相同命令时,它以Problems parsing JSON (HTTP 400)
. 这是我从我的 .cs 文件中作为命令传递给 powershell 进程的字符串(使用“\”作为“的转义符”)。我应该如何将 json 作为输入传递给 gh api?
"'{\"required_status_checks\":{\"strict\":false,\"contexts\":[]},\"enforce_admins\":true,\"required_pull_request_reviews\": {\"dismiss_stale_reviews\":true},\"restrictions\":{\"users\":[],\"teams\":[],\"apps\":[]}}' | gh api -X PUT repos/<orgName>/<repoName>/branches/main/protection --input -"
为了完整起见,我在 .cs 文件中执行之前确实打印了命令,并且它像下面的 powershell 一样正确显示
'{"required_status_checks":{"strict":false,"contexts":[]},"enforce_admins":true,"required_pull_request_reviews": {"dismiss_stale_reviews":true},"restrictions":{"users":[],"teams":[],"apps":[]}}' | gh api -X PUT repos/<orgName>/<repoName>/branches/main/protection --input -