Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[Bug][linker] LinkPrToIssue never matches lowercase issue keys (e.g. in branch names)

Offen Anfängerfreundlich
#9,283 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 2 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
go, sql
Bereich
backend, databases

Rechercherichtung

Beginne mit backend/plugins/linker/tasks/link_pr_and_issue.go und verfolge, wie LinkPrToIssue Schlüssel aus Pull-Request-Feldern extrahiert und mit issues.issue_key vergleicht. Sieh dir die bestehenden Tests für diese Aufgabe an und füge einen Fall hinzu, in dem ein kleingeschriebener Branch-Schlüssel mit einem großgeschriebenen gespeicherten Schlüssel verknüpft wird. Das Ziel ist erreicht, wenn die Pipeline für diesen Fall den erwarteten Eintrag in pull_request_issues erstellt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

type/bug
Search before asking
  • I had searched in the issues 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?
  • Yes I am willing to submit a PR!
Code of Conduct
Vorherrschende Sprache
Go
Sterne
3.2k
Forks
830
Ø Merge
2 T. 6 Std.
Gemergte PRs (30 T.)
62

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/devlake

Alle Issues in apache/devlake

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.