У меня есть следующий скрипт, который я пытаюсь проверить в 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"
, но даже это не работает.
Идеи?
Можете ли вы дать мне более полный пример, им не следовать. – TheWebs
Я использую эту команду для клонирования репозитория: 'curl -X 'POST' -u $ MY_AUTH https: // api.github.com/repos/$ UPSTREAM_USER/$ UPSTREAM_REPOSITORY/forks' –
Я использую этот способ: https://developer.github.com/v3/auth/#via-oauth-tokens –