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
ghCLI ≥ 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.ownerandgithub.repo— Both fields must be set innova.config.jsonto 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:
{
"github": {
"recipes": {
"sync-features": true
}
}
}
Usage
Options
| Flag | Description |
|---|---|
-d, --dry-run | Run without executing any GitHub commands. |