KCIDB - Submit

Submit

Submit KCIDB data (checkouts, builds, and tests). Objects are validated against the extended KCIDB schema, then created or updated in DataWarehouse. (Auth Required)

POST /api/1/kcidb/submit

Request body must be JSON with a top-level data property containing a valid KCIDB document (version, and optional checkouts, builds, and tests arrays). Checkouts must be submitted before builds, and builds before tests.

{
    "data": {
        "version": {
            "major": 4,
            "minor": 0
        },
        "checkouts": [
            {
                "origin": "redhat",
                "id": "redhat:repo.git@decd6167bf4f6bec1284006d0522381b44660df3"
            }
        ],
        "builds": [
            {
                "origin": "redhat",
                "checkout_id": "redhat:repo.git@decd6167bf4f6bec1284006d0522381b44660df3",
                "id": "redhat:build-1"
            }
        ],
        "tests": [
            {
                "origin": "redhat",
                "build_id": "redhat:build-1",
                "id": "redhat:test-1"
            }
        ]
    }
}
Field Type Required Description
data object Yes KCIDB document to submit.

On success, responds with 201 Created and an empty JSON object:

{}

On validation or processing errors, responds with 400 Bad Request:

{
    "errors": [
        "Expected property \"data\" with a valid KCIDB content"
    ]
}

When an object references a missing parent, each error is a list with the object type, object id, and error message:

{
    "errors": [
        [
            "builds",
            "redhat:1234",
            "KCIDBCheckout id=redhat:5678 is not present in the DB"
        ]
    ]
}

Valid objects may still be committed when the payload mixes valid and invalid items; the response status remains 400 Bad Request if any errors occurred.