[Bug][linker] LinkPrToIssue never matches lowercase issue keys (e.g. in branch names)
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
Direção de pesquisa
Comece por backend/plugins/linker/tasks/link_pr_and_issue.go e acompanhe como LinkPrToIssue extrai e compara chaves dos campos do pull request com issues.issue_key. Verifique os testes existentes para essa tarefa e adicione um caso em que uma chave de branch em letras minúsculas seja vinculada a uma chave armazenada em letras maiúsculas. O objetivo é alcançado quando o pipeline cria a linha esperada em pull_request_issues para esse caso.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Sync an issue tracker with an issue keyed
PROJ-123and a GitHub repo into one project. - Open a PR whose head ref is
user/proj-123-short-title, with no key in the title or description. - Enable the
linkerplugin withprToIssueRegexp=(?i)\b(PROJ)-\d+\b. - Run the project pipeline.
pull_request_issueshas 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
- I agree to follow this project's Code of Conduct
- Linguagem predominante
- Go
- Estrelas
- 3.2k
- Forks
- 830
- Merge médio
- 2d 6h
- PRs com merge (30d)
- 62
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/devlake
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 60/100
Mantenedores costumam responder em até 2 dias
-
[Bug][claude_code] Incremental collection stops after the first runTalvez já em andamento @clementsen assumiu hoje. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 32/100
Mantenedores costumam responder em até 2 dias
-
type/bug
Dificuldade 3/5 Meio dia Facilidade para iniciantes 73/100
Mantenedores costumam responder em até 2 dias
-
[Refactor][Build] Build the core and all plugins into a single binary by defaultTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Abertacomponent/plugins type/refactor
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
apache/devlake#9276 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
[Feature][Plugin] Add a GLPI data source pluginTalvez já em andamento @rabelenda assumiu há 2 dias. Abertatype/feature-request
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 38/100
apache/devlake#9273 · 1 reação ·
Mantenedores costumam responder em até 2 dias
Todas as issues de apache/devlake
Issues semelhantes
-
bug from-studio
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
esengine/DeepSeek-Reasonix#14868 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
project-zot/zot#4636 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
keyxmakerx/Chronicle#1911 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
eugenioenko/ttt#1293 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
needs/area needs/kind needs/priority
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
Mantenedores costumam responder em até 1 dia