{"id":15685602,"url":"https://github.com/eomm/massive-wax","last_synced_at":"2025-05-07T17:21:09.446Z","repository":{"id":36799155,"uuid":"208409780","full_name":"Eomm/massive-wax","owner":"Eomm","description":"Execute multiple operations on multiple repositories","archived":false,"fork":false,"pushed_at":"2023-03-01T15:58:29.000Z","size":50,"stargazers_count":9,"open_issues_count":12,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T23:36:40.377Z","etag":null,"topics":["automation","boringcodes","cli","git","github","hacktoberfest","nodejs","pull-requests","scripting"],"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/Eomm.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":"2019-09-14T08:12:00.000Z","updated_at":"2023-09-08T17:57:59.000Z","dependencies_parsed_at":"2024-10-23T20:11:40.825Z","dependency_job_id":null,"html_url":"https://github.com/Eomm/massive-wax","commit_stats":{"total_commits":5,"total_committers":4,"mean_commits":1.25,"dds":0.6,"last_synced_commit":"1df9db260f792b0eed4c48004f612b3da8ff582c"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fmassive-wax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fmassive-wax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fmassive-wax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fmassive-wax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eomm","download_url":"https://codeload.github.com/Eomm/massive-wax/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252922307,"owners_count":21825641,"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","boringcodes","cli","git","github","hacktoberfest","nodejs","pull-requests","scripting"],"created_at":"2024-10-03T17:27:28.453Z","updated_at":"2025-05-07T17:21:09.422Z","avatar_url":"https://github.com/Eomm.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"massive-wax\n===========\n\n[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)\n[![Version](https://img.shields.io/npm/v/massive-wax.svg)](https://npmjs.org/package/massive-wax)\n[![Downloads/week](https://img.shields.io/npm/dw/massive-wax.svg)](https://npmjs.org/package/massive-wax)\n[![License](https://img.shields.io/npm/l/massive-wax.svg)](https://github.com/Eomm/massive-wax/blob/master/package.json)\n\nEdit every file of a list of GitHub repositories and open a PR ✨\n\nThis tool will:\n\n- fork\n- clone\n- edit the files\n- submit a PR\n\nfor you!\n\nExample?\n\n- update all the package's of your ORG with the new `greenkeeper.ignore`\n- add the new `support` field in your `package.json`\n- update the LICENSE of your repos\n- all the things that are boring and need to be done to all your repos!!\n\n\u003c!-- toc --\u003e\n* [Usage](#usage)\n* [Commands](#commands)\n\u003c!-- tocstop --\u003e\n# Usage\n\u003c!-- usage --\u003e\n```sh-session\n$ npm install -g massive-wax\n$ massive-wax COMMAND\nrunning command...\n$ massive-wax (-v|--version|version)\nmassive-wax/1.1.0 linux-x64 node-v10.24.1\n$ massive-wax --help [COMMAND]\nUSAGE\n  $ massive-wax COMMAND\n...\n```\n\u003c!-- usagestop --\u003e\n# Commands\n\u003c!-- commands --\u003e\n* [`massive-wax help [COMMAND]`](#massive-wax-help-command)\n* [`massive-wax upgrade`](#massive-wax-upgrade)\n\n## `massive-wax help [COMMAND]`\n\ndisplay help for massive-wax\n\n```\nUSAGE\n  $ massive-wax help [COMMAND]\n\nARGUMENTS\n  COMMAND  command to show help for\n\nOPTIONS\n  --all  see all commands in CLI\n```\n\n_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.2.3/src/commands/help.ts)_\n\n## `massive-wax upgrade`\n\nProcess the files of many GitHub repositories as you want and open PR with changes!\n\n```\nUSAGE\n  $ massive-wax upgrade\n\nOPTIONS\n  -B, --pr-body=pr-body                [default: This is an automatic PR created with\n                                       [massive-wax](https://github.com/Eomm/massive-wax)!] the body message of the PR\n\n  -C, --[no-]commit                    commit the changes\n\n  -F, --[no-]fork                      fork the project before cloning. Useful if you don't have the write grant\n\n  -K, --token=token                    the GitHub token to fork the project and push the changes. You can set it via env\n                                       named GITHUB_TOKEN\n\n  -L, --[no-]clone                     clone the repo before executing the processors\n\n  -O, --pr-origin=pr-origin            [default: master] the main branch in the origin repo\n\n  -R, --[no-]pr                        open the PR to forked repo\n\n  -b, --branch=branch                  [default: wax] the branch name where apply the changes\n\n  -c, --commit-message=commit-message  [default: wax in action] the commit message\n\n  -m, --match=match                    [default: .js$|.json$] the files that match this pattern will be processed\n\n  -p, --processor=processor            (required) the processor(s) that will modify the cloned repo. It must be a node\n                                       module\n\n  -r, --repo=repo                      (required) the URL repo to upgrade. If it is a file, each line of the file must\n                                       be a repo URL\n\n  -t, --pr-title=pr-title              [default: automatic PR] the title of the PR\n\n  -w, --work-path=work-path            [default: /home/runner/work/massive-wax/massive-wax] current working directory:\n                                       where cloning the repos\n\nDESCRIPTION\n  ...\n  This command will:\n  - fork the repos in the GH account associated with the --token\n  - clone the repos in your local env\n  - process all the files of the cloned repos\n  - commit the changes in a dedicated branch\n  - open a PR to the `--pr-origin` branch in the origin repo\n\n  All these steps are optionals.\n\nEXAMPLES\n  Change all the LICENCE file of your org\n   $ upgrade -K GITHUB-TOKEN --fork -p='./toMit.js' -t='Changed license' -c='chore changed license' -O main -b \n  licensebranch -r repo-list.txt\n```\n\n_See code: [src/commands/upgrade.js](https://github.com/Eomm/massive-wax/blob/v1.1.0/src/commands/upgrade.js)_\n\u003c!-- commandsstop --\u003e\n\n## Processor\n\nThe processor file will be loaded relative to the PWD and it must be like this scaffolding:\n\n```js\nmodule.exports = function factory (args, logger) {\n  // DO WHAT YOU WANT IN SYNC\n  // This function will be called for each REPO you are processing\n\n  return {\n    onRepo (repo) {\n      // OPTIONAL, sync function called before processing the files\n    },\n    onFile (file) {\n      // MANDATORY, do what you whant to each file of your project.\n      // The files are processed sequentially and, if you return a promise\n      // it will be waited.\n      // If you will throw an error, it will be logged but all will continue\n    },\n    onComplete (repo) {\n      // OPTIONAL, sync function called after all the processed files\n    }\n  }\n}\n```\n\n\n## License\n\nCopyright [Manuel Spigolon](https://github.com/Eomm), Licensed under [MIT](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feomm%2Fmassive-wax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feomm%2Fmassive-wax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feomm%2Fmassive-wax/lists"}