{"id":13765901,"url":"https://github.com/fedora-infra/koschei","last_synced_at":"2025-07-28T05:08:42.507Z","repository":{"id":18092368,"uuid":"21158347","full_name":"fedora-infra/koschei","owner":"fedora-infra","description":"Continuous integration for Fedora packages","archived":false,"fork":false,"pushed_at":"2025-07-08T05:24:27.000Z","size":4134,"stargazers_count":37,"open_issues_count":50,"forks_count":15,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-08T06:53:05.890Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fedora-infra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-06-24T08:56:23.000Z","updated_at":"2025-07-08T05:24:30.000Z","dependencies_parsed_at":"2024-04-16T20:57:56.634Z","dependency_job_id":"daf2d3fa-98d3-4bcd-9c1c-fcd684a89dac","html_url":"https://github.com/fedora-infra/koschei","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/fedora-infra/koschei","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-infra%2Fkoschei","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-infra%2Fkoschei/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-infra%2Fkoschei/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-infra%2Fkoschei/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedora-infra","download_url":"https://codeload.github.com/fedora-infra/koschei/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-infra%2Fkoschei/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267464522,"owners_count":24091505,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-08-03T16:00:48.312Z","updated_at":"2025-07-28T05:08:42.485Z","avatar_url":"https://github.com/fedora-infra.png","language":"Python","funding_links":[],"categories":["Linux","Python"],"sub_categories":["Red Hat/Fedora"],"readme":"[![Build Status](https://travis-ci.org/fedora-infra/koschei.svg?branch=master)](https://travis-ci.org/fedora-infra/koschei)\n[![test coverage](https://img.shields.io/codecov/c/github/fedora-infra/koschei/master.svg)](https://codecov.io/gh/fedora-infra/koschei)\n\n\n\nKoschei\n=======\n\nKoschei is a software for running a service for scratch-rebuilding RPM\npackages in Koji instance when their build-dependencies change or\nafter some time elapse.\n\n\nDependencies\n------------\n\nPython code dependencies:\n- alembic\n- fedora_messaging\n- flask\n- flask-sqlalchemy\n- hawkey\n- humanize\n- jinja2\n- koji\n- librepo\n- psycopg2\n- rpm\n- sqlalchemy\n\nTest dependencies (optional):\n- nose\n- mock\n\nInfrastructure:\n- httpd with mod_wsgi (other WSGI servers should work too, but were not tested)\n- postgresql (can be external service)\n- koji hub (can be external service)\n- fedora-messaging (optional)\n\n\nConfiguration\n-------------\nThe configuration is formed by merging default configuration values and the\nlocal configuration in `/etc/koschei/`. The backend, frontend and admin script\nhave separate configuration files in `/etc/koschei`, named `config-backend.cfg`,\n`config-frontend.cfg` and `config-admin.cfg`, respectively. The cfg files are\nregular Python files that expect assignment to `config` dictionary variable. The\ndefault configuration file is stored at `/usr/share/koschei/config.cfg` and\ncontains comments documenting possible configuration options. Keep in mind that\nthe merging of configurations is recursive, it merges all dictionaries, not\njust the top-level ones.\n\n\nDeployment\n----------\nFor production deployment use Koschei container images.\n\nKoschei is split into multiple components that can function\nindependently - backend, frontend and admin.  Each are configured\nseparately and can be deployed in different containers on different\nmachines.\n\nSetting up the database:\n- Install PostgreSQL server with `dnf install postgresql-server`. Other\n  database servers are not supported and won't work.\n- Execute `postgresql-setup initdb` to initialize the database\n- Enable the service with `systemctl enable postgresql-server`\n  and start it with `systemctl start postgresql-server`\n- Create the database with `createdb koschei`\n- If your database is on separate host or you didn't follow the steps here\n  exactly, you'll need to configure the database connection in respective\n  configuration files of backend, frontend and admin (see configuration section).\n- Populate DB schema with `koschei-admin create-db`\n- Create at least one package collection using `koschei-admin create-collection`\n  (see its help for parameters)\n\n\nKoschei administration script `koschei-admin` is independent from\nother services.  It is used to perform various administration tasks\nsuch as adding packages or creating collections. See its help (`-h`\noption) for list of commands and help of individual commands (such as\n`koschei-admin create-collection -h`).\n\nKoschei backend consists of multiple services that can be ran\nseparately, for example in different containers.\nFor fully working instance you'll want to run all of them, for passive\ninstance that doesn't submit builds, you'll want to skip koschei-scheduler.\nFor submiting builds, you need to install a koji certificate at\n`/home/koschei/.fedora.cert` (and also the CA and server CA certificates). The\ncert files have the same layout as when generated using fedora-cert and using\nfedpkg or koji client. If you want to use different locations, you can specify\nthem in the `config-backend.cfg` file.\n\nThe web frontend is a WSGi application, which can be run within Apache\nhttpd server.  Koschei ships httpd configuration file that should work\nout-of-the-box as you start httpd. You should override the application\nsecret used for authentication in `/etc/koschei/config-frontend.cfg`.\n\n\nUpdating\n--------\nAfter Koschei update to a newer version, you need to manually stop the\nservices (including httpd) and execute DB migrations. Migrations are\nexecuted by `koschei-admin alembic upgrade head`.  Then the services\ncan be started again.\n\n\nCopying\n-------\n\nKoschei is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation, either version 2 of the License, or (at your\noption) any later version.\n\nKoschei is distributed in the hope that it will be useful, but WITHOUT\nANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\nFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\nfor more details.\n\nA copy of the GNU General Public License is contained in the\nLICENSE.txt file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedora-infra%2Fkoschei","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedora-infra%2Fkoschei","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedora-infra%2Fkoschei/lists"}