{"id":16860778,"url":"https://github.com/keikoro/clirepo","last_synced_at":"2026-04-05T21:05:35.571Z","repository":{"id":71629037,"uuid":"120374241","full_name":"keikoro/clirepo","owner":"keikoro","description":"Create remote repositories from the command line 💻⌨️:octocat:","archived":false,"fork":false,"pushed_at":"2022-03-09T22:37:04.000Z","size":21,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-24T19:23:14.358Z","etag":null,"topics":["api","bash","bitbucket","command-line","git","github","gitlab","remote","repository"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keikoro.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":"2018-02-05T23:14:47.000Z","updated_at":"2021-11-21T17:01:46.000Z","dependencies_parsed_at":"2023-05-03T09:31:13.655Z","dependency_job_id":null,"html_url":"https://github.com/keikoro/clirepo","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/keikoro%2Fclirepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keikoro%2Fclirepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keikoro%2Fclirepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keikoro%2Fclirepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keikoro","download_url":"https://codeload.github.com/keikoro/clirepo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244245169,"owners_count":20422438,"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":["api","bash","bitbucket","command-line","git","github","gitlab","remote","repository"],"created_at":"2024-10-13T14:26:49.723Z","updated_at":"2025-12-30T22:52:19.468Z","avatar_url":"https://github.com/keikoro.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clirepo\nA Bash script to create remote repositories from the command line.\n\n## Background\nIf you use Git a lot, and only from the command line, having to switch to a browser and go online to create new repositories on code sharing and collaboration websites like GitHub, GitLab and Bitbucket can be inconvenient.\n\nBy accessing the APIs for these services with personal access tokens, you can, however, easily create new remote repositories directly from your terminal.\n\n## Usage example\nTo create a new, private repository called `neato_proj` on GitHub using this script, you would use the following command:\n\n```\n$ ./clirepo.sh neato_proj github\n```\n\nOn success, or even when your repository already exists, handy URLs pointing to it will get printed out to the console:\n\n```\nAbout to create repository 'neato_proj', standing by...\n\nSUCCESS! Repository 'neato_proj' was created on GitHub.\nVisit it on the web: https://github.com/youraccount/neato_proj\n\nAdd it as a remote:\ngit remote add github https://github.com/youraccount/neato_proj.git\ngit remote add github git@github.com:youraccount/neato_proj.git\n```\n\n## Requirements\nYou need to have Bash installed on your machine for this script to work, though it does not have to be your main shell (it isn't mine either).\n\nYou will also have to have created personal access tokens for the services you want to use, which you can do in the user settings. GitHub and GitLab call them exactly that, Personal Access Tokens, whereas Bitbucket refers to them as App Passwords.\n\n## Setup\nThe `.clirepo.sh` script is dependent on the presence of a file called `.conf`, which can be used to provide user-specific settings. You can base it off of `.conf.template`, which is included with this project.\n\nWhen run, the script looks for your user credentials in a directory called `credentials`. By default, this directory is expected to be located within the `.clirepo` directory, for which the script looks in your user's home directory (i.e. at `/home/YOUR_USER/.clirepo/credentials`).\n\nYou can change the name and location of the credentials directory by modifying the `credentials_dir` variable in the aforementioned `.conf` file. The easiest way to set everything up is to clone this repository to where it is expected to be out of the box:\n\n```\n$ git clone URL_TO_THIS_REPO.git ~/.clirepo\n```\nNext, you need to create files to hold your user credentials for all the services you want to use. Currently, the script supports remote repositories on Bitbucket, GitHub and GitLab. The credentials files are named like the services, with a leading dot and lowercased, so e.g. `.gitlab` for the file for GitLab.\n\nTemplates for the credentials files are included in the `credentials` directory. However, you can also call the script with the argument `-t` (and, optionally, a service name) to see how they need to be formatted:\n\n```\n$ .clirepo.sh -t bitbucket\n```\n\nFinally, you should set the permissions for these files so only your user can access them, e.g.:\n\n```\n$ chmod 600 .servicename\n```\n\n**IMPORTANT NOTE**  \nPlease note that this script currently does not support the handling of encrypted credentials, nor are the credentials files safeguarded in any way other than via file permissions for whose setting you yourself are responsible.\n\n### Default config\n\nTo save time typing, you can use the alternative aliases `gh` for `github`, `gl` for `gitlab` and `bb` for `bitbucket` to refer to the services. If you provide your own aliases, these defaults are overwritten.\n\n\n## More usage examples\n\nIf you cloned the repository as described above, it will sit inside `.clirepo` in your home directory. To call it to create a private `myJSFramework` repository on `bitbucket.org`, you would use:\n\n```\n$ ~/.clirepo/clirepo.sh myJSFramework bitbucket\n```\n\nYou could also use the default alias `bb` to do the same thing:\n\n```\n$ ~/.clirepo/clirepo.sh myJSFramework bb\n```\n\nNote that all repositories created with this script are **set to private by default**. You can, however, use `public` as third argument to make them public on creation:\n\n```\n$ ~/.clirepo/clirepo.sh myJSFramework bb public\n```\n\n`-h` or `--help` prints out usage hints to the console:\n```\n$ ./clirepo.sh -h\n```\n\n## Contributing\nIf you have ideas for how this script could be improved, let me know via the issue tracker.\n\n## Licence\nThis project is released under The MIT License.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeikoro%2Fclirepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeikoro%2Fclirepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeikoro%2Fclirepo/lists"}