Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte Adaptée aux débutants
#9,283 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
go, sql
Domaine
backend, databases

Piste de recherche

Commence par backend/plugins/linker/tasks/link_pr_and_issue.go et suis la façon dont LinkPrToIssue extrait et compare les clés des champs de pull request avec issues.issue_key. Consulte les tests existants pour cette tâche et ajoute un cas où une clé de branche en minuscules est associée à une clé stockée en majuscules. Le résultat attendu est que le pipeline crée la ligne prévue dans pull_request_issues pour ce cas.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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
Langage dominant
Go
Étoiles
3.2k
Forks
830
Merge moyen
2 j 6 h
PR mergées (30 j)
62

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de apache/devlake

Toutes les issues de apache/devlake

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.