Skip to main content

Sync Features

Sync repository feature toggles to GitHub from nova.config.json.

Summary

The sync-features recipe pushes repository feature enable/disable settings from nova.config.json to GitHub using gh repo edit. It controls which GitHub features are active on the repository — issues, wiki, projects, and discussions.

If the github.features block is missing entirely, or all four feature fields are undefined, the recipe no-ops and emits a warning.

Prerequisites

  • gh CLI ≥ 2.40.0 — The GitHub CLI must be installed and authenticated.
  • Repository write access — The authenticated user must have write access to the target repository.
  • github.owner and github.repo — Both fields must be set in nova.config.json to identify the target repository.

Behavior

Each feature field is independently optional. When a field is defined, the recipe passes the corresponding flag to gh repo edit. When a field is undefined, that flag is omitted entirely and GitHub's current value is preserved.

  • github.features.issues — Controls the Issues tab. Emits --enable-issues=<bool> when defined.
  • github.features.wiki — Controls the Wiki tab. Emits --enable-wiki=<bool> when defined.
  • github.features.projects — Controls the Projects tab. Emits --enable-projects=<bool> when defined.
  • github.features.discussions — Controls the Discussions tab. Emits --enable-discussions=<bool> when defined.

Settings

Settings are configured per workspace in nova.config.json under the recipes key. The sync-features recipe is controlled by a single boolean toggle:

json
{
  "github": {
    "recipes": {
      "sync-features": true
    }
  }
}

Usage

Options

FlagDescription
-d, --dry-runRun without executing any GitHub commands.