github rest api tutorial rest api support github
API на GitHub REST - Интерфейс за програмно взаимодействие с GitHub:
В нашите по-ранни уроци за GitHub ние изследваме различните аспекти на използването от гледна точка на разработчика, използвайки уеб интерфейса.
Днес повечето организации търсят възможности за автоматизация в почти всяка област и REST API са полезни за автоматизиране на различни сценарии за различни инструменти.
Разбира се, може да има и други области, където могат да се използват REST API.
=> Посетете тук за ексклузивната серия с учебни уроци за GitHub .
Какво ще научите:
GitHub REST API интеграция
API-тата REST (Представителен държавен трансфер) използват предимно HTTP заявки, за да направят следното.
- ВЗЕМЕТЕ - Изтеглете ресурса
- ПОСТАВЕТЕ / КРЕПЕТЕ - Актуализиране на ресурса
- ПОСТ - Създайте ресурс
- ИЗТРИЙ - Изтриване на ресурс
Няма да се впуснем дълбоко в това как работи REST API, а по-скоро ще влезем директно в поддръжката на REST API в GitHub, използвайки КЪДРИЦА команда за изпълнение на повечето задачи, които видяхме в предишните ни уроци на GitHub чрез REST API.
Текущата версия на GitHub API е v3 и този урок обхваща най-важните дейности, от които разработчикът ще се нуждае чрез тези API.
Създаване на токен за личен достъп
За да работят REST API чрез командния ред, трябва да удостоверим сървъра на GitHub. Следователно трябва да предоставим нашите пълномощия. Е, не искаме да излагаме нашата парола, използвана с нашия акаунт в GitHub, по този начин ще генерираме личен маркер за достъп, който да се използва с командния ред за удостоверяване в GitHub.
Влезте във вашия акаунт в GitHub и кликнете върху Настройки под вашия профил.
Отидете на Настройки за програмисти -> Токени за личен достъп. Генерирайте нов маркер.
Добавете име и изберете обхвата за достъп до API и кликнете върху Създайте токен.
На следващия екран не забравяйте да копирате маркера и да го запазите във файл. Този маркер ще се използва в командния ред за достъп до API на GitHub.
как да намеря ключ за сигурност на рутера -
Създаденият маркер може да се използва и по време на git клонинг операция при поискване на парола. Сега, тъй като разполагаме с токена, ще видим как да осъществим достъп до API от командния ред с помощта на програмата CURL.
Като предварително условие ще трябва да изтеглите и инсталирате 'къдрица' .
Хранилище
Показаните тук примери за REST API се изпълняват на машината с Windows. Този раздел ще покаже някои от операциите на GitHub Repository.
# 1) За да изброите публични хранилища за потребител, изпълнете следната команда в един ред.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
# две) За да изброите публични хранилища под организация.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Създайте лично хранилище.
curl -X POST -u: https://api.github.com/user/repos -d “{” name ”: ” Demo_Repo ”}”
В горното име на команда е параметър. Нека разгледаме някои други параметри, които могат да се използват при създаване на лични потребителски хранилища.
curl -X POST -u: https://api.github.com/user/repos -d “{” name ”: ” Demo_Repo ”, ” description ”: ” Това е първо репо чрез API ”, ” начална страница ”: ” https: //github.com ” , 'Публично ': 'вярно ', 'има_издания ': 'вярно ', 'има_проекти ': 'вярно ', 'има_уики ': 'вярно '} '
В горната команда име, описание, начална страница, публично, has_projects, has_wiki са всички параметри, които приемат низова стойност и са затворени в ”. Също така имайте предвид, че има ПРОСТРАНСТВО между: и
Например, public параметър прави репото публично. Командата също така позволява да се създават проблеми, проекти, уикита.
# 4) Преименувайте хранилището.
curl -X POST -u: -X PATCH -d “{” name ”: ” ”}” https://api.github.com/repos//
# 5) Актуализирайте has_wiki параметър в хранилището и задайте стойността на false.
curl -u: -X PATCH -d “{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Изтрийте хранилището.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Създайте хранилище в организация.
curl -X POST -u: https://api.github.com/orgs//repos “{” Name ”: ” Demo_Repo_In_Org ”, ” description ”: ” Това е първото репо в организацията чрез API ”, ” начална страница ”: ” https: //github.com ” , 'Публично ': 'вярно ', 'има_издания ': 'вярно ', 'има_проекти ': 'вярно ', 'има_уики ': 'вярно '} '
# 8) Списък Forks за хранилище.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Горната команда ще изброи URL адреса за разглеждане на раздвоения репо. Същото може да се види под потребителското хранилище и ‘Insights TAB => Forks’ .
curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Горната команда ще изброи URL адреса за клониране на раздвоения репо.
# 9) Разклонете хранилище в организацията.
curl -X POST -u: -d “{” организация ”: ” ”}” https://api.github.com/repos///forks
Сътрудници
# 1) Списък на сътрудници за хранилище.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w вход
# две) Проверете дали даден потребител е в списъка на Collaborator.
curl -X GET -u: https://api.github.com/repos///collaborators/
Ако потребителят е част от сътрудник, тогава няма изведено съдържание като изход, иначе се показва следното съобщение.
{
“Message”: “не е потребител”,
“Documentation_url”: „https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Проверете разрешението на потребителя.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Добавете потребител като Collaborator към хранилището.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Публикувайте това, поканеният ще трябва да приеме поканата да се присъедини като сътрудник. Ако потребител вече е добавен като сътрудник, тогава не се показва никакво съдържание, освен изхода.
# 5) Премахване на потребителя като Сътрудник.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
След успешно изпълнение на командата не се показва съдържание.
Организация
Забележка: Създаването на организации не се предоставя от GitHub API.
# 1) Избройте всички организационни акаунти за потребител.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w вход
# две) Актуализирайте организация.
curl -X PATCH -u: -d “{” name ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” email ”: ” vniranjan72 @ outlook .com ', ' местоположение ': ' Бангалор ', ' 'описание ': 'Актуализиране на данните за организацията '} 'https://api.github.com/orgs/
Клонове
# 1) Списък на клонове в потребителско хранилище. Командата ще изброи всички клонове в хранилището.
curl -X GET -u: https://api.github.com/repos///branches | grep -w име
# две) Списък на всички защитени клонове в потребителско хранилище.
curl -X GET -u: https://api.github.com/repos///branches ? защитен = вярно | grep -w име
# 3) Списък на всички незащитени клонове в потребителско хранилище
curl -X GET -u: https://api.github.com/repos///branches ? защитен = невярно | grep -w име
# 4) Премахнете Branch Protection.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Заявки за изтегляне
# 1) Списък на исканията за изтегляне.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w заглавие
Опциите за параметъра състояние са Open, Closed, All.
# две) Създайте заявка за изтегляне.
curl -X POST -u: -d “{” заглавие ”: ” Страхотна функция добавена ”, ” тяло ”: ” Моля, издърпайте страхотната промяна, направена в главния клон ”, ” глава ”: ” Функция ”, ” основа ”: ” майстор ”}” https://api.github.com/repos///pulls
# 3) Избройте броя на създадените заявки за изтегляне.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w номер
# 4) Актуализирайте тяло на заявката за изтегляне или друг параметър (максимум 250 фиксации).
curl -X PATCH -u: -d “{” body ”: ” Задължително да изтеглите голямата промяна, направена в разклонението на функцията, в главния клон ”}” https://api.github.com/repos///pulls / 31
# 5) Фиксиране на заявка за издърпване.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Изтегляне на файлове за искане за изтегляне (максимум 300 файла).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w име на файл
# 7) Обединяване на искане за изтегляне.
curl -X PUT -u: -d “{” commit_message ”: ” Добър запис ”}” https://api.github.com/repos///pulls/31 /отивам
Отговор, ако е обединен
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
„Слято“: вярно,
“Message”: “Заявката за изтегляне е обединена успешно”
}
Отговор, ако заявката за изтегляне не може да бъде обединена
{
“Message”: “Искането за изтегляне не може да бъде обединено”,
“Documentation_url”: „https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Етикети, етапи и проблеми
Етикети
# 1) Избройте всички етикети в хранилище.
curl -X GET -u: https://api.github.com/repos///labels | grep -w име
# две) Избройте конкретен етикет в хранилище.
curl -X GET -u: https://api.github.com/repos///labels / буболечка
# 3) За да създадете етикет.
curl -X POST -u: -d “{” име ”: ” дефект ”, ” описание ”: ” За повдигане на дефект ”, ” цвят ”: ” ff493b '}' https://api.github.com/repos///labels
Шестнадесетичният цветен код за цвят параметър може да се зададе от Цвят-шестнадесетичен
# 4) Етикет за актуализация
curl -X PATCH -u: -d “{” цвят ”: ” 255b89 ”}” https://api.github.com/repos///labels / дефект
# 5) Изтриване на етикета
въпроси и отговори за интервю за Java кодиране
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Проблеми
# 6) Избройте конкретен проблем в хранилище.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w заглавие
# 7) Избройте всички проблеми в хранилището.
curl -X GET -u: https://api.github.com/repos///issues | grep -w заглавие
# 8) Създайте проблем.
curl -X POST -u: -d “{” заглавие ”: ” Нова страница за приветствие ”, ” тяло ”: ” За проектиране на нова страница ”, ” етикети ”: (” подобрение ”), ” крайъгълен камък ”: ” 3 ”, ” правоприемници ”: (” ”, ”
В горната команда, етикети и възложители параметрите са масив от низове, където могат да бъдат предоставени множество стойности. Щат параметър ще има и стойността отворена или затворена.
# 9) Добавете етикет към проблем.
curl -X POST -u: -d “{” етикети ”: (” подобрение ”)}” https://api.github.com/repos///issues / 30 / етикети
# 10) Редактирайте проблем и актуализирайте параметрите E.g, Етикети към него.
curl -X PATCH -u: -d “{” етикети ”: (” бъг ”, ” подобрение ”)}” https://api.github.com/repos///issues / 30
В горната команда актуализирайте етикетите за номер 30.
# единадесет) Премахнете етикет от конкретен проблем.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Премахнете ВСИЧКИ етикети от конкретен проблем.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
Важни етапи
# 13) Избройте всички етапи.
curl -X GET -u: -d “{” състояние ”: (” отворено ”)}” https://api.github.com/repos///milestones | grep -w заглавие
# 14) Избройте подробности за конкретен етап.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w заглавие
# петнадесет) Създайте важен етап.
curl -X POST -u: -d “{” заглавие ”: ” R5 ”, ” състояние ”: ” отворено ”, ” описание ”: ” Проследяване за крайъгълен камък R5 ”, ”Due_on ”: ”2019-12-05T17: 00: 01Z ”} ” https://api.github.com/repos///milestones
В горната команда due_on е клеймо за време ISO 8601 в ГГГГ-ММ-DDTHH: ММ: SSZ формат. Повече за това можете да намерите @ ISO 8601
# 16) Актуализирайте важен етап.
curl -X PATCH -u: -d “{” състояние ”: ” затворено ”}” https://api.github.com/repos///milestones / 3
# 17) Изтрийте важен етап.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Екипи
# 1) Списък на екипи в организация.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w име
Списък по идентификатор на екипа
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
# две) Избройте екипите по потребители.
curl -X GET -u: https://api.github.com/user/teams | grep -w име
# 3) Създайте екип, добавете членове и добавете хранилище към екипа.
curl -X POST -u: -d “{” name ”: ” ”, ” description ”: ” Въведете кратко описание ”, ” поддържащи ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Редактирайте името и описанието на екипа.
curl -X PATCH -u: -d “{” name ”: ” New Name Name ”, ” description ”: ” Последно описание ”}” https://api.github.com/teams/
Идентификаторът на екипа може да бъде извлечен чрез стартиране на командата от стъпка 1.
# 5) Добавете хранилище към съществуващ екип ..
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Премахнете хранилището от екип.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Изтрийте екип.
curl -X DELETE -u: https://api.github.com/teams/
Търсене в хранилища, код, издания
API за търсене позволява да се търси всеки елемент.
# 1) Например, ако искате да търсите във всички хранилища, собственост на определен потребител.
curl -X ВЗЕМЕТЕ https://api.github.com/search/repositories?q=user: | grep -w „име“
Задължителният параметър е Какво който съдържа критериите за търсене, състоящи се от ключови думи и квалификатори за ограничаване на търсенето в определена област в Github.
# две) Търсете във всички хранилища, притежавани от определен потребител, който съдържа думите V и Niranjan във файла README
curl -X ВЗЕМЕТЕ https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w име
# 3) Потърсете ключова дума в съдържанието на файл. В примера по-долу потърсете ключовата дума „Система“ и „addEfficiee“ в рамките на файл в хранилище, собственост на потребител.
curl -X ВЗЕМЕТЕ https://api.github.com/search/code?q=System+addEfficiee+in:file+language:java+repo:/ | grep -w име
# 4) Потърсете ключовата дума „добре дошли“ в рамките на отворени издания и поставете етикет като подобрение.
curl -X ВЗЕМЕТЕ https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Потърсете ключовата дума „адрес“ в рамките на затворени проблеми и поставете етикет като подобрение.
curl -X ВЗЕМЕТЕ https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Пускания
# 1) Списък на изданията в хранилище по име на етикет и идентификатор.
curl -X GET -u: https://api.github.com/repos///releases | grep -w име_на таг
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
# две) Получете подробности за едно издание.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w име_на таг
curl -X GET -u: https://api.github.com/repos///releases / | grep -w тяло
curl -X GET -u: https://api.github.com/repos///releases / | grep -w име
# 3) Получете подробности за ПОСЛЕДНАТА версия.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w име_на таг
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w име
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w тяло
# 4) Получете подробности за изданието от Tag.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w име
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w тяло
# 5) Създайте версия.
curl -X POST -u: -d “{” tag_name ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, 'Body ': 'Това е за издание 3.0 на продукта ', 'чернова ': 'false', 'prerelease ': 'false'} ' https://api.github.com/repos//
Забележка:В командата за създаване на версия параметрите ‘draft’ и ‘prerelease’ вземат булеви стойности. Въведете true или false без ”.
- Стойността на черновата false означава, че публикуваното издание е създадено и за true е непубликувано издание.
- Предварително издаване false означава, че е пълно освобождаване. Истинската стойност означава, че е предварителна версия.
# 6) Редактирайте или актуализирайте изданието.
curl -X PATCH-u: -d “{” име_на таг ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Изтрийте изданието.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Избройте активите за изданието.
curl -X DELETE-u: https://api.github.com/repos//
Заключение
В този урок за GITHub REST API видяхме как REST API могат да се използват за различни действия за GET, PUT, POST, PATCH, DELETE данни.
URL адресът, използван за REST API за директна работа с GitHub.com, е https://api.github.com. Докато, ако екипите използват GitHub предприятие в своята организация, тогава URL адресът, който да се използва с REST API, ще бъде https: /// api / v3
Всички уроци от тази поредица досега са се концентрирали върху използването на GitHub от гледна точка на разработчика, заедно с най-добрите практики за сътрудничество, докато работите в екип за контрол на версиите на различни видове артефакти директно на GitHub, а не локално.
Нашият предстоящ урок ще се фокусира върху това как разработчикът ще работи офлайн на локално хранилище, клонирано от GitHub, използвайки Git Client интерфейси като GitHub Desktop и TortoiseGit и натиснете промените обратно в отдалеченото хранилище.
=> Посетете тук, за да научите GitHub от нулата.
Препоръчително четене
- Урок за API за почивка: REST API архитектура и ограничения
- Кодове за отговор на API за почивка и типове заявки за почивка
- Урок за GitHub за разработчици | Как да използвам GitHub
- REST API Тестване с краставица, използвайки BDD подход
- 10 най-добри инструмента за тестване на API през 2021 г. (SOAP и REST API инструменти за тестване)
- REST API Тестване с Spring RestTemplate и TestNG
- Как да автоматизирам заявките за API с помощта на Rest Assured и Jenkins
- Урок за Parasoft SOAtest: Инструмент за тестване на API без скриптове