{"id":19903887,"url":"https://github.com/zerotohero-dev/octomate","last_synced_at":"2025-07-05T01:07:46.998Z","repository":{"id":57313379,"uuid":"57420474","full_name":"zerotohero-dev/octomate","owner":"zerotohero-dev","description":"Octomate: Automation made easy.","archived":false,"fork":false,"pushed_at":"2018-02-12T19:22:29.000Z","size":54,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-23T17:16:23.202Z","etag":null,"topics":["automation","buddy-works","byte-sized","bytesized-javascript","bytesized-tv","ci-cd","demos","deps","deps-url","javascript","learning","libary","pipeline","podcast","screencast","trainings","tutorial","vidcast","videocast","videos"],"latest_commit_sha":null,"homepage":"https://bytesized.tv/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zerotohero-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-30T00:28:59.000Z","updated_at":"2023-10-02T22:26:09.000Z","dependencies_parsed_at":"2022-09-20T23:10:48.097Z","dependency_job_id":null,"html_url":"https://github.com/zerotohero-dev/octomate","commit_stats":null,"previous_names":["jsbites/octomate"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zerotohero-dev/octomate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Foctomate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Foctomate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Foctomate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Foctomate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerotohero-dev","download_url":"https://codeload.github.com/zerotohero-dev/octomate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotohero-dev%2Foctomate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261519233,"owners_count":23171240,"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":["automation","buddy-works","byte-sized","bytesized-javascript","bytesized-tv","ci-cd","demos","deps","deps-url","javascript","learning","libary","pipeline","podcast","screencast","trainings","tutorial","vidcast","videocast","videos"],"created_at":"2024-11-12T20:25:49.807Z","updated_at":"2025-06-25T09:06:34.863Z","avatar_url":"https://github.com/zerotohero-dev.png","language":"JavaScript","readme":"[![tests][tests]][tests-url]\n[![deps][deps]][deps-url]\n[![npm][npm]][npm-url]\n[![license][license]][license-url]\n\n[tests]: https://img.shields.io/travis/jsbites/octomate.svg\n[tests-url]: https://travis-ci.org/jsbites/octomate\n[deps]: https://david-dm.org/jsbites/octomate.svg\n[deps-url]: https://david-dm.org/jsbites/octomate\n[npm-url]: https://www.npmjs.com/package/octomate\n[npm]: https://img.shields.io/npm/v/octomate.svg\n[license]: https://img.shields.io/npm/l/octomate.svg\n[license-url]: https://www.npmjs.com/package/octomate\n\n```\n        __,-“”-.__\n   |\\  / ,-.  ,-. \\  /|\n   )o)( ( o )( o ) )(o(\n  /o/ |  `-'  `-'  | \\o\\\n  \\ \\/   OctOmate   \\/ /\n~ ~~~~~~~~~~~~~~~~~~~~~~ ~\n```\n\n`octomate`: Automation made easy.\n\n`octomate` compares the npm version of a given library to its git version. If there is a mismatch, it runs tests against the current git version and publishes the library to npm after the tests pass. — It is kind of like poor man’s CI.\n\n## About `octomate`\n\n`octomate` is created as an automation-helper:\n\nIt checks your libary’s NPM version and if your git version is ahead of the NPM version, then it runs a series of actions on your libary and if all those actions complete successfully, it publishes your library to NPM, synchronizing your NPM and git versions.\n\nNote that there are other tools (*like git commit hooks, CI/CD environments, task runners*) that can give more flexibility than `octomate`. — At its current state, `octomate` is just a thought experiment.\n\n### Installation\n\nInstall `octomate` via NPM:\n\n```bash\nnpm install octomate -g\n```\n\nNote that you might need a recent version of Node.JS (*v.7.0.0. and above is preferred*).\n\n## Usage Examples\n\nI’ve covered a particular usage examples in the [“automate all the thingz” videocast here](https://www.youtube.com/watch?v=OZ_9czIl-iQ).\n\n`octomate` is a command line application, it accepts a single argument which is a a git repository URL.\n\n```bash\noctomate \"git@github.com:jsbites/badem.git\"\n```\n\nReplace `\"git@github.com:jsbites/badem.git\"` with your repository’s SSH url. Given that you have configured your local npm, the above code will…\n\n* Create a sandbox folder.\n* Clone the repository into that sandbox folder.\n* Compare the repository’s NPM version to the version in its `package.json`\n* If versions match it will do nothing and exit; otherwise it’ll proceed with the next steps:\n* Run `npm install`.\n* If `npm install` succeeds, run `npm test`.\n* If `npm test` succeeds, run `npm publish`.\n\nrespectively.\n\nNote that you repository should have predefined `install`, `test`, and `publish` tasks registered in the `scripts` section of your `package.json`.\n\n## Dependencies\n\nYou will need the **current** version of [Node.JS](https://nodejs.org/) with all the bells and whistles — [You can install it from nodejs.org](https://nodejs.org/).\n\n## How to Develop\n\nFor development, you’ll need to first clone or for this repository, and then install the dependencies and transpile the code as follows:\n\n```bash\ncd octomate\nnpm install\n./bin/transpile.sh\n```\n\n\u003e Note that there is no watcher task, you you’ll have to run `.bin/transpile.sh` whenever you change the source code.\n\n## Important Files and Folders\n\n* `./lib`: The source files live here. `lib/octomate.js` is where the majority of the action takes place.\n* `./release`: Once you run `./bin/.transpile.sh`, the transpiled files will be copied here..\n* `./bin`: Shell scripts. — `./bin/octomate.js` is the pakcage main script; `./bin/transiple.sh` transpiles files.\n* `./CHANGELOG.md`: A log of what has been done since the last version.\n* `./CODE_OF_CONDUCT.md`: Tells the collaborators to be nice to each other.\n* `./README.md`: This very file.\n* `./.babelrc`: Used for development; configures `babel`.\n* `./.eslintrc`: Used for development; configures `eslint`.\n\n## Wanna Help?\n\nAny help is more than appreciated.\n\nIf you want to contribute to the source code, **fork this repository** and **create a pull request**.\n\n\u003e In lieu of a formal style guide, take care to maintain the existing coding style.\n\nAlso, don’t forget to add unit tests for any new or changed functionality.\n\nIf you want to report a bug; or share a comment or suggestion, [either email me](mailto:me@volkan.io), or [file an issue](https://github.com/jsbites/octomate/issues/new).\n\n## I’ve Found a Bug; I Have an Idea\n\n[For bug reports and suggestions, please file an issue](https://github.com/jsbites/octomate/issues/new).\n\n## Contact Information\n\n* **Project Maintainer**: [Volkan Özçelik](https://volkan.io/)\n* **Project Website**: [bytesized.tv](https://bytesized.tv/)\n\n## License\n\nMIT-licensed. — [See the license file  for details](LICENSE.md).\n\n## Code of Conduct\n\nWe are committed to making participation in this project a harassment-free experience for everyone, regardless of the level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.\n\n[See the code of conduct for details](CODE_OF_CONDUCT.md).\n\n## A [ByteSized.TV][vidcast] Project\n\nThis repository is a part of the [Byte-Sized JavaScript VideoCasts][vidcast].\n\nIt is a compilation of short (*around ten minutes*) screencasts about **JavaScript** and related technologies.\n\n[**Learn**, **explore**, and **have fun**][vidcast]!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerotohero-dev%2Foctomate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerotohero-dev%2Foctomate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerotohero-dev%2Foctomate/lists"}