Ce sunt aplicațiile GitHub?
Aici, discutăm despre ce sunt aplicațiile GitHub, cum funcționează și cum le puteți utiliza pentru a vă îmbunătăți fluxurile de lucru. Fie că adoptați o soluție creată de altcineva sau dezvoltați una pentru a vă îndeplini cerințele exacte, există întotdeauna loc pentru a vă îmbunătăți procesele.
Extinderea platformei prin API-ul GitHub
GitHub oferă o interfață API robustă care le permite dezvoltatorilor să facă aproape orice de pe platformă. API-ul este expus prin endpoint-uri REST, deci este ușor de integrat de pe orice platformă sau limbaj de programare. Cu toate acestea, accesul api-ului nu stă singur. Dezvoltatorii care doresc să își partajeze caracteristicile cu alte persoane trebuie în continuare să le împacheteze ca aplicație și să o publice înainte ca oricine să le poată utiliza.
Există mai mulți factori de luat în considerare atunci când alegeți între încorporarea unei aplicații OAuth sau a unei aplicații GitHub în fluxul de lucru. În această secțiune, vă prezentăm GitHub Apps și OAuth Apps, diferențele lor de utilizare și permisiune și abonamentele la evenimente.
Când personalizați un flux de lucru GitHub, aveți mai multe funcții disponibile. Cum ar fi, scrierea de scripturi personalizate, crearea și autorizarea propriilor aplicații OAuth sau instalarea aplicațiilor GitHub disponibile de pe piața GitHub. În general, puteți utiliza cel mai bine scripturile pentru acele activități unu-off. Pentru acțiunile care sunt executate mai des, automatizarea aplicațiilor OAuth și GitHub vă poate ajuta pe dumneavoastră și echipa dumneavoastră să economisiți timp, păstrând în același timp nivelul optim de securitate în fluxurile de lucru. Există multe diferențe care afectează modul în care decideți între utilizarea unei aplicații GitHub sau a unei aplicații OAuth. Înțelegerea acestor diferențe în prealabil poate reduce unele dureri de cap și pot fi refăcute pe drum și vă ajută să găsiți cea mai bună aplicație pentru cazul dvs. specific de utilizare din fluxul de lucru.
La sfârșitul acestei secțiuni, ar trebui să înțelegeți bine diferențele dintre o aplicație GitHub și o aplicație OAuth și să știți cum să alegeți cel mai bine o aplicație pentru situația potrivită.
Acordarea accesului și permisiunilor
Unul dintre cele mai importante considerații pentru a permite unei aplicații să acceseze un depozit GitHub este permisiunile de care are nevoie pentru a funcționa. Unele aplicații sunt ușor de încredere, dar altele ar putea fi suspecte. Asigurați-vă întotdeauna că sunteți obișnuit cu permisiunile pe care le acordați unei aplicații.
Notă
Fiecare aplicație utilizează o cheie API unică pentru a face solicitări pentru datele din depozit. Atunci când autorizați accesul, aceasta este cheia pe care o autorizați. Puteți revoca oricând accesul la cheia unei aplicații din setările depozitului.
Aplicații OAuth
Aplicațiile OAuth oferă o modalitate de a accesa datele GitHub în numele unui utilizator. Deoarece acționează în numele utilizatorului, este important să rețineți că consumă o licență GitHub. Puteți să creați și să înregistrați o aplicație OAuth în contul personal sau la nivel de organizație, dacă aveți acces administrativ. O aplicație OAuth care se integrează cu GitHub dezvăluie tipul de acces la organizație sau depozit de care are nevoie. Utilizatorii autorizează aplicații OAuth, care oferă aplicației capacitatea de a acționa ca utilizator autentificat, cum ar fi citirea sau modificarea datelor. Această abordare este, în esență, o modalitate automată de a citi, a scrie sau a edita date GitHub ca utilizator. De asemenea, este important de reținut că autorizarea este limitată la resursele care sunt accesibile utilizatorului. Cu toate acestea, aplicația OAuth are acces și la toate resursele disponibile utilizatorului.
Notă
Nivelul de acces este limitat de domeniul simbolului (utilizator, organizație, depozit).
Pentru organizațiile cu restricții de acces la aplicații OAuth, administratorul poate acorda aprobare pentru a utiliza aplicația. Cu abonamentele la evenimente, aplicațiile OAuth răspund la activitate pe măsură ce se întâmplă.
Aplicații GitHub
În schimb, aplicațiile GitHub sunt instalate în contul personal, în organizațiile pe care le dețineți sau în anumite depozite în care aveți acces de administrator. Aplicațiile GitHub sunt instalate și interacționează cu GitHub ca serviciu, nu cu aplicații OAuth. Un beneficiu al GitHub Apps este că, spre deosebire de aplicațiile OAuth, GitHub Apps nu consumă o licență GitHub.
Aplicațiile GitHub accesează datele în numele aplicației în sine printr-o cheie privată care este utilizată pentru a semna un token web JSON. Deoarece sunt instalate pe anumite depozite, utilizatorii pot alege ce depozite poate accesa aplicația, ceea ce limitează cantitatea de date pe care aplicația o poate accesa. Permisiunile definesc resursele pe care aplicația GitHub le poate accesa prin API. Spre deosebire de aplicațiile OAuth, aplicațiile GitHub au permisiuni particularizabile pentru datele din depozit, probleme și solicitări de extragere. Personalizarea vă permite să acordați permisiuni mai detaliate, limitând aplicația să citească și să scrie numai în depozitele pe care îi permiteți să le acceseze. Doar proprietarii organizației pot gestiona setarea aplicațiilor GitHub într-o organizație.
Puteți găsi și instala aplicații GitHub din GitHub Marketplace. Când căutați aplicații GitHub, rețineți că unele aplicații au o insignă verificată. O insignă confirmată indică următoarele informații despre aplicație și organizația care o deține:
- Proprietatea organizației asupra domeniului său este verificată.
- Asistența GitHub confirmă adresele de e-mail ale organizației.
- Organizația necesită autentificare cu doi factori.
- Un administrator poate acorda permisiuni cu privire la administrarea depozitului, verificările, conținutul depozitului, implementările și problemele (Modificările de administrator necesită acceptarea utilizatorului)
- Un administrator poate acorda permisiuni de utilizator aplicației pentru a bloca un alt utilizator, mesaje de e-mail, urmăritori, taste GPG, taste Git SSH, starring, vizionare (Modificările administratorului necesită acceptarea utilizatorilor)
- Abonamente la evenimente: Sfat de securitate, Verificați suita, Creare, Implementare, Fork, Etichetă, Membru, Arhivare, Comentariu comitere, Ștergere, Stare implementare, Jalon, Apartenență, Organizație (Administratorii configurează interfața de utilizator a aplicațiilor GH și pot fi modificate)
Alegeți între aplicațiile GitHub și aplicațiile OAuth
În timp ce aplicațiile GitHub sunt o modalitate ideală de a se integra în fluxul de lucru în unele situații, organizațiilor mai mari le poate fi dificil să facă tranziția de la utilizarea tradițională a aplicațiilor OAuth pentru automatizare. De exemplu, o restricție a politicii de securitate ar putea limita, de asemenea, opțiunile unui administrator în alegerea utilizării acestor instrumente.
Notă
În calitate de administrator de sistem, ar trebui să colaborați cu dezvoltatorii pentru a găsi opțiunile cele mai potrivite pentru automatizare utilizând aceste aplicații, respectând în același timp politica de securitate.
Pentru a determina ce aplicație este soluția potrivită pentru situația dvs., iată câteva întrebări importante de luat în considerare:
- Doresc ca aplicația să se comporte ca utilizator?
- Care trebuie să fie limita ratei?
- Ce acces doresc ca aplicația să aibă în organizație și în depozite?
- Această aplicație respectă politica noastră de securitate?
Iată câteva caracteristici și diferențe cheie de luat în considerare atunci când alegeți între o aplicație GitHub sau o Aplicație OAuth.
| Aplicații GitHub | Aplicații OAuth |
|---|---|
| Instalarea unei aplicații GitHub acordă aplicației acces la depozitele alese de utilizator sau de organizație. | Autorizarea unei aplicații OAuth acordă aplicației acces la resursele accesibile ale utilizatorului; de exemplu, depozitele de depozite pe care le pot accesa. |
| Tokenurile de acces la instalare sunt limitate la depozitele specificate cu permisiunile alese de creatorul aplicației. | Un token de acces OAuth este limitat prin domenii. |
| Un token de instalare identifică aplicația drept robot aplicații GitHub. | Un token de acces identifică aplicația ca utilizator care a acordat tokenul aplicației. |
| Aplicațiile GitHub utilizează permisiuni specifice care le permit să solicite acces doar la ceea ce au nevoie. | Aplicațiile OAuth nu pot utiliza permisiuni granulare. |
| Aplicațiile GitHub nu fac obiectul politicilor aplicațiilor organizației. O aplicație GitHub are acces doar la depozitele pe care le acordă un proprietar de organizație. | Dacă o politică de aplicație de organizație este activă, doar un proprietar de organizație poate autoriza instalarea unei aplicații OAuth. Dacă este instalată, aplicația OAuth obține acces la orice element vizibil pentru tokenul pe care proprietarul organizației l-a primit în cadrul organizației aprobate. |
| Creșterile limitei de rate pot fi acordate atât la nivelul aplicațiilor GitHub (care afectează toate instalările), cât și la nivelul de instalare individual. | Creșterile limitei de rate sunt acordate pentru fiecare aplicație OAuth. Fiecare simbol acordat aplicației OAuth primește limita crescută. |
| Aplicațiile GitHub se pot autentifica în numele utilizatorului, numite solicitări utilizator-la-server. Fluxul de autorizat este același cu fluxul de autorizare a aplicației OAuth. Tokenurile utilizator-la-server pot expira și pot fi reînnoite cu un token de reîmprospătare. | Fluxul OAuth utilizat de aplicațiile OAuth autorizează o aplicație OAuth în numele utilizatorului. Acest flux este același utilizat în autorizarea utilizator-la-server GitHub App. |
| Aplicațiile GitHub solicită permisiunea de conținut al depozitului și utilizează tokenul de instalare pentru a vă autentifica prin Git. | Aplicațiile OAuth solicită domeniul de write:public_key și Creați o cheie de implementare prin API. Apoi puteți utiliza acea tastă pentru a efectua comenzi Git. |
Acces și permisiuni pentru aplicații
Unul dintre cele mai importante considerații pentru a permite unei aplicații să acceseze un depozit GitHub este permisiunile de care are nevoie pentru a funcționa. Unele aplicații sunt ușor de încredere, dar altele ar putea fi suspecte. Asigurați-vă întotdeauna că sunteți obișnuit cu permisiunile pe care le acordați unei aplicații.
Luarea deciziei de a utiliza o aplicație GitHub sau o aplicație OAuth poate depinde de nivelul de acces pe care doriți să-l acceseze aplicația. În general, ar trebui să încurajați echipa să utilizeze instrumentul cu cel mai mic domeniu de aplicare pentru a realiza activitatea. OAuth App are acces la toate resursele unui utilizator sau ale proprietarului organizației.
- Aplicațiile OAuth pot avea citire sau acces la datele GitHub
- Puteți acorda unui cont acces la o aplicație GitHub fără a vi se acorda acces la altul
Securitatea aplicațiilor
Atunci când găsiți o vulnerabilitate în aplicația dvs., aceasta ar trebui să fie o prioritate și în cadrul politicii de securitate, pentru a le spune utilizatorilor proiectului dvs. Comunicarea rapidă a unei probleme de securitate poate însemna diferența dintre utilizatorii dvs. care pot revoca un token compromis sau dacă au date sensibile expuse. Deși tokenurile sunt mult mai sigure decât parolele, securitatea poate fi în continuare compromisă și este important ca organizația dvs. să fie pregătită.
Pe lângă un fișier README.md, vă recomandăm să adăugați un fișier SECURITY.md la depozitele dvs. Fișierul SECURITY.md evidențiază informațiile legate de securitate pentru depozit. Fișierul ar trebui să includă persoanele de contact de securitate, politicile organizației și să detalieze răspunsul pe care intenționați să îl luați atunci când este descoperită o vulnerabilitate.
Reacția la evenimente
Aplicațiile GitHub sunt proiectate să fie pasive. Ei așteaptă să se întâmple ceva și apoi reacționează, de obicei, prin API-ul GitHub. Atunci când așteptați ca evenimentele să aibă loc pe GitHub, există două abordări: webhooks și sondaje.
Notă
Aplicațiile GitHub nu sunt limitate la lucrul cu datele GitHub. Puteți aștepta cu ușurință evenimentele care se întâmplă din alte surse sau puteți efectua acțiuni care actualizează alte servicii.
Utilizarea GitHub webhooks
Webhooks sunt abordarea preferată pentru gestionarea evenimentelor. Când se întâmplă ceva pe GitHub în cadrul unui webhook, un eveniment este generat imediat. Webhooks notificări push pe care aplicația le poate asculta și procesa în timp real. Puteți configura webhook-uri în setările depozitului, inclusiv tipurile de evenimente, autentificarea și modul în care sunt livrate notificările HTTP.
Votare
Uneori, webhooks nu sunt o opțiune. Poate fi necesar ca aplicația dvs. să trăiască în spatele unui firewall de corporație în care GitHub nu îl poate accesa direct. În acest caz, o alternativă este să efectuați sondaje pentru datele pe care le urmăriți utilizând API-ul GitHub.
Releu webhook
O alternativă la sondaje pentru aplicațiile din spatele unui firewall este să utilizați un serviciu de redirecționare web, cum ar fi smee.io. Cu această abordare, serviciul public se abonează la webhook-ul depozitului, apoi transmite datele primite către un serviciu client care rulează în spatele firewall-ului. Serviciul client respectiv împinge apoi notificările către aplicația dvs. care rulează ca și cum ar proveni de la sursa originală.