Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agentender/code-rub
A CLI tool to implement regular code rub into a repository.
https://github.com/agentender/code-rub
Last synced: 3 months ago
JSON representation
A CLI tool to implement regular code rub into a repository.
- Host: GitHub
- URL: https://github.com/agentender/code-rub
- Owner: AgentEnder
- License: mit
- Created: 2021-12-16T22:33:40.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-16T18:57:21.000Z (4 months ago)
- Last Synced: 2024-10-11T17:12:32.047Z (3 months ago)
- Language: TypeScript
- Homepage: http://craigory.dev/code-rub/
- Size: 2.82 MB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# code-rub
This repository implements a base layer, CLI, and a few plugins to automate the process described here: https://hassanhabib.com/2020/02/09/code-rub/.
The core of code-rub is agnostic to ticketing system, project philosophy, and technology. On its own, it will do nothing except keep track of which files have been assigned for a rub, but it doesn't know how to actually create tickets and assign them. It doesn't even log them to the console by default.
## Quick Start
Currently, a jira plugin and an azure-devops plugin are provided. If this suits your use case, run `npx code-rub init --preset {jira|azure-devops}`, and then fill in the placeholder values created in `code-rub.config.js`.
If this doesn't suit your use case, run `npx code-rub init` to generate a blank configuration. There are examples of local plugins in this repo's tool folder, and the `code-rub.config.js` file here demonstrates how to point to them. They can be either typescript or javascript. There are future plans to add azure-devops and github issues based support, but they are not yet implemented. PRs adding them are welcome 😀
## Plugins
This is where the plugins come in. A code-rub plugin can change almost everything about the flow of `npx code-rub`. They can provide:
- A setup function: `setup`
- An initial configuration, used in `npx code-rub init --preset`: `initialConfiguration`
- A method to process assignments, after they are generated: `processAssignments`
- A method to process the file queue, useful for filtering out file extensions or paths: `processFileQueue`
- A method to process the `Ignore` object used when generating the repository file map: `processIgnore`
- This is ran before `code-rub` saves the file map, so it affects all configuration files. This should only be specified in the repositories base configuration (or sole configuration).
- A method to read and write the file map: `readFileMap` and `saveFileMap` respectively.
- Only one plugin may specify these methods.Plugins are specified by two pieces of configuration, the `plugins` array and the `pluginConfiguration` object. Plugin's are loaded based on the `plugins` array, and the capabilities they provide are configured through their entry in `pluginConfiguration`.
Plugins are loaded, and executed based on their order in the `plugins` array. This is especially important for functions like `processFileQueue` which chains the results during execution.
> As an example, imagine you have plugin1 which removes typescript files but plugin2 expects them to be present. If you use `plugins: [plugin1, plugin2]`, plugin2 would not see any of the typescript files. If you use `plugins: [plugin2, plugin1]`, plugin2 would see them since they are not removed yet.
For an example plugin implementation, check the `jira` package in this repository.