{"id":13936467,"url":"https://github.com/your-tools/tsrc","last_synced_at":"2025-05-15T13:05:37.378Z","repository":{"id":37738860,"uuid":"97945528","full_name":"your-tools/tsrc","owner":"your-tools","description":"Manage groups of git repositories","archived":false,"fork":false,"pushed_at":"2025-02-03T11:19:45.000Z","size":3090,"stargazers_count":207,"open_issues_count":34,"forks_count":36,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-08T02:47:20.640Z","etag":null,"topics":["cli","git","github","gitlab","python"],"latest_commit_sha":null,"homepage":"https://your-tools.github.io/tsrc/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/your-tools.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":"2017-07-21T12:29:59.000Z","updated_at":"2025-02-27T10:12:37.000Z","dependencies_parsed_at":"2023-12-16T16:31:27.068Z","dependency_job_id":"0ef5e2e6-1ce1-4601-b933-454a27c64f45","html_url":"https://github.com/your-tools/tsrc","commit_stats":null,"previous_names":["dmerejkowsky/tsrc"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/your-tools%2Ftsrc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/your-tools%2Ftsrc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/your-tools%2Ftsrc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/your-tools%2Ftsrc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/your-tools","download_url":"https://codeload.github.com/your-tools/tsrc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"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":["cli","git","github","gitlab","python"],"created_at":"2024-08-07T23:02:42.014Z","updated_at":"2025-05-15T13:05:37.360Z","avatar_url":"https://github.com/your-tools.png","language":"Python","readme":"[![image](https://img.shields.io/github/license/your-tools/tsrc.svg)](https://github.com/your-tools/tsrc/blob/main/LICENSE)\n\n[![image](https://github.com/your-tools/tsrc/workflows/tests/badge.svg)](https://github.com/your-tools/tsrc/actions)\n\n[![image](https://github.com/your-tools/tsrc/workflows/linters/badge.svg)](https://github.com/your-tools/tsrc/actions)\n\n[![image](https://img.shields.io/pypi/v/tsrc.svg)](https://pypi.org/project/tsrc/)\n\n[![image](https://img.shields.io/badge/deps%20scanning-pyup.io-green)](https://github.com/your-tools/tsrc/actions)\n\n# tsrc: manage groups of git repositories\n\n## Overview\n\ntsrc is a command-line tool that helps you manage groups of several git\nrepositories.\n\nIt can be [seen in action on asciinema.org](https://asciinema.org/a/131625).\n\n## Requirements\n\nPython **3.8** or later\n\n## Installation\n\nUse `pipx` (recommended) or `pip` (ok, if you know what you're doing) to install.\n\nPlease see the [installation docs](https://your-tools.github.io/tsrc/getting-started/#installing_tsrc) for more info.\n\n## Usage Example\n\n  - Create a *manifest* repository. (`git@example.org/manifest.git`)\n  - Add a file named `manifest.yml` at the root of the *manifest*\n    repository.\n\n`manifest.yml`:\n\n```yaml\nrepos:\n  - url: git@example.com/foo.git\n    dest: foo\n\n  - url: git@example.com/bar.git\n    dest: bar\n```\n\nIt is convenient while optional to include the manifest repository itself in your `manifest.yml`. It will allow you to have a local copy of you manifest repository to easily make changes to it in the future.\n\n  - commit your `manifest.yml` and push the changes to the manifest\n    repository.\n  - Create a new workspace with all the repositories listed in the\n    manifest:\n\n```console\n$ tsrc init git@git.local/manifest.git\n\n:: Configuring workspace in /path/to/work\n...\n=\u003e Cloning missing repos\n* (1/2) foo\n...\n* (2/2) bar\n...\n: Configuring remotes\nDone ✓\n```\n\n  - Synchronize all the repositories in the workspace:\n\n```console\n$ tsrc sync\n=\u003e Updating manifest\n...\n:: Configuring remotes\n:: Synchronizing workspace\n* (1/2) foo\n=\u003e Fetching origin\n=\u003e Updating branch\nAlready up to date\n* (2/2) bar\n=\u003e Updating branch\nUpdating 29ac0e1..b635a43\nFast-forward\n bar.txt | 1 +\n 1 file changed, 1 insertion(+)\n create mode 100644 bar.txt\nDone ✓\n```\n\n## Documentation\n\nFor more details and examples, please refer to [tsrc documentation](https://your-tools.github.io/tsrc/).\n\n## Release notes\n\nDetailed changes for each release are documented in the [changelog](https://your-tools.github.io/tsrc/changelog/).\n\n## Contributing\n\nWe welcome feedback, [bug reports](https://github.com/your-tools/tsrc/issues), and bug fixes in the form of [pull requests](https://github.com/your-tools/tsrc/pulls).\n\nDetailed instructions can be found [in the documentation](https://your-tools.github.io/tsrc).\n\n## License\n\ntsrc is licensed under a [BSD 3-Clause license](https://github.com/your-tools/tsrc/blob/main/LICENSE).\n\n## History\n\nThis project was originally hosted on the [TankerHQ](https://github.com/TankerHQ) organization, which was [dmerejkowsky](https://github.com/dmerejkowsky)'s employer from 2016 to 2021. They kindly agreed to give back ownership of this project to Dimitri in 2021 - thanks! Dimitri later on shared this project even more by moving it to the [your-tools](https://github.com/your-tools) organization.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyour-tools%2Ftsrc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyour-tools%2Ftsrc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyour-tools%2Ftsrc/lists"}