Mitä GitHub-sovellukset ovat?

Valmis

Tässä keskustelemme siitä, mitä GitHub-sovellukset ovat, miten ne toimivat ja miten voit käyttää niitä työnkulkujen parantamiseen. Olitpa hyväksymässä jonkun muun luomaa ratkaisua tai kehittämässä ratkaisua omien tarpeidesi mukaan, sinulla on aina tilaa prosessiesi parantamiseen.

Ympäristön laajentaminen GitHub-ohjelmointirajapinnan avulla

GitHub tarjoaa vankan ohjelmointirajapinnan, jonka avulla kehittäjät voivat tehdä lähes mitä tahansa ympäristössä. API paljastuu REST-päätepisteiden kautta, joten se on helppo integroida miltä tahansa alustalta tai ohjelmointikieleltä. Ohjelmointirajapinnan käyttö ei kuitenkaan ole yksinään. Kehittäjien, jotka haluavat jakaa ominaisuuksiaan muiden kanssa, on silti pakattava ne sovellukseksi ja julkaistava ne ennen kuin muut voivat käyttää niitä.

Sinun on otettava huomioon useita seikkoja, kun valitset OAuth-sovelluksen tai GitHub-sovelluksen sisällyttämisen työnkulkuusi. Tässä osiossa esittelemme GitHub-sovellukset ja OAuth-sovellukset, niiden käyttö- ja käyttöoikeuserot sekä tapahtumatilaukset.

Kuva asennuskuvakkeesta ja GitHub-sovellusten ja OAuth-sovellusten hyväksyntäkuvakkeesta.

Kun mukautat GitHub-työnkulkua, käytettävissä on useita ominaisuuksia. Kuten mukautettujen komentosarjojen kirjoittaminen, omien OAuth-sovellusten luominen ja valtuuttaminen tai GitHub-kauppapaikalta saatavilla olevien GitHub-sovellusten asentaminen. Yleensä voit käyttää komentosarjoja parhaiten näihin kertaluonteisiin tehtäviin. Useammin suoritettavien toimintojen osalta OAuth- ja GitHub-sovellusten automatisointi voi auttaa sinua ja tiimiäsi säästämään aikaa säilyttäen samalla työnkulkujen optimaalisen suojaustason. Useat erot vaikuttavat siihen, miten päätät käyttää GitHub-sovellusta tai OAuth-sovellusta. Ymmärtämällä nämä erot etukäteen voit vähentää joitakin päänsärkyjä ja muokata tietä ja auttaa sinua löytämään parhaan sovelluksen erityiseen käyttötapaukseesi työnkulussasi.

Tämän osion lopussa sinulla pitäisi olla hyvä käsitys GitHub-sovelluksen ja OAuth-sovelluksen eroista ja osata parhaiten valita sovellus oikeaan tilanteeseen.

Käyttöoikeuksien myöntäminen

Yksi tärkeimmistä seikoista, kun sovelluksen sallitaan käyttää GitHub-säilöä, ovat käyttöoikeudet, joita sen käyttö edellyttää. Joihinkin sovelluksiin on helppo luottaa, mutta toisiin voi olla epäilyttäviä. Varmista aina, että olet tyytyväinen sovellukseen myöntämiesi käyttöoikeuksien käyttöön.

Näyttökuva pyydettyjen käyttöoikeuksien ja säilön käyttöoikeuksien tarkistamisesta.

Muistiinpano

Jokainen sovellus käyttää yksilöivää ohjelmointirajapinta-avainta tietopyyntöjen tekemiseen säilössäsi. Kun annat käyttöoikeuden, se on avain, jonka valtuutat. Voit peruuttaa apin avaimen käytön milloin tahansa arkiston asetuksista.

OAuth-sovellukset

OAuth Apps tarjoaa tavan käyttää GitHub-tietoja käyttäjän puolesta. Koska se toimii käyttäjän puolesta, on tärkeää huomata, että se käyttää GitHub-käyttöoikeutta. Voit luoda ja rekisteröidä OAuth-sovelluksen henkilökohtaisella tililläsi tai organisaation tasolla, jos sinulla on järjestelmänvalvojan oikeudet. GitHubiin integroituva OAuth-sovellus paljastaa, minkä tyyppistä käyttöoikeutta organisaatioon tai säiltöön se vaatii. Käyttäjät valtuuttaneet OAuth-sovellukset, mikä antaa sovellukselle mahdollisuuden toimia todennettuna käyttäjänä, kuten lukea tai muokata tietoja. Tämä lähestymistapa on käytännössä automaattinen tapa lukea, kirjoittaa tai muokata GitHub-tietoja käyttäjänä. On myös tärkeää huomata, että valtuutus rajoittuu resursseihin, jotka ovat käyttäjän käytettävissä. OAuth-sovellus saa kuitenkin myös pääsyn kaikkiin käyttäjän käytettävissä oleviin resursseihin.

Muistiinpano

Käyttöoikeustasoa rajoittaa tunnuksen laajuus (käyttäjä, organisaatio, säilö).

OAuth-sovelluksen käyttöoikeusrajoituksia käyttävissä organisaatioissa järjestelmänvalvoja voi myöntää hyväksynnän sovelluksen käyttöön. Tapahtumatilausten yhteydessä OAuth Apps reagoi toimintaan sellaisin tavoin.

GitHub-sovellukset

Sitä vastoin GitHub-sovellukset on asennettu henkilökohtaiselle tilillesi, omistamillesi organisaatioille tai tietyille säilöille, joihin sinulla on järjestelmänvalvojan käyttöoikeus. GitHub-sovellukset asennetaan Ja käytät GitHubia palveluna, eivät yksittäisenä käyttäjänä, kuten OAuth Appsissa. Yksi GitHub Appsin etu on, että toisin kuin OAuth-sovellukset, GitHub-sovellukset eivät käytä GitHub-käyttöoikeutta.

GitHub-sovellukset käyttävät tietoja itse sovelluksen puolesta yksityisen avaimen kautta, jota käytetään JSON-verkkotunnuksen allekirjoittamiseen. Koska ne on asennettu tiettyihin tietovarastoihin, käyttäjät voivat valita, mitä säilöjä sovellus voi käyttää, mikä rajoittaa sovelluksen käytettävissä olevan datan määrää. Käyttöoikeudet määrittävät, mitä resursseja GitHub-sovellus voi käyttää ohjelmointirajapinnan kautta. Toisin kuin OAuth Appsissa GitHub-sovelluksilla on mukautettavat käyttöoikeudet säilön tietoihin, ongelmiin ja noutopyyntöihin. Mukauttamisen avulla voit myöntää tarkempia käyttöoikeuksia ja rajoittaa sovelluksen lukemaan ja kirjoittamaan vain niissä säilöissä, joita sallit sen käyttää. Vain organisaation omistajat voivat hallita GitHub-sovellusten asetusta organisaatiossa.

Voit etsiä ja asentaa GitHub-sovelluksia GitHub Marketplacesta. Kun etsit GitHub-sovelluksia, muista, että joillakin sovelluksilla on vahvistettu merkki. Vahvistettu-merkki ilmaisee seuraavat tiedot sovelluksesta ja sen omistavasta organisaatiosta:

  • Organisaation omistajuus verkkotunnukseen tarkistetaan.
  • GitHub-tuki vahvistaa organisaation sähköpostiosoitteet.
  • Organisaatio vaatii kaksivaiheisen tunnistautumisen.

kuva GitHub-sovelluksen vahvistetusta merkistä.

  • Järjestelmänvalvoja voi myöntää säilön hallintaa, tarkistuksia, säilön sisältöä, käyttöönottoja ja ongelmia koskevia käyttöoikeuksia (Järjestelmänvalvojan muutokset edellyttävät käyttäjän hyväksyntää)
  • Järjestelmänvalvoja voi myöntää sovelluksen käyttäjälle oikeudet estää toinen käyttäjä, sähköpostit, seuraajat, GPG-avaimet, Git SSH Keys, pääosissa, katselu (Järjestelmänvalvojan muutokset edellyttävät käyttäjän hyväksyntää)
  • Tapahtumatilaukset: Suojaustiedote, Tarkistuspaketti, Luo, Käyttöönotto, Haarautuminen, Otsikko, Jäsen, Kuittaa sisään, Vahvista kommentti, Poista, Käyttöönoton tila, Välitavoite, Jäsenyys, Organisaatio (järjestelmänvalvoja määrittää GH Apps-käyttöliittymässä, ja niitä voidaan muuttaa)

Valitse Joko GitHub-sovellukset ja OAuth-sovellukset

Vaikka GitHub-sovellukset ovat ihanteellinen tapa integroida työnkulkuun joissakin tilanteissa, suurempien organisaatioiden voi olla haastavaa siirtyä perinteisestä OAuth-sovellusten käytöstä automaatioon. Esimerkiksi suojauskäytännön rajoitus voi myös rajoittaa järjestelmänvalvojan vaihtoehtoja näiden työkalujen käytössä.

Muistiinpano

Järjestelmänvalvojana sinun tulee tehdä yhteistyötä kehittäjien kanssa löytääksesi vaihtoehtoja, jotka sopivat parhaiten automatisointiin käyttämällä näitä sovelluksia noudattaen samalla suojauskäytäntöäsi.

Seuraavassa on joitakin tärkeitä kysymyksiä, jotka kannattaa ottaa huomioon sen määrittämiseksi, mikä sovellus on oikea ratkaisu tilanteeseesi:

  • Haluanko sovelluksen toimivan käyttäjänä?
  • Mikä nopeusrajan tulee olla?
  • Mitä käyttöoikeuksia sovelluksella on organisaatiossa ja säilöissä?
  • Noudattaako tämä sovellus suojauskäytäntöämme?

Seuraavassa on joitakin tärkeitä ominaisuuksia ja eroja, jotka on otettava huomioon valitessasi GitHub-sovelluksen tai OAuth-sovelluksen välillä.

GitHub-sovellukset OAuth-sovellukset
GitHub-sovelluksen asentaminen myöntää sovellukselle käyttöoikeuden käyttäjän tai organisaation tilin valittuihin säilöihin. OAuth-sovelluksen valtuuttaminen myöntää sovellukselle käyttöoikeuden käyttäjän käytettävissä olevaan resurssiin. esimerkiksi säilöjä, joita ne voivat käyttää.
Asennuksen käyttöoikeustietueet on rajoitettu määritettyihin säilöihin sovelluksen luojan valitsemilla käyttöoikeuksilla. OAuth-käyttöoikeustietue on rajoitettu vaikutusalueiden kautta.
Sovellus tunnistetaan GitHub Apps-bottina asennustunnuksen avulla. Käyttöoikeustietue tunnistaa sovelluksen käyttäjäksi, joka myönsi tunnuksen sovellukselle.
GitHub-sovellukset käyttävät kohdennettuja käyttöoikeuksia, joiden avulla ne voivat pyytää käyttöoikeutta vain siihen, mitä he tarvitsevat. OAuth Apps ei voi käyttää eriytettyjä käyttöoikeuksia.
GitHub-sovelluksiin ei sovelleta organisaation sovelluskäytäntöjä. GitHub-sovelluksella on pääsy vain organisaation omistajan myöntämiin säilöihin. Jos organisaation sovelluskäytäntö on aktiivinen, vain organisaation omistaja voi sallia OAuth-sovelluksen asennuksen. Jos sovellus on asennettu, OAuth-sovellus saa käyttöoikeuden kaikkeen, mikä näkyy tunnuksen, joka organisaation omistajalla on hyväksytyssä organisaatiossa.
Korkorajan nousuja voidaan myöntää sekä GitHub-sovellusten tasolla (kaikkiin asennuksiin) että yksittäisen asennuksen tasolla. Korkorajoituksen korotukset myönnetään OAuth-sovellusta kohden. Jokainen OAuth-sovellukselle myönnetty tunnus saa korotuksen.
GitHub-sovellukset voidaan todentaa käyttäjän puolesta. Tätä kutsutaan käyttäjien pyynnöiksi. Valtuutettava työnkulku on sama kuin OAuth-sovelluksen valtuutustyönkulku. Käyttäjältä palvelimeen -tunnukset voivat vanhentua, ja ne voidaan uusia päivitystunnuksella. OAuth Appsin käyttämä OAuth-työnkulku valtuuttaa OAuth-sovelluksen käyttäjän puolesta. Tämä työnkulku on sama, jota käytetään GitHub-sovelluksen käyttäjän ja palvelimen välisessä valtuutuksessa.
GitHub-sovellukset pyytävät säilön sisällön käyttöoikeutta ja todentavat HTTP-pohjaisen Gitkautta asennustunnuksen avulla. OAuth Apps pyytää write:public_key vaikutusaluetta, ja Luo käyttöönottoavain ohjelmointirajapinnan kautta. Tämän jälkeen voit suorittaa Git-komentoja kyseisen avaimen avulla.

Sovelluksen käyttö ja käyttöoikeudet

Yksi tärkeimmistä seikoista, kun sovelluksen sallitaan käyttää GitHub-säilöä, ovat käyttöoikeudet, joita sen käyttö edellyttää. Joihinkin sovelluksiin on helppo luottaa, mutta toisiin voi olla epäilyttäviä. Varmista aina, että olet tyytyväinen sovellukseen myöntämiesi käyttöoikeuksien käyttöön.

GitHub-sovelluksen tai OAuth-sovelluksen käyttöpäätöksen tekeminen saattaa riippua käyttöoikeustasosta, jota haluat sovelluksen käyttävän. Yleisesti ottaen sinun kannattaa kannustaa tiimiäsi käyttämään työkalua, jolla on pienin laajuus tehtävän suorittamiseen. OAuth-sovelluksella on käyttöoikeus kaikkiin käyttäjän tai organisaation omistajan resursseihin.

  • OAuth-sovelluksilla voi olla lukea tai kirjoittaa käyttää GitHub-tietojasi
  • Voit myöntää GitHub-sovellukselle käyttöoikeuden yhdelle tilille ilman, että sinulle on myönnetty käyttöoikeutta toiseen tiliin

Sovellusten suojaus

Kun löydät sovelluksesta haavoittuvuuden, sen tulee olla etusijalla ja suojauskäytännössä kertoa projektisi käyttäjille. Suojausongelman nopea kommunikointi voi tarkoittaa eroa sen välillä, voivatko käyttäjät kumota vaarantuneen tunnuksen tai paljastaa arkaluontoisia tietoja. Tunnukset ovat paljon turvallisempia kuin salasanat, mutta suojaus voi silti vaarantua, ja on tärkeää, että valmistaudut organisaatiosi käyttöön.

README.md lisäksi suosittelemme SECURITY.md -tiedoston lisäämistä säilöihisi. SECURITY.md-tiedosto korostaa säilön tietoturvaan liittyvät tiedot. Tiedoston tulee sisältää suojausyhteyshenkilöt, organisaatiosi käytännöt ja yksityiskohtaiset tiedot vastauksesta, jonka aiot tehdä, kun haavoittuvuus havaitaan.

Tapahtumiin reagoiminen

GitHub-sovellukset on suunniteltu passiivisiksi. He odottavat, että jotain tapahtuu, ja reagoivat sitten yleensä GitHub-ohjelmointirajapinnan kautta. Kun odotamme GitHubissa tapahtumia, menetelmät ovat kaksi: webhookit ja kyselyt.

Muistiinpano

GitHub-sovelluksia ei ole rajoitettu GitHub-tietojen käsittelyyn. Voit helposti odottaa muista lähteistä tapahtuvia tapahtumia tai suorittaa toimintoja, jotka päivittävät muita palveluita.

GitHub webhookien käyttäminen

Webhookit ovat ensisijainen tapa käsitellä tapahtumia. Kun GitHubissa tapahtuu jotain webhookin puitteissa, tapahtuma käynnistetään välittömästi. Webhookien palveluilmoituksia, joita sovelluksesi voi kuunnella ja käsitellä reaaliajassa. Voit määrittää webhookit säilön asetuksissa, mukaan lukien tapahtumien tyypit, todentamisen ja HTTP-ilmoitusten toimitustavan.

Kysely

Joskus webhookit eivät ole vaihtoehtoina. Sovelluksesi on ehkä elettävä yrityksen palomuurin takana, jossa GitHub ei voi suoraan tavoittaa sitä. Tässä tapauksessa vaihtoehtona on kyselyyn seurattava tieto GitHub-ohjelmointirajapinnan avulla.

Webhook-välitys

Vaihtoehto palomuurin takana oleviin sovelluksiin tehtävälle kyselylle on käyttää webhook-edelleenlähetyspalvelua, kuten smee.io. Tässä lähestymistavassa julkinen palvelu tilaa arkiston webhookin ja välittää sitten saapuvat tiedot palomuurin takana toimivaan asiakaspalveluun. Asiakaspalvelu lähettää sitten ilmoitukset käynnissä olevalle sovellukselle ikään kuin ne olisi peräisin alkuperäisestä lähteestä.