{"id":21466553,"url":"https://github.com/permafrost-dev/codeboost","last_synced_at":"2025-09-10T15:41:05.023Z","repository":{"id":64932943,"uuid":"575942762","full_name":"permafrost-dev/codeboost","owner":"permafrost-dev","description":"Automate common tasks and run them across multiple repositories","archived":false,"fork":false,"pushed_at":"2024-10-05T16:12:42.000Z","size":616,"stargazers_count":16,"open_issues_count":16,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-11T10:55:44.125Z","etag":null,"topics":["automation","nodejs","repository-management","repository-tools","task-scripts","tasks-automation"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/permafrost-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"permafrost-dev","custom":"https://permafrost.dev/open-source"}},"created_at":"2022-12-08T16:42:01.000Z","updated_at":"2024-02-14T15:40:29.000Z","dependencies_parsed_at":"2024-04-17T09:44:10.387Z","dependency_job_id":"fe003d08-1b2d-4521-aa8e-f897761ef122","html_url":"https://github.com/permafrost-dev/codeboost","commit_stats":{"total_commits":252,"total_committers":3,"mean_commits":84.0,"dds":"0.17460317460317465","last_synced_commit":"e4f51b40723a39ce653d79e0efd146b864d9da13"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":"permafrost-dev/typescript-project-skeleton-esbuild-jest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/permafrost-dev%2Fcodeboost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/permafrost-dev%2Fcodeboost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/permafrost-dev%2Fcodeboost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/permafrost-dev%2Fcodeboost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/permafrost-dev","download_url":"https://codeload.github.com/permafrost-dev/codeboost/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226017177,"owners_count":17560466,"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","nodejs","repository-management","repository-tools","task-scripts","tasks-automation"],"created_at":"2024-11-23T08:14:36.203Z","updated_at":"2024-11-23T08:14:36.749Z","avatar_url":"https://github.com/permafrost-dev.png","language":"TypeScript","funding_links":["https://github.com/sponsors/permafrost-dev","https://permafrost.dev/open-source"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://static-assets.permafrost.dev/images/projects/codeboost/logo.svg\" width=\"100\" height=\"100\" alt=\"codeboost logo\"\u003e\n\u003c/p\u003e\n\n# codeboost\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/permafrost-dev/codeboost/run-tests.yml?style=flat-square\u0026logo=github\u0026label=tests\" alt=\"Run Tests\"\u003e\n    \u003cimg src=\"https://img.shields.io/codecov/c/github/permafrost-dev/codeboost?color=%234c1\u0026label=coverage\u0026logo=codecov\u0026logoColor=%23ef6f6f\u0026style=flat-square\u0026token=qYptYEWlm7\" alt=\"codecov\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/permafrost-dev/codeboost?style=flat-square\u0026logo=opensourceinitiative\u0026logoColor=white\" alt=\"license\"\u003e\n    \u003cbr\u003e\n    \u003cimg src=\"https://img.shields.io/codeclimate/tech-debt/permafrost-dev/codeboost?label=tech%20debt\u0026amp;logo=codeclimate\u0026amp;style=flat-square\u0026nocache=1\" alt=\"techdebt\"\u003e\n    \u003cimg src=\"https://img.shields.io/scrutinizer/quality/g/permafrost-dev/codeboost/main?logo=scrutinizer\u0026style=flat-square\" alt=\"scrutinizer score\" /\u003e\n    \u003cimg src=\"https://api.codeclimate.com/v1/badges/688e30d604cdcd93a262/maintainability\" alt=\"maintainability\" /\u003e\n    \u003c!--br\u003e\n    \u003cimg src=\"https://shields.io/npm/v/codeboost?style=flat-square\u0026logo=npm\u0026logoColor=white\" alt=\"npm version\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/dt/codeboost.svg?style=flat-square\u0026logo=npm\u0026logoColor=white\" alt=\"npm downloads\"--\u003e\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cimg src=\"https://badgen.net/github/dependabot/permafrost-dev/codeboost?style=flat-square\" alt=\"dependabot status\"\u003e\n    \u003cimg src=\"https://img.shields.io/depfu/dependencies/github/permafrost-dev/codeboost?style=flat-square\u0026nocache=1\" alt=\"Depfu\"\u003e\n    \u003c!--img src=\"https://img.shields.io/npm/v/codeboost?label=npm%20version\u0026logo=npm\u0026logoColor=%23f1f5f9\u0026style=flat-square\" alt=\"version\"--\u003e\n\u003c/p\u003e\n\n`codeboost` is a CLI tool and library that enables developers to automate common repository tasks such as updating dependencies, fixing linting errors, modifying READMEs, or adding new workflows.\n\nRun these tasks across a single repository or multiple repositories at once with a single command.\n\n## Quick Start\n\n```bash\nnpm install -g codeboost\n\ncodeboost init\n```\n\n## Usage\n\nYou must initialize `codeboost` before you can run any boosts. You only need to run this command once to initialize the global configuration file:\n\n```bash\ncodeboost init\n```\n\nRun a boost:\n\n```bash\ncodeboost run --repo \u003crepository\u003e \u003cboost-name\u003e\n```\n\nRun a boost on a batch of repositories:\n\n```bash\ncodeboost run --batch repositories.json --size 3 \u003cboost-name\u003e\n```\n\nWhen running in batch mode, the `--size` option can be used to specify the number of repositories to process at once. The default is 1.\nThe `--batch` option can be used to specify a JSON file containing an array of objects that have a `name` property that resolves to \"owner/repo-name\". The object can contain other attributes as well, but MUST contain the `name` property for batch mode to work correctly.\n\nExample of a batch JSON file (_repositories.json_):\n\n```json\n[\n    {\n        \"name\": \"permafrost-dev/node-ray\"\n    },\n    {\n        \"name\": \"permafrost-dev/vue-ray\"\n    },\n    {\n        \"name\": \"permafrost-dev/alpinejs-ray\"\n    }\n]\n```\n\n## Boosts\n\nBoosts are stored by default in `~/.codeboost/boosts`, and examples can be found in the `examples` directory of the repository. [Read the docs](docs/boosts.md).\n\n## Configuration\n\nTo use the [`codeboost` CLI](./docs/cli.md), create a file named `codeboost.config.js` in your current working directory or run `codeboost init` to create a default global configuration file.\n\nThe default configuration file is stored in `~/.codeboost/codeboost.config.js`. This file assumes that you have an environment variable named `CODEBOOST_GITHUB_TOKEN` that contains a valid GitHub personal access token with the `repo` scope. You may edit this file to use a different token or to change the default storage paths.\n\nThe configuration file should export a `default` configuration object with the following properties:\n\n```typescript\nexport interface AppSettings {\n    github_token: string;\n    repository_storage_path: string;\n    boosts_path: string;\n    // create fork of each repository\n    use_forks: boolean;\n    // create pull request for each repository\n    use_pull_requests: boolean;\n    log_target: 'console' | 'file';\n}\n```\n\nExample configuration file:\n\n```javascript\nmodule.exports.default = {\n    github_token: '$CODEBOOST_GITHUB_TOKEN',\n    repository_storage_path: `${__dirname}/repositories`,\n    boosts_path: `${__dirname}/boosts`,\n    use_forks: true,\n    use_pull_requests: true,\n    log_target: 'console',\n};\n```\n\n\u003e Note that the `github_token` property can be set to a string value or an environment variable name prefixed with a '$'.\n\u003e If the value is an environment variable name, the value of the environment variable will be used.\n\nIf you are working on repositories that you have push access to and don't want to create forks or pull requests, you can set the `use_forks` and `use_pull_requests` properties to `false`. This will cause `codeboost` to commit directly to the main branch of the repository.\n\nIf you disable `use_forks` but not `use_pull_requests`, a separate branch will be created on the repository and a pull request will be created for that branch. Enabling `use_forks` automatically enables `use_pull_requests`.\n\n## Development Setup\n\n```bash\nnpm install\n\nnpm run dev\n```\n\n## Testing\n\n`codeboost` uses Jest for unit tests. To run the test suite:\n\n`npm run test`\n\n---\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Contributing\n\nPlease see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.\n\n## Security Vulnerabilities\n\nPlease review [our security policy](../../security/policy) on how to report security vulnerabilities.\n\n## Credits\n\n-   [Patrick Organ](https://github.com/patinthehat)\n-   [All Contributors](../../contributors)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpermafrost-dev%2Fcodeboost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpermafrost-dev%2Fcodeboost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpermafrost-dev%2Fcodeboost/lists"}