Неверные учетные данные для Github API

У меня есть следующий скрипт, который я пытаюсь протестировать в bash, используя curl, чтобы сделать пару вещей: один — создать новый репо, второй — который еще не реализован — получить git_url из json. возвращено, что я не уверен, позволит ли моя функция parse_json сделать это, а затем, наконец, отправить образец сообщения фиксации в это репо.

сценарий выглядит следующим образом:

#!/usr/bin/env bash

set -eux

# Json Function: parse_json 'json string' key
function parse_json()
{
    echo $1 | sed -e 's/[{}]/''/g' | awk -F=':' -v RS=',' "\$1~/\"$2\"/ {print}" | sed -e "s/\"$2\"://" | tr -d "\n\t" | sed -e 's/\\"/"/g' | sed -e 's/\\\\/\\/g' | sed -e 's/^[ \t]*//g' | sed -e 's/^"//'  -e 's/"$//'
}

git_create_repo() {
    read -e -p  "Please enter your API Key: " apiKey
    read -e -p  "Repo Name: " repoName
    read -e -p  "Repo Description: " repoDescription

    # Use the API to create a a repository
    response=$(curl -i -H 'Authorization: token $apiKey' \
        -d '{ \
                "name": "$repoName", \
                "description": "$repoDescription", \
                "private": false, \
                "license_template": "mit" \
            }' \
        https://api.github.com/AdamKyle/repos)

    echo $response
}

git_create_repo

Когда я прохожу все шаги, я получаю:

{
  "message": "Bad credentials",
  "documentation_url": "https://developer.github.com/v3"
}

Мне интересно, это из-за того, как я вставляю свой ключ API: curl -i -H 'Authorization: token $apiKey ...' Я пробовал "$apiKey", но даже это не работает.

Идеи?


person TheWebs    schedule 27.12.2014    source источник


Ответы (2)


Я использую это следующим образом:

curl -X 'POST' -u $MY_AUTH https://api.github.com/...

где $MY_AUTH был сгенерирован на сайте github. Это выглядит как:

export MY_AUTH="...hash...:x-oauth-basic"
person Lajos Veres    schedule 27.12.2014
comment
Можете ли вы дать мне более полный пример, я не следую. - person TheWebs; 27.12.2014
comment
Я использую эту команду для клонирования репозитория: curl -X 'POST' -u $MY_AUTH https://api.github.com/repos/$UPSTREAM_USER/$UPSTREAM_REPOSITORY/forks - person Lajos Veres; 27.12.2014

Я также столкнулся с похожей проблемой.
Как ни странно, использование двойных кавычек вместо одинарных для заголовков решило проблему для меня. Как показано ниже:

curl -i -H "Authorization: token $apiKey" ....
person Pratham    schedule 28.11.2020