feat: Jira integration, sync improvements, and bot filter cleanup#1
Merged
ViktorBilokin merged 17 commits intomainfrom Mar 31, 2026
Merged
Conversation
…leanup - Add Jira integration: JiraController, JiraService, JiraPage with full UI - Sync page: sortable table (by name/status/last synced), status-first default sort, Actions column header, Re-sync/Clean styled as buttons - Sync trigger: now includes completed repos for incremental re-sync alongside pending (full sync) - Dashboard: remove automatic [bot] login filter — bots must now be listed explicitly in Bot Names setting - Config page: update Bot Names hint to drop the [bot] auto-filter mention - Makefile: force-kill lingering processes on ports 8080/3000/5432 during stop - application.yml: add Anthropic API key config - Add react-markdown dependency Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
bwappsec
reviewed
Mar 30, 2026
Reject path variable values that don't match the PROJECT-NUMBER pattern before they are interpolated into the outbound HTTP URL. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ViktorBilokin
commented
Mar 30, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Jira ticket browsing + AI ticket-quality details to GitHub Pulse, and updates admin sync + dashboard bot filtering to better match current workflows/config.
Changes:
- Introduces Jira backend endpoints/client + a new Jira UI page (epics, child issues, issue detail panel with quality/improvement output).
- Improves Sync page UX (sortable table, clearer manual sync button semantics, action button styling) and expands manual sync to include completed repos (incremental).
- Removes implicit
[bot]filtering in the dashboard; bots must now be explicitly configured.
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/pages/SyncPage.tsx | Adds sorting, improves manual sync button text/enablement, and updates actions column/buttons. |
| frontend/src/pages/JiraPage.tsx | New Jira UI page with epic/issue browsing, sorting, and a details panel (incl. markdown improvements). |
| frontend/src/pages/DashboardPage.tsx | Removes implicit bot login filtering and renames the page heading. |
| frontend/src/pages/ConfigPage.tsx | Adds Jira + Anthropic settings fields and masks token inputs. |
| frontend/src/components/Layout.tsx | Adds Jira navigation entry, changes dashboard route, and introduces collapsible sidebar. |
| frontend/src/api/client.ts | Adds Jira API client methods and DTO types for Jira pages. |
| frontend/src/App.tsx | Adds /jira and /github routes; redirects / → /github. |
| frontend/package.json | Adds react-markdown dependency for rendering improved ticket text. |
| frontend/package-lock.json | Locks react-markdown and its dependency tree. |
| backend/src/main/resources/application.yml | Adds anthropic.api-key configuration via env var. |
| backend/src/main/java/com/githubpulse/service/jira/TicketQualityService.java | New Anthropic/Claude-backed ticket quality evaluation service. |
| backend/src/main/java/com/githubpulse/service/jira/JiraIssueDto.java | New Jira issue DTO for epic children. |
| backend/src/main/java/com/githubpulse/service/jira/JiraIssueDetailDto.java | New Jira issue detail DTO (incl. quality/improvement fields). |
| backend/src/main/java/com/githubpulse/service/jira/JiraEpicDto.java | New Jira epic DTO containing child issues. |
| backend/src/main/java/com/githubpulse/service/jira/JiraClient.java | New Jira REST client (epic browsing, issue detail retrieval, ADF text extraction). |
| backend/src/main/java/com/githubpulse/controller/JiraController.java | Exposes Jira API endpoints for the frontend. |
| backend/src/main/java/com/githubpulse/controller/AdminController.java | Manual sync now includes completed repos for incremental updates; response text updated. |
| README.md | Replaces placeholder README with full project overview and usage docs. |
| Makefile | make stop now force-kills processes on common dev ports. |
| CLAUDE.md | Adds repository guidance and commands/architecture notes for Claude Code. |
Files not reviewed (1)
- frontend/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
backend/src/main/java/com/githubpulse/controller/JiraController.java
Outdated
Show resolved
Hide resolved
backend/src/main/java/com/githubpulse/service/jira/JiraClient.java
Outdated
Show resolved
Hide resolved
…taint path Agent-Logs-Url: https://github.com/Bandwidth/github-pulse/sessions/6f8d592e-6073-4bcd-baae-431877533f5f Co-authored-by: ViktorBilokin <203859598+ViktorBilokin@users.noreply.github.com>
…github.com/Bandwidth/github-pulse into feature/jira-integration-sync-improvements
…java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
… React reconciliation warnings Agent-Logs-Url: https://github.com/Bandwidth/github-pulse/sessions/af9fbb8b-b797-4a6f-ba4e-cfe09dc9d22b Co-authored-by: ViktorBilokin <203859598+ViktorBilokin@users.noreply.github.com>
…el to collapsed nav links Agent-Logs-Url: https://github.com/Bandwidth/github-pulse/sessions/0c0c0ee7-2fe4-45ef-8582-f49ed8d5fe5e Co-authored-by: ViktorBilokin <203859598+ViktorBilokin@users.noreply.github.com>
… button Agent-Logs-Url: https://github.com/Bandwidth/github-pulse/sessions/14aa9510-dd13-479d-ad15-cf02d9e6acb9 Co-authored-by: ViktorBilokin <203859598+ViktorBilokin@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
JiraController,JiraService(client, DTOs,TicketQualityService), andJiraPageUI with full ticket browsingAdminController): syncs both pending repos (full) and completed repos (incremental since last sync), not just pending[bot]login filter — bots likegithub-actions[bot],dependabot[bot]must now be listed explicitly in the Bot Names config setting[bot]auto-filtermake stopTest plan
github-actions[bot]appears unless added to Bot Namesmake stopcleanly kills all processes on ports 8080, 3000, 5432🤖 Generated with Claude Code