JATS release checks in CI.

Integration guide / GitHub Actions

Stop a broken JATS package before it becomes a delivery.

The public JATS Verify Action sends the package to the hosted API, writes a deterministic JSON report into the workflow, and fails the job when a finding reaches your selected severity.

The Action is an API client.

The validation engine remains private and hosted. A paid JATS Verify API key is required for production runs.

Add the key once

Buy any paid package, retrieve the automatically issued API key from the Access Center, and save it as an encrypted repository or organization secret named JATS_VERIFY_API_KEY.

Add the release gate

name: Validate JATS package
on: [push, pull_request]

jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: james-hr/jats-verify@v1
        with:
          api-key: ${{ secrets.JATS_VERIFY_API_KEY }}
          xml: production/article.xml
          assets: production
          fail-on: error
          report: jats-verify-report.json

Pin the Action to the version your organization has reviewed. The v1 tag tracks compatible version 1 releases.

Decide what blocks release

  • error blocks structural and release-critical findings.
  • warning applies a stricter editorial production gate.
  • info blocks on every reported finding.

A valid journal profile can define its own authoritative failure threshold and required metadata rules.

Keep the evidence

Upload jats-verify-report.json as a workflow artifact, attach it to a release record, or send the same package to the bundle endpoint for a reproducible release ZIP.

See the API guide for authentication, multipart fields, limits, status responses, and direct server examples.

Prove the check first

Run one package before adding the gate.

The free diagnostic shows the verdict and up to five findings. Paid access starts at $12.99 and includes the API key.

Run a free check