Skip to main content
AI/MLjeremylongshore

clari-ci-integration

'Integrate Clari export pipeline testing and validation into CI/CD.

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--clari-ci-integration
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/clari-pack/skills/clari-ci-integration/SKILL.md -o .claude/skills/clari-ci-integration.md

Drops the SKILL.md into .claude/skills/clari-ci-integration.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Clari CI Integration

Overview

Add Clari export validation to CI: test API connectivity, validate export schemas, and run pipeline integration tests.

Prerequisites

  • Protected CI environment with scoped, masked secrets
  • Mock fixtures for pull-request tests and an approved integration test account
  • A repository environment gate for any production-targeted job
  • Retention policy for generated logs and artifacts

Instructions

GitHub Actions Workflow

name: Clari Pipeline Tests

on:
  push:
    paths: ["src/clari/**", "tests/clari/**"]
  schedule:
    - cron: "0 6 * * 1"  # Weekly Monday check

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - run: pip install -r requirements.txt

      - name: Unit tests (mock data)
        run: pytest tests/ -v -k "not integration"

      - name: Integration test (real API)
        if: github.ref == 'refs/heads/main'
        env:
          CLARI_API_KEY: ${{ secrets.CLARI_API_KEY }}
        run: |
          python -c "
          from clari_client import ClariClient
          client = ClariClient()
          forecasts = client.list_forecasts()
          assert len(forecasts) > 0, 'No forecasts found'
          print(f'Connected: {len(forecasts)} forecasts available')
          "

      - name: Schema validation
        env:
          CLARI_API_KEY: ${{ secrets.CLARI_API_KEY }}
        run: |
          python scripts/validate_schema.py

Store Secrets

gh secret set CLARI_API_KEY --body "your-api-token"

Error Handling

Condition Response
Unit fixture or schema test fails Fail the run before any external request and attach a redacted report.
Integration account cannot authenticate Stop retries, verify the secret reference and account scope, then notify its owner.
Export shape changes Quarantine the release and require a reviewed schema migration.
Secret appears in logs or artifacts Revoke it, purge according to policy, and investigate exposure.

Output

Publish a redacted run summary with fixture/integration status, schema version, external job IDs, artifact retention location, and promotion decision. Secrets, forecast payloads, and download URLs must remain masked and unavailable to untrusted pull-request code.

Examples

Run mock tests on every pull request, then run one read-only integration export only from a protected branch using a scoped environment secret. Fail closed if the schema changes or the credential is unavailable; a successful read does not authorize a data load or production deployment.

Resources

Next Steps

For deployment patterns, see clari-deploy-integration.