Skip to content

enhancement(integrations): add MantisBT issue tracker integration#438

Merged
therealbrad merged 2 commits into
mainfrom
enhancement/mantisbt-integration
Jun 14, 2026
Merged

enhancement(integrations): add MantisBT issue tracker integration#438
therealbrad merged 2 commits into
mainfrom
enhancement/mantisbt-integration

Conversation

@therealbrad

@therealbrad therealbrad commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Description

Adds MantisBT as a first-class issue-tracker integration. Includes a REST adapter (API-token auth), inbound webhook adapter (URL-token), admin and project UI, provider icon, i18n across all 15 locales, and documentation.

Also fixes a bug where linked issues on non-Jira integrations rendered the Jira-specific hover card ("Open in Jira") — each surface now reads the provider from the issue's own relation rather than the project's active integration or a hardcoded fallback.

Includes an E2E suite stabilization commit that stubs all always-on SSE streams so waitForLoadState("networkidle") resolves reliably, and fixes several test timing and selector issues.

Related Issue

Closes #196

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement

How Has This Been Tested?

  • Unit tests
  • Integration tests
  • E2E tests
  • Manual testing

Test Configuration:

  • OS: macOS
  • Browser (if applicable): Chromium
  • Node version: 22

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published
  • I have signed the CLA

Screenshots (if applicable)

Additional Notes

MantisBT has no built-in webhooks — inbound sync requires a third-party webhook plugin. Setup steps are included in the webhook config UI.

The IssuesDisplay routing fix (incorrect Jira-path fallback for non-Jira providers) is a correctness fix bundled here since it was discovered during MantisBT UAT.

Add a first-class MantisBT integration alongside the existing trackers:

- REST adapter (/api/rest, API-token auth) mapping MantisBT categories to
  issue types, tags to labels, notes to comments, and relationships to
  linked issues, with view.php issue URLs
- Inbound webhook adapter (URL-token) for issue created/updated events
- Admin and project integration UI, provider icon, and issue-link surfaces
- Documentation and translations across all locales

Also corrects external-issue hover cards that rendered the Jira-only layout
for non-Jira providers. Each linked-issue surface now derives the provider
from the issue's own integration relation rather than a hardcoded "JIRA"
fallback or the project's active integration, and the affected queries load
that relation.
Stub all four always-on SSE streams (notifications, test-run live-update,
project test-runs live-update, issues) so waitForLoadState("networkidle")
resolves reliably on pages that open them. Previously only the notification
bell stream was stubbed; the other three caused networkidle to hang for up
to 30s, starving the 8-worker pool and triggering secondary timing failures
across unrelated tests.

Additional test-specific fixes:
- Webhook tabs: wait for webhooks-tab-inbound (data-loaded signal) before
  clicking outbound, rather than relying on networkidle which can resolve
  between the auth query and the project data query
- Report runReport helpers: wait for table/no-results element (30s) instead
  of networkidle, which resolves before Elasticsearch responds
- Share incognito pages: apply stubLiveStreams + increase table timeout
- Breadcrumbs: fix parent selector button→link (BreadcrumbComponent renders
  clickable items as <Link>, not <button>)
- Admin workflows dialog: 10s→30s close timeout
- SSO toggle: 10s→20s Force SSO Login visibility timeout
- Drag-drop: 10_000→20_000 target folder visibility timeout
- Copy-move dialog: 15_000→30_000 folder option visibility timeout
@therealbrad therealbrad merged commit 3f36178 into main Jun 14, 2026
5 checks passed
@therealbrad therealbrad deleted the enhancement/mantisbt-integration branch June 14, 2026 23:46
@therealbrad

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 0.38.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Add first-class support for MantisBT Integration

1 participant