VictorColomb opened a new issue, #9283: URL: https://github.com/apache/devlake/issues/9283
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/incubator-devlake/issues?q=is%3Aissue) and found no similar issues. ### What happened The `linker` plugin's `LinkPrToIssue` subtask compares the keys extracted from a PR (title, description or head ref) against `issues.issue_key` with an exact, case-sensitive match. `normalizeIssueKey` only strips `#` and whitespace. Some issue trackers generate lowercase branch names from the issue key, e.g. `user/proj-123-short-title` for issue `PROJ-123`. Since #8777, head refs are searched, but even with a case-insensitive `prToIssueRegexp` such as `(?i)\b(PROJ)-\d+\b`, the extracted key is `proj-123`. It never equals the stored key `PROJ-123`, so the PR is silently left unlinked. In my instance, about 5% of PRs that contain a key are affected, namely those where the key appears only in the branch name. ### What do you expect to happen Matching should be case-insensitive, or the extracted key should be normalized to match the stored `issue_key`, so that `proj-123` links to `PROJ-123`. ### How to reproduce 1. Sync an issue tracker with an issue keyed `PROJ-123` and a GitHub repo into one project. 2. Open a PR whose head ref is `user/proj-123-short-title`, with no key in the title or description. 3. Enable the `linker` plugin with `prToIssueRegexp` = `(?i)\b(PROJ)-\d+\b`. 4. Run the project pipeline. 5. `pull_request_issues` has no row for this PR. ### Anything else Suggested fix in `backend/plugins/linker/tasks/link_pr_and_issue.go`: compare case-insensitively, e.g. uppercase the extracted keys and match with `UPPER(issues.issue_key) IN ?`. Uppercasing in `normalizeIssueKey` alone would only work for trackers with uppercase keys. A related limitation is that the enricher stops at the first field (title, then description, then head ref) with any regex match. A PR with an unrelated match in the title, such as `CVE-2024-0000`, never has its description or branch checked, so a real key there is ignored. I can open that as a separate issue if preferred. ### Version v1.0.3-beta18 ### Are you willing to submit PR? - [x] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
