Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta Para iniciantes
#9,283 0 comentários 0 reações 0 responsáveis Ver no GitHub

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
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
go, sql
Domínio
backend, databases

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

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
Linguagem predominante
Go
Estrelas
3.2k
Forks
830
Merge médio
2d 6h
PRs com merge (30d)
62

Preparar o ambiente

Abrir no Codespaces

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

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/devlake

Todas as issues de apache/devlake

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.