• 
      

    Support services that only provide bug trackers.

    Review Request #15303 — Created Sept. 14, 2026 and updated

    Information

    Review Board
    release-9.x

    Reviewers

    A service can support bug trackers without supporting repositories or a
    legacy bug tracker URL template, configuring itself entirely through a
    bug tracker configuration. Three places assumed otherwise:

    • RepositoryForm listed every bug-tracker-capable service in its bug
      tracker type field. A service with no bug_tracker_field template and
      no plans has nothing for that form to configure, and building its
      (nonexistent) form logged an error. These are now skipped.

    • get_bug_tracker_requires_username() assumed get_field() returned a
      string. bug_tracker_field defaults to None, so guard against it.

    • The hosting service API resource synthesized a default plan for every
      service without plans, which requires a repository form. Services
      without one now serialize as an empty set of plans.

    • Ran unit tests.
    • Used in conjunction with other changes.
    Summary ID
    Support services that only provide bug trackers.
    A service can support bug trackers without supporting repositories or a legacy bug tracker URL template, configuring itself entirely through a bug tracker configuration. Three places assumed otherwise: * `RepositoryForm` listed every bug-tracker-capable service in its bug tracker type field. A service with no `bug_tracker_field` template and no plans has nothing for that form to configure, and building its (nonexistent) form logged an error. These are now skipped. * `get_bug_tracker_requires_username()` assumed `get_field()` returned a string. `bug_tracker_field` defaults to `None`, so guard against it. * The hosting service API resource synthesized a default plan for every service without plans, which requires a repository form. Services without one now serialize as an empty set of plans. Testing Done: - Ran unit tests. - Used in conjunction with other changes.
    psxvqotrkkvprtoxzlylpxwnzktoplot
    Checks run (2 succeeded)
    flake8 passed.
    JSHint passed.