{"id":26256634,"url":"https://github.com/netcracker/qubership-git-system-follower","last_synced_at":"2026-03-04T10:00:29.722Z","repository":{"id":272450781,"uuid":"908084155","full_name":"Netcracker/qubership-git-system-follower","owner":"Netcracker","description":"The package manager for Git providers","archived":false,"fork":false,"pushed_at":"2025-12-17T14:44:25.000Z","size":1223,"stargazers_count":3,"open_issues_count":8,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-21T02:59:18.530Z","etag":null,"topics":["qubership-devops"],"latest_commit_sha":null,"homepage":"https://netcracker.github.io/qubership-git-system-follower/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcracker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","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-12-25T04:53:38.000Z","updated_at":"2025-11-20T07:27:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"657a6f39-feb8-4cae-a63f-17cfdde2a3c9","html_url":"https://github.com/Netcracker/qubership-git-system-follower","commit_stats":null,"previous_names":["netcracker/qubership-git-system-follower"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/Netcracker/qubership-git-system-follower","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-git-system-follower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-git-system-follower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-git-system-follower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-git-system-follower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcracker","download_url":"https://codeload.github.com/Netcracker/qubership-git-system-follower/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-git-system-follower/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30078306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","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":["qubership-devops"],"created_at":"2025-03-13T20:18:43.121Z","updated_at":"2026-03-04T10:00:29.629Z","avatar_url":"https://github.com/Netcracker.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cbr /\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/Netcracker/qubership-git-system-follower/master/docs/assets/logo.svg\" alt=\"git-system-follower logo\" width=\"100\"\u003e\n\n# git-system-follower\n**git-system-follower (gsf)** is a package manager for Git providers.\n\n[![PyPI](https://img.shields.io/pypi/v/qubership-git-system-follower)](https://pypi.org/project/qubership-git-system-follower/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qubership-git-system-follower)\n![Build](https://github.com/Netcracker/qubership-git-system-follower/actions/workflows/checks.yaml/badge.svg)\n![Repo Size](https://img.shields.io/github/repo-size/Netcracker/qubership-git-system-follower)\n[![ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n[:eyes: Overview](#eyes-overview) •\n[:wrench: Problems It Solves](#wrench-problems-it-solves) •\n[:star2: Key Features](#star2-key-features) •\n[:dart: Key Beneficiaries](#dart-key-beneficiaries) •\n[:package: Install](#package-install) •\n[:page_with_curl: Docs](#page_with_curl-docs)\n\n\nSupported resources\n\nGit providers\n![GitLab](https://img.shields.io/badge/GitLab-%231E1E1E.svg?style=flat\u0026logo=gitlab\u0026logoColor=orange)\n•\nGear registries\n![Dockerhub](https://img.shields.io/badge/Dockerhub-%230db7ed.svg?style=flat\u0026logo=docker\u0026logoColor=white)\n![Artifactory](https://img.shields.io/badge/Artifactory-%41bf47.svg?style=flat)\n![Nexus](https://img.shields.io/badge/Nexus-%333333.svg?style=flat)\n\n\u003c/div\u003e\n\n## :eyes: Overview\n**gsf** designed to streamline the management of repository branch content and configuration.\nBy automating installations, updates, and removals, **gsf** reduces manual intervention,\nprevents errors, and ensures a consistent state across projects.\n\nIf you’re managing CI/CD pipelines, infrastructure configurations, or any repository-bound tools,\n**gsf** is here to make your work easier, faster, and more reliable using [Git packages, aka Gears](https://netcracker.github.io/qubership-git-system-follower/latest/concepts/gears/).\n\n## :wrench: Problems It Solves\nHave you used versioned `.gitlab-ci.yml` that require a specific file structure in the repository?\n\nIf so, you've probably encountered configuration issues: you forgot to specify\na mandatory parameter, didn't create the right file, and eventually the Pipeline\ndoesn't work. Or maybe everything was working, and suddenly the Pipeline starts crashing\nfor no apparent reason - and you waste time figuring out that someone accidentally changed\nthe startup parameters. And if you need to update an old `.gitlab-ci.yml` to the latest version,\nyou often have to manually migrate through multiple versions.\n\n**gsf solves all of these problems** by automatically managing your config file version\nand structure, eliminating all of these errors and saving you a lot of work:\n\n* **Reduced manual work**  \nEngineers no longer need to handle installation or updates manually — **this is done by the package\ndeveloper**, who knows all the details.\n\n* **Version management**  \nThe package manager supports **migrations between versions**. When updating, it automatically\nperforms intermediate steps, ensuring no errors occur from skipping versions.\n\n* **Preserving user changes**  \nDuring template generation, the tool **carefully compares files** to avoid overwriting\nuser-made changes.\n\n* **Security and control**  \nThe state of all installed packages is stored in a special `.state.yaml` file.\nThe data inside is hashed to **prevent unauthorized changes or misuse**.\n\n## :star2: Key Features\n* **Works only with repository branch content**  \nThe manager operates exclusively within branches, managing the repository’s content\nwithout altering branches, commits, or other repository elements.\n\n* **GitLab-specific support**  \nThe current implementation is tailored to work with GitLab repositories.\n\n* **Package installation**  \nQuickly add new tools or configurations to a repository.\n\n* **Package updates**  \nEnsure smooth migrations between versions.\n\n* **Package removal**  \nCompletely remove configurations and tools without leaving traces.\n\n* **Variable management**  \nAdd or update variables in CI/CD systems like GitLab.\n\n* **Template generation**  \nCreate configuration files while considering existing settings and user changes.\n\n* **Developer interface**  \nProvides API and tools for package developers to define how their packages\nare installed, updated, and removed. This ensures that package developers can define\nmigration steps and other actions with precision.\n\n## :dart: Key Beneficiaries\nDevOps engineers, SRE engineers and other professionals working with GitOps repositories, for example, configuring projects linked to ArgoCD, GitLab CI/CD, or similar tools.\n\n## :package: Install\nSee [Installation Guide](https://netcracker.github.io/qubership-git-system-follower/latest/getting_started/installation/).\n\n## :page_with_curl: Docs\nGet started with the [Quick Start Guide](https://netcracker.github.io/qubership-git-system-follower/latest/getting_started/quickstart/) or plunge into the [complete documentation](https://netcracker.github.io/qubership-git-system-follower/latest/home/).\n\n## :handshake: Contributing \n* [CODE-OF-CONDUCT.md](CODE-OF-CONDUCT.md)  \nThis document outlines the expected behavior for everyone interacting with the project. It fosters a respectful and inclusive environment for developers, contributors, and users.\n\n* [CONTRIBUTING.md](CONTRIBUTING.md)  \nThis document acts as a guide for anyone interested in contributing to the project. It clarifies the contribution process and helps maintainers manage contributions effectively.\n\n* [SECURITY.md](SECURITY.md)  \nThis document focuses on security practices and reporting vulnerabilities. It aims to promote a secure development environment and responsible handling of security issues.\n\n## :arrows_counterclockwise: Changelog\nDetailed changes for each release are documented in the **TBD**.\n\n## :black_nib: License\n[Apache License 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-git-system-follower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcracker%2Fqubership-git-system-follower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-git-system-follower/lists"}