Skip to content

Triage new GitHub issues automatically ​

Every issue that lands on your repo gets read, sorted, and summarized the moment it's opened β€” so you walk into a tidy triage instead of a wall of unread tickets.

  • What you'll build β€” An app-event trigger on GitHub's New issue opened event that starts a short routine: read the issue, classify it (bug, feature, question, other), suggest labels, and send you a two-line summary with the link. Plus an optional weekly digest of everything opened that week. You build it all by chatting with your Personal Assistant.
  • Who it's for β€” A maintainer, founder, or small team that wants incoming issues sorted without babysitting the repo.
  • Time & plan β€” About 15 minutes. You'll need any plan that includes an agents budget, and you'll connect GitHub. Each triaged issue draws a little from your agents budget.

Start from the built-in template

The Personal Assistant's Tasks tab ships a GitHub issue triage starter (in the automation examples). Click it to open a Personal Assistant chat with the request pre-written β€” the walkthrough below is what follows. Or type it yourself.

Ingredients ​

#You'll switch onWhereNeeded for
1The Personal Assistant agentBuilt in to the Agents sectionBuilds the routine and trigger for you
2GitHub connectorConnect from the chat (one-click sign-in)Watching your repository for new issues
3One app-event triggerThe agent adds it for youFiring the routine the instant an issue opens
4A weekly schedule (optional)The agent adds it for youThe Friday digest of the week's issues

Steps ​

1. Open the GitHub issue triage starter ​

Open Agents β†’ open the Personal Assistant β†’ Tasks tab, and click GitHub issue triage. It opens a chat with the request filled in:

Set up issue triage for my GitHub repository. When a new issue is opened, read it, classify it (bug, feature request, question, or other), suggest labels, and send me a two-line summary with the link…

Send it.

2. Answer the setup questions ​

Agent: Which repository should I watch β€” owner and repo name? And how do you want issues categorized: the standard bug / feature / question / other, or your own buckets?

You: acme/webapp. Standard buckets are fine, but add a "security" one.

A GitHub trigger watches one repository β€” you give it the owner (acme) and the repo (webapp). If you didn't say, the agent asks.

3. Connect GitHub right in the chat ​

If GitHub isn't connected yet, the assistant shows a connect card in the conversation:

Agent: Connect GitHub and I'll set the watch up.

Click Connect β†’ GitHub's sign-in opens in a popup β†’ approve. The card flips to connected and GitHub is switched on for this agent. Click Continue.

Connecting an app right from the chat β€” a connect card with the app's logo and a Connect button

4. Let it create the trigger on the real event ​

The assistant checks GitHub's available events rather than guessing. GitHub exposes several β€” these fire instantly:

GitHub eventFires when
New issue openedAn issue is opened in the watched repository
Pull request opened or closedA PR is opened, closed, or gets new commits
New commit pushedA commit is pushed
Repository starredSomeone stars the repo
Issue assigned to youAn issue is assigned to your account (checked periodically)

For triage, the one you want is New issue opened.

Agent: I'll watch acme/webapp for New issue opened (it's instant). Creating the trigger now.

The trigger goes live. From here, every new issue on that repo fires the routine.

5. Sample it on a real issue before trusting it ​

Don't wait for a real report β€” triage an existing one as a sample:

You: Run it once on issue #212 so I can see the format.

The routine reads the issue, classifies it, suggests labels, and produces the two-line summary:

πŸ› Bug Β· suggested labels: bug, needs-repro #212 "Login redirect loops on Safari" β€” user hits an infinite redirect after SSO on Safari 17; no repro steps yet. β†’ https://github.com/acme/webapp/issues/212

If you'd rather it were terser, or classified differently, say so β€” the assistant adjusts the routine and you re-sample. When it reads right, you're live.

Suggests labels β€” doesn't apply them

By design the routine suggests labels and writes you a summary; it doesn't change the issue. Reading and drafting run safely on their own. If you want it to actually apply labels or post a comment on the issue, that's a change to GitHub β€” an outside-world action that sits behind an approval gate, pausing each fire for your OK. Ask for it explicitly if you want it.

6. Watch it work ​

Each new issue now opens (or continues) the trigger's own conversation in your chats, where you can see everything it's triaged. Ask your assistant "what has my GitHub trigger done lately?" to see recent fires, anything skipped as a duplicate, and anything waiting.

Add the weekly digest (optional) ​

The template offers a companion: a weekly summary of everything opened that week. Just say:

You: Also give me a Friday 5pm digest of all issues opened this week, grouped by category.

The assistant attaches a weekly schedule (a cron like 0 17 * * 5) to a small digest routine. Now you get instant triage as issues arrive and a tidy weekly roundup β€” the two kinds of automation, side by side: a trigger for "the moment it happens" and a schedule for "on a clock."

The Tasks page β€” the weekly digest schedule with its cadence and next-run time

Make it yours ​

  • Only some issues. "Only issues labeled bug" or "skip anything opened by our own team" β€” filters are described in plain language, and events that don't match are skipped for free.
  • Route by category. Add a step that, for a security-classed issue, pings you on Telegram or Slack immediately (a message step, so it carries an approval gate β€” or notify yourself only, which is fine unattended).
  • Triage PRs too. Point a second trigger at Pull request opened or closed to get the same summary treatment on incoming PRs.
  • Mind the limits. Up to 10 triggers per account; each fires at most 12 times an hour β€” a busy repo's overflow simply waits for the next hour. See Triggers β†’ limits.

See also ​