Spor GitHub-lageraktivitet i realtid på Slack ved hjælp af denne API.

Integrering af GitHub med Slack vil hjælpe dig med at strømline dit teams kommunikation ved at informere dem om real-time repository hændelser. Denne integration hjælper med at samarbejde mere effektivt, diskutere ændringer i konteksten af ​​kodebasen og hurtigt løse eventuelle problemer, der måtte opstå under udviklingen.

Desuden giver integration af GitHub med Slack dig mulighed for at tilpasse notifikationer, så de passer til dit teams unikke arbejdsgang. Dette minimerer distraktioner og fokuserer på det, der virkelig betyder noget. Denne skræddersyede tilgang til kommunikation giver dit team mulighed for at træffe informerede beslutninger og træffe rettidige handlinger, hvilket sikrer den højeste kvalitet.

Trin 1: Opret en ny Slack-app

For at følge op skal du være komfortabel ved hjælp af Slack-platformen. Du bør også være bekendt med GitHub.

Det første trin i integrationen er at skabe en ny Slack-app. Denne app vil være ansvarlig for at sende beskeder på den valgte Slack-kanal, når der opstår en repository-hændelse. For at oprette en ny app skal du navigere til

Slack hjemmeside og log ind på din konto. Opret derefter et nyt arbejdsområde. Du skal bruge dette arbejdsområde til at teste din app, før du installerer det i dit teams arbejdsområde.

Naviger til Slack API hjemmeside i en ny browserfane.

Klik på Dine apps knap. På den side, der vises, skal du klikke på Opret ny app knap.

Vælg muligheden for at oprette appen fra bunden. Navngiv derefter din app, og vælg det arbejdsområde, du vil installere den på.

Klik på Opret app knap. Denne handling vil oprette din nye Slack-app og omdirigere dig til dens dashboard.

Trin 2: Konfigurer en Slack Incoming Webhook

En Slack Incoming Webhook giver dig mulighed for at sende beskeder fra eksterne kilder til dit Slack-arbejdsområde. For at konfigurere webhook skal du vælge Indgående Webhooks funktion. Sørg for at tænde for Aktiver indgående webhooks knap.

Rul ned til Webhook-URL'er til dit arbejdsområde afsnit. Klik på Føj ny Webhook til Workspace knap.

Slack vil anmode dig om at vælge den kanal, hvor din app vil sende beskeder. Vælg kanalen og klik på Give lov til knap.

Dette vil tilføje din app til den valgte kanal. Gå tilbage til Webhook-URL'er til dit arbejdsområde afsnit. Kopier den genererede Webhook URL. Dette er den URL, som GitHub sender meddelelser om lagerbegivenheder til.

Du er nu færdig med at konfigurere Slack-siden.

Trin 3: Konfigurer GitHub Repo

Naviger til GitHub hjemmeside og log ind på din konto. Gå til det lager, du ønsker at modtage begivenhedsmeddelelser fra. Du kan også oprette et nyt lager. Klik på Handlinger fanen under lagernavnet.

Klik derefter på opsætte en arbejdsgang selv link. Den næste side, der vises, kræver, at du opretter en YAML-fil i GitHub-arbejdsgangsmappen. Denne fil definerer GitHub Actions-arbejdsgangen, der er ansvarlig for at sende meddelelser til dit Slack-arbejdsområde.

Du vil skrive YAML-koden i den integrerede editor. Denne kode vil integrere GitHub med Slack ved at sende meddelelser til en Slack-kanal, når specifikke hændelser opstår i depotet.

Den fulde kildekode, der bruges i denne artikel, er tilgængelig i en GitHub-depot.

Trin 4: Skriv YAML-koden til integration af GitHub med Slack

Navngiv din arbejdsgang. Du er velkommen til at vælge det navn, du kan lide.

navn:SlapNotifikation

Angiv de hændelser, der skal udløse arbejdsgangen. Det er her, du vælger de begivenheder, som du ønsker, at dit hold skal have besked om. Tilføj eller fjern begivenhederne, så de passer til dine krav.

på:
skubbe:
pull_request:
problemer:
typer:
-åbnet
-lukket
-genåbnet
-redigeret
-slettet
-fastgjort
-frigjort
-tildelt
-ikke tildelt
-mærket
-umærket
-milepæl
-demilestones
issue_comment:
typer:[oprettet,redigeret,slettet]
skab:
slet:

Konfigurer dit job, og vælg det virtuelle miljø, det skal køre på. notify_slack er navnet på jobbet. Du kan ændre det efter din smag.

job:
notify_slack:
kører på:ubuntu-seneste

Konfigurer et trin, der vil være ansvarlig for at sende en notifikation til Slack.

trin:
-navn:SendeSlapnotifikation

Definer en miljøvariabel med navnet SLACK_WEBHOOK_URL. Den gemmer Slack webhook-URL'en. Du vil senere tilføje URL'en til GitHubs depothemmeligheder.

env:
SLACK_WEBHOOK_URL:${{hemmeligheder. SLACK_WEBHOOK_URL}}

Konfigurer action-slap GitHub Action. Hvilket er en tredjepartshandling, der håndterer den underliggende logik i at interagere med Slack API. Det giver dig mulighed for at fokusere på at konfigurere de beskeder og begivenheder, der udløser underretningerne. Dette gør processen med at sende meddelelser til Slack meget nemmere.

bruger:8398a7/action-slack@v3

Denne kode bruger 8398a7/action-slack@v3handling.

Konfigurer 8398a7/action-slack@v3 handling med tilpassede parametre. Det status parameter indstiller meddelelsesstatus til brugerdefinerede. Det giver dig mulighed for at definere indholdet af Slack-meddelelsen ved hjælp af en brugerdefineret nyttelast. Det felter parameter viser de felter, der skal inkluderes i Slack-meddelelsen.

med:
status:brugerdefinerede
felter:repo, commit, begivenhed, handling, arbejdsgang, ref, URL

Lave en custom_payload der vil tilpasse udseendet af Slack-meddelelsen, så den passer til dine præferencer.

custom_payload:|
{
"vedhæftede filer":[
{
"farve":"${{ job.status }}",
"titel":>-
${{github.actor}}${{github.event.pull_request&&github.event.pull_request.merged==rigtigt&&"fusionerede en pull request"||github.event.pull_request&&'åbnet en pull request'||github.event_name=='skubbe'&&'skubbede nye ændringer'||github.event_name=='skab'&&'oprettet en ny filial eller tag'||github.event_name=='slet'&&'slettede en gren eller et tag'||github.event_name=='problemer'&&github.event.action||"udløste en begivenhed"}},
"tekst":>-
:tada:Begivenhedsdetaljer:

-Depot:${{github.repository}}
-Afdeling:${{github.ref}}
-Besked:${{github.event_name=='skubbe'&&github.event.head_commit.message||github.event_name=='problemer'&&github.event.issue.title||github.event_name=='pull_request'&&github.event.pull_request.title||''}}
-:globe_with_meridianer:Link:${{github.event.pull_request.html_url||github.event.issue.html_url||github.event.repository.html_url}}
}

]
}

Du kan henvise til 8398a7/action-slack@v3 custom use case for at finde alle de understøttede tilpasninger. Overfør YAML-filen for at oprette den nye arbejdsgang.

Det sidste trin i at integrere GitHub med Slack er at tilføje en ny depothemmelighed. Hemmeligheden i dette tilfælde er Slack Webhook URL du kopierede fra Slack. Hold denne URL hemmelig, da alle, der har adgang til den, kan sende beskeder til dit arbejdsområde.

Naviger til dine lagerindstillinger. Klik på hemmeligheder og variabler under sikkerhed funktion. Vælg Handlinger mulighed.

Klik på Ny depothemmelighed. Tilføj navnet på hemmeligheden som SLACK_WEBHOOK_URL. Indsæt derefter Slap URL ind i det hemmelige felt. Klik til sidst på Tilføj hemmelighed knappen for at gemme den nye hemmelighed.

Du er nu færdig med at integrere GitHub med Slack. Hver gang der sker en begivenhed i dit lager, vil en besked blive vist på din kanal. Prøve oprettelse af en ny pull-anmodning. Dette vil udløse en push-hændelse.

Skærmbilledet nedenfor viser eksempler på beskeder på Slack, der viser hændelser, der fandt sted i et lager.

Du kan tilpasse meddelelsens nyttelast til at inkludere andre felter, som du kan finde nødvendige.

Forbedre din produktivitet med slappe integrationer

GitHub er ikke den eneste Slack-integration, som du kan tilføje til dit arbejdsområde. Der er adskillige integrationer, som du kan bruge til at forbedre dit teams produktivitet og forbedre deres kommunikation. At blive fortrolig med disse integrationer vil hjælpe dig med at strømline dit teams arbejdsgang og holde alle på samme side.