Product Updates

Your Board Says Done, GitHub Says Open: Linking Pull Requests to User Stories

The board says Done. GitHub says the pull request is still open. Orvezo now connects to GitHub: pull requests appear on the stories they're for, and stories can move by themselves as code is opened, reviewed and merged.

Every sprint board drifts from reality in the same way. A card sits in Done while its pull request waits for review. Another sits in In Progress, though the code merged on Tuesday. Standup turns into "is that actually merged?", and somebody spends Friday afternoon dragging cards to match GitHub.

With AI agents opening pull requests all day, the drift gets worse: the code moves faster than anyone updates the board.

Orvezo now connects to GitHub. Pull requests show up on the stories they're for, and stories can move by themselves as the code does.

What you see on a story

Open any story and its Development section lists its pull requests:

  • the pull request's title and number, linking to GitHub

  • its status: Open, Draft, Merged or Closed

  • its branch, and who opened it

  • how it was linked, for example "from branch name"

So "is this done?" becomes a glance, not a question.

How a pull request finds its story

Every story in Orvezo has a short key, like POR-142. A pull request links to a story when that key appears in its branch name, title or description.

The easiest way: each story has a Copy branch name button. It gives you a branch like por-142-export-invoices-to-csv. Create the branch, open the pull request, and it's linked.

You can say more in the pull request's title or description:

  • "Fixes POR-142" (or "closes", "resolves", "completes"), or just "POR-142": this pull request is the work for the story.

  • "Part of POR-142" (or "refs", "towards"): this pull request is some of the work; there's more to come.

  • "Skip POR-142": mentions the story without linking it.

You can also paste a pull request's link into the story to link it by hand, or unlink one that was linked by mistake. An unlinked pull request stays unlinked even if it still mentions the story.

Stories that move by themselves

Seeing the pull request is half the fix. The other half is not having to move the card.

Each project can turn on Move stories automatically. Then:

  • a pull request opened as a draft moves its story to In Progress

  • a pull request ready for review moves it to In Review (if the project uses a review step)

  • a pull request merged into the main branch moves it to Done, or to In Review, if your team checks or deploys after merging

Three rules keep this from getting in your way:

  1. Stories only move forward. A pull request never moves a story backwards.

  2. People win. If someone moves a story back, say from Done to In Progress because it isn't really finished, GitHub won't move it forward again for that pull request.

  3. "Part of" never finishes a story. A partial pull request moves the story to In Progress at most. And if a story has a second pull request still open, the first one merging won't mark it Done.

Every automatic move shows in the story's history with GitHub as the actor and the reason: "Pull request #318 merged".

Why this matters more with AI agents

If your agents work in Orvezo, they use the same convention. An agent can ask Orvezo for a story's branch name before it starts, so its pull request links automatically. When it reads a story, it sees the linked pull requests and their status, so it knows whether the work already exists.

The result is a board you can trust without asking anyone, including the agents. That matters most when part of the team doesn't come to standup. (How a team of people and agents runs a sprint.)

Setting it up

  1. Connect GitHub. The workspace owner opens Settings → Integrations and connects GitHub, choosing which repositories Orvezo can see. Orvezo only reads: it never changes your code.

  2. Choose each project's repositories. In a project's Settings → GitHub, tick the repositories its work happens in. One repository can serve several projects.

  3. Name branches after stories. Use Copy branch name, or put the key in the pull request title.

  4. Optionally, turn on Move stories automatically for the project, and choose whether a merge means Done or In Review.

You can disconnect GitHub any time from the same page. Pull requests already on stories stay as history.

Frequently asked questions

Does Orvezo need write access to my repositories?

No. Orvezo reads pull requests and repository names. It never pushes code or changes your repository.

What if a pull request covers two stories?

Mention both keys. A pull request can link to several stories, and each story shows it.

What if we deploy after merging?

Choose In Review as the status for merged pull requests. Stories then wait in In Review until someone checks the deployment and moves them to Done.

Which plans include GitHub?

GitHub is included in the Team and Business plans, and in the 30-day free trial. Start your trial: no credit card needed.