github api - denis-kol4ev/OraDBA GitHub Wiki
github api
Формат пути к файлу в репозитории
https://api.github.com/repos/{owner}/{repo}/contents/{path}/{fileName}
Создание файла через github api
TOKEN=ghp_xxx
FILE=myfile.txt
CONTENT=$(hostnamectl --static | base64 -w 0)
curl -L \
-X "PUT" \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/denis-kol4ev/OraDBA/contents/Scripts/Bash/${FILE} \
-d "{
\"message\":\"Upload this file to Git\",
\"content\":\"${CONTENT}\"
}"
Получение информации о файле
TOKEN=ghp_xxx
FILE=myfile.txt
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/denis-kol4ev/OraDBA/contents/Scripts/Bash/${FILE}
Обновление файла через github api (файл будет перезаписан новым содержимым)
TOKEN=ghp_xxx
FILE=myfile.txt
CONTENT=$(hostnamectl | base64 -w 0)
SHA=$(curl -sS \
-L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/denis-kol4ev/OraDBA/contents/Scripts/Bash/${FILE} \
| sed -nr 's/"sha": "(.+)",/\1/p')
SHA=$(echo $SHA | tr -d '[:space:]')
curl -X "PUT" \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/denis-kol4ev/OraDBA/contents/Scripts/Bash/${FILE} \
-d "{
\"message\":\"Update file in Git\",
\"content\":\"${CONTENT}\",
\"sha\":\"${SHA}\"
}"
Обновление файла через github api (дописываем новые данные в конец существующего файла)
- получить файл
- дописать данные
- выгрузить обновленный файл
FILE=myfile.txt
curl -O https://raw.githubusercontent.com/denis-kol4ev/OraDBA/master/Scripts/Bash/${FILE}
CONTENT=$(hostnamectl >> ${FILE} && cat ${FILE} | base64 -w 0)
TOKEN=ghp_xxx
SHA=$(curl -sS \
-L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/denis-kol4ev/OraDBA/contents/Scripts/Bash/${FILE} \
| sed -nr 's/"sha": "(.+)",/\1/p')
SHA=$(echo $SHA | tr -d '[:space:]')
curl -X "PUT" \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/denis-kol4ev/OraDBA/contents/Scripts/Bash/${FILE} \
-d "{
\"message\":\"Update file in Git\",
\"content\":\"${CONTENT}\",
\"sha\":\"${SHA}\"
}"