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}\"
               }"