{"id":15127505,"url":"https://github.com/bozokopic/boxhatter","last_synced_at":"2026-02-04T04:33:37.492Z","repository":{"id":57416164,"uuid":"95991179","full_name":"bozokopic/boxhatter","owner":"bozokopic","description":"Container based continuous integration server/executor","archived":false,"fork":false,"pushed_at":"2022-08-29T12:03:27.000Z","size":147,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-17T01:41:40.266Z","etag":null,"topics":["container","continuous-integration","docker","podman"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bozokopic.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-01T22:46:34.000Z","updated_at":"2022-03-28T18:58:48.000Z","dependencies_parsed_at":"2022-09-05T05:11:09.554Z","dependency_job_id":null,"html_url":"https://github.com/bozokopic/boxhatter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bozokopic/boxhatter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bozokopic%2Fboxhatter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bozokopic%2Fboxhatter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bozokopic%2Fboxhatter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bozokopic%2Fboxhatter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bozokopic","download_url":"https://codeload.github.com/bozokopic/boxhatter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bozokopic%2Fboxhatter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262981022,"owners_count":23394450,"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":["container","continuous-integration","docker","podman"],"created_at":"2024-09-26T02:04:41.576Z","updated_at":"2026-02-04T04:33:37.465Z","avatar_url":"https://github.com/bozokopic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Box Hatter\n==========\n\nBox Hatter is continuous integration server/executor. It provides isolated\nexecution environments, for running automated actions, as containers managed\nby podman or docker.\n\nKey features:\n\n    * automated projects based on git repositories\n    * containers as execution runners\n    * per project configuration as YAML file inside project's repository\n    * web based control and monitoring interface (without JavaScript)\n    * webhook/periodic execution triggering\n    * CLI executor\n\n\nRuntime requirements\n--------------------\n\n* python \u003e=3.8\n* git\n* podman or docker\n\n\nInstall\n-------\n\n::\n\n    $ pip install boxhatter\n\n\nRunning\n-------\n\nBox Hatter enables execution of actions described by simple YAML files which\ncontain container image name and Posix shell execution script. Actions files\nare stored as part of git repositories (default name of action file is\n`.boxhatter.yaml`, stored in root of git working tree).\n\nThese actions can be executed with::\n\n    $ boxhatter execute \u003cpath\u003e\n\nwhere ``\u003cpath\u003e`` is path to git repository containing action definition.\nReferenced git repository can be local or remote.\n\nAdditionally, Box Hatter can be run as daemon providing web server interface::\n\n    $ boxhatter server\n\nWhen run as server, Box Hatter periodically lists configured git repository\nreferences, and schedules action executions if new commits are available.\nNew commit checking can also be triggered by webhooks available at listening\n`/repo/\u003crepo_name\u003e/webhook` URL path (``\u003crepo_name\u003e`` is configured repository\nname).\n\nBox Hatter server provides basic web GUI which can be used for monitoring\naction executions and scheduling new executions based on user provided\ngit reference.\n\nAction and server configurations are defined and documented by JSON schemas\n`\u003cschemas_json/action.yaml\u003e`_ and `\u003cschemas_json/server.yaml\u003e`_.\n\nFor additional options, see::\n\n    $ boxhatter --help\n\n\nConfiguration example\n---------------------\n\n* `.boxhatter.yaml`\n\n    ::\n\n        image: alpine\n        command: |\n            echo \"hello $WHO\"\n\n* `server.yaml`\n\n    ::\n\n        repos:\n            example:\n                url: path/to/example/repository\n                env:\n                    WHO: world\n\n\nBuild\n-----\n\nBuild tool used for Box Hatter is pydoit (`\u003chttp://pydoit.org\u003e`_). It can be\ninstalled together with other python dependencies by running::\n\n    $ pip install -r requirements.pip.dev.txt\n\nFor listing available doit tasks, use::\n\n    $ doit list\n\nDefault task::\n\n    $ doit\n\ncreates `build` folder containing Box Hatter distribution.\n\n\nLicense\n-------\n\nboxhatter - continuous integration server/executor\n\nCopyright (C) 2017-2022  Bozo Kopic\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbozokopic%2Fboxhatter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbozokopic%2Fboxhatter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbozokopic%2Fboxhatter/lists"}