Documentation menu

Documentation · Connections

Connect GitHub

Install the Ivy Link SEO app on GitHub, pick your site's repo, and control what agents may do there. Without GitHub, work arrives as prompts.

GitHub lives on Settings, on the Connections tab, at app.ivyl.ink/settings/connections. The old address app.ivyl.ink/github takes you to the same place.

When your site's code is on GitHub, connecting it lets your agents read the repo and send their finished work as pull requests. You decide whether you merge each one or Ivy Link merges it for you. You can skip GitHub entirely. Your agents still work, and each change arrives as a prompt you paste into the tool you build your site with.

The GitHub card

The Connections section has a GitHub card. Its pill tells you where things stand.

Pill What it means What to do
Not connected The app isn't installed for this site yet. Click Install on GitHub.
Pick your repo The app is installed, but this site has no repo chosen. Pick a repo and click Use this repo.
Connected Ivy Link can reach your repo. The card names the repo and says what Ivy Link does there. Nothing. Change the repo or access any time.
Access removed The app was removed or suspended on GitHub, or it lost access to your site's repo. The card says Ivy Link can’t reach your repo anymore. Install the app again to reconnect. Click Install on GitHub again.
Not open yet GitHub connections aren't available on your account yet. Wait for our email, or write to hello@ivyl.ink.

Connect GitHub and choose your repo

  1. Open Settings, Connections.
  2. On the GitHub card, click Install on GitHub.
  3. GitHub opens. Install the Ivy Link SEO app and choose which repos it can see. You can give it just your site's repo.
  4. GitHub sends you back to Ivy Link. You see The Ivy Link SEO app is installed. Now pick the repo for your site.
  5. Under Repos the Ivy Link SEO app can see, select your site's repo. Private repos are marked Private.
  6. Click Use this repo. You see Connected. Ivy Link will open pull requests on this repo. The card now shows Connected.

Next, choose how finished work reaches your site. See What agents do with your repo.

Start the install from the Ivy Link page and finish it on GitHub within 15 minutes. If you take longer, you see That GitHub link expired. Start the install again from this page. Click Install on GitHub again.

If something goes wrong

You see What to do
The Ivy Link SEO app can’t see any repos yet. Give the app access to your site's repo on GitHub, then reload the page.
Your repo isn't in the list Click Change which repos the app can see, add the repo on GitHub, then reload the page.
GitHub sent your install request to an owner of that organization. You installed on an organization you don't own. Once an owner approves it on GitHub, come back and pick the repo.
That installation isn’t one your GitHub account can see. Install the app again from the Ivy Link page, signed in to GitHub as someone who can see that installation.
GitHub didn’t respond. Try again in a minute. Wait a minute and try again.

More than one site

The app is installed once for your account, so one install can cover the repos for all your sites. Each site uses one repo. Open each site's Connections tab and pick its repo there.

Site not on GitHub

If your site's code isn't on GitHub, email hello@ivyl.ink and say how it's hosted. We'll connect it another way. Until then, your agents work in prompts. See Without GitHub.

Switch to a different repo

  1. Open Settings, Connections.
  2. On the GitHub card, click Use a different repo.
  3. Select the repo and click Use this repo.

If the repo you want isn't listed, give the app access to it on GitHub first. See Manage access on GitHub.

Manage access on GitHub

On the GitHub card, click Manage access on GitHub. It opens your app installation settings on GitHub in a new tab, for your personal account or your organization. There you can:

  • Change which repos the app can see.
  • Remove the app.

Ivy Link only works in the one repo you picked for each site, even if the app can see more.

If you remove the app, or take away its access to your site's repo, the card shows Access removed. Your agents can't open pull requests until you reconnect. To reconnect, click Install on GitHub and pick the repo again.

What agents do with your repo

With GitHub connected, agents read your repo to find what causes each issue. What they may change is up to you. Set it under Permissions, in How finished work reaches your site, then click Save finished work. You see Saved. Finished work: and your choice.

Choice What Ivy Link does
Prompts only Reads your repo but never changes your site's code. Each change arrives as a prompt on Results for you to paste. Daily data files still follow Data updates, so set that to Paused if you want no writes at all.
Pull requests (the default) Opens a pull request for each change. You review it, then merge it on GitHub or with Merge on Results.
Pull requests, merged for you Opens a pull request and merges it once your repo's checks pass. A change that touches a page (a template, stylesheet or page file) always waits for your review for now. Each one stays on GitHub, where you can revert it. Choosing this also merges the fix pull requests already waiting for you, except ones that touch a page. See Ship changes for every reason a pull request waits for you.

The card on Connections sums up your choice. For example, with Pull requests it says Ivy Link opens pull requests from branches named ivylink/… and never pushes code to your main branch.

Branches and pull requests

  • Every fix, page change and new page is on its own branch named ivylink/…. Ivy Link never pushes those straight to your main branch. The one exception is daily data: with Data updates set to Automatic (the default), it commits files in data/ directly, and only those (see Data updates below).
  • Each agent job opens at most one pull request.
  • The last line of each pull request says who merges it. With Pull requests, it reminds you that nothing was built or tested before it was opened, so check the preview build, then merge.
  • Under Pull requests, merged for you, the last line says Ivy Link merges it once every check passes and leaves it open for you if they haven't within an hour. Close the pull request to stop that.
  • When Ivy Link merges a fix, from Merge on Results or on its own, it deletes the fix's branch. If you merge on GitHub, deleting the branch is up to you.

Under Pull requests, merged for you, Ivy Link leaves the pull request open for you, with a note saying why, when:

  • It conflicts with newer changes on your main branch.
  • Your repo requires a review or a required check.
  • Its checks didn't pass within an hour, or no checks ran on it.
  • It must be brought up to date with your main branch first.
  • Someone else added commits to it.
  • The branch it merges into changed.
  • GitHub wouldn't let Ivy Link merge it.

These show on Results under Ready for you with the pill Waiting for you and the note.

Merge from Results

On Results, open pull requests show in two places:

Section Pill Buttons
Ready for you Waiting for your review, New data to merge, or Waiting for you Merge, Review on GitHub and, for fixes, See the change
Merging on its own Merging once checks pass Review on GitHub and, for fixes, See the change

For a fix, Merge shows only when finished work is set to Pull requests or Pull requests, merged for you. With Prompts only, the card says to merge it on GitHub. Merge only works when every check on the pull request's latest commit passed. If your repo runs no checks at all, merge it on GitHub instead.

When it works, you see Merged. Your site goes live with it on its next build. If it can't merge, a notice says why, such as checks not passing yet, a conflict, or a required review. Merge on GitHub in those cases. The full steps are in Ship changes.

A merged pull request isn't counted as shipped until Ivy Link sees the change live on your site. If you close a pull request without merging, the work goes back to where it was before.

Data updates

If your site has data pages, Permissions also shows Data updates. It covers the daily data files in data/ that your pages are built from. Pick one and click Save data updates.

Choice What Ivy Link does
Automatic (the default) Commits the day's data to your repo each day, and your site rebuilds with it. It only changes files in data/.
Pull request Keeps one pull request with the latest data, updated each day. Merge it when you want the new numbers live.
Paused Keeps collecting but doesn't write to your repo. Turn it back on and the next update brings everything in.

See Data for more.

New ideas

New ideas on the same tab sets whether agents ask before starting their own ideas: Ask me first (the default) or Start without asking. It doesn't need GitHub. See Approve work.

Without GitHub

You don't need GitHub to use Ivy Link. Without it:

  • How finished work reaches your site is turned off and shows Prompts only. It says Connect GitHub to choose pull requests. Until then, finished work arrives as prompts on Results.
  • The Agents tab of Settings says GitHub not connected, so finished work arrives as prompts on Results.
  • Results shows Connect GitHub and Ivy Link opens these changes as pull requests for you.
  • Each approved change is a prompt. Click Copy prompt, paste it into the tool you build your site with, then click I made this change.

Reports, daily checks and Search Console all work the same with or without GitHub.

Last updated October 31, 2026

Something here not match what you see? Email hello@ivyl.ink and we'll fix the page.