2014-12-27 3 views
0

У меня есть следующий скрипт, который я пытаюсь проверить в bash, используя curl, чтобы сделать пару вещей, нужно создать новое репо, второе - которое еще не реализовано - есть чтобы получить git_url из json thats, который я не уверен, что моя функция parse_json позволит мне сделать это, а затем, наконец, нажать сообщение с сообщением о фиксации для этого репо.Плохие учетные данные для API Github

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

#!/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", но даже это не работает.

Идеи?

ответ

2

Я использую его так:

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

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

export MY_AUTH="...hash...:x-oauth-basic" 
+0

Можете ли вы дать мне более полный пример, им не следовать. – TheWebs

+0

Я использую эту команду для клонирования репозитория: 'curl -X 'POST' -u $ MY_AUTH https: // api.github.com/repos/$ UPSTREAM_USER/$ UPSTREAM_REPOSITORY/forks' –

+0

Я использую этот способ: https://developer.github.com/v3/auth/#via-oauth-tokens –

Смежные вопросы