[RFC] Patch building and Webhooks API
@yurinnick y travaille déjà.
Depuis le 1/8/2023.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 20/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- git, github, gitlab, python
- Domaine
- api, backend, backend-api-design
Piste de recherche
Aucun fichier, test ou point d’entrée n’est nommé. Commencez par lire le RFC et ses questions non résolues de Discussion, puis recensez les quatre domaines d’implémentation demandés : le webhook Patchwork, les métadonnées des patchs, l’application de mbox et les mises à jour des checks. Le travail est terminé lorsqu’un contrat de webhook accepté d’un commun accord est défini et que la construction, les tests et le signalement des résultats des patchs sont pris en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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:
- Add
/webhooks/patchworkAPI that will expect certain (TBD) input from Patchwork side, enough to build and test kernel, and report back results - Extend
kernelci.Node,KernelBuildMetadata,kernelci.config.Treewith patch-related fields - Implement patch mbox application on top of git checkout
- 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?datafield or a separate field? - Calculating and passing revision information
- What data should we expect in
/webhooks/patchwork? (Collaboration with Patchwork developers)
- Langage dominant
- Python
- Étoiles
- 10
- Forks
- 21
- Merge moyen
- 22 min
- PR mergées (30 j)
- 1
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de kernelci/kernelci-api
-
Optimize node collection indexesOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
kernelci/kernelci-api#706 ·
-
Components/Maestro/API/Local instance says GET /latest/ should return some JSON, but it doesn'tPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertedocumentation
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
kernelci/kernelci-api#632 · 1 commentaire ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
kernelci/kernelci-api#629 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
kernelci/kernelci-api#608 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
kernelci/kernelci-api#597 · 2 commentaires ·
Toutes les issues de kernelci/kernelci-api
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
pyjanitor-devs/pyjanitor#1758 ·
Les mainteneurs répondent en général sous 1 jour
-
bug ready for review
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
odysseus-dev/odysseus#6641 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
happypawspillaro/happypaws#78 ·
Les mainteneurs répondent en général sous 4 jours
-
pydanty:is-working
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
pydantic/pydantic-ai#10020 ·
Les mainteneurs répondent en général sous 1 jour
-
stdlib type-bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
python/cpython#159044 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour