{"id":26792972,"url":"https://github.com/osbuild/koji-osbuild","last_synced_at":"2025-04-22T15:11:50.092Z","repository":{"id":37724080,"uuid":"292809243","full_name":"osbuild/koji-osbuild","owner":"osbuild","description":"OSBuild integration with Koji","archived":false,"fork":false,"pushed_at":"2024-12-17T13:58:13.000Z","size":1758,"stargazers_count":11,"open_issues_count":9,"forks_count":16,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-29T16:18:15.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osbuild.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-04T09:38:35.000Z","updated_at":"2024-12-17T13:58:18.000Z","dependencies_parsed_at":"2024-10-28T11:25:17.834Z","dependency_job_id":"3e4222d6-503f-43aa-9df3-bcbf9961aa2a","html_url":"https://github.com/osbuild/koji-osbuild","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fkoji-osbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fkoji-osbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fkoji-osbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osbuild%2Fkoji-osbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osbuild","download_url":"https://codeload.github.com/osbuild/koji-osbuild/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250264909,"owners_count":21402004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-29T16:18:21.791Z","updated_at":"2025-04-22T15:11:50.075Z","avatar_url":"https://github.com/osbuild.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Koji osbuild\n\nThis project provides osbuild integration with Koji. It makes it possible\nto build images and other OS artifacts via osbuild-composer through koji,\nThis is done via three plugins:\n\n - Koji **hub** plugin: Provides a new XMLRPC API endpoint that clients\n   can use to create new `osbuildImage` Koji tasks.\n\n - Koji **builder** plugin: Handles `osbuildImage` Koji tasks and will talk\n   to osbuild-composer to create new composes via composer's Koji API.\n\n - Koji **cli** plugin: Adds a new `osbuild-image` to the existing `koji`\n   command line client. This will then use the new XMLRPC API to request a\n   new compose.\n\nThe following image visualizes the overall architecture and integration\npoints of `koji-osbuild` with `koji`/`brew` and Composer:\n\n![overview](docs/koji-osbuild.svg)\n\n## Installation\n\nThe plugins need to be installed on the machines running the corresponding\nservices. Installation via RPMs is recommended. The RPMs for the latest git\ncommit of the source can be easily created via meson:\n\n```\nmeson . build\nninja -C build rpms\n```\n\nThe RPMs should then be in `build/rpmbuild`. The hub and builder plugin\nalso need to be explicitly enabled in the respective configuration files.\nThe *hub* plugin configuration file at `/etc/koji-hub/hub.conf`. The\nplugin is enabled by adding `osbuild` to the `Plugins` directive. The\n*builder*: configuration file at `/etc/kojid/kojid.conf`. Here `osbuild`\nneeds to be added to the `plugin` directive.\nFor an example, see the test container configuration files\n[`hub.conf`](test/container/hub/hub.conf) for the hub and\n[`kojid.conf`](container/builder/kojid.conf) for the builder.\n\nAdditionally, an osbuild-composer instance, at least version 21, with the\nkoji API enabled needs to be running and reachable via TCP from the host\nrunning the koji builder.\n\n\n## Configuration\n\nThe builder plugin needs to be configured via a `builder.conf` file that\ncan be located in either `/usr/share/koji-osbuild` or `/etc/koji-osbuild`.\n\n```ini\n[composer]\n# The host, port and transport (https vs http) of osbuild composer\n# NB: The 'https' transport is required for SSL/TLS authorization\nserver = https://composer.osbuild.org\n\n# Authorization via client side certificates: can be either a pair of\n# certificate and key files separated by comma or a file combining both.\nssl_cert = /share/worker-crt.pem, /share/worker-key.pem\n\n# Verification of the server side: either a boolean (True / False) to\n# enable or disable verification, or a path to a CA_BUNDLE file or a\n# directory containing certificates of trusted CAs.\nssl_verify = /share/worker-ca.pem\n\n# URI of proxy that's used for all composer requests including requests to\n# an OAuth server if OAuth is enabled. Note that this proxy isn't used\n# to route any requests for Koji hub.\nproxy = http://squid.example.com:3128\n\n[composer:oauth]\n# Authorization via OAuth2/SSO, as alternative to client side certs.\n# The \"Client Credentials Grant\" (RFC 6749 section 4.4) flow is used,\n# which requires the client id and secret to be specified as well as\n# the endpoint of where to obtain tokens.\n\n# String that uniquely identifies the client (RFC 6749, 2.2).\nclient_id = koji\n\n# Secret corresponding to the client id.\nclient_secret = koji\n\n# URL to the endpoint that will provide the token.\ntoken_url = https://localhost:8081/token\n\n[koji]\n# The URL to the koji hub XML-RPC endpoint\nserver = https://koji.fedoraproject.org/kojihub\n```\n\n\n## Development\n\nSee [`HACKING.md`](HACKING.md) for how to develop and test this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosbuild%2Fkoji-osbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosbuild%2Fkoji-osbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosbuild%2Fkoji-osbuild/lists"}