{"id":34599817,"url":"https://github.com/titaniumcoder/dependencytrack-sync-controller","last_synced_at":"2026-03-13T21:31:48.451Z","repository":{"id":329812663,"uuid":"1120651151","full_name":"titaniumcoder/dependencytrack-sync-controller","owner":"titaniumcoder","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-21T21:48:21.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T08:48:42.208Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/titaniumcoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-12-21T16:59:40.000Z","updated_at":"2025-12-21T21:48:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/titaniumcoder/dependencytrack-sync-controller","commit_stats":null,"previous_names":["titaniumcoder/dependencytrack-sync-controller"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/titaniumcoder/dependencytrack-sync-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titaniumcoder%2Fdependencytrack-sync-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titaniumcoder%2Fdependencytrack-sync-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titaniumcoder%2Fdependencytrack-sync-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titaniumcoder%2Fdependencytrack-sync-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/titaniumcoder","download_url":"https://codeload.github.com/titaniumcoder/dependencytrack-sync-controller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titaniumcoder%2Fdependencytrack-sync-controller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30476281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T20:45:58.186Z","status":"ssl_error","status_checked_at":"2026-03-13T20:45:20.133Z","response_time":60,"last_error":"SSL_read: 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":"2025-12-24T12:26:35.584Z","updated_at":"2026-03-13T21:31:48.439Z","avatar_url":"https://github.com/titaniumcoder.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dependency-Track Version Controller\n\nThis is for now a blank repo. The idea is that it solves a problem I saw in a project\nwhere we have separate build and deployment pipelines. Meaning that for example you have\na new build and it gets deployed directly into a development environment\nafter it has been tested in that environment it is moved on to the next environment\n(staging, testing, ...) and after it has been quality-tested it goes into the \nreal production environment.\n\nThe idea of this controller is to observe the deployments and then update\ndependency-tracker versions (which are created using SBOM during the build)\nso that it can immediately be tracked which environment has currently which version\nand which dependencies.\n\n## Thoughts\n\n* Matching dependency-track names with kubernetes: `app.kubernetes.io/name` (but may need a mapping using a crd)\n* Matching versions: `app.kubernetes.io/version` (what to do if there is no version`?)\n* Matching environment: `security.dependencytrack/environment` may be\n* config: needs a CRD: base url, features activated, timeouts, ...\n* scale-to-zero / version change / delete: \n  * remove env tag\n  * add customproperty: env-???:lastSeenAt=\n* Trigger: deployment status, meaning\n  * status.availableReplicas == status.replicas (needs validation)\n  * `Progressing` and `Available` conditgions both `true`\n* Calculate diff between \"current active version\" and \"known deployed versions\" \n  * repeated calculations should give the same result\n  * execute operations against dt to sync\n  * config set a version that has no more active environments to inactive? if it ever was active?\n* Idempotency and resync (`ResyncPeriod` I think)\n* Does it make sense to have a sync state?\n\n## Local development (docker desktop or similar)\n\nYou need kubernetes and some ingress controller (nginx).\n\n### Dependency-Track installation\n\nAssuming you have installed Docker Desktop. There is an example for minikube and a description on the DTrack Helm Github Repo for any other scenario.\n\nFirst, create the persistent volume (for data persistence across restarts):\n\n```bash\nkubectl apply -f examples/dtrack-helm/persistent-volume.yaml\n```\n\nThen install DependencyTrack:\n\n```bash\nhelm install dtrack dependency-track/dependency-track -f examples/dtrack-helm/local-docker-desktop.yaml --namespace dtrack --create-namespace\n```\n\n### Dependency-Track Updates\n\n```bash\nhelm upgrade dtrack dependency-track/dependency-track --namespace dtrack -f examples/dtrack-helm/local-docker-desktop.yaml\n```\n\n### Dependency-Track Uninstall\n\n```bash\nhelm uninstall dtrack --namespace dtrack\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitaniumcoder%2Fdependencytrack-sync-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftitaniumcoder%2Fdependencytrack-sync-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitaniumcoder%2Fdependencytrack-sync-controller/lists"}