Skip to content

Normalize GitHub issue traceability identifiers so created links sync correctly #434

@Brad-Edwards

Description

@Brad-Edwards

Raised from the 2026-03-28 full-codebase architecture and code-quality review.

Problem

createIssueFromRequirement() stores GitHub issue traceability identifiers as #<number>, while the sync path later assumes the identifier is a raw integer string and parses it with Integer.parseInt(...).

Evidence

  • backend/src/main/java/com/keplerops/groundcontrol/domain/requirements/service/GitHubIssueSyncService.java
  • backend/src/test/java/com/keplerops/groundcontrol/integration/SyncIntegrationTest.java
  • backend/src/test/java/com/keplerops/groundcontrol/unit/domain/GitHubIssueSyncServiceTest.java

Why this matters

The product path that creates issues from requirements cannot reliably round-trip through the sync/enrichment path. The existing integration coverage only validates manually-stored raw numeric identifiers, not the identifier shape the app itself writes.

Definition of done

  • Choose one canonical format for GitHub issue identifiers.
  • Make issue creation and sync/update logic use that same format.
  • Add integration coverage for the exact create-from-requirement path.
  • Ensure previously-created links either remain supported or are migrated safely.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions