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

[RFC] Patch building and Webhooks API

Aberta
#307 22 comentários 0 reações 0 responsáveis Ver no GitHub

@yurinnick já está trabalhando nisso.

Desde 1/8/2023.

  • #295 de @yurinnick — fechado sem integrar
  • #297 de @yurinnick — aberto
  • #299 de @yurinnick — aberto
  • #2041 de @yurinnick — fechado sem integrar

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
20/100
Tipo de issue
Funcionalidade
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
git, github, gitlab, python

Direção de pesquisa

Nenhum arquivo, teste ou ponto de entrada é nomeado. Comece lendo o RFC e suas perguntas não resolvidas de Discussion; em seguida, mapeie as quatro áreas de implementação solicitadas: o webhook do Patchwork, os metadados do patch, a aplicação de mbox e as atualizações de checks. O trabalho estará concluído quando houver um contrato de webhook acordado e suporte para compilar, testar e relatar os resultados dos patches.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Webhook API should help to integrate KernelCI with patch management (Patchwork) and version control systems (Github, Gitlab). It will provide interface to trigger non-upstream patch builds that should be able to publish results back later.

Implementation

As the first step, I'd like to implement Patchwork integration with KernelCI. Following changes should be implemented:

  1. Add /webhooks/patchwork API that will expect certain (TBD) input from Patchwork side, enough to build and test kernel, and report back results
  2. Extend kernelci.Node, KernelBuildMetadata, kernelci.config.Tree with patch-related fields
  3. Implement patch mbox application on top of git checkout
  4. Implement Patchwork patch checks update mechanism

Minimal patch information

We need a patch and all dependent patches information, as well as submitter information for email notifications.

{
  "patches": [
    {
      "patchwork_id": "str",
      "hash": "str",
      "web_url": "str",
      "date": "str",
      "mbox": "str"
    }
  ],
  "submitter": { 
    "id": "int", 
    "url": "str", 
    "name": "str", 
    "email": "str" 
  }
}

Discussion

  • How to make patches information generic enough to share across multiple systems? Should we make it generic at all?
  • How to pass Patchwork specific metadata into Node? data field or a separate field?
  • Calculating and passing revision information
  • What data should we expect in /webhooks/patchwork? (Collaboration with Patchwork developers)
Linguagem predominante
Python
Estrelas
10
Forks
21
Merge médio
22min
PRs com merge (30d)
1

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem 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 kernelci/kernelci-api

Todas as issues de kernelci/kernelci-api

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

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