Creep, a Git's buddy.
A small toolkit for Git to ease a developer's everyday life.
Consists of
- Runes β encrypting sensitive files on the go.
- Boss β managing multiple repositories.
- Git β Git utilities and useful commands.
Add it as a git submodule to your project:
git submodule add https://github.com/x1n13y84issmd42/creep.git
# When cloning a project which references a submodule:
git submodule init
git submodule update
Also make a directory for creep's stuff in the root of your project:
mkdir .creep
Runes is a tool to automatically and transparently encrypt and decrypt sensitive files on commits, clones & checkouts. Now you can keep your tokens in the repo safely.
In order for Runes to work, you'll need hooks. Runes can install them for you:
creep/runes install-hooks
Also you'll need keys, so generate them from your project root directory:
creep/runes keygen
And a list of sensitive files to encrypt before commiting them to git:
creep/runes secure .env
creep/runes secure config/secrets.json
creep/runes secure keys/veryprivate.key
And you're set for keeping private data in git. Just go on adding files, commiting & pushing as usual, Runes will take care about the privacy. The files from the .creep/.runes
list are now encrypted and decrypted as you go.
π The
.creep/runes.private.key
file is gitignored, take some care about it so it doesn't get lost or something, otherwise you won't ever be able to access your files again.
Parameter | Decription | Values |
---|---|---|
CREEP_RUNES_LOG |
Controls the logging verbosity. Set it to 0 to disable logging. |
0β3 |
CREEP_RUNES_OFF |
Disables Runes altogether. π Be aware not to git add the decrypted files! |
1 |
A tool to execute arbitrary commands in parallel in a set of directories under it's management, or, in other words, a command demultiplexing tool. Attempts to simplify control over microservice architectures and other complex projects.
Use it to manage multiple repositories with fewer commands and automate other tasks over bulks of files.
First, add a directory under the Boss' management. It can be either a simple directory or a Git repository URL:
creep/boss + DirOne Folder2 https://github.com/microsoft/TypeScript.git
This will add TypeScript
as a git submodule to the project and start tracking all three folders. Boss will automatically commit the changes it makes during this operation.
Assuming DirOne
& Folder2
are Git working copies as well, now you can run:
creep/boss git checkout -b bossed/totally
This executes git checkout -b bossed/totally
in all three folders and essentially switches all the projects to new identically named branches.
Arbitrary CLI commands are possible.
If you want to use redirections >
& >>
, quote your command line:
creep/boss "echo '## Bossed!' >> README.md && git commit -am 'Hola'"
A set of Git utilities and useful commands of all kinds.
Attempts to completely remove a Git submodule. Requires a clean working tree beforehand and afterwards (i.e. commit everything after you've executed it).
creep/git submodule purge useless-submodule-name