Skip to content
Raw Markdown

Projects and status

Three commands that answer questions about a project rather than changing it: which projects can this key reach, what is published, and is this change safe to merge.

projects list

Lists the projects your API key can reach: project id, name, published ontology version, and SQL dialect. Use it to look up a project id without opening the web app.

cassis projects list

# Machine-readable
cassis projects list --json

The id is what --project and CASSIS_PROJECT_ID take. In a pulled checkout it is already in cassis/project.yml, so you rarely need this twice.

status

Shows the project’s published version (number, label, git commit), whether unpublished changes await publication, the git-sync binding, how many Data source review items are pending, and how your local git HEAD relates to the published commit: in sync, N commits ahead, or diverged.

# Quick glance
cassis status --project ...

# Wait for a GitHub App sync to record local HEAD
cassis status --project ... --watch
Pending source changes
Source changes pending review: N appears when the Data source review queue is not empty, with the breaking count alongside when any change breaks something in the ontology. Read the queue itself with cassis source-changes list. Needs cassis-cli 1.6.0 or newer; before that the line is simply absent.
Watch mode
--watch polls until the published commit matches your local HEAD, then exits 0. --poll-interval (5 seconds) and --timeout (10 minutes) control the cadence. It prints one line per poll only when the state changed, so a long wait stays quiet.
GitHub App sync only
The GitHub App records a commit on the published version, so watch mode can confirm “the published commit is my commit.” A provider-agnostic ontology upload does not record a git SHA; use the upload job’s exit status and plain cassis status instead.

verify

Runs the full local gate in one verb: ontology fmt --check, then ontology check, then eval run, stopping at the first failure.

# Full pre-merge gate
cassis verify --project ...

# Skip the eval suite
cassis verify --no-eval --project ...

It is a convenience wrapper, not a new primitive: each step runs exactly as if you had called it directly, with the same output and the same meaning. One command in a checkout answers “is this change safe to merge?”, and one job in CI does the same. See Set up CI.