Repository navigation
Conversation
kesamba
force-pushed
the
feature/per-project-dora-isolation
branch
from
October 13, 2026 08:13
484236a to
befc324
Compare
Several DevLake projects can share one board and each collect their own slice of it (e.g. via Jira ExtraJQL). Record which project a board/issue link belongs to by adding project_name to board_issues. It is part of the primary key so an issue that falls into two projects' slices can be linked once per project. Existing rows and plugins that do not set it get an empty project_name, which keeps the previous single-project behaviour. The e2e snapshots that verify board_issues gain the (empty) project_name column. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add project_name to _tool_jira_board_issues (part of the primary key) and ProjectName to JiraApiParams. The issue collector and extractor stamp the DevLake project the pipeline runs for, so a board shared by several projects keeps each project's ExtraJQL slice apart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The issue convertor used to read every _tool_jira_board_issues row of the board, so on a shared board one project's run converted (and stamped) the other projects' issues too. Filter its input by project_name and stamp the project on the domain board_issues row. Boards without any per-project stamps (single-project or pre-feature data) keep converting all of their issues. On a board that has stamps, unstamped leftover rows are excluded rather than attributed to every project. Adds gorm.io/driver/sqlite (already in go.sum) for the in-memory tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The board filter collectors only compared the saved filter JQL to decide whether a full resync is needed. Fold the rendered ExtraJQL into that key so changing ExtraJQL also triggers a full resync, and issues that no longer match are unlinked from the board instead of lingering in board_issues. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ConvertIssuesToIncidents and ConnectIncidentToDeployment selected incidents by board-level project_mapping only, so every project sharing a board got every incident on it. Also filter on board_issues.project_name, falling back to the whole board when it has no per-project stamps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Apply the same board_issues.project_name filter to the incident queries of the DORA dashboards (mysql: DORA, dora-by-team, dora-debug and the change-failure-rate / failed-deployment-recovery-time / time-to-restore-service details; postgresql: DORA, dora-by-team), with the same whole-board fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kesamba
force-pushed
the
feature/per-project-dora-isolation
branch
from
October 13, 2026 09:00
befc324 to
be6cb81
Compare
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.
Fork-internal PR to run the upstream CI (incl. test-e2e on MySQL + Postgres) before opening the PR to apache/devlake.