Back to Dashboard

Documentation

Learn how to use Asyntai

Woodpecker CI Integration

Send your documentation to your chatbot on every push

Create Account

Overview

Your documentation lives in a repository that Woodpecker CI builds. Your chatbot answers from the Asyntai knowledge base. The Asyntai AI Chatbot Docs Sync plugin keeps the two the same.

Merge a change to a page, and the chatbot answers from the new page by the end of the pipeline. Your writers keep their normal workflow, and your visitors get the current answer.

How It Works

The plugin is one step in your pipeline. The step reads the files you point it at, compares them with your knowledge base, and sends what changed.

  • A new file becomes a new knowledge base entry.
  • A changed file replaces its entry.
  • A file with the same text is left alone, so a run costs nothing against your daily limit.
  • With prune on, an entry whose file is gone is removed.

The entry title is the file path, so you can find every page in Knowledge Base in your dashboard. Each run ends with a line that counts what it did.

Requirements

  • A Woodpecker CI server with the Docker or Kubernetes backend
  • An Asyntai account on the Starter plan or higher, because the plugin uses the Asyntai API

Installation

Follow these steps to add the plugin to your pipeline:

1

Get Your API Key

Sign in to Asyntai, open Settings, then API, and copy your API key.

2

Add a Secret

In Woodpecker, open the repository Settings → Secrets. Add a secret named asyntai_api_key and paste your key as the value.

3

Add the Step

Open .woodpecker.yaml and add the step:

steps:
  - name: send-docs-to-asyntai
    image: asyntai/woodpecker-ai-docs-sync:1
    settings:
      api_key:
        from_secret: asyntai_api_key
      path: docs
    when:
      - event: push
        branch: main
4

Push and Watch

Push the change. Open the pipeline in Woodpecker and open the send-docs-to-asyntai step. The last line counts how many entries the run added, updated, or left alone.

Settings

Setting Default What it does
api_keyrequiredYour Asyntai API key. Pass it with from_secret.
pathrequiredThe file or folder to read, relative to the repository root.
patterns*.md,*.mdx,*.txtFile patterns to include, as a list or comma separated text.
excludeemptyPatterns to skip, for example [drafts/*].
title_prefixemptyText put in front of every entry title. Use it when several repositories feed one chatbot.
website_idemptyWhich website to fill. Empty means the first website of the account.
prunefalseDelete entries whose file is gone. Needs title_prefix.
dry_runfalseList the files and send nothing.
debugfalsePrint every API call the plugin makes.

Several Repositories, One Chatbot

Give each repository its own title_prefix, for example product-docs/ and handbook/. Then turn prune on. Each pipeline only touches the entries that carry its own prefix.

    settings:
      api_key:
        from_secret: asyntai_api_key
      path: docs
      title_prefix: product-docs/
      prune: true

Tip: Add a second step with dry_run: true and when: [{event: pull_request}]. The step then lists the files it would send, so a reviewer sees the effect before the branch is merged. A dry run needs no secret.

Removing It

Delete the step from .woodpecker.yaml. The entries already in your knowledge base stay. Remove them in Knowledge Base in your dashboard if you want them gone.

Plans & Pricing

The plugin is free. It uses the Asyntai API, which needs the Starter plan or higher. View pricing.

Need Help?

If you have any questions or run into issues, contact us at [email protected].