- we do not expect the WASM module to do some direct interactions with the Git repository (no I/O at this point), Tuleap will give per-processed information to the WASM modules, it could be something like this:
{
"refname": "<given_refname>",
"objects": [
{"type": "<type of object as given by git cat-file -t <ref>>", "content": "<content of the object as given by git cat-file <type> <ref>>"},
...
]
}
- when everything if fine the WASM module should return
{"rejection_message": null}
- when rejecting something the WASM module should return
{"rejection_message": "some string explaining why this should be rejected"}
- WASM modules needs to be put under
/var/lib/tuleap/wasm/git/pre-receive-<repository_id>.wasm
to be found
- parts of the infrastructure loading and executing WASM code must be put in the Tuleap core (i.e. under
src/common/
), parts specific to Git must be put in the Git plugin