Welcome to koji-fedmsg-plugin’s documentation!

This project defines fedora-messages sent by Fedora’s build system koji.

Included in this library are the message schema for those messages, and a handy Python class that can be used to send and receive those messages.

Build Messages

Python objects

JSON schemas

buildsys.build.state.change

{
    "$id": "/v1/buildsys.build.state.change#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "The state of the build changed.",
    "type": "object",
    "properties": {
        "build_id": {
            "type": [
                "null",
                "integer"
            ],
            "description": "build id"
        },
        "old": {
            "type": "integer",
            "description": "previous state"
        },
        "name": {
            "type": "string",
            "description": "name of the package built"
        },
        "task_id": {
            "type": [
                "null",
                "integer"
            ],
            "description": "task id"
        },
        "attribute": {
            "type": "string",
            "description": "attribute"
        },
        "request": {
            "type": [
                "null",
                "array"
            ],
            "description": "build request details",
            "contains": {
                "type": "string"
            }
        },
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "epoch": {
            "type": [
                "null",
                "string",
                "integer"
            ],
            "description": "epoch"
        },
        "version": {
            "type": "string",
            "description": "version of the build"
        },
        "owner": {
            "type": [
                "null",
                "integer",
                "string"
            ],
            "description": "name of the package owner"
        },
        "new": {
            "type": "integer",
            "description": "new state"
        },
        "release": {
            "type": "string",
            "description": "release number of the package"
        }
    }
}

Package Messages

Python objects

JSON schemas

buildsys.package.list.change

{
    "$id": "/v1/buildsys.package.list.change#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "A package list changed.",
    "type": "object",
    "properties": {
        "force": {
            "type": [
                "null",
                "boolean"
            ],
            "description": "force"
        },
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "extra_arches": {
            "type": [
                "null",
                "string"
            ],
            "description": "extra arches"
        },
        "package": {
            "type": "string",
            "description": "name of the package updated"
        },
        "update": {
            "type": [
                "null",
                "boolean"
            ],
            "description": "update"
        },
        "owner": {
            "type": [
                "null",
                "string"
            ],
            "description": "name of the package owner"
        },
        "tag": {
            "type": "string",
            "description": "name of the tag"
        },
        "action": {
            "type": "string",
            "description": "name of the action"
        },
        "block": {
            "type": [
                "null",
                "boolean"
            ],
            "description": "block"
        }
    }
}

Repo Messages

Python objects

JSON schemas

buildsys.repo.done

{
    "$id": "/v1/buildsys.repo.done#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "A package repo task was done.",
    "type": "object",
    "properties": {
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "repo_id": {
            "type": "integer",
            "description": "repo id"
        },
        "tag": {
            "type": "string",
            "description": "tag used to generate the repo"
        },
        "tag_id": {
            "type": "integer",
            "description": "tag id of the tag used to generate the repo"
        }
    }
}

buildsys.repo.init

{
    "$id": "/v1/buildsys.repo.init#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "A package repo task is initialized.",
    "type": "object",
    "properties": {
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji."
        },
        "repo_id": {
            "type": "integer",
            "description": "repo id"
        },
        "tag": {
            "type": "string",
            "description": "tag used to generate the repo"
        },
        "tag_id": {
            "type": "integer",
            "description": "tag id of the tag used to generate the repo"
        }
    }
}

RPM Messages

Python objects

JSON schemas

buildsys.rpm.sign

{
    "$id": "/v1/buildsys.rpm.sign#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "An rpm build was signed by the build system.",
    "type": "object",
    "properties": {
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "sigkey": {
            "type": "string",
            "description": "the signing key"
        },
        "rpm": {
            "type": "object",
            "description": "An rpm build",
            "properties": {
                "build_id": {
                    "type": "integer",
                    "description": "koji build id"
                },
                "name": {
                    "type": "string",
                    "description": "name of the rpm"
                },
                "extra": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "extra"
                },
                "arch": {
                    "type": "string",
                    "description": "build architecture"
                },
                "buildtime": {
                    "type": "integer",
                    "description": "build timestamp"
                },
                "id": {
                    "type": "integer",
                    "description": "id"
                },
                "epoch": {
                    "type": [
                        "null",
                        "string",
                        "integer"
                    ],
                    "description": "epoch"
                },
                "version": {
                    "type": "string",
                    "description": "rpm version"
                },
                "metadata_only": {
                    "type": "boolean",
                    "description": "metadata only"
                },
                "external_repo_id": {
                    "type": "integer",
                    "description": "external repo id"
                },
                "release": {
                    "type": "string",
                    "description": "rpm release number"
                },
                "size": {
                    "type": "integer",
                    "description": "size"
                },
                "buildroot_id": {
                    "type": "integer",
                    "description": "buildroot id"
                },
                "external_repo_name": {
                    "type": "string",
                    "description": "external_repo_name"
                },
                "payloadhash": {
                    "type": "string",
                    "description": "payload hash"
                }
            }
        },
        "build": {
            "type": "object",
            "description": "build details",
            "properties": {
                "cg_id": {
                    "type": [
                        "null",
                        "integer",
                        "string"
                    ],
                    "description": "cg id"
                },
                "package_name": {
                    "type": "string",
                    "description": "package name"
                },
                "extra": {
                    "type": "object",
                    "description": "extra",
                    "properties": {
                        "source": {
                            "type": "object",
                            "description": "build source",
                            "properties": {
                                "original_url": {
                                    "type": "string",
                                    "description": "dist git url"
                                }
                            }
                        }
                    }
                },
                "creation_time": {
                    "type": "number",
                    "description": "koji build creation time"
                },
                "completion_time": {
                    "type": "number",
                    "description": "koji build completion time"
                },
                "package_id": {
                    "type": "integer",
                    "description": "package id"
                },
                "cg_name": {
                    "type": [
                        "null",
                        "integer",
                        "string"
                    ],
                    "description": "cg name"
                },
                "id": {
                    "type": "integer",
                    "description": "id"
                },
                "build_id": {
                    "type": "integer",
                    "description": "build id"
                },
                "epoch": {
                    "type": [
                        "null",
                        "integer",
                        "string"
                    ],
                    "description": "epoch"
                },
                "source": {
                    "type": "string",
                    "description": "dist git url"
                },
                "state": {
                    "type": "integer",
                    "description": "koji build state"
                },
                "version": {
                    "type": "string",
                    "description": "rpm version"
                },
                "owner_id": {
                    "type": "integer",
                    "description": "owner id"
                },
                "owner_name": {
                    "type": "string",
                    "description": "owner name"
                },
                "nvr": {
                    "type": "string",
                    "description": "rpm name version release"
                },
                "start_time": {
                    "type": "integer",
                    "description": "build start time"
                },
                "creation_event_id": {
                    "type": "integer",
                    "description": "creation event id"
                },
                "volume_id": {
                    "type": "integer",
                    "description": "volume id"
                },
                "creation_ts": {
                    "type": "number",
                    "description": "creation timestamp"
                },
                "name": {
                    "type": "string",
                    "description": "name"
                },
                "task_id": {
                    "type": "integer",
                    "description": "koji task id"
                },
                "volume_name": {
                    "type": "string",
                    "description": "volume name"
                },
                "release": {
                    "type": "string",
                    "description": "rpm release number"
                }
            }
        },
        "sighash": {
            "type": "string",
            "description": "signing hash"
        }
    }
}

Tag Messages

Python objects

JSON schemas

buildsys.tag

{
    "$id": "/v1/buildsys.tag#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "A package is tagged.",
    "type": "object",
    "properties": {
        "build_id": {
            "type": "integer",
            "description": "build id"
        },
        "name": {
            "type": "string",
            "description": "package name"
        },
        "tag_id": {
            "type": "integer",
            "description": "tag id"
        },
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "tag": {
            "type": "string",
            "description": "name of the tag"
        },
        "user": {
            "type": "string",
            "description": "name of the user that trigger the build"
        },
        "version": {
            "type": "string",
            "description": "version of the build"
        },
        "owner": {
            "type": "string",
            "description": "name of the package owner"
        },
        "release": {
            "type": "string",
            "description": "release number of the package"
        }
    }
}

buildsys.untag

{
    "$id": "/v1/buildsys.untag#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "A package is untagged.",
    "type": "object",
    "properties": {
        "build_id": {
            "type": "integer",
            "description": "build id"
        },
        "name": {
            "type": "string",
            "description": "package name"
        },
        "tag_id": {
            "type": "integer",
            "description": "tag id"
        },
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "tag": {
            "type": "string",
            "description": "name of the tag"
        },
        "user": {
            "type": "string",
            "description": "name of the user that trigger the build"
        },
        "version": {
            "type": "string",
            "description": "version of the build"
        },
        "owner": {
            "type": "string",
            "description": "name of the package owner"
        },
        "release": {
            "type": "string",
            "description": "release number of the package"
        }
    }
}

Task Messages

Python objects

JSON schemas

buildsys.task.state.change

{
    "$id": "/v1/buildsys.task.state.change#",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "description": "A koji task state changed.",
    "type": "object",
    "properties": {
        "info": {
            "type": "object",
            "description": "task info",
            "properties": {
                "parent": {
                    "type": [
                        "null",
                        "array"
                    ],
                    "description": "parent tasks"
                },
                "completion_time": {
                    "type": "number",
                    "description": "completion time"
                },
                "start_time": {
                    "type": "number",
                    "description": "start time"
                },
                "request": {
                    "type": [
                        "null",
                        "array"
                    ],
                    "description": "task request details",
                    "contains": {
                        "type": "string"
                    }
                },
                "waiting": {
                    "type": "boolean",
                    "description": "Is the task waiting or not"
                },
                "awaited": {
                    "type": "null",
                    "description": "awaited"
                },
                "id": {
                    "type": "integer",
                    "description": "id"
                },
                "priority": {
                    "type": "integer",
                    "description": "priority"
                },
                "channel_id": {
                    "type": "integer",
                    "description": "channel_id"
                },
                "state": {
                    "type": "integer",
                    "description": "task state"
                },
                "create_time": {
                    "type": "number",
                    "description": "create time"
                },
                "result": {
                    "type": "null",
                    "description": "result"
                },
                "owner": {
                    "type": [
                        "null",
                        "string",
                        "integer"
                    ],
                    "description": "owner name or id"
                },
                "host_id": {
                    "type": "integer",
                    "description": "host id"
                },
                "method": {
                    "type": "string",
                    "description": "task method"
                },
                "label": {
                    "type": "null",
                    "description": "label"
                },
                "arch": {
                    "type": "string",
                    "description": "task specific architecture"
                },
                "children": {
                    "type": [
                        "null",
                        "array"
                    ],
                    "description": "task childrens"
                }
            }
        },
        "old": {
            "type": "string",
            "description": "previous task state"
        },
        "attribute": {
            "type": "string",
            "description": "attribute"
        },
        "id": {
            "type": "integer",
            "description": "task id"
        },
        "instance": {
            "type": "string",
            "description": "distinguish between messages from primary and secondary koji"
        },
        "owner": {
            "type": "string",
            "description": "name of the package owner"
        },
        "new": {
            "type": "string",
            "description": "name of the new task state"
        },
        "srpm": {
            "type": "string",
            "description": "name of the source rpm"
        },
        "method": {
            "type": "string",
            "description": "name of the task method"
        }
    }
}

Indices and tables