kernelci / kernelci/kernelci-api

[RFC] Patch building and Webhooks API

Offen
#307 22 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
10
Forks
21
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

No files, tests, or entry points are named. Start by reading the RFC and its unresolved Discussion questions, then map the four requested implementation areas: the Patchwork webhook, patch metadata, mbox application, and check updates. Done requires an agreed webhook contract and support for building, testing, and reporting patch results.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
git, github, gitlab, python
Bereich
api, backend, backend-api-design
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.