# Publish approved articles to your repository through GitHub.

> Connect a GitHub repository to Virent Content Agent - repository, branch, folders, file format, frontmatter, pull requests, approval, live checks and reverts.

Canonical: https://virent.app/docs/content-agent/github-publishing
Last updated: 2026-10-19

Content Agent writes approved articles as Markdown or MDX files in your site's GitHub repository. Your normal review, merge and deploy process stays in charge.

> **Early access**
>
> GitHub publishing is set up with Virent per workspace during Content Agent early access. GitHub is the only publishing destination.

## Connect a repository

Open **Settings → Publishing**. Owners and admins see four steps:

1. Choose the repository: The GitHub owner and repository your site is built from.
2. Add GitHub App access: Enter the GitHub App and installation IDs for that repository.
3. Authorize GitHub: Sign in to GitHub to confirm you can push to the repository.
4. Check the repository: Virent confirms the branch and folders exist and that it has the access it needs.

## Settings

| Setting | Meaning |
| --- | --- |
| Base branch | The branch your site deploys from, such as `main` |
| Articles folder | Where article files are written, such as `content/blog` |
| Images folder | Where approved images are written |
| File format | Markdown, or restricted MDX |
| Frontmatter | Which frontmatter fields hold the title, slug, description and canonical URL |
| How to publish | **Open a pull request**, or **Commit directly (needs approval)** |

Use pull requests unless your team has a reason not to: your usual checks and reviewers see every change.

## Publish an article

1. Approve: A reviewer approves the exact revision. Any later edit needs a new approval.
2. Preview: The **Publish** panel shows the files that will change.
3. Submit: Virent opens a pull request with those files. The article shows "Pull request opened".
4. Merge and deploy: Your team merges it through your usual process. Virent tracks whether it was merged or closed and the deployment status.
5. Live check: Virent loads the live page and confirms its canonical URL, the approved title, and most of a sample of passages from the approved text.

A pull request is not a publication until you merge it. Virent never merges for you.

## Revert

Under **Undo this publication**, review the files, choose **Approve revert**, then **Open revert pull request**. Virent never force-pushes and never merges it.

## Troubleshooting

### The repository check fails

Confirm the base branch and folders exist, and that the GitHub App is installed on this repository with access to contents and pull requests.
### The live check fails

Check that the pull request was merged and deployed, and that the page URL matches the slug and canonical URL in the frontmatter mapping.
### The article needs another change after approval

Edit it, then approve the new revision. Only the approved revision can be published.
