GitHub app

Connect a GitHub organisation or account to post repository events into channels, create issues with /issue, re-run failed checks from a post, and turn github.com links into cards.

Before you start

Needs setup on the server. This integration appears only when the server's operator has registered a GitHub App. Until then the GitHub section says Not set up on this server. On the hosted service, ask us at [email protected]; on your own server, see the self-hosting configuration guide.

GitHub app or incoming webhook?

The plain incoming webhook works on every server with no setup: you paste a URL and a secret into one repository's webhook settings, and its events post into one channel. The GitHub app is set up once per GitHub account, then routed in Missived:

Incoming webhook …/github GitHub app
Needs the server's operator to register anything No Yes
Set up per Repository GitHub account
Routing and filters One webhook, one channel, no filters Many routes, each with its own events and filters
Buttons, /issue, link cards No Yes

Both work side by side; an org can use either or both.

Connect GitHub

  1. Open Org Settings → Integrations → GitHub → Connect GitHub.
  2. On GitHub's page, pick the organisation or account, choose which repositories the app can see, and choose Install & Authorize.
  3. GitHub sends you back to the Integrations page, with the account and its repositories listed.

Already installed the Missived app from GitHub's own page? Choose Link an existing installation instead. GitHub asks you to authorise the app, then you come back and pick the account.

To connect a second GitHub account, choose Connect another account. Each GitHub installation belongs to one Missived org.

If you aren't an owner of the GitHub organisation, GitHub sends its owners a request instead. Once they have installed the app, use Link an existing installation.

Route a repository to a channel

Under the account, choose Add a route:

Field Meaning
Repository One repository, or every repository of the account.
Channel Where the events post. A text channel; never a direct message, group chat or personal channel.
Post these events Pick from the list below.
Only these branches (optional) Branch names or patterns, comma-separated: main, release/*. Applies to pushes, pull requests (their target branch) and workflow runs. * matches one level, ** any depth. Up to 20.
Only these labels (optional) Issues and pull requests with at least one of these labels. Up to 20.
Leave out Draft pull requests, Workflow runs that didn't fail, and Anything done by a bot (Dependabot, Renovate and other apps).
Event Posts On by default
Pushes Commits pushed to a branch, new branches and tags Yes
Pull requests Opened, ready for review, merged, closed Yes
Reviews Approvals, changes requested, and reviews with a comment No
Issues Opened, closed, reopened Yes
Comments New comments on issues and pull requests No
Releases Published releases and pre-releases Yes
Workflow runs GitHub Actions runs when they finish Yes

Choose Add route. The org's GitHub bot joins the channel, so its buttons and /issue work there. A channel can have several routes, and one repository can post to several channels.

Each route has Pause / Resume, Edit and Remove.

What it posts

Events arrive within seconds as cards from the GitHub bot (with a BOT badge). Every card has an Open link (Open commit or Compare, Open pull request, Open issue, Open comment, Open release, Open run), and some have a button:

The answer is a private reply only you see, such as "Re-running the failed jobs of that run in acme/web." Approving and merging are not offered.

/issue

In a channel with a routed repository, type /issue. Options:

A form opens with Title and Description. Submit it and the issue is created on GitHub by the Missived app. Its body ends with "Opened from Missived by name in #channel", and you get a private "Created owner/repo#123" reply with an Open button.

Who may use /issue and the buttons

Under the account, Who may create issues with /issue and press Re-run:

Either way, a button or /issue works only for a repository routed to that channel.

A github.com link to an issue, a pull request, a commit or a repository of a connected account becomes a card showing its state, branches, changes and labels.

Any other link gets the ordinary link preview.

Manage and disconnect

Each connected account has:

Uninstalling the app on GitHub disconnects it in Missived too. Every change appears in the org's Audit log, never with an issue's title or body.

What data moves

Limits

Troubleshooting

You see What to do
Not set up on this server The server's operator hasn't registered its GitHub App. Use an incoming webhook meanwhile.
Suspended on GitHub An owner suspended the Missived app on GitHub. Nothing posts and /issue is off until they unsuspend it there.
Failing Some events couldn't be posted in the last 24 hours. See Recent deliveries.
"This page was opened without the link from Missived." Start from Connect GitHub in Missived, not from GitHub's own install page, or use Link an existing installation.
"No GitHub repository is linked to this channel yet." Add a route for this channel first.
"This channel has 2 repositories. Say which: /issue repo:…" Add the repo option.
"Only people who manage integrations can do that with GitHub here." The connection is set to Only people with Manage integrations.
"The app can't see any repositories yet." Add repositories on GitHub (Manage on GitHub), then Refresh repositories.