Hvad er GitHub Apps?
Her diskuterer vi, hvad GitHub Apps er, hvordan de fungerer, og hvordan du kan bruge dem til at forbedre dine arbejdsgange. Uanset om du bruger en løsning, der er bygget af en anden, eller udvikler en, der opfylder dine præcise behov, er der altid plads til at forbedre dine processer.
Udvid platformen via GitHub-API'en
GitHub indeholder en robust API, der gør det muligt for udviklere at gøre stort set alt på platformen. API'en eksponeres via REST-slutpunkter, så den er nem at integrere med fra enhver platform eller programmeringssprog. API-adgangen står dog ikke alene. Udviklere, der vil dele deres funktioner med andre, skal stadig pakke dem op som en app og publicere den, før nogen kan bruge dem.
Der er flere faktorer, du skal overveje, når du vælger mellem at inkorporere en OAuth-app eller GitHub-app i din arbejdsproces. I dette afsnit introducerer vi dig til GitHub Apps og OAuth-apps, deres brugs- og tilladelsesforskelle og hændelsesabonnementer.
Når du tilpasser en GitHub-arbejdsproces, har du flere funktioner tilgængelige. Såsom at skrive brugerdefinerede scripts, oprette og godkende dine egne OAuth-apps eller installere GitHub-apps, der er tilgængelige fra GitHub Marketplace. Generelt kan du bedst bruge scripts til disse engangsopgaver. For handlinger, der køres oftere, kan automatiseringen af OAuth og GitHub Apps hjælpe dig og dit team med at spare tid, samtidig med at du bevarer det optimale sikkerhedsniveau i dine arbejdsprocesser. Der er mange forskelle, der påvirker, hvordan du beslutter dig for at bruge en GitHub-app eller OAuth-app. Forståelse af disse forskelle på forhånd kan reducere nogle hovedpine og omarbejde ned ad vejen, og hjælpe dig med at finde det bedste program til din specifikke use case i din arbejdsproces.
I slutningen af dette afsnit skal du have en god forståelse af forskellene mellem en GitHub-app og en OAuth-app og vide, hvordan du bedst vælger en app til den rigtige situation.
Tildeling af adgang og tilladelser
En af de vigtigste overvejelser for at give en app adgang til et GitHub-lager er de tilladelser, der kræves for at fungere. Nogle apps er nemme at stole på, men andre kan være mistænkelige. Sørg altid for, at du er fortrolig med de tilladelser, du tildeler en app.
Seddel
Alle apps bruger en entydig API-nøgle til at foretage anmodninger om dataene i dit lager. Når du godkender adgang, er det den nøgle, du godkender. Du kan til enhver tid tilbagekalde adgangen til en apps nøgle fra dine lagerindstillinger.
OAuth-apps
OAuth Apps gør det muligt at få adgang til GitHub-data på vegne af en bruger. Da den handler på vegne af brugeren, er det vigtigt at bemærke, at den bruger en GitHub-licens. Du kan oprette og registrere en OAuth-app på din personlige konto eller på organisationsniveau, hvis du har administrativ adgang. En OAuth-app, der integreres med GitHub, afslører den type adgang til organisationen eller lageret, som den kræver. Brugere godkende OAuth Apps, hvilket giver appen mulighed for at fungere som den godkendte bruger, f.eks. læsning eller ændring af data. Denne fremgangsmåde er i bund og grund en automatiseret måde at læse, skrive eller redigere GitHub-data som bruger på. Det er også vigtigt at bemærke, at godkendelse er begrænset til de ressourcer, der er tilgængelige for brugeren. OAuth-appen får dog også adgang til alle de ressourcer, der er tilgængelige for brugeren.
Seddel
Adgangsniveauet er begrænset af omfanget af tokenet (bruger, organisation, lager).
For organisationer med adgangsbegrænsninger for OAuth-appen kan administratoren give godkendelse til at bruge programmet. Med hændelsesabonnementer reagerer OAuth Apps på aktivitet, efterhånden som det sker.
GitHub-apps
I modsætning hertil installeres GitHub-apps på din personlige konto, i organisationer, du ejer, eller specifikke lagre, hvor du har administratoradgang. GitHub Apps installeres og interagerer med GitHub som en tjeneste, ikke en individuel bruger som med OAuth Apps. En fordel ved GitHub Apps er, at GitHub Apps i modsætning til OAuth-apps ikke bruger en GitHub-licens.
GitHub Apps får adgang til data på vegne af selve programmet via en privat nøgle, der bruges til at signere et JSON-webtoken. Da de er installeret på bestemte lagre, kan brugerne vælge, hvilke lagre appen kan få adgang til, hvilket begrænser mængden af data, som appen kan få adgang til. Tilladelser definerer, hvilke ressourcer GitHub-appen kan få adgang til via API'en. I modsætning til OAuth Apps har GitHub Apps tilladelser, der kan tilpasses til lagerdata, problemer og pullanmodninger. Tilpasning giver dig mulighed for at give mere detaljerede tilladelser, hvilket begrænser appen til kun at læse og skrive i de lagre, du giver den adgang til. Det er kun organisationsejere, der kan administrere indstillingen af GitHub-apps i en organisation.
Du kan finde og installere GitHub Apps fra GitHub Marketplace. Når du søger efter GitHub Apps, skal du huske på, at nogle apps har et verificeret badge. Et verificeret badge angiver følgende om appen og den organisation, der ejer den:
- Organisationens ejerskab af deres domæne er verificeret.
- GitHub Support bekræfter organisationens mailadresser.
- Organisationen kræver to-faktor-godkendelse.
- En administrator kan tildele tilladelser til lageradministration, kontrol, lagerindhold, installationer og problemer (Administratorændringerne kræver brugeraccept)
- En administrator kan give appbrugeren tilladelse til at blokere en anden bruger, mails, følgere, GPG-nøgler, Git SSH-nøgler, stjernespækket, se (Administratorændringerne kræver brugeraccept)
- Event Subscriptions: Security advisory, Check suite, Create, Deployment, Fork, Label, Member, Check in, Commit comment, Delete, Deployment status, Milestone, Membership, Organization (Administrator configures in the GH Apps UI and can changed)
Vælg mellem GitHub Apps og OAuth Apps
Selvom GitHub Apps er en ideel måde at integrere i din arbejdsgang på i nogle situationer, kan større organisationer finde det udfordrende at foretage overgangen fra den traditionelle brug af OAuth Apps til automatisering. En begrænsning af sikkerhedspolitikken kan f.eks. også begrænse en administrators muligheder for at vælge at bruge disse værktøjer.
Seddel
Som systemadministrator bør du arbejde sammen med dine udviklere for at finde de muligheder, der passer bedst til automatisering ved at bruge disse applikationer, mens du stadig følger din sikkerhedspolitik.
Her er nogle vigtige spørgsmål, du skal overveje for at finde ud af, hvilken app der er den rigtige løsning til din situation:
- Skal appen fungere som bruger?
- Hvad skal takstgrænsen være?
- Hvilken adgang skal appen have i organisationen og lagrene?
- Overholder denne app vores sikkerhedspolitik?
Her er nogle vigtige egenskaber og forskelle, du skal overveje, når du vælger mellem en GitHub-app eller en OAuth-app.
| GitHub-apps | OAuth-apps |
|---|---|
| Hvis du installerer en GitHub-app, får appen adgang til en bruger- eller organisationskontos valgte lagre. | Godkendelse af en OAuth-app giver appen adgang til brugerens tilgængelige ressourcer. lagre, de kan få adgang til. |
| Adgangstokens til installation er begrænset til angivne lagre med de tilladelser, der er valgt af appens forfatter. | Et OAuth-adgangstoken er begrænset via områder. |
| Et installationstoken identificerer appen som GitHub Apps-robotten. | Et adgangstoken identificerer appen som den bruger, der har tildelt tokenet til appen. |
| GitHub Apps bruger målrettede tilladelser, der giver dem mulighed for kun at anmode om adgang til det, de har brug for. | OAuth Apps kan ikke bruge detaljerede tilladelser. |
| GitHub Apps er ikke underlagt politikker for virksomhedsprogrammer. En GitHub-app har kun adgang til de lagre, som en organisationsejer tildeler. | Hvis en politik for et organisationsprogram er aktiv, er det kun en organisationsejer, der kan godkende installationen af en OAuth-app. Hvis den er installeret, får OAuth-appen adgang til alt, hvad der er synligt for det token, som organisationens ejer har i den godkendte organisation. |
| Stigninger i hastighedsgrænser kan tildeles både på GitHub Apps-niveauet (der påvirker alle installationer) og på det individuelle installationsniveau. | Satsgrænsestigninger tildeles pr. OAuth-app. Hvert token, der er tildelt den pågældende OAuth-app, får den øgede grænse. |
| GitHub Apps kan godkende på vegne af brugeren, som kaldes bruger-til-server-anmodninger. Det flow, der skal godkendes, er det samme som OAuth App-godkendelsesflowet. Bruger-til-server-tokens kan udløbe og blive fornyet med et opdateringstoken. | Det OAuth-flow, der bruges af OAuth Apps, godkender en OAuth-app på vegne af brugeren. Dette flow er det samme, der bruges i GitHub App bruger-til-server-godkendelse. |
| GitHub Apps beder om tilladelse til lagerindhold, og brug dit installationstoken til at godkende via HTTP-baserede Git-. | OAuth Apps beder om write:public_key omfang og Opret en udrulningsnøgle via API'en. Du kan derefter bruge denne nøgle til at udføre Git-kommandoer. |
Programadgang og -tilladelser
En af de vigtigste overvejelser for at give en app adgang til et GitHub-lager er de tilladelser, der kræves for at fungere. Nogle apps er nemme at stole på, men andre kan være mistænkelige. Sørg altid for, at du er fortrolig med de tilladelser, du tildeler en app.
Beslutningen om at bruge en GitHub-app eller OAuth-app kan afhænge af det adgangsniveau, du ønsker, at appen skal have adgang til. Generelt bør du opfordre dit team til at bruge værktøjet med det mindste omfang til at udføre opgaven. En OAuth-app har adgang til alle en brugers eller organisationsejers ressourcer.
- OAuth Apps kan have læse eller skrive adgang til dine GitHub-data
- Du kan give en GitHub-app adgang til én konto uden at få adgang til en anden
Programsikkerhed
Når du finder en sikkerhedsrisiko i dit program, skal det være en prioritet og i din sikkerhedspolitik at fortælle brugerne af dit projekt. Hurtig kommunikation af et sikkerhedsproblem kan betyde forskellen mellem dine brugeres mulighed for at tilbagekalde et kompromitteret token eller få følsomme data eksponeret. Selvom tokens er meget mere sikre end adgangskoder, kan sikkerheden stadig kompromitteres, og det er vigtigt, at din organisation er forberedt.
Ud over en README.md-fil anbefaler vi, at du føjer en SECURITY.md-fil til dine lagre. Filen SECURITY.md fremhæver sikkerhedsrelaterede oplysninger for lageret. Filen skal indeholde sikkerhedskontakter, dine organisationspolitikker og beskrive det svar, du planlægger at tage, når en sårbarhed opdages.
Reagerer på hændelser
GitHub Apps er designet til at være passive. De venter på, at der sker noget, og reagerer derefter, normalt via GitHub-API'en. Når du venter på, at hændelser sker på GitHub, er der to tilgange: webhooks og polling.
Seddel
GitHub Apps er ikke begrænset til at arbejde med GitHub-data. Du kan nemt vente på hændelser, der sker fra andre kilder, eller udføre handlinger, der opdaterer andre tjenester.
Brug af GitHub-webhooks
Webhooks er den foretrukne tilgang til hændelseshåndtering. Når der sker noget på GitHub inden for rammerne af en webhook, rejses en hændelse med det samme. Webhooks pushmeddelelser, som din app kan lytte efter og behandle i realtid. Du kan konfigurere webhooks i dine lagerindstillinger, herunder typerne af hændelser, godkendelse og den måde, HTTP-meddelelser leveres på.
Polling
Nogle gange er webhooks ikke en mulighed. Din app skal muligvis leve bag en virksomhedsfirewall, hvor GitHub ikke kan få direkte adgang til den. I dette tilfælde er et alternativ at forespørge efter de data, du sporer, ved hjælp af GitHub-API'en.
Webhookrelæing
Et alternativ til polling af apps bag en firewall er at bruge en webhook-videresendelsestjeneste, f.eks. smee.io. Med denne tilgang abonnerer den offentlige tjeneste på lagerets webhook og videresender derefter indgående data til en klienttjeneste, der kører bag firewallen. Denne klienttjeneste sender derefter meddelelserne til din kørende app, som om de kom fra den oprindelige kilde.