{"id":26243561,"url":"https://github.com/teemtee/web","last_synced_at":"2026-03-13T22:34:27.281Z","repository":{"id":228259910,"uuid":"721131235","full_name":"teemtee/web","owner":"teemtee","description":"Web app for checking tmt tests, plans and stories","archived":false,"fork":false,"pushed_at":"2025-03-18T13:25:08.000Z","size":128,"stargazers_count":1,"open_issues_count":1,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-30T00:23:25.070Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teemtee.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-20T12:22:56.000Z","updated_at":"2025-03-11T09:41:27.000Z","dependencies_parsed_at":"2024-10-24T14:43:50.739Z","dependency_job_id":"9d4f0ef4-01d9-42f6-8d41-1f9162b2be17","html_url":"https://github.com/teemtee/web","commit_stats":null,"previous_names":["teemtee/web"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemtee%2Fweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemtee%2Fweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemtee%2Fweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemtee%2Fweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teemtee","download_url":"https://codeload.github.com/teemtee/web/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250448000,"owners_count":21432164,"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-13T10:28:41.993Z","updated_at":"2026-03-13T22:34:27.271Z","avatar_url":"https://github.com/teemtee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tmt web\n\nWeb application for checking tmt tests, plans and stories.\n\n## Run instructions\n\nTo run the service locally for development purposes, use the following command:\n\n```bash\npodman-compose up --build\n```\n\nAdd `-d` for the service to run in the background.\n\nFor quick development without container setup:\n\n```bash\nCLONE_DIR_PATH=/var/tmp/test uvicorn tmt_web.api:app --reload --host 0.0.0.0 --port 8000\n```\n\n## Tests\n\nTo run the tests, use the `pytest` command (assuming the service is running).\n\nAlternatively, if you have `hatch` installed, `hatch run dev:test` command will\nrebuild, start the service and run the tests.\n\nRun `hatch env show` to see the list of available environments and their scripts.\n\n## Environment variables\n\n- `VALKEY_URL` - *optional*, connection URL for Valkey which is used for storing task state,\n  default value is: `valkey://localhost:6379`\n- `CLONE_DIR_PATH` - *optional*, specifies the path where the repositories will\n  be cloned, default value is: `./.repos/`\n- `API_HOSTNAME` - *required*, specifies the hostname of the API, used for\n  creating the callback URL to the service\n\n## Architecture\n\nThe application uses FastAPI's built-in background tasks for asynchronous processing and\nValkey for task state storage. This architecture provides a lightweight and efficient\nsolution for handling long-running tasks without requiring external task queue infrastructure.\n\n## API\n\nThe API version is defined by prefix in url, e.g. `/v0.1/status`.\n\nIf we want to display metadata for both tests and plans, we can combine\nthe `test-*` and `plan-*` options together, they are not mutually\nexclusive.\n\n`test-url` and `test-name`, or `plan-url` and `plan-name` are required.\n\n### `/`\n\nReturns ID of the created background task with additional metadata in JSON\nand callback url for `/status` endpoint, returns the same in HTML format\nif `format` is set to `html`.\n\n  * `test-url` - URL of the repo test is located in - accepts a `string`\n  * `test-ref` - Ref of the repository the test is located in - accepts\n    a `string`, defaults to default branch of the repo\n  * `test-path` - Points to directory where `fmf` tree is stored\n  * `test-name` - Name of the test - accepts a `string`\n\n  * `plan-url` - URL of the repo plan is located in - accepts a `string`\n  * `plan-ref` - Ref of the repository the plan is located in - accepts\n    a `string`, defaults to default branch of the repo\n  * `plan-path` - Points to directory where `fmf` tree is stored\n  * `plan-name` - Name of the plan - accepts a `string`\n\n  * `format` - Format of the output - accepts a `string`, default is\n    `json`, other options are `yaml`, `html` (serves as a basic\n    human-readable output format)\n\n### `/status`\n\nReturns a status of the tmt object being processed by the backend.\n\n  * `task_id` - ID of the task - accepts a `string`\n\n### `/status/html`\n\nReturns a status of the tmt object being processed by the backend in a\nsimple HTML formatting.\n\n  * `task_id` - ID of the task - accepts a `string`\n\n### `/health`\n\nReturns a health status of the service.\n\n## Attribution\n\nThe web interface design is based on the work of\n[Fedora Design team](https://gitlab.com/fedora/design/team),\nlicensed under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).\nThe design elements include typography, color scheme, and visual\ncomponents adapted from the Fedora design guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteemtee%2Fweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteemtee%2Fweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteemtee%2Fweb/lists"}