Я хочу автоматизировать некоторые команды ar c, в частности arc diff
в ветви функций, но когда я вызываю arc diff
из сценария, он завершается с ошибкой HTTP 403. Эта же команда работает вне скрипта.
#!/bin/bash
set -eu
first=$(git cherry master -v | head -1 | cut -d " " -f 2)
arc which "$first~1"
Когда я запускаю это, я получаю:
robert@apfel:~/src$ bash -x adff
+ set -eu
++ git cherry master -v
++ head -1
++ cut -d ' ' -f 2
+ first=05d7b4d006c5ddfe3ac5686f66ba0e9cd712743a
+ arc which 05d7b4d006c5ddfe3ac5686f66ba0e9cd712743a~1
Exception
[HTTP/403]
<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie ie8"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie ie9"> <![endif]-->
<!--[if gt IE 9]><!--> <html lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<title>Oops</title>
<link rel="stylesheet" href="/static/css/dist/patterns/all-patterns.css">
<link rel="stylesheet" href="/static/css/errors.css">
</head>
<body>
<div class="container">
<img height="120px" alt="Error"
src="/stat...
(Run with `--trace` for a full exception trace.)
Работает с --trace
Я получаю следующие дополнительные строки:
at [<phutil>/src/future/http/BaseHTTPFuture.php:351]
arcanist(head=master, ref.master=cc850163f30c), duo(), phutil(head=arc-cookies-env-variable, ref.master=39ed96cd818a, ref.arc-cookies-env-variable=e9d2b1d1b1de)
#0 BaseHTTPFuture::parseRawHTTPResponse(string) called at [<phutil>/src/future/http/HTTPSFuture.php:418]
#1 HTTPSFuture::isReady() called at [<phutil>/src/future/Future.php:37]
#2 Future::resolve(NULL) called at [<phutil>/src/future/FutureProxy.php:34]
#3 FutureProxy::resolve() called at [<phutil>/src/conduit/ConduitClient.php:64]
#4 ConduitClient::callMethodSynchronous(string, array) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:332]
#5 ArcanistWorkflow::authenticateConduit() called at [<arcanist>/scripts/arcanist.php:356]
Но запускаю выше arc diff
вручную (тот же пользователь, тот же $ PWD), работает:
robert@apfel:~/src$ arc which 05d7b4d006c5ddfe3ac5686f66ba0e9cd712743a~1
REPOSITORY
...
robert@apfel:~/src$ echo $?
0
Даже простые команды, такие как
dash -c "arc which 05d7b4d006c5ddfe3ac5686f66ba0e9cd712743a~1"
или
bash -c "arc which 05d7b4d006c5ddfe3ac5686f66ba0e9cd712743a~1"
, не работают с Ошибка HTTP 403.
Почему и как я могу использовать arc diff
в скрипте?
Версии: GNU bash, версия 5.0.11 (1) -релиз (x86_64- apple-darwin19.0.0) или da sh
арханист