Sync Ownership
Sync homepage, bugs, author, contributors, funding, and repository fields in workspace package.json files.
Summary
The sync-ownership recipe ensures that ownership-related fields in each workspace's package.json match the values defined in nova.config.json.
For distributable workspaces, each field can be individually enabled via recipe settings.
Behavior
For each eligible workspace, the recipe inspects ownership fields and applies the following rules. Every field below is removed if the workspace policy is not distributable. See Workspace Rules for how tags are determined.
For distributable workspaces with the respective setting enabled, the value is synced from nova.config.json. If the source value is not defined, the field is removed.
homepage(Conditional) — Synced fromurls.homepage.bugs(Conditional) — Synced as{ "email": emails.bugs, "url": urls.bugs }.author(Conditional) — Synced from the first entity with theauthorrole as{ "name", "email", "url" }.contributors(Conditional) — Synced from all entities with thecontributorrole as an array of{ "name", "email", "url" }.funding(Conditional) — Synced fromurls.fundSources.repository(Conditional) — Synced as{ "type": "git", "url": urls.repository }. Adirectoryproperty is included when the workspace is not at the project root, using the relative path from the project root.
Settings
Settings are configured per workspace in nova.config.json under the recipes key:
| Setting | Type | Description |
|---|---|---|
homepage | boolean | Sync the homepage field (distributable workspaces only). |
bugs | boolean | Sync the bugs field (distributable workspaces only). |
author | boolean | Sync the author field (distributable workspaces only). |
contributors | boolean | Sync the contributors field (distributable workspaces only). |
funding | boolean | Sync the funding field (distributable workspaces only). |
repository | boolean | Sync the repository field (distributable workspaces only). |
Usage
Options
| Flag | Description |
|---|---|
-d, --dry-run | Preview changes without modifying files. |
-r, --replace-file | Overwrite the original file instead of creating a .nova-backup copy. |