Гит

Повезивање са ГитХуб АПИ-јем користећи Питхон 3

Повезивање са ГитХуб АПИ-јем користећи Питхон 3
ГитХуб као веб апликација огроман је и сложен ентитет. Размислите о свим спремиштима, корисницима, огранцима, урезивањима, коментарима, ССХ кључевима и независним апликацијама које су његов део. Штавише, постоји више начина за комуникацију са њим. Постоје десктоп апликације за ГитХуб, додаци за Висуал Студио Цоде и Атом Едитор, гит цли, Андроид и иОС апликације да набројимо неколико.

Људи у ГитХуб-у, као и независни програмери, никако не могу управљати свом овом сложеношћу без заједничког интерфејса. Овај уобичајени интерфејс називамо ГитХуб АПИ. Сваки ГитХуб услужни програм попут цли-а, веб корисничког интерфејса итд. Користи овај заједнички интерфејс за управљање ресурсима (ресурси су ентитети попут спремишта, ссх кључева итд.).

У овом упутству научићемо неколико основа о томе како се неко повезује са АПИ-јем користећи ГитХуб АПИ в3 и Питхон3. Најновији в4 ГитХуб АПИ-ја захтева да научите више о ГрапхКЛ-у што резултира стрмијом кривом учења. Стога ћу се држати само верзије три која је и даље активна и прилично популарна.

Како разговарати са веб АПИ-јем

Веб АПИ-ји су оно што вам омогућава да користите све услуге које нуди веб-апликација, попут ГитХуб-а, програмски користећи језик по вашем избору. На пример, овде ћемо користити Питхон за наш случај употребе. Технички, можете све што радите на ГитХуб-у користећи АПИ, али ми ћемо се ограничити само на читање јавно доступних информација.

Ваш програм Питхон разговараће са АПИ-ом на исти начин као што и ваш прегледач разговара са веб локацијом. То ће рећи, углавном путем ХТТПС захтева. Ови захтеви ће садржати различите „делове“, почев од методе захтева [ГЕТ, ПОСТ, ПУТ, ДЕЛЕТЕ], саме УРЛ адресе, низа упита, ХТТП заглавља и тела или корисног терета. Већина њих није обавезна. Међутим, мораћемо да доставимо метод захтева и УРЛ адресу на коју упућујемо захтев.

Шта су то и како су представљени у ХТТПС захтеву, нешто ћемо видети споро док започињемо са писањем Питхон скрипти за интеракцију са ГитХуб-ом.

Пример

Додавање ССХ кључева новоствореном серверу увек је неспретан процес. Напишимо Питхон скрипту која ће преузети ваше јавне ССХ кључеве са ГитХуб-а и додати их у датотеку одобрени_кејеви на било ком Линук или Уник серверу на којем покрећете ову скрипту. Ако не знате како да генеришете или користите ССХ кључеве, ево изврсног чланка о томе како то тачно да урадите. Претпостављам да сте креирали и додали сопствене јавне ССХ кључеве на свој ГитХуб налог.

Веома једноставна и наивна имплементација Питхона за постизање задатка који смо горе описали приказана је доле:

захтеви за увоз
импорт ос
 
# Добијање корисничког уноса
уник_усер = инпут ("Унесите своје Уник корисничко име:")
гитхуб_усер = инпут ("Унесите своје корисничко име за ГитХуб:")
 
# Пазећи .ссх директоријум постоји и отвара датотеку одобрени_кејеви
ссх_дир = '/ хоме /' + уник_усер + '/.ссх / '
ако не ос.пут.постоји (ссх_дир):
ос.македир (ссх_дир)
 
одобрени_кејеви_датотека = отворени (ссх_дир + 'одобрени_кључеви', 'а')
 
# Слање захтева ГиХуб АПИ-ју и чување одговора у променљивој названој 'респонсе'
апи_роот = "хттпс: // апи.гитхуб.цом "
рекуест_хеадер = 'Прихвати': 'апплицатион / внд.гитхуб.в3 + јсон '
одговор = захтеви.гет (апи_роот + '/ усерс /' + гитхуб_усер + '/ кеис', хеадерс = рекуест_хеадер)
 
## Обрада одговора и додавање кључева датотеци одобрени_кејеви
јер ја као одговор.јсон ():
одобрени_кејеви_датотека.напиши (и ['тастер'] + '\ н')

Занемаримо руковање Питхон датотекама и разне детаље и стриктно посматрајмо захтев и одговор. Прво смо увезли захтеве за увоз модула захтева ова библиотека нам омогућава да врло лако упућујемо АПИ позиве. Ова библиотека је такође један од најбољих примера пројекта отвореног кода урађеног како треба. Ево званичне странице у случају да желите детаљније да погледате документе.

Даље постављамо променљиву апи_роот.

апи_роот = "хттпс: // апи.гитхуб.цом "

Ово је уобичајени подниз у свим УРЛ-овима на које ћемо упућивати АПИ позиве. Дакле, уместо да куцате „хттпс: // апи.гитхуб.цом ”сваки пут када треба да приступимо хттпс: // апи.гитхуб.цом / усерс или хттпс: // апи.гитхуб.цом / усерс / ми само пишемо апи_роот + '/ усерс /' или апи_роот + '/ усерс /', као што је приказано у исечку кода.

Даље, поставили смо заглавље у нашем ХТТПС захтеву, указујући да су одговори намењени за верзију 3 АПИ и да треба да буду у ЈСОН формату. ГитХуб би поштовао ове информације о заглављу.

1.  ГЕТ Рекуест

Дакле, сада када имамо своју УРЛ адресу и (опционално) информације заглавља ускладиштене у различитим променљивим, време је да поднесемо захтев.

одговор = захтеви.гет (апи_роот + '/ усерс /' + гитхуб_усер + '/ кеис', хеадерс = рекуест_хеадер)

Захтев је типа „гет“ јер читамо јавно доступне информације са ГитХуб-а. Да пишете нешто под својим ГитХуб корисничким налогом, користили бисте ПОСТ. Слично томе, друге методе су намењене другим функцијама као што је ДЕЛЕТЕ за брисање ресурса попут спремишта.

2.  Крајња тачка АПИ-ја

Крајња тачка АПИ-ја за којом тежимо је:

хттпс: // апи.гитхуб.цом / усерс // тастери

Сваки ГитХуб ресурс има своју АПИ крајњу тачку. Тада се ваши захтеви за ГЕТ, ПУТ, ДЕЛЕТЕ итд. Подносе у односу на крајњу тачку коју сте навели. У зависности од нивоа приступа који имате, ГитХуб ће вам тада омогућити да прођете са тим захтевом или га одбити.

Већина организација и корисника на ГитХуб постављају огромну количину информација читљивих и јавних. На пример, мој ГитХуб кориснички налог има неколико јавних спремишта и јавних ССХ кључева којима свако може да приступи (чак и без ГитХуб корисничког налога). Ако желите да имате прецизнију контролу над својим личним налогом, можете генерисати „Лични приступни жетон“ за читање и писање привилегованих података сачуваних на вашем личном ГитХуб налогу. Ако пишете независну апликацију, намењену да је користе корисници који нису ви, тада је ОАутх жетон поменутог корисника оно што ће захтевати ваша апликација.

Али као што видите, пуно корисних информација може се приступити без стварања било каквог токена.

3.  Одговор

Одговор се враћа са ГитХуб АПИ сервера и чува се у променљивој названој одговор. Цјелокупан одговор могао би се прочитати на неколико начина како је овдје документовано. Изричито смо тражили садржај типа ЈСОН са ГитХуб-а, па ћемо обрадити захтев, као да је ЈСОН. Да бисмо то урадили, позивамо методу јсон () из модула за захтеве који ће је декодирати у нативне Питхон објекте попут речника и листа.

У овој петљи фор можете видети кључеве који се додају датотеци одобрени_кејеви:

јер ја као одговор.јсон ():
одобрени_кејеви_датотека.писање (и ['тастер'] + '\ н')

Ако одштампате одговор.јсон () приметићете да се ради о Питхон листи чији су чланови Питхон речници. Сваки речник има кључ под називом „кључ“ са вашим јавним ССХ кључем као вредност тог кључа. Дакле, можете додати ове вредности једну по једну у своју датотеку одобрени_кејеви. А сада можете лако ССХ на свој сервер са било ког рачунара који има било који од приватних ССХ кључева који одговара једном од јавних кључева које смо управо додали.

Даље истражујући

Много посла са АПИ-јевима укључује пажљиву инспекцију саме АПИ документације више од писања редова кода. У случају ГитХуб-а, документација је једна од најбољих у индустрији. Али читање АПИ докумената и упућивање АПИ позива помоћу Питхона прилично је незанимљиво као самостална активност.

Пре него што наставите даље, препоручио бих вам да смислите један задатак који бисте желели да извршите користећи Питхон на свом ГитХуб налогу. Затим покушајте да је примените читајући само званичну документацију коју пружа Питхон, његове зависне библиотеке и ГитХуб. Ово ће вам такође помоћи да усвојите здравији начин размишљања где разумете шта се догађа у вашем коду и постепено га побољшавате током времена.

Битка за Веснотх 1.13.6 Развој објављен
Битка за Веснотх 1.13.6 објављено прошлог месеца, шесто је развојно издање у издању 1.13.к сериес и доноси низ побољшања, посебно корисничког интерфеј...
Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...
Инсталирајте најновију ОпенРА Стратеги Гаме на Убунту Линук
ОпенРА је Либре / Фрее Реал Тиме стратешки механизам који ствара ране Вествоод игре попут класичне Цомманд & Цонкуер: Ред Алерт. Дистрибуирани модови ...