ar c diff в bash скрипт всегда получает HTTP 403 - PullRequest
0 голосов
/ 24 марта 2020

Я хочу автоматизировать некоторые команды 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

арханист

...