{"id":17399242,"url":"https://github.com/feross/cyberhobo","last_synced_at":"2025-09-13T01:31:41.572Z","repository":{"id":16050465,"uuid":"18794475","full_name":"feross/cyberhobo","owner":"feross","description":"Offline `git push` and `npm publish` for cyberhobos","archived":false,"fork":false,"pushed_at":"2020-10-27T21:09:00.000Z","size":66,"stargazers_count":113,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-03T03:00:19.005Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/feross.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":"2014-04-15T09:26:11.000Z","updated_at":"2024-08-31T07:53:33.000Z","dependencies_parsed_at":"2022-09-26T21:02:09.948Z","dependency_job_id":null,"html_url":"https://github.com/feross/cyberhobo","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feross%2Fcyberhobo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feross%2Fcyberhobo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feross%2Fcyberhobo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feross%2Fcyberhobo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feross","download_url":"https://codeload.github.com/feross/cyberhobo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232806894,"owners_count":18579333,"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-16T15:13:56.379Z","updated_at":"2025-01-07T00:36:16.466Z","avatar_url":"https://github.com/feross.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cyberhobo [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]\n\n[travis-image]: https://img.shields.io/travis/feross/cyberhobo/master.svg\n[travis-url]: https://travis-ci.org/feross/cyberhobo\n[npm-image]: https://img.shields.io/npm/v/cyberhobo.svg\n[npm-url]: https://npmjs.org/package/cyberhobo\n[downloads-image]: https://img.shields.io/npm/dm/cyberhobo.svg\n[downloads-url]: https://npmjs.org/package/cyberhobo\n[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg\n[standard-url]: https://standardjs.com\n\n#### Offline `git push` and `npm publish` for cyberhobos\n\n![all aspiring cyberhobos seek to follow the ways of the dominictarr](https://raw.githubusercontent.com/feross/cyberhobo/master/img.jpg)\n\nThis module is gifted to cyberhobo extraordinaire, dominictarr.\n\n### features\n\n- Run `git push` and `npm publish` while you're offline!\n- Next time you're online, all queued commands will run in order.\n\n### usage\n\n1. Install it globally.\n\n  ```bash\n  npm install -g cyberhobo\n  ```\n\n2. Set up bash/zsh aliases for `npm` and `git` so `cyberhobo` will run first.\n\n  ```bash\n  alias git='cyberhobo git'\n  alias npm='cyberhobo npm'\n  ```\n\n  `cyberhobo` will detect if you're offline and intercept `git push` and `npm publish`\n  commands, **queueing them to run later** when you're back online. If you're online or\n  if you run a non `push`/`publish` command, then it will run normally.\n\n  #### when you're back online\n\n  If you're back in civilization and you have an internet connection, the next time you run\n  any `git` or `npm` command, `cyberhobo` will run all the commands that were queued up\n  while you were offline. They will run **in order**.\n\n  If any of them fails with a non-zero exit code then `cyberhobo` bails, printing out the remaining\n  commands so you can run them manually. (TODO)\n\n### example\n\n```bash\n$ touch test.txt\n$ git add test.txt\n\n# oh no! lost internet connection now. keep working...\n\n$ git commit -m \"wrote some awesome code\"\n[master 4f5f136] wrote some awesome code\n 1 file changed, 0 insertions(+), 0 deletions(-)\n create mode 100644 test.txt\n\n$ git push\nCYBER HOBO ACTIVATED! Command saved for later!\n\n$ npm publish\nCYBER HOBO ACTIVATED! Command saved for later!\n\n# more commits, pushes, etc., ...\n\n# later, we have internet again! Run any git/npm command to push queued commands!\n\n$ git status\n============================================================\n               HEY, YOU HAVE INTERNET NOW!\nTime to re-run the commands you saved while you were offline\n============================================================\n\n==== Running \"git push\" in /Users/feross/code/cyberhobo ====\n\nCounting objects: 3, done.\nDelta compression using up to 8 threads.\nCompressing objects: 100% (2/2), done.\nWriting objects: 100% (2/2), 229 bytes | 0 bytes/s, done.\nTotal 2 (delta 1), reused 0 (delta 0)\nTo git@github.com:feross/cyberhobo.git\n   1174974..4f5f136  master -\u003e master\n\n\n==== Running \"npm publish\" in /Users/feross/code/cyberhobo ===\n\nnpm http PUT https://registry.npmjs.org/cyberhobo\nnpm http 201 https://registry.npmjs.org/cyberhobo\n+ cyberhobo@0.1.0\n\nCYBER HOBO MISSION COMPLETE: all up to date\n\nOn branch master\nYour branch is up-to-date with 'origin/master'.\n```\n\n### warning\n\nThis may be a horrible idea. I don't know.\n\n### license\n\nMIT. Copyright [Feross Aboukhadijeh](https://www.twitter.com/feross).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeross%2Fcyberhobo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeross%2Fcyberhobo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeross%2Fcyberhobo/lists"}