{"id":21703910,"url":"https://github.com/shinokada/gitstart","last_synced_at":"2026-01-19T06:06:37.683Z","repository":{"id":42022754,"uuid":"313614566","full_name":"shinokada/gitstart","owner":"shinokada","description":"Gitstart automates creating a GitHub repo. The script will create .gitignore, a license.txt, a README.md file and commit with a message. It will create a remote repo and push all the files.","archived":false,"fork":false,"pushed_at":"2026-01-18T20:37:22.000Z","size":248,"stargazers_count":35,"open_issues_count":1,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-18T23:22:26.902Z","etag":null,"topics":["cli","command-line","git","github","macos"],"latest_commit_sha":null,"homepage":"http://gitstart.codewithshin.com/","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/shinokada.png","metadata":{"files":{"readme":"docs/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":"2020-11-17T12:36:33.000Z","updated_at":"2025-11-22T17:50:19.000Z","dependencies_parsed_at":"2024-03-04T17:37:24.552Z","dependency_job_id":"8ffebb05-a468-4ed7-ba14-2111ad6dfed9","html_url":"https://github.com/shinokada/gitstart","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/shinokada/gitstart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinokada%2Fgitstart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinokada%2Fgitstart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinokada%2Fgitstart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinokada%2Fgitstart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shinokada","download_url":"https://codeload.github.com/shinokada/gitstart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinokada%2Fgitstart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28562269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["cli","command-line","git","github","macos"],"created_at":"2024-11-25T21:36:39.344Z","updated_at":"2026-01-19T06:06:37.671Z","avatar_url":"https://github.com/shinokada.png","language":"Shell","readme":"\u003cp align=\"center\"\u003e\n\u003cimg width=\"400\" src=\"https://raw.githubusercontent.com/shinokada/gitstart/main/images/gitstart.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href='https://ko-fi.com/Z8Z2CHALG' target='_blank'\u003e\u003cimg height='42' style='border:0px;height:42px;' src='https://storage.ko-fi.com/cdn/kofi3.png?v=3' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1  align=\"center\"\u003eGitstart\u003c/h1\u003e\n\n[More details about Gitstart.](https://towardsdatascience.com/automate-creating-a-new-github-repository-with-gitstart-1ae961b99866)\n\n## Overview\n\n\u003e Gitstart creates, adds, and pushes with one line.\n\nThis script automates creating a git repository. The script will:\n\n- Create .gitignore if you provide a language\n- Create a license file based on your choice\n- Create a new repository at GitHub.com (public or private)\n- Create a README.md file with the repository name\n- Initialize git repository (if needed)\n- Add README.md and commit with a custom message\n- Add the remote and push the files\n- Support for existing directories and projects\n\nThe script reads your GitHub username from configuration and uses the directory name as the GitHub repository name.\n\n## Requirements\n\n- UNIX-like system (Tested on Ubuntu and macOS)\n- [GitHub CLI](https://cli.github.com/manual/), \u003ev2.3.0\n- [jq](https://stedolan.github.io/jq/)\n\nLinux users can download gh CLI from the [Releases page](https://github.com/cli/cli/releases), then run:\n\n```sh\nsudo apt install ./gh_x.x.x_xxxxxxx.deb\n```\n\n## Installation\n\n### Linux/macOS using Awesome\n\nAfter installing [Awesome package manager](https://github.com/shinokada/awesome):\n\n```sh\nawesome install shinokada/gitstart\n```\n\n### macOS using Homebrew\n\nIf you have Homebrew on your macOS, you can run:\n\n```sh\nbrew tap shinokada/gitstart \u0026\u0026 brew install gitstart\n```\n\n### Debian/Ubuntu\n\nDownload the latest version from [releases page](https://github.com/shinokada/gitstart/releases) and run:\n\n```sh\nsudo apt install ./gitstart_version_all.deb\n```\n\n## Uninstallation\n\nIf you installed Gitstart using Awesome package manager/Homebrew/Debian package, run:\n\n```sh\ncurl -s https://raw.githubusercontent.com/shinokada/gitstart/main/uninstall.sh \u003e tmp1 \u0026\u0026 bash tmp1 \u0026\u0026 rm tmp1\n```\n\n## Usage\n\n### Basic Usage\n\nLogin to GitHub and start using gitstart:\n\n```sh\n# Login to GitHub\ngh auth login\n\n# Create a new repository\ngitstart -d repo-name\n\n# Create in current directory\ncd existing_project\ngitstart -d .\n```\n\n### Options\n\n```\n-d, --dir DIRECTORY          Directory name or path (use . for current directory)\n-l, --lang LANGUAGE          Programming language for .gitignore\n-p, --private                Create a private repository (default: public)\n-b, --branch BRANCH          Branch name (default: main)\n-m, --message MESSAGE        Initial commit message (default: \"Initial commit\")\n-desc, --description DESC    Repository description\n--dry-run                    Show what would happen without executing\n-q, --quiet                  Minimal output\n-h, --help                   Show help message\n-v, --version                Show version\n```\n\n### Examples\n\n**Create a new repository:**\n```sh\ngitstart -d my-project\n```\n\n**Create with specific programming language:**\n```sh\ngitstart -d my-python-app -l python\n```\n\n**Create a private repository:**\n```sh\ngitstart -d secret-project -p\n```\n\n**Use custom commit message and branch:**\n```sh\ngitstart -d my-app -m \"First release\" -b develop\n```\n\n**Add repository description:**\n```sh\ngitstart -d awesome-tool -desc \"An amazing CLI tool for developers\"\n```\n\n**Preview changes without executing (dry run):**\n```sh\ngitstart -d test-repo --dry-run\n```\n\n**Quiet mode for scripts:**\n```sh\ngitstart -d automated-repo -q\n```\n\n**Initialize existing project:**\n```sh\ncd my-existing-project\ngitstart -d . -l javascript -desc \"My existing JavaScript project\"\n```\n\n### Working with Existing Directories\n\nGitstart now fully supports existing directories with the following behaviors:\n\n**Empty directory:** Creates repository normally\n\n**Directory with files but no git:** \n- Warns about existing files\n- Asks for confirmation\n- Preserves existing files\n- Adds them to the initial commit\n\n**Directory with existing git repository:**\n- Detects existing `.git` folder\n- Adds remote to existing repository\n- Preserves git history\n\n**Existing LICENSE, README.md, or .gitignore:**\n- Detects existing files\n- Offers to append or skip\n- Prevents accidental overwrites\n\n### Interactive License Selection\n\nWhen you run gitstart, you'll be prompted to select a license:\n\n```\nSelect a license:\n1) MIT: I want it simple and permissive.\n2) Apache License 2.0: I need to work in a community.\n3) GNU GPLv3: I care about sharing improvements.\n4) None\n5) Quit\n```\n\n## Configuration\n\nGitstart stores your GitHub username in `~/.config/gitstart/config` (follows XDG standards). On first run, you'll be prompted to enter your username, which will be saved for future use.\n\n## Error Handling\n\nThe script includes comprehensive error handling:\n\n- **Automatic cleanup**: If repository creation fails, the remote repository is automatically deleted\n- **Validation checks**: Ensures all required tools are installed\n- **Auth verification**: Confirms you're logged in to GitHub\n- **File conflict detection**: Warns about existing files before overwriting\n- **Detailed error messages**: Clear information about what went wrong and how to fix it\n\n## About Licensing\n\nRead more about [Licensing](https://docs.github.com/en/free-pro-team@latest/rest/reference/licenses).\n\n## Changelog\n\n### Version 0.4.0 (2026-01-18)\n\n**New Features:**\n- Private repository support with `-p/--private` flag\n- Custom commit messages with `-m/--message` flag\n- Custom branch names with `-b/--branch` flag\n- Repository description with `-desc/--description` flag\n- Dry run mode with `--dry-run` flag\n- Quiet mode with `-q/--quiet` flag\n- Full support for existing directories and files\n- Automatic rollback on errors\n- Detection and handling of existing git repositories\n\n**Improvements:**\n- Fixed GitHub auth check (now uses proper exit code checking)\n- XDG-compliant config directory (`~/.config/gitstart/config`)\n- Better error messages with context\n- File conflict detection and user prompts\n- Smarter handling of existing LICENSE, README, and .gitignore files\n- Improved overall code quality and error handling\n\n**Bug Fixes:**\n- Fixed issue with `gh repo create --clone` in existing directories\n- Fixed auth status check that was comparing string to integer\n- Proper handling of existing files to prevent data loss\n\n### Version 0.3.0\n- Initial public release\n\n## Author\n\nShinichi Okada\n\n- [Medium](https://shinichiokada.medium.com/)\n- [Twitter](https://twitter.com/shinokada)\n\n## License\n\nCopyright (c) 2021-2026 Shinichi Okada (@shinokada)\nThis software is released under the MIT License, see LICENSE.\n","funding_links":["https://ko-fi.com/Z8Z2CHALG'"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinokada%2Fgitstart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshinokada%2Fgitstart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinokada%2Fgitstart/lists"}