1. Nettdesign og utviklingGitHub-apper og probot

Av Sarah Guthals

Apper på GitHub lar deg utvide GitHub på kraftige måter. GitHub-apper er nettapplikasjoner som kan svare på hendelser på GitHub. Disse arrangementabonnementene kalles nettkroker. Når en hendelse oppstår på GitHub som appen er interessert i, sender GitHub en HTTP-forespørsel til appen med informasjon om hendelsen. Appen kan deretter svare på den hendelsen på noen måte, ofte som resulterer i en tilbakeringing til GitHub via GitHub API.

Her går du gjennom å bygge en enkel GitHub-app som bringer litt avgift til diskusjonene dine. Det er en gammel meme i form av en animert gif med en liten jente som stiller spørsmålet, "Hvorfor har vi ikke begge deler?" Den typiske bruken av dette meme er svar på et spørsmål som presenterer en falsk dikotomi. Med andre ord, når noen presenterer et spørsmål med to valg, kan noen svare med dette bildet.

Vi presenterer GitHub's Probot

GitHub-apper er nettapplikasjoner som må lytte til HTTP-forespørsler. Du har mange viktige detaljer for å komme akkurat når du bygger en HTTP-forespørsel, for eksempel hva er formatet på dataene som er lagt ut til appen? Alle disse detaljene kan være forvirrende og tidkrevende å bli riktig når du bygger en GitHub-app fra bunnen av. Det er vanskelig å vite hvor du skal begynne.

Probit-rammeverket til GitHub kommer godt med når du kommer i gang med en GitHub-app. Probot håndterer mye av kjelplaten og nitpicky detaljer om å bygge en GitHub-app. Det er et rammeverk for å bygge GitHub-apper ved å bruke Node.js. Det gir mange bekvemmelighetsmetoder for å lytte til GitHub-hendelser og for å ringe til GitHub API.

Probot gjør det enkelt å bygge en GitHub-app, men det løser ikke problemet med hvor du skal være vert for appen.

Vert for GitHub-appen

En GitHub-app kan ta mange former. Det kan være en Node.js-app som kjører i Heroku, en ASP.NET Core-app som kjører i Azure, en Django-app som kjører i Google Cloud - det spiller ingen rolle. Det trenger bare å være vedvarende og tilgjengelig via det offentlige Internett, slik at GitHub kan nå det med nyttelast fra hendelser.

Å sette opp alt dette kan være tidkrevende, så for våre formål bruker vi Glitch til å implementere en rask og skitten GitHub-app.

Vi introduserer Glitch

Glitch er en vertsplattform for webapplikasjoner som fjerner mye av friksjonen med å få en web-app i gang. Alle apper du oppretter i Glitch, er live på nettet fra begynnelsen. Du trenger ikke å tenke på hvordan du planlegger å distribuere koden fordi enhver endring du gjør blir lagret automatisk og distribuert automatisk.

Glitch fokuserer på samfunnsaspektet ved å bygge apper. Hver fil kan redigeres av flere personer i sanntid, på samme måte som du kan redigere et dokument i Google Dokumenter. Og hvert prosjekt kan remixes ved å klikke på en knapp. Dette oppmuntrer til mye deling av kode og læring av hverandre, noe som kommer godt med når vi bygger vår egen GitHub-app.

Før du fortsetter, sørg for å opprette en konto på Glitch hvis du ikke allerede har en.

Lag en Probot Glitch-app

Etter at du har en grov forståelse av Probot og har satt opp en Glitch-konto, kan du bygge en Probot-app på Glitch. Med Glitch kan du remikse eksisterende apper, og den gode nyheten er at Glitch allerede har en Probot-app som du kan remikse. Dette betyr at du kan opprette Probot-appen din med ett klikk og noen få tilpasninger.

For å opprette appen din skriver du inn følgende URL i nettleseren din: https://glitch.com/edit/#!/remix/probot-hello-world.

Denne kommandoen lager en helt ny app i Glitch basert på probot-hallo-verden-eksemplet med en tilfeldig generert URL, som vist. Som du kan se, appen min heter candy-chaffeur.

GitHub Glitch Probot-app

Den venstre ruten viser listen over filer i applikasjonen din. README.md-filen inneholder trinn-for-trinn-instruksjoner for å sette opp hei-verden Probot-appen. Følg disse instruksjonene nøye for å sette opp prøven GitHub-appen.

En av instruksjonene nevner å kjøre følgende kommando:

cat my-app-name.2018-06-20.private-key.pem | pbcopy

Hensikten med den forrige kommandoen er å kopiere innholdet i din private nøkkelfil til utklippstavlen, slik at du kan lime den inn i Glitch-filen. Denne kommandoen fungerer imidlertid bare på en Mac. På Windows vil du kjøre følgende kommando (endre filnavnet slik at det samsvarer med ditt):

skriv inn min-app-navn.2018-06-20.private-key.pem | klemme

Når du er ferdig, installerer du appen i et depot du eier, og oppretter deretter en ny utgave. Noen sekunder senere skal du se en kommentar opprettet av boten din med ordene "Hello World!".

Tilpass appen

Etter at du har opprettet en Probot-app i Glitch og installert den på GitHub, kan du tilpasse hvordan appen reagerer på å gi kommentarer. Når du fulgte trinnene i README, abonnerte du på utgivelsesarrangementer. Disse hendelsene inkluderer ikke når nye kommentarer opprettes. Vi må også abonnere på kommentarer.

Se en liste over appene dine her. Klikk på Rediger-knappen for å navigere til appen din. I venstre navigasjon klikker du deretter på Tillatelser og hendelser og blar ned til delen Abonner på hendelser. Merk av for Utgavekommentar, som vist.

GitHub-abonnement

Klikk Lagre endringer-knappen nederst for å fullføre disse endringene.

Nå må du endre Glitch-appen din for å lytte til kommentarer til nye utgaver og svare riktig. Rediger filen index.js og erstatt innholdet i filen med følgende kode:

module.exports = (app) => {

// Lytter til kommentarer om nye utgaver

app.on ('issue_comment.created', async context => {

// Henter frem kommentarteksten

const melding = context.payload.comment.body

if (melding.indexOf ('eller')> -1) {

const params = context.issue ({

body: '! [Hvorfor ikke jenta begge to] (https://media3.giphy.com/media/3o85xIO33l7RlmLR4I/giphy.gif)'

})

// Oppretter en kommentar med et nedslagsbilde

return context.github.issues.createComment (params)

}

})

}

Denne koden lytter til nye utgivelseskommentarer, ser etter ordet eller er omgitt av mellomrom, og hvis den finner det, oppretter du en ny kommentar med et nedslagsbilde.

Denne tilnærmingen er ikke veldig smart. Prøv denne litt bedre tilnærmingen. Det ville vært enda bedre om vi kunne ansette noen kunstig intelligens (AI) i form av naturlig språkbehandling (NLP). Men det er utenfor kompetansesettet mitt og utenfor rammen for denne boken.

Installere appen

Etter at du har opprettet appen og fått den til å fungere, kan andre installere appen og bruke den. Du kan installere den ved å gå til GitHub-applisten din og klikke på den store grønne Installer-knappen øverst til høyre.

Installer det på et repository og deretter lage en kommentar til et problem i depotet som stiller et spørsmål med ordet eller i det. Et eksempel på et samspill vises her.

GitHub Why Not app