Link GitHub pull requests to tasks
When you finish, each pull request that names a task shows up on that task. The card can also move when the pull request opens, merges or closes. It takes about five minutes per repo.
A pull request asks to merge one branch of code into another. A branch is a separate line of work in git. A webhook is a message GitHub sends to another app when something happens.
devBoard looks for an item key, like APP-42, in the pull request's title, body or branch name. Case does not matter, so a branch called app-42-fix-login counts.
What you need
- The admin or owner role in the devBoard workspace. Members can see the settings but not change them.
- The devBoard Mac app, where the settings live.
- Admin rights on the GitHub repo, so you can add a webhook.
Steps
1. Copy the webhook address
In devBoard, open Settings → Developer and find Pull requests. Click Copy webhook URL. You use this one address in every repo.
2. Set a webhook secret
Type a secret of 8 to 200 characters into Webhook secret and click Save. GitHub signs each message with it, so devBoard knows the message is real.
3. Add a webhook in GitHub
In GitHub, open the repo's Settings → Webhooks and click Add webhook. Paste the address into Payload URL.
4. Set the content type and secret
Set Content type to application/json. GitHub starts with form-encoded, and devBoard rejects that. Then type the same secret as in step 2.
5. Pick the event
Choose Let me select individual events. Tick Pull requests and untick the rest. Click Add webhook. GitHub sends a test ping, and a green tick means devBoard answered.
6. Choose where cards go
Back in devBoard, under Pull requests, pick a place for each event. The choices are Don't move, Backlog, To do, In progress, Done and Cancelled.
| Event | Set at first to |
|---|---|
| When a pull request opens | In progress |
| When a pull request merges | Done |
| When a pull request closes without merging | Don't move |
These are kinds of column, not names. devBoard picks the first column of that kind in the card's project.
Check that it works
Push a branch with a real key, like app-42-test-link, and open a pull request. Open APP-42 in devBoard. The pull request shows on the task. If you kept the settings above and the card was in To do, it is now in In progress.
In GitHub, the webhook's Recent Deliveries tab shows devBoard's answers. Look for 200.
When a card moves
- An opened pull request moves a card only if it is still in Backlog or To do. A card already in review stays put.
- A merge or a close never moves a card that is already Done or Cancelled.
- New commits do not move the card.
- A reopened pull request, or a draft marked ready for review, counts as opened.
- GitHub is not a member, so the move shows in the activity log under the workspace owner's name.
What to try next
- Say "start APP-42" to your assistant. The branch name it gives you has the key in it. See start and finish work.
- Move cards after a deploy with the REST API from CI.
More setups are in the guides and on the MCP page.
If it does not work
| What you see | Why | What to do |
|---|---|---|
| 401 "Bad signature." in Recent Deliveries | The secret in GitHub does not match devBoard | Save the same secret in both places |
| 404 "Not found." | No secret is saved in devBoard yet, or the address is wrong | Save a secret, then copy the address again |
| The ping works but pull requests get 400 | Content type is form-encoded | Set it to application/json |
| 200, but nothing shows on the task | No valid key in the title, body or branch | Add the key, like APP-42, to the title |
| It shows on the task, but the card stays | The card was past To do, or the event is set to Don't move | See When a card moves, above |
Questions people ask
Do I need a webhook in every repo?
Yes. Each workspace has one webhook address. Add that address and the same secret to every repo you want linked.
Does it work with GitLab or Bitbucket?
No. devBoard reads GitHub pull request events only.
Free while in early access; paid plans will be one plain number, posted here first.
Download on the App Store Get it on Google Play Connect your AI assistant