Skip to main content
Honeydew publishes a reusable GitHub Action, Honeydew Validate Workspace, that validates a workspace on every pull request. Make it a required status check, and GitHub blocks any pull request that would introduce validation errors into your semantic layer. Add the workflow to the same GitHub repository that stores your Honeydew metadata — the repository connected to Honeydew through the Git integration. Auto-detection relies on that repository’s branch names and workspace directories.
This action is GitHub only. For other CI/CD systems, call the API directly — see CI/CD Overview.

Value

  • Catch errors before merge. A broken attribute, metric, or YAML file fails the check instead of reaching the prod branch.
  • No infrastructure. The action calls the GraphQL API directly. It has no dependencies and does not check out the repository.
  • Zero configuration for detection. The workspace and branch are detected automatically from the Git branch name.

How it works

The action reloads the workspace from Git and then checks every object for validation errors:
  1. Calls reset_workspace to reload the branch from its latest commit.
  2. Checks the workspace itself for load errors (for example, a YAML parse error).
  3. Checks every object — entities and their fields, domains, dynamic datasets, global parameters, context items, and agents.
  4. Reports each error as a GitHub annotation and a job summary table, and fails the run (non-zero exit) if any errors are found.
The reload runs in the API key’s own session, not a user’s. It does not affect anyone editing the workspace in Honeydew Studio, so the action is safe to run on active branches and as a required status check.
Honeydew names development branches <workspace>/<branch> — for example, branch q3-fixes of workspace sales lives on the Git branch sales/q3-fixes. The action uses this convention to decide what to validate:

Prerequisites

  1. Metadata in this repository — the workflow must live in the same GitHub repository that stores your Honeydew metadata, connected through the Git integration.
  2. Public GraphQL API enabled — it is not enabled by default. Contact support@honeydew.ai to enable it for your organization.
  3. API key and secret — create an API key. The Viewer role is sufficient.
  4. GitHub secrets — store the key and secret as repository secrets (for example, HONEYDEW_API_KEY and HONEYDEW_API_SECRET).

Configure

1

Add the API key as GitHub secrets

In the repository, go to Settings > Secrets and variables > Actions and add:
  • HONEYDEW_API_KEY — the API key name
  • HONEYDEW_API_SECRET — the API key secret
2

Add the workflow file

Commit a workflow file to the repository that stores your semantic-layer metadata (see the example below). The action runs on pull requests and reports any validation errors.
3

Require the check to pass before merging

In Settings > Branches, add a branch protection rule (or ruleset) for your default branch that requires the validation status check to pass before merging. This is what blocks broken changes from reaching prod.

Example workflow

This workflow validates the workspace changed by a pull request, on the pull request’s source branch, before it merges. It skips branches that are not Honeydew workspace branches, so unrelated pull requests (docs, infrastructure) are not blocked.
.github/workflows/validate-honeydew-workspaces.yml
For more usage examples, see the action on the GitHub Marketplace.

Inputs

To validate a specific workspace and branch instead of relying on auto-detection:

What is validated

The action first confirms the workspace loads, then checks every object in it. If the workspace fails to load, the workspace-level errors are reported and the per-object checks are skipped.
  • Entities and their fields — datasets, dataset attributes, calculated attributes, and metrics
  • Domains
  • Dynamic Datasets (perspectives)
  • Global parameters
  • Context items
  • Agents
The underlying GraphQL query is documented under Validate a Workspace.