GitHub integration
Connect your GitHub repositories to the infrastructure behind them
InfraNest already watches your domains, DNS, servers, certificates and uptime. Install the GitHub app and the two can start talking: incidents can open issues for the team that fixes them, a deployment can be checked the moment it lands, and an expiring certificate can become an issue instead of a surprise.
On Pro and up · 14-day Pro trial, no credit card · You pick the repositories
- Issues for incidents, closed when the incident resolves
- Any warning filed as an issue in two clicks, with the whole story
- A deployment checked as it lands, the commit marked green or red
- Expiring certificates and domains filed as issues
When this happens
Certificate expiring
A certificate is approaching expiry.
Runs at 09:00 · Europe/Amsterdam · it’s 16:16 there now
Next runs:Tue 3 Nov, 09:00Wed 4 Nov, 09:00Thu 5 Nov, 09:00
This automation only runs when you click “Run now”.
Only if — optional filters
MatchAllAnyNoneof these conditions
Tip: a value can reference another field or the time using a placeholder.
Do this — actions run in order, stop at the first failure
In plain English
When Certificate expiring if Days left less or equal 14, then Create GitHub issue.
Choose a trigger and an action to see a live summary.
Switch it on, and incidents open GitHub issues that close when they are over
When a monitor goes down, the people who will fix it should not have to hear about it in a chat thread and then copy it into their tracker. Switch on Issues for Incidents for a connected account and pick the repository: each new incident opens an issue there, and when the monitor recovers and the incident resolves, the same issue is closed as completed, so the tracker never fills up with outages that ended hours ago. A repeat while the issue is open adds a comment instead of a second issue. Want labels, assignees or a repository per team? Two ready-made rules do the same with the title, labels and assignees you set.
- Issue opened in the repository you choose, the moment the incident opens
- Closed as completed when the incident resolves
- A repeat while the issue is open adds a comment, not a second issue
- Built on uptime monitoring across every provider you use
One switch — or two ready-made rules, for labels and assignees.
Any problem becomes a GitHub issue in two clicks
Not everything that needs a fix is an outage. A server with a port open to the internet, a domain about to expire, a certificate that failed to renew, DNS records changed outside InfraNest: open its menu, choose Create a GitHub issue, pick the repository and check what will be sent. The issue arrives with what is wrong, what it concerns, what to do about it and a link back, signed with the name of whoever filed it, and command lines or anything that looks like a password never leave InfraNest. The card then shows the issue and its state, so the next person sees it is already filed.
- From Home, monitors, servers, domains, certificates, DNS and incidents
- What failed or what is wrong, and a link back
- An open issue in the repository about the same thing offered before a duplicate
- Already opened one by hand? Link it, and the card shows it
- status.payrail.examplePayment gateway status: degraded API in eu-westlinked · not kept in steplinked 33 minutes ago
Kept in step with the incident: resolving it finishes the issue, and notes copy both ways — as with Issues for Incidents.
What we send
What failed Checkout returning 503 Checkout flow has been down since Nov 2, 2026, 2:36 PM UTC. It also affected web-01, Northwind Cloud Status. What changed just before Likely cause: Deploy of northwyndr/storefront to production, at Nov 2, 2026, 2:33 PM UTC (jordan-k) Nov 2, 2026, 2:33 PM UTC · Deploy of northwyndr/storefront (f19e6c7) (jordan-k) So far Nov 2, 2026, 2:36 PM UTC · Checkout flow started failing Nov 2, 2026, 2:36 PM UTC · Alert sent to Ops team — email, On-call — critical only, #infra-alerts, Engineering — Discord In InfraNest https://app.infranest.io/incidents/1 Filed from InfraNest by Alex Rivera
Only what’s shown here leaves InfraNest. No command lines, no secrets.
File the incident straight from the alert
When an alert lands in Slack, the person who sees it first can act on it there. Create issue files the incident in your tracker, in the repository your Issues for Incidents setting uses, and posts the issue in the alert’s thread; the button then turns into the issue, so everyone can open it from the alert. Pressed twice, or by two people at once, it still files one issue. In Microsoft Teams the same button opens the incident with the Create issue window ready.
- Acknowledge or file it without leaving Slack
- One issue, however many times the button is pressed
- The thread says who filed it and which issue it became
- Kept in step with the incident, like every other incident issue
InfraNestApp15:01
Marketing site is DOWN
Brief marketing-site blip
InfraNest15:07
🎫 Sam filed this as infra#86
Know a deployment works, not just that it finished
A green pipeline says the deploy ran. It does not say the site came back up. With the ready-made rule switched on, when GitHub reports a successful production deployment, InfraNest checks the environment straight away with the monitor that watches it, and sets the commit status to success or failure from what it actually saw. The check is a one-off: it does not count towards the monitor's uptime and never opens an incident. The same signal can purge the Cloudflare cache or post the release on your status page.
- The environment checked the moment GitHub reports the deployment
- Commit marked green or red from the real result, under its own status name
- Optional: purge the Cloudflare cache after every deploy
- Optional: announce the deployment on your status page
If the check fails, the commit is marked as failed instead.
See every deploy next to the monitors it affects
When something slows down or goes down right after a release, you should not have to compare timestamps between two tabs to notice. Link a repository to the monitors, servers or tags it affects, and every deploy GitHub reports appears as a marker on their response-time and server charts, with the commit, the environment and who deployed it. When an incident opens within the hour after a deploy, the incident says so at the top of its timeline, with a link to the deploy. A deploy only adds this information: it never changes a status, the uptime or an incident.
- A marker on the chart for every deploy, failed ones in a different colour
- "Deployed 7c1e4a9 to production 12 minutes before this incident", on the incident itself
- Link a repository to a monitor, a server or a whole tag
- Works with any deploy job that uses a GitHub environment
Deployed 7c1e4a9 to production
northwyndr/api · github-actions[bot]
Nov 2, 2026, 5:15 AM
Click the marker to open the deploy.
Deploys shown from northwyndr/api (production).Manage
Expiring certificates and domains become work with an owner
An email that a certificate expires in fourteen days is easy to read and easier to forget. Filed as an issue, it is tracked like the rest of the team's work, shows up in the same board and has someone assigned. Two ready-made rules open one two weeks before a certificate expires and a month before a domain does, at most once a day, across every registrar and certificate source you have connected. A rule can also start a GitHub Actions workflow instead, if your renewal is already scripted.
- An issue two weeks before a certificate expires, a month before a domain does
- At most once a day
- Or run a GitHub Actions workflow that does the renewal for you
- Expiry dates from every registrar and certificate source you connect
Start from a ready-made rule, or build your own
The rules on this page are ready-made automations: pick one, choose the repository, and switch it on. When you want something else, the builder offers GitHub events as triggers (pushes, pull requests and reviews, issues and comments, workflow runs, checks, deployments and releases) and GitHub actions as steps: open, comment on, label, assign or close issues, request reviews, merge pull requests, run, re-run or cancel workflows, create deployments and releases, and set commit statuses. Every rule reads back in plain English before you switch it on.
- Twelve ready-made rules that connect GitHub to the rest of your setup
- GitHub events as triggers, GitHub actions as steps
- Combine them with monitors, certificates, domains, DNS and status pages
- Nothing runs until you switch the rule on — see how rules are built
Start from a ready-made recipe — filter by category or trigger, or search. One click pre-fills the builder; tailor it before saving.
Monitor down → nobody acknowledges → escalate
v2Monitor alert → Wait → Send notification → Wait → Send notification → Wait → Send notification
Expiring domain → approve, then auto-renew
v2Domain expiring → Require approval → Set auto-renew → Send notification
Incident opened → announce on status page, unless it is a blip
v2Incident opened → Wait → Post status-page announcement → Send notification
Monitor down → reboot the server
v2Monitor alert → Wait → Reboot server → Send notification
Ask another system, then act on the answer
v2Domain expiring → Call webhook → If / branch → Send notification → Send notification
Renewal not live within 24 hours → alert
v2Renewal has not reached an address → Wait → If / branch → Send notification
Deployment succeeded → check it is up → set commit status
v2GitHub deployment status → Check a monitor now → If / branch → Set commit status → Set commit status
Server frozen → reboot it, at most once a day
v2Server frozen → Reboot server → If / branch → Send notification → Send notification
Volume forecast to fill within 7 days → grow it by 25%, up to a limit
v2Volume forecast to fill → Resize volume → If / branch → Send notification → Send notification
Weekly reminder to tidy up leftover DNS records
v2Scheduled → Find leftover DNS records → If / branch → Send notification
Certificate expiring → run a GitHub workflow
v2Certificate expiring → Run GitHub workflow
Server down everywhere → take it out of the load balancer, put it back when healthy
v2Monitor alert → If / branch → Wait → Remove LB target → Send notification → If / branch → Add LB target → Send notification
Monitor down → route by tag
v2Monitor alert → If / branch → Send notification → Send notification
New domain onboarding
Domain added → Create DNS zone → Apply DNS template → Start monitoring
Auto-renew expiring domains
Domain expiring → Set auto-renew → Send notification
GitHub workflow failed → open an issue & alert
GitHub workflow run → Create GitHub issue → Send notification
New server → enable backups & protection
Server added → Enable backups → Enable delete protection
Weak certificate → webhook
Weak certificate → Call webhook → Send notification
Certificate expiring → open a GitHub issue
Certificate expiring → Create GitHub issue
Certificate expiring → remind its owner
Certificate expiring → Send notification
Certificate expiry heads-up
Certificate expiring → Send notification
DNS record deleted → stop tracking its address
DNS record deleted → Stop tracking address
Deployment succeeded → purge Cloudflare cache
GitHub deployment status → Purge Cloudflare cache
DNS record changed → alert
DNS record changed (in-app) → Send notification
Domain expiring → open a GitHub issue
Domain expiring → Create GitHub issue
Send domain events to my system
Domain added → Call webhook
Send everything to my system
Domain added → Call webhook
Deployment succeeded → announce on status page
GitHub deployment status → Post status-page announcement
Release published → announce on status page
GitHub release → Post status-page announcement
GitHub workflow failed → re-run failed jobs once
GitHub workflow run → Re-run failed jobs
Incident acknowledged → say who is on it, on its ticket
Incident acknowledged → comment_linked_ticket
Outage acknowledged → tell the team who is on it
Incident acknowledged → Send notification
Incident opened → Cloudflare Under Attack
Incident opened → Set Cloudflare security level
Incident opened → open a GitHub issue
Incident opened → Create GitHub issue
Incident resolved → close its GitHub issue
Incident resolved → Close GitHub issue
Incident resolved → note how long it lasted, on its ticket
Incident resolved → comment_linked_ticket
Incident opened → log to a webhook / Sheet
Incident opened → Call webhook
Let another tool trigger an automation
Incoming webhook → Send notification
Maintenance started → status announcement
Maintenance started → Post status-page announcement
Tell my own system when a monitor fails
Monitor alert → Call webhook
New domain, server or status page component → monitor it
Domain added → Monitor what was added
New server → monitor it
Server added → Monitor the new server
New domain → monitor its website
Domain added → Monitor the new website
Monthly uptime report to a client
Scheduled → Email a monthly uptime report
Production monitor down → page on-call
Monitor alert → Send notification
Server restarts on a schedule → propose a weekly maintenance window
Server restarts on a schedule → Send notification
Ticket finished and the monitor is back → resolve the incident
incident.ticket_closed → resolve_incident
Ask before renewing a domain nothing uses
Domain expiring → Send notification
Watched domain available → notify
Watched domain available → Send notification
Weekly expiry review reminder
Scheduled → Send notification
Showing 50 of 50 recipes
Connect GitHub to your own infrastructure
Install the app, create your account in the same step (it starts with 14 days of Pro), and switch on the first rule in a minute.
Connect GitHub in about two minutes
Install the InfraNest Automations app on your account or organisation and choose the repositories it may see. No personal tokens to create or rotate. Not an owner of the organisation? Install anyway: GitHub asks the owners, and the connection appears once they approve.
- 1
Install the InfraNest Automations app
Gives InfraNest access to only the repositories you choose, with no token to rotate later — go to Integrations, open GitHub, and select Connect.
- 2
Choose your account or organisation
Pick where to install and select All repositories or just the ones you want InfraNest to see, then confirm in the GitHub window that opens.
- 3
Confirm the installation is yours
GitHub may ask you to confirm access; once you're returned to InfraNest, the connection appears under Accounts.
That’s it — GitHub is connected.
Full setup guideSet up with AI
I want to connect GitHub to InfraNest (infranest.io), which manages domains, DNS, servers, certificates and uptime monitoring across providers, using its GitHub App "InfraNest Automations". Explain what installing a GitHub App on my account or organisation means: what it can see, how choosing "Only select repositories" limits it, and where I can change or remove that later. If I am a member but not an owner of the organisation, explain what happens when I install it and what the owner will see. Then tell me how to check afterwards which repositories the app can access.
MCP server
GitHub in Claude and ChatGPT
Handling an incident from Claude or ChatGPT? Your assistant can file it in GitHub with the details filled in and give you the link. It asks you first.
- Acknowledge the Checkout incident and file it in GitHub.
- What caused this incident? Then file it in GitHub for the team.
Often connected together
Questions about the GitHub integration
#Can GitHub trigger my automations, or only get acted on?
Both, but only if you connect with the app: a token lets automations act on GitHub (open issues, merge pull requests, trigger workflows) but it can't start automations from GitHub events. Install the app if you want pushes, pull requests, workflow runs and the like to trigger anything.
#What happens to my issues if I disconnect GitHub?
Disconnecting shows you up front what stops and what InfraNest removes before you confirm. Issues for incidents stops, any automation using the connection is switched off rather than failing quietly, and your team gets notified who disconnected it and what was switched off.
#What if someone revokes access or uninstalls the app on GitHub's side?
InfraNest notices: the connection shows as failing under Needs attention, you get a notification, and automations using it stop with a message saying why. Reconnecting with the same account picks your automations back up with their settings intact.
#Can InfraNest create issues under my name or as a bot?
Installed as the app, issues and comments are created as infranest[bot]; connected with a token, they're created as the GitHub account the token belongs to. Either way, every issue ends with who filed it, or notes that InfraNest filed it automatically.
#What do I need before connecting GitHub?
An owner of the GitHub account or organisation needs to approve installing the app (or you can connect with a personal access token instead) — see the setup guide.
#Does InfraNest’s MCP server work with GitHub?
Yes. With “Also let it act” switched on, your assistant can file an InfraNest incident in your connected GitHub and give you the issue’s link. It asks you first, and an incident that already has an issue keeps it. The GitHub integration is on Pro and up. GitHub’s own MCP server works with your GitHub issues. InfraNest’s brings the incident, its monitor and what changed before it into the same conversation.
Let your repositories hear what your infrastructure is doing
Install the GitHub app and create your account in one go. It starts with 14 days of Pro, no credit card, and you pick the repositories.
Free plan · No credit card required · Set up in minutes