Skip to Content
FeaturesPull request impact

Pull request impact

See what Marshal delivers and how your team’s pace changes after you adopt it. Marshal records every pull request your agents open, merge, close or reopen on GitHub, then shows it on the run, on the deputy, on the Impact page and in your own usage. There is nothing to set up. It is on for every org.

What you can do with it

  • Show the before and after in a customer or board call. Open Impact. The Overview tab charts your org’s merged pull requests per week, Marshal’s against everyone else’s, with Marshal’s share as a line and a marker on the first week Marshal opened a pull request. The headline cards beside it show how each figure moved against the period before. The change in pace is on one screen.
  • Prove a deputy earns its keep. Your dependency-upgrade deputy runs every night. Open its Insights and read PRs opened, PRs merged and PRs closed, each compared with the period before. A rising merged count tells you the upgrades land.
  • Follow one run to its pull request. An agent finishes a fix and opens the pull request. The run page shows a chip such as acme/api#482 open. Select it to review the change on GitHub. When a teammate merges it later, the chip turns to merged.
  • Check your own impact. Open My usage. Your impact shows the pull requests Marshal made for you against everyone else’s in the repos you work in, and Pull requests lists each one with a link.

How it works

Whichever way an agent works, Marshal sees the pull request action: the gh command line, a script that calls the GitHub API, or the GitHub MCP. It works the same in an interactive space and in a deputy run. Marshal records an action only when GitHub confirms it succeeded.

Each record holds four things: the action (opened, merged, closed or reopened), the repo, the pull request number and the time. It is linked to the space, the run, the deputy and the person that made it.

Marshal stores no pull request titles, descriptions or code. The link to each pull request is built from the repo and the number.

Where you see it

WhereWhat you seeWho sees it
Run pageA chip for each pull request the run touched: owner/repo#N and its state. The chip links to GitHub.Everyone who can open the run
Deputy InsightsPRs opened, PRs merged and PRs closed tiles, each with the change against the prior periodEveryone who can open the deputy’s Insights
Dashboards, ImpactHeadline cards, the org trend, adoption, time to merge, a card for each repo, and every pull request eventOwners and admins, for the whole org
Dashboards, OverviewImpact figures in the first section, each linking to ImpactOwners and admins
My usage, Your impact and Pull requestsYour own figures and events, with linksYou

The Impact page

Open Dashboards in the sidebar and select Impact. Three tabs hold the story: Overview, Repos and Activity. Pick Last 4 weeks, Last 12 weeks, Last 26 weeks or Last 52 weeks in the range picker. The choice applies to Overview and Repos, and the default is 12 weeks.

Overview

Overview answers whether Marshal is working. It gives you:

  • Headline cards. Marshal share of merged PRs, Marshal PRs merged, Weekly active users (the average per week), Merge rate (of finished Marshal pull requests) and Median time to merge. Each card shows how it changed against the previous period of the same length, such as +12% or +4 pts, and reads new when there is nothing to compare. A shorter time to merge counts as an improvement. The time card also shows the median for everyone else.
  • Org PRs per week. A bar for each week, split into Marshal and everyone else, with Marshal share as a line. A marker labeled First Marshal PR sits on the first week Marshal opened a pull request. Switch between merged and opened with the toggle. Hover a week to see its numbers.
  • Adoption. Per week, Active users, Users with a Marshal PR and Active deputies.
  • Time to merge. The median hours from open to merge, Marshal PRs next to everyone else’s, with the number of merged pull requests behind each. A side with too few pull requests reads not enough PRs.
  • Top contributors. Your top five repos and top five deputies by Marshal pull requests merged.

Pull requests opened by bot accounts, such as dependency bots, are left out of the org’s counts, share and time to merge, so a busy bot does not dilute Marshal’s share. A pull request Marshal opened always counts.

While repos are still syncing, a notice reads “Still syncing 2 of 14 repos: figures may change”. A repo that has not synced yet is left out of the figures, and the page links to Repos so you can see which.

Every figure leads to the details

Select a headline card, a bar in the trend chart, a repo or a deputy in Top contributors, and Activity opens with the matching filters already set: the week or the range, the repo or the deputy. The filters live in the page address. Copy the link to share exactly what you see, and use Back to return to the view before.

Repos

Repos shows one compact card for each repo Marshal has touched. Type in Search repos to narrow the list as you type. The page shows 24 cards, and Show more brings the next 24. The repos with the most Marshal merged pull requests come first.

Each card holds:

  • Merged PRs per week. Every merged pull request in the repo, by anyone, as a small chart over the range you picked. A marker shows Marshal’s first week there, so you can read the weeks before and after.
  • Marshal share. The part of the merged pull requests that Marshal opened.
  • Marshal PRs. How many of the pull requests Marshal opened are open, merged or closed on GitHub now. A person can review and merge a pull request outside Marshal, and the card still shows it.
  • Synced. When the repo last synced from GitHub.

Select a card to open Activity for that repo.

These numbers come from GitHub, so they count work by your whole team, and they stay current on their own. They are separate from the Marshal events on Activity, so you always know which is which.

Sync now

Marshal syncs each repo from GitHub on a schedule. After you install or link the App, or save your own App’s key, owners and admins can select Sync now in the header of Repos to sync every repo on the next pass, within a minute. The page reports how many repos will sync, for example “2 repos will sync within a minute”, and the cards refresh on their own a minute later. Members do not see the button.

Run Sync now before Retry unresolved: the repo sync is how Marshal learns which installation covers each repo, and the retry uses it.

Activity

Activity is the full record of what Marshal did on GitHub. Marshal PR events shows a bar for each week, split into Opened, Merged, Closed and Reopened. Below it, Recent events lists each action with a link to the pull request, and Load more brings older ones.

Narrow the view with Repo, Deputy, Space and User, and with the Since and Until dates. Pick any member in User to see one person’s agents. Select a bar to filter to that week, and Clear filters starts over.

Retry unresolved

After you install or link the App, events recorded earlier can still say PR not resolved yet. Owners and admins select Retry unresolved at the top of the events on Activity. Marshal tries each unresolved event in the page’s window again with the current access, up to 500 at a time, newest first. The page reports how many it queued out of how many are stuck, for example “Queued 9 of 9 stuck events”. When more than 500 are stuck, select Retry unresolved again after the first retry ends to pick up the rest. One retry runs per org at a time, and the page tells you when one is already running. Members do not see the button.

How Impact reads GitHub

Marshal reads your pull requests through your GitHub App first, so the whole organization shows up without anyone connecting a particular way.

  1. Your own GitHub App. If your org uses its own GitHub App with its App ID and private key saved, Marshal reads every owner that App is installed on.
  2. The Marshal GitHub App. If an admin linked an installation of the Marshal GitHub App, Marshal reads the repos that installation covers.
  3. Members’ GitHub access. Otherwise Marshal uses the GitHub access of members who have used Marshal on that repo.

Marshal reads pull requests and repository metadata only, and never gives the access to a space or an agent.

When a repo or event has no data

Instead of an empty chart, a repo card on the Repos tab says Baseline not available and names the next step. An event Marshal could not match to a pull request shows PR not resolved yet with the same step under it.

When a repo is waiting for a GitHub App installation to be linked, owners and admins also see a notice at the top of every page: “Link your GitHub installation to turn on PR impact”. Link GitHub opens the GitHub card in Webhook settings. The notice goes away by itself once the installation is linked and the repo syncs, and each person can dismiss it for themselves.

You seeDo this
Install the Marshal GitHub App on the owner and link it on the GitHub card in Webhook settings.Install the App on that GitHub organization or account, then pick it on the GitHub card.
Add owner/repo to the GitHub App installation on owner.Edit the installation on GitHub and add the repo.
Approve the GitHub App’s updated permissions on the owner.When the App gains permissions, GitHub asks an owner of the account to approve them. The installation keeps its old set until they do.
Add your GitHub App’s private key in Settings, OAuth apps, or link the Marshal GitHub App.Save the App ID and private key in the Own app panel.
GitHub is rate-limiting this installation. Marshal retries after the reset.Nothing. Marshal waits for GitHub’s limit to reset.
Connect GitHub (Connections) with an account that can read the repo, or link the GitHub App.Connect GitHub from Connections, or link the App.

Your impact

Everyone sees their own slice on My usage, whatever their role. Your impact has the same range picker, the headline cards and the weekly chart, built only from the pull requests Marshal made for you and the repos you worked in. The comparison reads everyone else in your repos. It shows no other person’s figures. Pull requests below it lists each of your events with a link.

Scenarios

A team lead measures the first quarter

Priya’s team connected GitHub in September and put two deputies on the backlog. In December she opens Impact and leaves the range on Last 12 weeks. The trend chart shows the org’s merged pull requests per week, the share line climbing from the First Marshal PR marker. The Median time to merge card sets Marshal’s pull requests beside everyone else’s. She selects acme/api under Top contributors, and Activity opens on that repo. The slide for the review writes itself.

An admin answers “what did the deputies do this month?”

An admin opens Impact, picks Last 4 weeks and reads Top contributors to see which deputies merged the most. She selects one, and Activity opens on its pull requests, each one click from GitHub. To look at one teammate’s agents, she picks the person in User.

Try it

Ask an agent to open a pull request in a space with GitHub connected. Open the run and look for the chip next to the run id. Then open Dashboards, select Impact and choose the Activity tab. The new event is in Recent events.