The moment it happens
Turn GitHub bug reports into Jira tickets
When a bug is reported on GitHub, a Jira ticket is created with an AI summary and priority, and the GitHub issue gets a comment with the Jira key.
- Runs
- The moment it happens
- Apps
- GitHub, Jira
- AI
- Yes, uses the built-in AI allowance
- Access
- GitHub issues write; Jira create
Send this to your assistant
Create a ClickRuntime automation: when a GitHub issue labelled bug is opened in acme/app, have AI summarise it and set a priority, create a Jira bug in ENG, comment the Jira key on the GitHub issue, and tell #eng.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A company maintains an open-source SDK on GitHub, but its engineers plan their work in Jira. Bug reports from the community sit in GitHub until someone remembers to create a ticket, and reporters never learn that their bug was picked up.
Creating a Jira ticket for each GitHub bug as it arrives, and commenting the key back, puts community bugs into the real planning process. Reporters see a reply straight away, and engineers see the bug in their sprint tools.
What you get out of it
Community bugs enter planning
Each bug becomes a Jira ticket immediately. It competes for attention alongside internal work.
Reporters get a response
A comment with the Jira key shows the bug has been logged. Contributors feel heard.
A clear summary and priority
AI condenses the report and suggests a priority. Planning meetings start with tidy tickets.
Linked both ways
The ticket links to the GitHub issue and the issue names the ticket. Anyone can follow the trail.
How it works
What happens, step by step
When an issue labelled bug is opened, GitHub notifies ClickRuntime straight away.
AI writes a short summary of the bug and suggests a priority.
A Jira bug ticket is created with the summary, the priority and a link to the GitHub issue.
A comment with the Jira key is added to the GitHub issue.
A message with both links is posted to your #eng Slack channel.
Before it runs live
- Connect GitHub
- Connect Jira
- 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 and Jira steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify, verify, ai
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)
return resp.raise_for_status() or (resp.json() if resp.content else None)
JIRA = "https://api.atlassian.com/ex/jira/your-cloud-id"
def jira(method, path, **kw):
resp = http.request(method, JIRA + path, headers={"Authorization": f"Bearer {credentials.connection('jira', 'work')}", "Accept": "application/json"}, **kw)
return resp.raise_for_status() or (resp.json() if resp.content else None)
def adf(text):
return {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": text}]}]}
SCHEMA = {"type": "object", "properties": {"summary": {"type": "string"}, "priority": {"type": "string", "enum": ["Highest", "High", "Medium", "Low"]}}}
@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
issue = body.get("issue") or {}
if event.header("X-GitHub-Event") != "issues" or body["action"] != "opened" or "bug" not in {l["name"] for l in issue.get("labels", [])}:
return {"ignored": True}
t = ai.generate(f"{issue['title']}\n{(issue.get('body') or '')[:4000]}", json_schema=SCHEMA, max_output_tokens=250,
system="Summarise this bug report in 3 sentences for an engineer and choose a priority.").json
ticket = jira("POST", "/rest/api/3/issue", json={"fields": {"project": {"key": "ENG"}, "issuetype": {"name": "Bug"},
"summary": issue["title"][:250], "priority": {"name": t["priority"]}, "description": adf(f"{t['summary']}\n\nGitHub: {issue['html_url']}")}})
gh("POST", f"/repos/{body['repository']['full_name']}/issues/{issue['number']}/comments", json={"body": f"Thanks for the report. We're tracking this as {ticket['key']}."})
notify.slack(f"GitHub bug filed as {ticket['key']} ({t['priority']}): <{issue['html_url']}|{issue['title']}>", channel="#eng")
return {"jira": ticket["key"]}FAQ
Common questions
Are all issues sent to Jira?
Does the GitHub comment reveal internal details?
Which priority values does it use?
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
Post a daily digest of Jira and GitHub activity
Every weekday morning Slack shows which Jira tickets moved and which pull requests were opened or merged, with a short summary.
See how it worksOpen Jira tickets for exploited vulnerabilities in your dependencies
Every 6 hours your repositories' dependencies are checked against public vulnerability data, and each new known vulnerability gets one Jira ticket.
See how it worksGet error alerts with a plain-English explanation
When one of your jobs or systems fails, #ops gets the error and a one-line guess at the cause, without the same error twice in an hour.
See how it worksKeep exploring
Set up “Turn GitHub bug reports into Jira tickets” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.