Skip to content
Clevera Docs

Publish articles to GitLab

Connect GitLab.com and publish any Clevera article as a Markdown file to the project and folder you pick: permissions, protected branches, file names, images, updates and every error message.

Updated 9 min read

Connect GitLab once and you can publish any Clevera article to a GitLab project as a Markdown file, ready for a docs site, a docs/ folder or a project handbook. This article covers connecting, choosing the project and folder, what the file looks like and how updates work.

Before you start

  • Plan: publishing to GitLab is part of the Pro and Custom plans. On Free and Starter the Publish tab shows "Publishing to your tools is included in Pro". See Choose a plan.
  • Role in Clevera: only the workspace owner or an Administrator can connect or disconnect GitLab. Everyone else who can open the article can publish once it's connected.
  • GitLab.com only: Clevera connects to GitLab.com. Self-managed GitLab servers aren't supported.
  • Role in GitLab: Clevera lists projects where the connecting account has the Developer role or higher. To commit to a protected default branch, that account usually needs Maintainer (see Protected branches).
  • An article: you publish the article that belongs to a video or recording. Generate it first; see Turn a recording into an article.

Publishing uses no credits.

Connect GitLab

  1. Open Integrations

    In the sidebar, open the workspace menu and choose Integrations. Find GitLab under Available integrations (or the Development tab) and click Connect.

  2. Sign in to GitLab and authorize

    Sign in to GitLab.com if you aren't already. GitLab asks you to authorize Clevera with these scopes:

    GitLab scope Why
    api GitLab's file API needs it to create and update files
    read_user To show your GitLab username in Clevera
    read_repository To check whether a file already exists
    write_repository To commit the Markdown file

    Click Authorize.

  3. Check the connection

    You return to Integrations with "GitLab connected successfully to" followed by your GitLab username. GitLab moves to the Connected list with a Connected badge. Before you publish anything it reads "Nothing published yet".

Publish an article

  1. Open the Publish tab

    In the editor, click Share and open the Publish tab. Under Publish the article, GitLab shows Connected and a Publish button.

    The article is published in the language you have open in the editor. Switch language in the top bar first to publish a translation.

  2. Choose the project and folder

    Click Publish next to GitLab, then choose where the article goes:

    Field What to pick Notes
    Repository The GitLab project for the file Lists up to 100 projects where you're Developer or higher, most recently updated first. The first one is selected for you
    Folder A path such as docs or articles/guides Starts as docs. Leave it empty for the project root. Folders that don't exist yet are created
    The Publish to GitLab form with the help-docs project and the docs/guides folder
    Projects where your GitLab account is Developer or higher.
  3. Publish

    Click Publish. You see "Checking for an existing article…", then "Publishing…". When it's done you see "Published to GitLab." and the file opens in GitLab in a new tab.

Where the file goes

  • Branch: the project's default branch (usually main). Clevera commits straight to it; it doesn't open a merge request and you can't pick another branch.
  • File name: the title in lowercase, with spaces turned into hyphens, ending in .md. "Create your first invoice" becomes create-your-first-invoice.md.
  • Commit message: Add article: <title>, or Update article: <title> when you replace an existing file.
  • Commit author: the GitLab account that connected the integration.

Protected branches

GitLab protects the default branch by default, and usually only Maintainers can push to it. If the connected account is a Developer, the commit is refused with "Failed to create file in GitLab." Either give that account the Maintainer role, or allow Developers to push under Settings → Repository → Protected branches in the project.

What the file looks like

Clevera writes GitHub-flavored Markdown, which GitLab renders, with a short front matter block at the top:

Front matter
---
title: "Create your first invoice"
created_at: "2026-10-12T09:30:00+00:00"
updated_at: "2026-10-12T10:05:00+00:00"
source: "Clevera"
---
In the Clevera article In the Markdown file
Headings, bold, italic, strikethrough, inline code, links Standard Markdown
Bulleted, numbered and nested lists Standard Markdown lists
Checklists Task lists (- [ ] / - [x])
Tables Markdown tables; the first row becomes the header
Code blocks Fenced code blocks with the language
Callouts Alerts (> [!NOTE], > [!TIP], > [!WARNING], > [!CAUTION])
Toggles A collapsible <details> section
Screenshots and images Image links to Clevera-hosted files (see below)
YouTube videos A thumbnail that links to the video
Underline, highlight, superscript, subscript Plain text (Markdown has no equivalent)
Step blocks you added by hand A "Step N" heading with the step's text only

If the video's share link is on, the file starts with a quoted line, Watch the video tutorial, that links to the video player. Markdown files can't hold a player, so it's a link. If the share link is off, there's no video line, and turning the link off later makes an existing one stop working.

Images

Screenshots aren't copied into your project. Each image links to the file on Clevera's servers through a signed address that works for one year from when you publish. To keep images working, publish the article again (choose Replace the existing article) within the year; each publish renews the links.

Anyone who has the image address can open the image, even if the project is private.

Use it with a docs site

If GitLab Pages or another static-site generator (such as MkDocs, Docusaurus or Hugo) builds your docs from the project, point Folder at the folder it reads. Each publish is a normal commit, so your pipeline runs as usual. Most generators read title from the front matter and ignore fields they don't know.

Update an article you already published

Publishing only goes one way. Edits you make in Clevera stay in Clevera until you publish again, and changes made to the file in GitLab never come back to Clevera.

When you publish to the same project and folder, Clevera finds the file with the same name and asks what to do: "An article with this title already exists in GitLab." Click View it to open the existing file, then choose:

Option What happens in GitLab
Publish as a new article "Keep the existing one and add this under a new title." Clevera suggests a title such as "Create your first invoice (2)", which becomes a new file. Click Publish copy.
Replace the existing article "Update it with this version." The same file is overwritten in a new commit. Click Replace.

If the title changed in Clevera, the file name changes too, so publishing creates a new file next to the old one. Delete or rename the old file in GitLab yourself. Nothing in Clevera deletes files from your project.

Disconnect GitLab

  1. Open Integrations, click the ⋯ menu on the GitLab row and choose Disconnect (or click GitLab and then Disconnect).
  2. Confirm. "You can no longer publish to it from the editor. Content you already published stays in GitLab."
The confirmation shown before disconnecting GitLab

Disconnecting deletes Clevera's tokens. To revoke Clevera's access on GitLab too, open your GitLab avatar menu → Edit profile → Applications, find Clevera under Authorized applications and click Revoke.

Troubleshooting

You see What to do
"Integrations are included in Pro and Custom plans." Upgrade the workspace to Pro. See Choose a plan.
No Connect button on the Integrations page Only the owner or an Administrator can connect. Ask one of them.
"Connect GitLab on the Integrations page first." GitLab isn't connected in this workspace yet. Ask an owner or Administrator to connect it.
"No repositories in this account." The connected account isn't Developer or higher in any project. Add it to the project, or reconnect with another account.
A project is missing from the list The list shows the 100 most recently updated projects where the account is Developer or higher. Check the role, or make a commit to the project.
"Couldn’t load your GitLab locations" Click Try again. If it keeps happening, reconnect GitLab.
"Failed to create file in GitLab." Usually a protected default branch. See Protected branches.
"Your GitLab connection expired. Reconnect it to publish." or "No refresh token available. Please reconnect your GitLab account." Open Integrations and click Reconnect on the GitLab row.
"Failed to refresh GitLab token. Please reconnect." The authorization was revoked in GitLab. Reconnect.
"Connection failed:" followed by GitLab's reason You declined the authorization or GitLab refused it. Click Connect again and authorize.
"Invalid authorization state. Please try again." or "Authorization expired. Please try again." The sign-in took too long or ran in another tab. Start again from Connect.
"Article content is empty or invalid." The article has no content in this language. Generate or write it, then publish again.
"No article found. Please generate an article first." The video has no article in the language you have open. Generate it, or switch language.
"Too many publish attempts. Please wait a moment before trying again." You can publish up to 20 times a minute. Wait a minute.
"Failed to publish to GitLab. Please try again." Try again. If it keeps failing, reconnect GitLab and contact support.
The connection shows Needs attention or Error Click Reconnect on the row and authorize again.