{"id":15482968,"url":"https://github.com/devth/utsusu","last_synced_at":"2025-03-28T15:22:58.275Z","repository":{"id":12257992,"uuid":"14874889","full_name":"devth/utsusu","owner":"devth","description":"A tool to transfer git repositories between organizations on GitHub or GitHub Enterprise instances","archived":false,"fork":false,"pushed_at":"2013-12-03T22:16:33.000Z","size":196,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T15:32:33.894Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devth.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}},"created_at":"2013-12-02T21:07:48.000Z","updated_at":"2013-12-04T05:35:20.000Z","dependencies_parsed_at":"2022-08-21T03:10:57.616Z","dependency_job_id":null,"html_url":"https://github.com/devth/utsusu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devth%2Futsusu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devth%2Futsusu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devth%2Futsusu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devth%2Futsusu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devth","download_url":"https://codeload.github.com/devth/utsusu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246050300,"owners_count":20715628,"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":"2024-10-02T05:10:27.411Z","updated_at":"2025-03-28T15:22:58.254Z","avatar_url":"https://github.com/devth.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# utsusu\n\nutsusu lets you transfer all repositories under a given organization to another\norganization, regardless of whether they live on github.com or a GitHub\nEnterprise instance.\n\nIt currently does not support transfering between individual users (pull\nrequests welcome).\n\nThe machine you run this on **must** have SSH access to all configured GitHub\ninstances. The program will error and terminate if it can't clone from source or\npush to destination.\n\n## Existing repos\n\nIf a repo on destination already exists for a given repo on source, it will be\nskipped and the script will continue. This allows restarts incase of network\nconnectivity or other issues.\n\n## Empty repos\n\nMake sure you don't have any empty repos on the source organization. This will\ncause the `git push` to destination to fail, which will abort the whole script.\nThis could be handled (PRs welcome) if necessary.\n\n## Configuration\n\nYou may specify your configuration in a `config.edn` file at project root with\nyour settings. This is gitignored. If you do not, you'll be prompted for\nconfiguration at runtime. Expected config file format:\n\n```clojure\n{:source-domain \"Source instance domain (github.com)\"\n :source-org \"Source organization name\"\n :source-token \"Source API token\"\n :dest-domain \"Destination instance domain (github.com)\"\n :dest-org \"Destination organization name\"\n :dest-token \"Destination API token\"}\n```\n\n## Usage\n\n`lein run` will read config from config.edn or prompt if missing. It will then\nperform a full transfer of all repos from source to destination.\n\n### Dry run\n\n`lein run -n` can be used to perform a dry run. It will list the repos that\nwould be transferred.\n\n### As a library\n\nIf you'd rather use utsusu as a library in your project:\n\n```\n[utsusu \"0.1.2\"]\n```\n\nConfiguration is read and validated in `utsusu.core` and all the actual work\nhappens in `utsusu.transfer` with the `transfer` function being the entry point.\n\n\n## Reference\n\nhttps://help.github.com/articles/duplicating-a-repository\n\n## License\n\nCopyright © 2013 Trevor C. Hartman\n\nDistributed under the Eclipse Public License version 1.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevth%2Futsusu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevth%2Futsusu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevth%2Futsusu/lists"}