Ghep er en Github App som pusher Github events for teams til Slack. Det som skiller Ghep fra en haug av andre lignende tjenester er at den automagisk henter repoer basert på Github teamet ditt, og pusher forskjellige events til forskjellige kanaler!
Commits er kanskje den mest aktive hendelsen for et team.
For hver push blir det sendt en hendelse som blir postet til Slack.
Ghep vil prøve å lenke til Co-Authors så godt som mulig.
Hvis en push trigger en workflow så vil Ghep reacte på commits basert på reisen til workflowen.
👀 - når en jobb har blitt satt i kø
⏳ - når den kjører
✅ - fullført vellykket
❌ - fullført feilet
Issues og pull requests blir behandlet nesten likt, og ser like ut når de havner i Slack.
merged og deleted hendelser vil bli posted i Slack-tråden til et issue eller pull requests.
Dette gjør det enkelt for dere å følge med på hva som skjer.
We also support a minimalist version of pull request without body.
Workflows som er vellykket er ikke så interessant, derfor er det kun workflows som feiler som blir postet til Slack.
Sender releases til en egen kanal, draft, prerelease, og releases blir sendt ut.
Sender code scanning, secret scanning, Dependabot, og security advisory til egen kanal. Noen av disse hendelsene kan man filtrere på alvorlighetsgrad.
Alt du trenger å gjøre er å redigere .nais/teams.yaml og legge til ditt team og deres kanaler.
nada:
commits: "#nada-commits"
issues: "#nada-issues"
pulls: "#nada-pull-requests"
workflows: "#nada-ci"
releases: "#nada-releases"
security: "#nada-security"PS: Hvis kanalene dine er private må du selv invitere @ghep inn i hver kanal.
Du kan også bruke sources for å sende samme hendelsestype til flere kanaler med forskjellig konfigurasjon.
For eksempel kan du sende pull requests fra bots til én kanal og resten til en annen.
nada:
sources:
- source: pulls
channel: "#nada-pull-requests"
config:
pulls:
ignoreBots: true
- source: pulls
channel: "#nada-bot-prs"
config:
pulls:
onlyBots: true
- source: commits
channel: "#nada-commits"
- source: commits
channel: "#nada-commits-develop"
config:
branches:
- develop
- source: workflows
channel: "#nada-ci"
config:
branches:
- main
- source: releases
channel: "#nada-releases"
- source: issues
channel: "#nada-issues"
- source: security
channel: "#nada-security"
config:
security:
severityFilter: "high"Gyldige source-typer er: commits, pulls, issues, workflows, releases, security.
Du kan kombinere det gamle formatet med sources. Flate kanaler (f.eks. commits: "#kanal") blir alltid inkludert, og eksplisitte sources legges til i tillegg.
nada:
commits: "#nada-commits"
pulls: "#nada-pull-requests"
sources:
- source: pulls
channel: "#nada-bot-prs"
config:
pulls:
onlyBots: trueI eksempelet over vil pull requests sendes til både #nada-pull-requests (fra flat config) og #nada-bot-prs (fra sources).
Vi har også støtte for litt konfigurering.
Dette legges under teamnavn.config for globale innstillinger, eller per source under sources[].config.
Foreløpig er det tillat med blanding av gammel type konfigurasjon, og per source.
Overtid kommer konfigurasjon som kan brukes av flere sources bli flyttet.
Globale innstillinger som gjelder for alle sources:
team:
config:
ignoreRepositories:
- repoA
- repoB
silenceDependabot: "always"
externalContributorsChannel: "#channel"
pingSlackUsers: trueignoreRepositories- En liste med repositories man ikke ønsker hendelser frasilenceDependabot- Hvis denne blir satt tilalwaysså ignorer man alle hendelser fra DependabotexternalContributorsChannel- Issues og pull requests fra brukere som ikke er i teamet ditt vil havne i en egen kanalpingSlackUsers- Pinger Slack-brukere som er tildelt issues eller pull requests
Dette er konfigurasjon som settes per source:
team:
sources:
- source: commits
channel: "#channel"
config:
branches:
- develop
- staging
- source: pulls
channel: "#channel-prs-main"
config:
branches:
- mainbranches- Få kun hendelser for de oppgitte branchene. For commits erstatter dette default branch for repoet. For pull requests filtreres det på target branch (base ref).
Kan konfigureres globalt (under config.pulls) eller per source (under sources[].config.pulls):
team:
pulls: "#channel"
config:
pulls:
events: [string]
ignoreBots: bool
onlyBots: bool
ignoreDrafts: bool
minimalist: boolignoreBots- Ikke få Slack-melding om Pull Request opprettet av botsonlyBots- Få kun Slack-melding om Pull Request opprettet av bots (nyttig for å sende Dependabot PRs til egen kanal)ignoreDrafts- Ignorer draft pull requestsminimalist- Don't post the body as attachment, only add title to the messageevents- Filtrer hvilke pull request-hendelser du vil ha notifikasjoner for. Se docs.github.com for komplett liste over events. For de fleste holder det medopened,ready_for_review,merged,closed. Merk atmergeer kun en Ghep event, og er en kombinasjon av eventclosedogpullRequest.merged: true
Kan konfigureres globalt (under config.workflows) eller per source (under sources[].config.workflows):
team:
workflows: "#channel"
config:
workflows:
ignoreBots: bool
workflows: [string]
repositories: [string]ignoreBots- Ikke få Slack-melding om workflows som feiler for bots (for eksempel Dependabot)workflows- Få kun Slack-melding om workflows som feiler for spesifikke workflowsrepositories- Få kun Slack-melding om workflows som feiler for spesifikke repositories
Kan konfigureres globalt (under config.security) eller per source (under sources[].config.security):
team:
security: "#channel"
config:
security:
severityFilter: "high"severityFilter- Filtrer ut sikkerhetshendelser som har lavere alvorlighetsgrad enn spesifisert
Ghep kan sende en ukentlig melding til en Slack-kanal med en oversikt over åpne pull requests for teamets repoer.
nada:
digest:
channel: "#nada-weekly"
day: monday
time: "09:00"
timezone: Europe/Oslo # valgfri, standard er Europe/Oslo
send_empty: false # valgfri, send melding selv om det ikke er åpne PRs (standard: false)channel- Slack-kanalen meldingen skal sendes tilday- Ukedag meldingen skal sendes. Gyldige verdier:monday,tuesday,wednesday,thursday,friday,saturday,sundaytime- Tidspunkt på dagen iHH:MM-formattimezone- IANA-tidssone for når meldingen skal sendes (standard:Europe/Oslo)send_empty- Hvistruesendes en melding selv om alle pull requests er merget. Standard erfalse, dvs. ingen melding sendes hvis det ikke er noe å rapportere
Det ligger en lokal Compose-fil i repoet som bygger appen som ghep:local og starter Postgres 18.
- Kopier
teams-local.yaml.exampletilteams-local.yamlog legg inn teamene du vil teste med. - Åpne
docker-compose.local.yamlog erstatt plassholderne forGITHUB_APP_ID,GITHUB_APP_INSTALLATION_ID,GITHUB_APP_PRIVATE_KEYogSLACK_TOKEN. - Start opp lokalt:
docker-compose up --buildAppen eksponeres på http://localhost:8080, og Postgres på localhost:5432.
| Permission | Level | Why |
|---|---|---|
| Metadata | Read-only | Repository info, rename/public events, default branch info |
| Contents | Read-only | Push/commit events |
| Pull requests | Read-only | PR events and digest query for open PRs |
| Issues | Read-only | Issue events |
| Actions | Read-only | workflow_run events |
| Code scanning alerts | Read-only | Security alert events |
| Dependabot alerts | Read-only | Dependabot alert events |
| Secret scanning alerts | Read-only | Secret scanning alert events |
Required bot scopes
| Scope | Why |
|---|---|
| chat:write | Post and update messages |
| reactions:write | Add/remove reactions |
| reactions:read | Read existing reactions before replacing them |
| conversations:read | List joined public/private channels |
| channels:join | Join public channels |
| users:read | List workspace users |
| users:read.email | Read Slack profile emails for GitHub↔Slack user mapping |
Recommended bot scope
| Scope | Why |
|---|---|
| chat:write.public | Lets the bot post to public channels before it has joined them |






