Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions autopilot.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@

## Prerequisites

- A Mintlify project connected to a GitHub or GitLab repository. Autopilot supports gitlab.com and [self-hosted GitLab](/deploy/gitlab-self-hosted) instances.
- A Mintlify project connected to a GitHub, GitLab, or Azure Repos repository. Autopilot supports gitlab.com and [self-hosted GitLab](/deploy/gitlab-self-hosted) instances.
- For GitHub: the [Mintlify GitHub App](/deploy/github) installed on your docs repository and on any source code repositories you want Autopilot to use.
- For GitLab: your docs repository and any source code repositories you want Autopilot to use connected in the **GitLab OAuth** section of your [Git settings](https://app.mintlify.com/settings/project/git-settings). On GitLab, Autopilot opens merge requests instead of pull requests.
- For Azure Repos: your docs repository and any source code repositories you want Autopilot to use connected in your [Git settings](https://app.mintlify.com/settings/project/git-settings). See [Azure Repos](/deploy/azure-repos).

## Enable Autopilot

Expand All @@ -51,7 +52,7 @@

Your documentation repository is always included as required context for Autopilot, so you cannot remove it.

The **Additional repositories** list only shows repositories where the Mintlify GitHub App is installed. To add a repository that is not listed, first install the GitHub App on it.

Check warning on line 55 in autopilot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

autopilot.mdx#L55

In general, use active voice instead of passive voice ('is installed').

### GitLab projects

Expand All @@ -67,6 +68,20 @@

The **Additional projects** list only shows GitLab projects connected through GitLab OAuth. To add a project that is not listed, click **Add GitLab projects** at the bottom of the list to open your Git settings and connect it.

### Azure Repos repositories

If your docs repository is on [Azure Repos](/deploy/azure-repos), the **Integrations** section shows an **Azure Repos** row instead of a **GitHub** row.

To choose the repositories Autopilot uses as context:

1. Click **Configure** in the **Azure Repos** row.
2. Under **Additional repositories**, select the source code repositories you want Autopilot to use.
3. Click **Save**.

Your documentation repository is always included as required context for Autopilot, so you cannot remove it.

The **Additional repositories** list only shows Azure Repos repositories connected to your Mintlify organization. To add a repository that is not listed, click **Add Azure DevOps repositories** at the bottom of the list to open your Git settings and connect it.

### Slack and other integrations

Click **Connect** in the **Slack** row so Autopilot can build context from conversations. If you disconnect Slack from the Autopilot page, it removes the Mintlify Slack app from your workspace for every product that uses it, including automations.
Expand All @@ -87,7 +102,7 @@

### Feature launches

For a large feature launch, such as a feature that spans several pull requests or repositories, ships behind a flag or beta with a launch date, or needs several new pages, Autopilot tracks the launch instead of opening a one-off pull request. It can wait until the feature settles before drafting, then opens the docs pull request as a draft and keeps it current as more code merges. Autopilot marks the pull request ready for review once the code has merged or the launch date is set.

Check warning on line 105 in autopilot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

autopilot.mdx#L105

In general, use active voice instead of passive voice ('is set').

If your team already writes launch docs on its own branch, Autopilot opens its pull request against that branch. To have Autopilot push commits directly to your team's launch branch instead, tell Autopilot in a chat.

Expand All @@ -95,6 +110,8 @@

By default, Autopilot assigns each pull request to the teammate it identifies as the owner of the code that changed, requests their review, and notifies them about the pull request. To request reviews from more people, change who reviews changes, or change how Autopilot notifies someone, tell Autopilot in a chat.

Autopilot does not assign Azure Repos pull requests or request reviews on them.

If you [connect Slack](#slack-and-other-integrations) and Autopilot can match the reviewer to a Slack account, it sends them a direct message in Slack. Otherwise, it emails them.

When Autopilot opens the first pull request for a feature launch, it emails the launch's owners together with whether the pull request is a draft, what happens next, and the related channels, projects, specs, and code pull requests it is following.
Expand All @@ -121,9 +138,9 @@

Autopilot only responds to comments from people who own the repository, belong to the GitHub organization that owns it, are collaborators on it, or have write access to it. It ignores comments from bots and comments addressed to someone else, such as a question that @mentions a teammate.

Autopilot does not respond to comments on GitLab merge requests. To ask for changes to a merge request, send a message in its suggestion on the Autopilot page.
Autopilot does not respond to comments on GitLab merge requests or Azure Repos pull requests. To ask for changes, send a message in the suggestion on the Autopilot page.

If a pull request has merge conflicts or your branch protection rules block the merge, resolve it on GitHub.
If a pull request has merge conflicts or your branch protection rules block the merge, resolve it in your Git provider.

## Chat with Autopilot

Expand All @@ -137,9 +154,9 @@
- Ask when Autopilot runs and which repositories and integrations it uses.
- Tell Autopilot to have a specific teammate review a pull request.
- Ask Autopilot to run a weekly check for broken links.
- Ask Autopilot to check the docs when a new Linear issue is created.

Check warning on line 157 in autopilot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

autopilot.mdx#L157

In general, use active voice instead of passive voice ('is created').

Chats require the editor or admin [role](/dashboard/roles). You cannot start a new chat on the Autopilot page while Autopilot is paused.

Check warning on line 159 in autopilot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

autopilot.mdx#L159

In general, use active voice instead of passive voice ('is paused').

### Chat in Slack

Expand All @@ -153,7 +170,7 @@

To pause Autopilot, switch off the toggle on the **Autopilot** card.

When you resume Autopilot, it builds context on changes that happened while it was paused, but it does not create updates for them.

Check warning on line 173 in autopilot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

autopilot.mdx#L173

In general, use active voice instead of passive voice ('was paused').

### Automatic pauses

Expand Down
138 changes: 138 additions & 0 deletions deploy/azure-repos.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
---
title: "Azure Repos"
description: "Connect an Azure Repos repository to Mintlify with Microsoft Entra ID for automatic deployments, pull request previews, web editor publishing, and Autopilot."
keywords: ["Azure DevOps", "Microsoft Entra ID", "service hooks", "automated deployments"]
---

<Info>
Azure Repos requires an [Enterprise plan](https://mintlify.com/pricing?ref=azure-repos).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For posterity, this is proper punctuation when referring to Azure Repos

</Info>

Mintlify connects to Azure Repos through Microsoft Entra ID. You sign in with your Microsoft account so Mintlify can verify which organizations, projects, and repositories you can access. Mintlify then uses the Mintlify app in your Entra tenant to read your repository, create service hooks, deploy every change pushed to your deploy branch, and create preview deployments for pull requests.

Mintlify supports Azure DevOps Services organizations on `dev.azure.com`, including organizations that still use `*.visualstudio.com` URLs, that are connected to Microsoft Entra ID. Mintlify does not support Azure DevOps Server.

Check warning on line 13 in deploy/azure-repos.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

deploy/azure-repos.mdx#L13

In general, use active voice instead of passive voice ('are connected').

## Requirements

- An Azure DevOps organization connected to Microsoft Entra ID.
- An Entra administrator who grants consent to the Mintlify app in your tenant.
- The Mintlify app added to your Azure DevOps organization with **Basic** access, and to the project that contains your repository.
- The Mintlify app in the project's **Project Administrators** group. Azure DevOps only lets project administrators create service hooks.
- A Microsoft account that is a project administrator or has **Manage permissions** on the repository you want to connect.
- Admin access to your Mintlify organization.
- A `docs.json` file in your repository.

## Set up a new Azure Repos connection

When you open [Git Settings](https://app.mintlify.com/settings/project/git-settings) for the first time, a setup wizard guides you through connecting your repository.

<Steps>
<Step title="Select Azure Repos as your provider">
1. On the [Git Settings](https://app.mintlify.com/settings/project/git-settings) page, click **Connect to Azure Repos**.
2. Click **Continue**.
</Step>
<Step title="Move Mintlify-hosted content">
If you currently host your content in a Mintlify-managed repository, download it as a zip file. Extract the zip contents and push the files to your Azure Repos repository.

If your content is already in Azure Repos, click **Continue setup**.
</Step>
<Step title="Connect Microsoft">
1. Click **Connect Microsoft**.
2. Sign in with a Microsoft account that is a project administrator or has **Manage permissions** on the repository you want to connect.

After you sign in, Microsoft redirects you to your Mintlify Git settings.
</Step>
<Step title="Select the repository">
Select the following values. Each list shows the resources your Microsoft account can access.

- **Organization**: The Azure DevOps organization. For example, in `https://dev.azure.com/acme/docs-project/_git/docs`, `acme` is the organization.
- **Project**: The project that contains the repository, such as `docs-project`.
- **Repository**: The repository name, such as `docs`.
- **Deploy branch**: The branch that publishes to your production documentation site, such as `main`.
</Step>
<Step title="Configure a content directory (optional)">
1. If your `docs.json` file is in a subdirectory, enable **docs.json is in a subdirectory**.
2. Enter the path to the directory that contains your `docs.json` file. For example, if your `docs.json` is in the `apps/docs/` directory, enter `apps/docs`.
</Step>
<Step title="Connect the repository">
1. Click **Connect**.
2. Confirm the change.

Mintlify verifies that your Microsoft account can manage the repository and that the deploy branch exists. Mintlify then registers the service hooks that keep your site and the web editor in sync and starts your first deployment.
</Step>
</Steps>

To confirm the service hooks, open your Azure DevOps project and go to **Project settings** > **Service hooks**. Mintlify creates three **Web Hooks** subscriptions for the repository: **Code pushed**, **Pull request created**, and **Pull request updated**.

## Switch an existing deployment to Azure Repos

1. On the [Git Settings](https://app.mintlify.com/settings/project/git-settings) page, select **Azure Repos** as the Git provider.
2. If you haven't connected a Microsoft account, click **Connect Microsoft** and sign in.
3. Select the organization, project, repository, and deploy branch, and enter a content directory if needed.
4. Click **Switch to Azure Repos**.

## Change the connected Microsoft account

Your entire Mintlify organization shares the Microsoft account in Git Settings, and only admins can change it. Mintlify refreshes Microsoft credentials automatically, so you don't need to rotate tokens.

To use a different account, open the **Microsoft connection** section on the [Git Settings](https://app.mintlify.com/settings/project/git-settings) page and click **Change account**. The new account must be a project administrator or have **Manage permissions** on the repository.

## Edit in the web editor

You can edit Azure Repos content in the [web editor](/editor). When you publish, Mintlify pushes a branch to Azure Repos and opens a pull request against your deploy branch.

- Branches that you push to Azure Repos sync into the editor.
- Changes to pull requests in Azure Repos sync into the matching editor branch.
- When you delete a branch in Azure Repos, Mintlify removes it from the editor.
- If your deploy branch has blocking branch policies, such as required reviewers, publish through a pull request.

## Preview deployments

When you open a pull request against your deploy branch, Mintlify builds a [preview deployment](/deploy/preview-deployments) and links to it from a **Mintlify preview ready** status on the pull request. Mintlify rebuilds the preview when you push to the pull request's branch, and deletes it when you complete or abandon the pull request or delete the branch.

## Use Autopilot

[Autopilot](/autopilot) works with Azure Repos. It runs when code merges into connected repositories and opens pull requests in your Azure Repos repository. Accept or close its pull requests on the Autopilot page, or merge them in Azure Repos.

To give Autopilot more context, connect your source code repositories in Git Settings, then select them in the **Azure Repos** row of the Autopilot page. See [Azure Repos repositories](/autopilot#azure-repos-repositories).

On Azure Repos, Autopilot does not assign pull requests, request reviews, or respond to pull request comments. To ask for changes, send a message in the suggestion on the Autopilot page.

## Use the agent in Slack

The [agent in Slack](/agent/slack) works with Azure Repos. When you ask it to update your content, it opens a pull request in your Azure Repos repository.

## Troubleshooting

<AccordionGroup>
<Accordion title="Mintlify couldn't sign in to your Microsoft Entra tenant">
Ask an Entra administrator in your tenant to grant consent to the Mintlify app, then connect the repository again.
</Accordion>
<Accordion title="The organization isn't connected to Microsoft Entra ID">
Mintlify only supports Azure DevOps organizations backed by Microsoft Entra ID. Connect your organization to your Entra tenant in Azure DevOps under **Organization settings** > **Microsoft Entra**, then try again.
</Accordion>
<Accordion title="Add the Mintlify app to the organization or project">
The Mintlify app can't read the repository. Add the Mintlify app to your Azure DevOps organization with **Basic** access, and add it to the project that contains the repository.
</Accordion>
<Accordion title="Add the Mintlify app to the Project Administrators group">
Mintlify needs to create service hooks to deploy your changes automatically. Add the Mintlify app to the project's **Project Administrators** group, then connect the repository again.
</Accordion>
<Accordion title="Your Microsoft account can't access the repository">
The Microsoft account connected in Git Settings can't read the repository. Click **Change account** and sign in with an account that has access. Users with **Stakeholder** access can't read repositories in private projects.
</Accordion>
<Accordion title="Only a project administrator can connect the repository">
The Microsoft account connected in Git Settings can read the repository but can't manage it. Click **Change account** and sign in with an account that is in the project's **Project Administrators** group or has **Manage permissions** on the repository.
</Accordion>
<Accordion title="The deploy branch was not found">
Check that the branch exists in the repository and that the name matches exactly.
</Accordion>
<Accordion title="Pushes don't trigger a deployment">
In Azure DevOps, go to **Project settings** > **Service hooks** and open the Mintlify subscriptions to check their delivery history. Confirm that you pushed to the deploy branch configured in Mintlify.

If a subscription is disabled or missing, click **Save** in [Git Settings](https://app.mintlify.com/settings/project/git-settings). Mintlify replaces any subscription that isn't healthy.
</Accordion>
</AccordionGroup>

<Note>
Mintlify does not remove the service hooks when you switch to a different Git provider. Delete them in **Project settings** > **Service hooks**.
</Note>
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@
"deploy/ghes",
"deploy/gitlab",
"deploy/bitbucket",
"deploy/azure-repos",
"deploy/preview-deployments",
"deploy/rollbacks"
]
Expand Down
Loading