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.
Run these tasks across a single repository or multiple repositories at once with a single command.
npm install -g codeboost
codeboost init
You must initialize codeboost
before you can run any boosts. You only need to run this command once to initialize the global configuration file:
codeboost init
Run a boost:
codeboost run --repo <repository> <boost-name>
Run a boost on a batch of repositories:
codeboost run --batch repositories.json --size 3 <boost-name>
When running in batch mode, the --size
option can be used to specify the number of repositories to process at once. The default is 1.
The --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.
Example of a batch JSON file (repositories.json):
[
{
"name": "permafrost-dev/node-ray"
},
{
"name": "permafrost-dev/vue-ray"
},
{
"name": "permafrost-dev/alpinejs-ray"
}
]
Boosts are stored by default in ~/.codeboost/boosts
, and examples can be found in the examples
directory of the repository. Read the docs.
To use the codeboost
CLI, create a file named codeboost.config.js
in your current working directory or run codeboost init
to create a default global configuration file.
The 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.
The configuration file should export a default
configuration object with the following properties:
export interface AppSettings {
github_token: string;
repository_storage_path: string;
boosts_path: string;
// create fork of each repository
use_forks: boolean;
// create pull request for each repository
use_pull_requests: boolean;
log_target: 'console' | 'file';
}
Example configuration file:
module.exports.default = {
github_token: '$CODEBOOST_GITHUB_TOKEN',
repository_storage_path: `${__dirname}/repositories`,
boosts_path: `${__dirname}/boosts`,
use_forks: true,
use_pull_requests: true,
log_target: 'console',
};
Note that the
github_token
property can be set to a string value or an environment variable name prefixed with a '$'. If the value is an environment variable name, the value of the environment variable will be used.
If 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.
If 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
.
npm install
npm run dev
codeboost
uses Jest for unit tests. To run the test suite:
npm run test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.