Действие GitHub: фатальное: не удалось прочитать имя пользователя для «https://github.com»: устройство не настроено

Я пытался сделать git clone с помощью Github Action в частном репозитории, но я не уверен, как мне настроить его для подключения к GitHub с помощью SSH. Кстати, это бегун для macOS.

На данный момент actions/checkout работает нормально, но когда я напрямую звоню git clone, выдается эта ошибка.

Файл .yml представлен ниже:

name: Release IOS
on: 
  push:
    branches:
      - github-action
jobs:
  build:
    name: Build IPA and upload to TestFlight
    runs-on: macos-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          ref: ${{ github.head_ref }}
      - name: Check Github User
        run: |
          git --version
          git config user.name 'MyUsername'
          git config user.email 'MyEmail'
          git config user.name
          git config user.email
        env:
          NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
      - name: Setup Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 14.17.0
        env:
          NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
      - name: Set up SSH
        uses: pioug/la-cle@v1.1.0
        with:
          GH_SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
      - name: Try copy a private repo
        run: git clone https://github.com/MyUsername/MyRepo.git

Эта ошибка подразумевает, что что-то (Git, ssh, что бы это ни было) пытается прочитать секрет от /dev/tty, то есть человека, который сидит за клавиатурой и следит за запуском. Поскольку такого человека нет, /dev/tty выдает ошибку, которую вы видите. Хитрость теперь состоит в том, чтобы выяснить (а) что пытается прочитать из /dev/tty и (б) почему. (Часть https:// является подсказкой: здесь не используется ssh.)

torek 23.04.2022 00:53

@torek Спасибо! Я просто изменил его на ssh, и теперь он работает нормально. Возможно, вы можете опубликовать это как ответ, чтобы я мог принять.

Terry Windwalker 23.04.2022 00:58
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как отметил @torek, ошибка пытается прочитать учетные данные с вашего терминала, поскольку он исчерпал другие параметры (конфигурация и т. д.)

Поскольку вы настраиваете ssh на предыдущем шаге, похоже, вы намерены использовать ssh, поэтому вам следует изменить URL-адрес на ssh.

run: git clone git@github.com:MyUsername/MyRepo.git

Обратите внимание, что есть и другие варианты. Вы все еще можете использовать https, но используйте опцию git extraheader cli вместе с PAT. На самом деле это что мы делаем в действиях/оформлении заказа для обычных ситуаций.

https://www.codegrepper.com/code-examples/shell/How+do+I+clone+a+git+repository+with+extraHeader

С этого сайта для полноты:

PAT="mypat123"
REPO_URL=https://myorg@dev.azure.com/myorg/myrepo/_git/myrepo"
AUTH=$(echo -n ":$PAT" | openssl base64 | tr -d '\n')
git -c http.$REPO_URL.extraheader="Authorization: Basic $AUTH" clone $REPO_URL --no-checkout --branch master

По сути, вы передаете свой PAT как заголовок в кодировке base64.

Другие вопросы по теме