Files
Chris Sells d2f87d50de docs(pipeline): pin the CLI docs to the released bd; repair main's broken CLI reference (#4876)
* docs(pipeline): pin the generated CLI docs to the released bd; repair main's CLI reference

The #4874 squash-merge raced the docs-autofix bot: the bot had pushed a
regeneration from main's source onto the PR branch, so the squash landed a
contradictory mix — the release-aligned hand-written docs plus a CLI
reference re-documenting unreleased commands and flags, with docs.json
referencing four pages (heartbeat, migrate-personal, reclaim, unclaim)
whose files do not exist. That broken nav fails the docsync guard on main
and on every branch cut from it. This restores the intended end state of
#4874 and lands the pin that prevents the race from recurring.

- Regenerate the CLI reference from a bd built from the v1.1.0 tag (CI's
  canonical pure-Go build), removing the unreleased commands/flags and
  fixing the dangling nav entries.
- docs/cli-docs.pin names the release tag; scripts/resolve-docs-bd.sh
  builds and caches a canonical pure-Go bd from that tag, fetching the tag
  first in shallow CI checkouts.
- generate-cli-docs.sh, check-doc-flags.sh, and check-cli-docs-drift.sh
  resolve bd through the pin and ignore a supplied binary while pinned
  (BD_DOCS_IGNORE_PIN=1 bypasses), so the drift gates and the autofix bot
  now enforce docs-match-release instead of docs-match-main.
- tools/docsmint detects the pre-overhaul Docusaurus staging layout that
  bd <= v1.1.0 emits and converts it to the generic form before its normal
  Mintlify transform (tested); removable once the pin reaches a release
  whose emitter writes build/cli-docs.
- check-doc-flags.sh: run without timeout(1) on macOS instead of failing
  Check 4.
- Decision record: engdocs/decisions/2026-07-17-docs-release-pin.md; the
  beads-docs skill §8 updated to match.

* lint: annotate gosec G705 false positive in the docsmint legacy bridge

Same class as the existing nav-splice annotation: a developer tool writing
repo Markdown, not a web-output sink.
2026-07-17 18:03:28 -07:00

3.4 KiB

title, description
title description
bd jira Synchronize issues between beads and Jira.

{/* AUTO-GENERATED: do not edit manually */}

Generated from bd help --doc jira.

Synchronize issues between beads and Jira.

Configuration: bd config set jira.url "https://company.atlassian.net" bd config set jira.project "PROJ" bd config set jira.projects "PROJ1,PROJ2" # Multiple projects bd config set jira.api_token "YOUR_TOKEN" bd config set jira.username "your_email@company.com" # For Jira Cloud bd config set jira.push_prefix "hippo" # Only push hippo-* issues to Jira bd config set jira.push_prefix "proj1,proj2" # Multiple prefixes (comma-separated)

Environment variables (alternative to config): JIRA_API_TOKEN - Jira API token JIRA_USERNAME - Jira username/email JIRA_PROJECTS - Comma-separated project keys

Examples: bd jira sync --pull # Import issues from Jira bd jira sync --push # Export issues to Jira bd jira sync # Bidirectional sync (pull then push) bd jira sync --dry-run # Preview sync without changes bd jira status # Show sync status

bd jira [flags]

bd jira pull

Pull one or more items from Jira.

Accepts bead IDs or external references as positional arguments. Equivalent to: bd jira sync --pull --issues <refs>

bd jira pull [refs...] [flags]

Flags:

      --dry-run   Preview pull without making changes

bd jira push

Push one or more beads issues to Jira.

Accepts bead IDs as positional arguments. Equivalent to: bd jira sync --push --issues <ids>

bd jira push [bead-ids...] [flags]

Flags:

      --dry-run   Preview push without making changes

bd jira status

Show the current Jira sync status, including:

  • Last sync timestamp
  • Configuration status
  • Number of issues with Jira links
  • Issues pending push (no external_ref)
bd jira status [flags]

bd jira sync

Synchronize issues between beads and Jira.

Modes: --pull Import issues from Jira into beads --push Export issues from beads to Jira (no flags) Bidirectional sync: pull then push, with conflict resolution

Conflict Resolution: By default, newer timestamp wins. Override with: --prefer-local Always prefer local beads version --prefer-jira Always prefer Jira version

Examples: bd jira sync --pull # Import from Jira bd jira sync --push --create-only # Push new issues only bd jira sync --dry-run # Preview without changes bd jira sync --prefer-local # Bidirectional, local wins

bd jira sync [flags]

Flags:

      --create-only       Only create new issues, don't update existing
      --dry-run           Preview sync without making changes
      --issues string     Comma-separated bead IDs to sync selectively (e.g., bd-abc,bd-def). Mutually exclusive with --parent.
      --parent string     Limit push to this bead and its descendants (push only). Mutually exclusive with --issues.
      --prefer-jira       Prefer Jira version on conflicts
      --prefer-local      Prefer local version on conflicts
      --project strings   Project key(s) to sync (overrides configured project/projects)
      --pull              Pull issues from Jira
      --push              Push issues to Jira
      --state string      Issue state to sync: open, closed, all (default "all")