Script icon
If icon
SlackIncomingWebhook icon
Log icon
Schedule icon
Webhook icon

Kestra Documentation Codeblock and Link Verifier

Automated documentation QA pipeline. Parses markdown docs, validates embedded Kestra YAML code blocks against schemas, and audits links.

Categories
BusinessCoreInfrastructure

Technical documentation is the primary interface through which developers evaluate and adopt Kestra. However, as orchestrator features rapidly evolve across versions, documentation drift poses a constant challenge: embedded YAML tutorial snippets can reference deprecated 1.x task primitives (legacy runner: parameters), omit required task structures, or contain broken external URL hyperlinks. When developers encounter broken example code in tutorials, onboarding momentum stalls.

This blueprint implements an automated continuous documentation quality assurance gate. It ingests markdown pages from documentation repositories, extracts all embedded yaml flow code blocks, executes syntax and deprecation analysis, inspects markdown hyperlinks for invalid paths, and delivers an itemized defect report to DevRel and technical writing teams.

How it works

  1. fetch_documentation_pages (io.kestra.plugin.scripts.python.Script) ingests candidate documentation markdown files from the target repository, or prepares synthetic tutorial pages containing clean and deprecated examples in demo mode.
  2. verify_codeblocks_and_links (io.kestra.plugin.scripts.python.Script) parses the markdown content using regular expressions to isolate YAML code blocks and hyperlinks. It runs schema parsing on each snippet to detect deprecated primitives (runner: Docker) and scans hyperlinks for broken URL paths.
  3. evaluate_documentation_health (io.kestra.plugin.core.flow.If) evaluates whether defect counts exceed configured tolerance thresholds. If broken snippets or dead links exist, it dispatches an incident card to the DevRel Slack channel and logs itemized error details; otherwise, it records an approved audit stamp.

What you get

  • Automated continuous linting of embedded YAML flow code blocks across markdown documentation.
  • Detection of deprecated 1.x syntax in tutorials before community users experience onboarding friction.
  • Hyperlink audit to identify broken documentation cross-references and external dead links.
  • Zero-setup demo execution via the seed_demo_data toggle with pre-packaged documentation defect samples.

Who it's for

  • Developer Relations (DevRel) teams maintaining official orchestrator documentation and quickstarts.
  • Technical Writers ensuring code snippet accuracy and link integrity across product documentation.
  • Open Source maintainers establishing automated PR documentation testing in CI/CD pipelines.

Why orchestrate this with Kestra

Kestra excels at orchestrating polyglot developer tooling. Rather than relying on separate, disjointed markdown linters and link checkers, Kestra unifies document ingestion, YAML AST verification, and Slack defect triage in a single declarative workflow with full execution observability.

Pitfalls

  • Incomplete YAML snippets: Tutorial pages frequently show partial flow snippets (e.g. a single task definition) rather than full flows; linting rules should differentiate between full flow schemas and isolated task fragments.
  • External rate limits: Avoid aggressive parallel HEAD requests when checking external documentation domains to prevent transient 429 rate limit backoff cliffs.
  • Code fence language tagging: Ensure markdown code blocks are properly tagged with yaml or yml so the parser can identify valid snippets.

Prerequisites

  • Target documentation repository containing markdown files.
  • Slack incoming webhook endpoint for defect notifications.

Secrets

  • SLACK_WEBHOOK_URL: Slack incoming webhook URL for dispatching documentation QA cards.
  • DOCS_WEBHOOK_KEY: Secret authentication key for the event-driven documentation PR webhook.

Quick start

  1. Execute the flow with seed_demo_data: true to observe automated detection of deprecated code blocks and broken links.
  2. Configure SLACK_WEBHOOK_URL in your Kestra namespace.
  3. Connect the docs_pr_webhook to your documentation repository's CI/CD pull request workflow.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.