Skip to content
Dokeo

Docs

GitHub Action

PR comments and merge blocks on FAIL or BLOCKER.
What is a content quality gate?
dokeo.co/blog/what-is-a-content-quality-gate
WARNING
76overall
77SEO
86AEO
66GEO
Fix before it ships12 of 19 checks pass
internal_linkingNo contextual links found (internal or external)
Fix
slopquestion-then-answer pattern found 2 time(s)
Fix

We gate our own blog. Scored 17 October 2026 with the same engine you get, glossary rules, balanced strictness.

← Docs

Score every content change in a PR. Post a verdict comment. Block merge on FAIL or BLOCKER (a hard stop, e.g. a confidentiality leak) by default.

Add it to a workflow

The Action is public at rasulshaikh/dokeo-action. Get a key at /account/api-keys and store it as the repository secret DOKEO_API_KEY.

- uses: actions/checkout@v4
- uses: rasulshaikh/dokeo-action@v1
  with:
    api_key: ${{ secrets.DOKEO_API_KEY }}
    content_type: blog
    paths: "**/*.md"
    fail_on: fail
    min_score: 70
  env:
    PR_NUMBER: ${{ github.event.number }}
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Inputs: fail_on (blocker, fail, warning or optimization), min_score, on_error (pass, warn or block, default warn) and comment_pr. It applies the same rule as the CLI. To call the gate without the Action, use the REST API on /docs/api.

Sample PR comment

Dokeo Content Gate
PASS4
OPTIMIZATION1
WARNING1
FAIL1
BLOCKER0
  • - PASS content/posts/intro.md -- PASS (87/100)
  • - FAIL content/posts/broken.md -- FAIL (38/100)
  • - WARN content/posts/draft.md -- WARNING (62/100)