{"id":42761186,"url":"https://github.com/starwit/sae-stage-template","last_synced_at":"2026-01-29T20:34:01.737Z","repository":{"id":226631067,"uuid":"769208283","full_name":"starwit/sae-stage-template","owner":"starwit","description":"A starter for an SAE stage implementation.","archived":false,"fork":false,"pushed_at":"2025-11-26T18:10:16.000Z","size":52,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-29T14:50:07.973Z","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":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/starwit.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-08T15:07:44.000Z","updated_at":"2025-10-08T14:50:44.000Z","dependencies_parsed_at":"2025-11-29T02:00:07.652Z","dependency_job_id":null,"html_url":"https://github.com/starwit/sae-stage-template","commit_stats":null,"previous_names":["starwit/sae-stage-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/starwit/sae-stage-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-stage-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-stage-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-stage-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-stage-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/starwit","download_url":"https://codeload.github.com/starwit/sae-stage-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-stage-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28884291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T19:55:09.949Z","status":"ssl_error","status_checked_at":"2026-01-29T19:55:08.490Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-01-29T20:34:00.849Z","updated_at":"2026-01-29T20:34:01.732Z","avatar_url":"https://github.com/starwit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAE stage template\nA starter for a SAE stage implementation.\\\n\\\nThis repository will help you implementing a SAE pipeline stage by putting all the necessary infrastructure in place.\n\n# How-to start\n\n## Create repository from template\nCreate your own repository using this template. It is good practice to prefix the repo name with `sae-` and use a concise name that describes what the stage does.\\\n**Careful:** Check the repository owner, it defaults to your main user account.\n\n## Check prerequisites\nIn order to work with this repository, you need to ensure the following steps:\n- Install Poetry\n- Install Docker with compose plugin\n- Clone main SAE repository (you will most likely need a running SAE to do anything useful): https://github.com/starwit/starwit-awareness-engine\n\n## Replace template name\nTo make this repository entirely belong to your new shiny stage, you have to replace various forms of `mystage` in a few places. \nRun `set_name.sh` and enter the various forms of your new name when prompted. The script will set everything up for you and then delete itself.\nIf you made a mistake either reclone the repository or run `git reset --hard \u0026\u0026 git clean -fd`\n\n## Setup\n- Run `poetry install`, this should install all necessary dependencies\n- Start docker compose version of the SAE (see here: https://github.com/starwit/starwit-awareness-engine/blob/main/docker-compose/README.md)\n- Run `poetry run python main.py`. If you see log messages like `Received SAE message from pipeline`, everything works as intended.\n\n## Start hacking :)\n\n# Helpful implementation hints\n\n## Configuration\nThis template employs pydantic-settings for configuration handling. On startup, the following happens:\n1. Load defaults (see `config.py`)\n2. Read settings `settings.yaml` if it exists\n3. Search through environment variables if any match configuration parameters (converted to upper_snake_case, nested levels delimited by `__`), overwriting the corresponding setting\n4. Validate settings hierarchy if all necessary values are filled, otherwise Pydantic will throw a hopefully helpful error\n\nThe `settings.template.yaml` should always reflect a correct and fully fledged settings structure to use as a starting point for users. \n\n## Github Workflows and Versioning\n\nThe following Github Actions are available:\n\n* [PR build](.github/workflows/pr-build.yml): Builds python project for each pull request to main branch. `poetry install` and `poetry run pytest` are executed, to compile and test python code.\n* [Build and publish latest image](.github/workflows/build-publish-latest.yml): Manually executed action. Same like PR build. Additionally puts latest docker image to internal docker registry.\n* [Create release](.github/workflows/create-release.yml): Manually executed action. Creates a github release with tag, docker image in internal docker registry, helm chart in chartmuseum by using and incrementing the version in pyproject.toml. Poetry is updating to next version by using \"patch, minor and major\" keywords. If you want to change to non-incremental version, set version in directly in pyproject.toml and execute create release afterwards.\n\n## Dependabot Version Update\n\nWith [dependabot.yml](.github/dependabot.yml) a scheduled version update via Dependabot is configured. Dependabot creates a pull request if newer versions are available and the compilation is checked via PR build.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarwit%2Fsae-stage-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarwit%2Fsae-stage-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarwit%2Fsae-stage-template/lists"}