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"
}
}
}