{"id":15448929,"url":"https://github.com/parikshit223933/samurai","last_synced_at":"2026-02-14T16:05:47.550Z","repository":{"id":242487995,"uuid":"809677770","full_name":"parikshit223933/samurai","owner":"parikshit223933","description":"Samurai is a deployment preparation cli tool","archived":false,"fork":false,"pushed_at":"2025-11-14T15:46:10.000Z","size":53,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-14T17:19:50.661Z","etag":null,"topics":["deployment","devops","release-automation","ruby","ruby-gem"],"latest_commit_sha":null,"homepage":"https://github.com/parikshit223933/samurai","language":"Ruby","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/parikshit223933.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2024-06-03T08:34:37.000Z","updated_at":"2025-11-14T15:46:14.000Z","dependencies_parsed_at":"2025-01-09T11:36:10.804Z","dependency_job_id":null,"html_url":"https://github.com/parikshit223933/samurai","commit_stats":{"total_commits":48,"total_committers":1,"mean_commits":48.0,"dds":0.0,"last_synced_commit":"145882ad5bf3b61207e74db4b8a32667b00e0e63"},"previous_names":["parikshit223933/samurai"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/parikshit223933/samurai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parikshit223933%2Fsamurai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parikshit223933%2Fsamurai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parikshit223933%2Fsamurai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parikshit223933%2Fsamurai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parikshit223933","download_url":"https://codeload.github.com/parikshit223933/samurai/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parikshit223933%2Fsamurai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29449043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"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":["deployment","devops","release-automation","ruby","ruby-gem"],"created_at":"2024-10-01T20:41:08.588Z","updated_at":"2026-02-14T16:05:47.536Z","avatar_url":"https://github.com/parikshit223933.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Samurai\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/parikshit223933/samurai/assets/47470038/8eb065f7-09be-4907-a380-b3acaab1e133\" width=\"200px\"\u003e\n\u003c/div\u003e\n\n\nSamurai is a command-line tool to simplify and automate the deployment initiation process for your projects hosted on GitHub. This tool integrates with GitHub, Slack, and utilizes several Ruby gems to streamline the creation of release branches, pull requests, notifications, and email notifications.\n\n## Installation\n\n### Building from source\nTo install this gem:\n1. Clone the Repo.\n2. `cd` into the repo location on your local system.\n3. Run: `gem build samurai.gemspec \u0026\u0026 gem install samurai-0.1.0.gem`.\n4. Run: `echo 'export PATH=\"$HOME/.gem/bin:$PATH\"' \u003e\u003e ~/.zshrc`.\n\n### Using prebuilt gem from releases\n1. Go to releases and download the latest release.\n2. Run: `gem install samurai-0.1.0.gem`.\n\n\u003e On rubygems.org, there is another gem with the same name, thats why this specific gem cannot be installed with `gem install samurai\n`\n\n## Configuration\nBefore using Samurai, you need to configure it for your repository. This configuration includes setting up your GitHub token, source and target branches, Slack notifications, and email notifications if needed. Run the following command at the location of your GitHub repo setup on your local system to start the interactive configuration process:\n\n```sh\nsamurai config\n```\n\nThis command will prompt you to enter the necessary configuration details, including:\n\n- GitHub repository location\n- GitHub token\n- Source branch name (default: staging)\n- Target branch name (default: master)\n- Slack notification preferences\n- Email notification preferences\n\nIf you choose to inform about releases on Slack, you will also be prompted to enter:\n- Slack channel name\n- Slack user name\n- Slack webhook URL\n- Slack icon emoji\n\nIf you choose to send email notifications, you will also be prompted to enter:\n- SMTP settings\n- Receiver email\n- Sender email\n- CC emails\n\nThe configuration is saved in `~/.samurai.config`.\n\n## Usage\nOnce configured, you can use Samurai to prepare for deployment by executing the following command:\n```shell\nsamurai execute\n```\n\nThis command will:\n\n- Stash any existing changes.\n- Reset the repository to its original state.\n- Pull the latest changes from the target branch.\n- Pull the latest changes from the source branch.\n- Create a new release branch.\n- Push the release branch to the remote repository.\n- Create a pull request for the release branch.\n- Notify the configured Slack channel about the release (if enabled).\n- Send email notifications about the release (if enabled).\n\n## Example\n```shell\n$ samurai config\nEnter the GitHub repository local setup location: /path/to/repo\nEnter your GitHub token: **********\nWhat is your source branch? (staging)\nWhat is your target branch? (master)\nInform about releases on slack? (yes)\nEnter the slack channel name (releases)\nEnter the slack user name (Bot)\nEnter the slack webhook url: https://hooks.slack.com/services/your/webhook/url\nWhat slack icon emoji do you want to use? (:rocket:)\nSend email notifications? (yes)\nSMTP address: smtp.example.com\nSMTP port: 587\nSMTP domain: example.com\nSMTP username: user@example.com\nSMTP password: **********\nSMTP authentication method (plain, login, cram_md5): plain\nEnable STARTTLS (yes/no): yes\nReceiver email: receiver@example.com\nSender email: sender@example.com\nComma separated CC emails: cc1@example.com,cc2@example.com\n\nConfiguration saved for /path/to/repo\n```\n\n```shell\n$ samurai execute\nMake sure your paths are clean and there is nothing to commit\nStashing existing changes (if any)\nResetting original repository state\nPulling master\nPulling staging\nCreated a release branch release-14.06.24_12_30\nPushed release branch release-14.06.24_12_30\nCreated Release PR https://github.com/your/repo/pull/123\nFetching release PR details...\nPUSHED master AND TAG 14.06.24_12_30\n```\n\n## Development\nTo contribute to Samurai, follow these steps:\n\n- Fork the repository.\n- Create a feature branch (`git checkout -b feature-branch`).\n- Commit your changes (`git commit -am 'Add new feature'`).\n- Push to the branch (`git push origin feature-branch`).\n- Create a new Pull Request.\n\n\u003e Tip You can use a single comand to test your changes: `rm -rf\nsamurai-0.1.0.gem \u0026\u0026 gem uninstall samurai \u0026\u0026 gem build samurai.gemspec \u0026\u0026 gem install samurai-0.1.0.gem\n`\n\n## License\nSamurai is available under the MIT License.\n\n## Acknowledgements\nSamurai uses the following Ruby gems:\n\n- Thor for command-line interface\n- Octokit for GitHub API integration\n- HighLine for interactive command-line input\n- Slack Notifier for Slack notifications\n- RestClient for making HTTP requests\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparikshit223933%2Fsamurai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparikshit223933%2Fsamurai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparikshit223933%2Fsamurai/lists"}