The moment it happens
Ask for missing details on new GitHub issues
New GitHub issues without steps to reproduce or a version number get a polite comment asking for them and a needs-info label.
- Runs
- The moment it happens
- Apps
- GitHub
- AI
- Yes, uses the built-in AI allowance
- Access
- Issues: read and write
Send this to your assistant
Create a ClickRuntime automation: when a new issue is opened in acme/app, check if it has steps to reproduce, expected vs actual behaviour and a version; if something is missing, comment asking for it and add the needs-info label.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A large share of bug reports arrive without a version or a way to reproduce, and the first maintainer reply is almost always the same request for more detail. That reply can take days to arrive, and by then the reporter has moved on.
This automation sends that first reply straight away. When an issue is opened, AI checks whether it is a bug and, if so, whether it includes a version, steps to reproduce, expected versus actual behaviour and logs. It comments with only the items that are missing and adds a needs-info label so triage can filter those issues out.
Maintainers of busy open source projects and internal platform teams use it to get answerable bug reports without spending their own time on the first round.
What you get out of it
Reporter is asked while still around
The comment lands seconds after the issue is opened, when the reporter is most likely to answer.
Only what is missing
The comment lists the specific details absent from that report, not a generic checklist.
A label you can filter on
needs-info issues can be hidden from your triage view until the reporter responds.
Feature requests untouched
Only bug reports get the comment, so people asking for features do not receive an odd request for logs.
Works with templates
It still catches templates submitted with placeholder text or empty sections.
How it works
What happens, step by step
GitHub sends the new issue to the automation the moment it is opened.
AI reads the title and body and checks for steps to reproduce, expected and actual behaviour, and a version number.
If anything is missing, it posts one comment listing exactly what to add and applies a needs-info label.
Feature requests and complete bug reports are left alone.
Before it runs live
- Connect GitHub
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other GitHub steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, verify, ai
LABEL = "needs-info"
SCHEMA = {"type": "object", "properties": {
"kind": {"type": "string", "enum": ["bug", "feature", "question"]},
"missing": {"type": "array", "items": {"type": "string", "enum": ["version", "steps", "expected_actual", "logs"]}}}}
ASK = {"version": "The version you are running", "steps": "Steps to reproduce, ideally a minimal example",
"expected_actual": "What you expected to happen and what happened instead", "logs": "Any error message or log output"}
def gh(method, path, **kw):
resp = http.request(method, f"https://api.github.com{path}", headers={
"Authorization": f"Bearer {credentials.connection('github', 'work')}",
"Accept": "application/vnd.github+json"}, **kw)
resp.raise_for_status()
return resp.json() if resp.content else None
@on_event
def handle(event):
if not verify.github(event.body, event.header("X-Hub-Signature-256"), credentials.secret("GITHUB_WEBHOOK_SECRET")):
return {"ignored": "bad signature"}
body = event.json
if event.header("X-GitHub-Event") != "issues" or body.get("action") != "opened":
return {"ignored": True}
issue, repo = body["issue"], body["repository"]["full_name"]
r = ai.generate(f"Title: {issue['title']}\n\n{(issue.get('body') or '')[:4000]}", json_schema=SCHEMA, max_output_tokens=80,
system="Classify this GitHub issue. For bugs, list which of version, steps, expected_actual, logs are clearly missing. For other kinds return an empty list.").json
missing = (r.get("missing") or []) if r["kind"] == "bug" else []
if not missing:
return {"kind": r["kind"], "complete": True}
lines = "\n".join(f"- {ASK[m]}" for m in missing)
gh("POST", f"/repos/{repo}/issues/{issue['number']}/comments", json={"body":
f"Thanks for the report. To look into this we need a bit more:\n{lines}\n\nWe have added the {LABEL} label; it will be removed once these are here."})
gh("POST", f"/repos/{repo}/issues/{issue['number']}/labels", json={"labels": [LABEL]})
return {"issue": issue["number"], "missing": missing}FAQ
Common questions
Will it comment on feature requests?
Does it remove the label when the reporter replies?
We already use issue templates. Is this still useful?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Update CHANGELOG.md when a GitHub release is published
When a GitHub release is published, its notes are added to the top of CHANGELOG.md in the repo with a commit.
See how it worksRefresh a generated file in your repo every day
A stats badge, data file or page in your repo is regenerated and committed once a day.
See how it worksGet an AI review on every new pull request
Each new pull request gets a review comment within minutes, checked against your own guidelines.
See how it worksKeep exploring
Set up “Ask for missing details on new GitHub issues” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.