This commit is contained in:
2022-09-21 11:06:53 +02:00
parent a503204e8a
commit ac4aabede4
34 changed files with 124 additions and 124 deletions

View File

@@ -1,14 +1,14 @@
<p align="center">
<image src="https://git.front.kjuulh.io/kjuulh/kraken/raw/branch/v0.2/assets/kraken.svg" width="300" height="300"/>
<image src="https://git.front.kjuulh.io/kjuulh/octopush/raw/branch/v0.2/assets/octopush.svg" width="300" height="300"/>
</p>
<h1 align="center">Kraken - Your cute action executor</h1>
<h1 align="center">Octopush - Your cute action executor</h1>
## Purpose
The goal of this project is to easily do batch changes or queries on a host of
repositories. In large organisations using multi-repository strategies, it may
be painful to change even small things across many repositories, because there
are so many of them. Kraken aims to change that.
are so many of them. Octopush aims to change that.
**DISCLAIMER:** It is still early days, and the api is subject to change.
@@ -34,36 +34,36 @@ Refer to [roadmap.md](roadmap.md)
## Installation
Kraken comes in two modes. Client or Client -> Server. Kraken can stand alone as
Octopush comes in two modes. Client or Client -> Server. Octopush can stand alone as
a client, for smaller and less secure changes. However, for organisations, it
may be useful to use Kraken in server mode, which supports more features, and
may be useful to use Octopush in server mode, which supports more features, and
has extra security built in.
### Client (CLI)
Download executable from [releases](https://github.com/kjuulh/kraken/releases)
Download executable from [releases](https://github.com/kjuulh/octopush/releases)
#### Or Use docker image
```bash
docker run --rm kasperhermansen/krakencli:latest version
docker run --rm kasperhermansen/octopushcli:latest version
```
#### Or Build from source
```bash
git clone https://github.com/kjuulh/kraken.git
cd kraken
git clone https://github.com/kjuulh/octopush.git
cd octopush
go build cmd/kraken/kraken.go
./kraken version
go build cmd/octopush/octopush.go
./octopush version
```
#### Or Build with cuddle
```bash
git clone https://github.com/kjuulh/kraken.git
cd kraken
git clone https://github.com/kjuulh/octopush.git
cd octopush
cuddle_cli x build_cli
```
@@ -73,15 +73,15 @@ cuddle_cli x build_cli
We prefer to run the server directly as a docker image.
```bash
docker pull kasperhermansen/krakenserver:latest
docker run -p 9090:80 --rm kasperhermansen/krakenserver:latest
docker pull kasperhermansen/octopushserver:latest
docker run -p 9090:80 --rm kasperhermansen/octopushserver:latest
```
#### Or Build from source
```bash
git clone https://github.com/kjuulh/kraken.git
cd kraken
git clone https://github.com/kjuulh/octopush.git
cd octopush
go build cmd/server/server.go
./server version
@@ -90,8 +90,8 @@ go build cmd/server/server.go
#### Or Build with cuddle
```bash
git clone https://github.com/kjuulh/kraken.git
cd kraken
git clone https://github.com/kjuulh/octopush.git
cd octopush
cuddle_cli x build_server
```
@@ -106,10 +106,10 @@ I will focus on the client here, as the server provides the same features,
though available through the cli, but instead as configuration options (see
[CONFIGURATION_SERVER.md](CONFIGURATION_SERVER.md))
Kraken ships with autocomplete built in (courtesy of spf13/cobra). To add:
Octopush ships with autocomplete built in (courtesy of spf13/cobra). To add:
- Bash: `echo 'source <(kraken completion bash)' >> ~/.bashrc`
- Zsh: `echo 'source <(kraken completion zsh)' >> ~/.zshrc`
- Bash: `echo 'source <(octopush completion bash)' >> ~/.bashrc`
- Zsh: `echo 'source <(octopush completion zsh)' >> ~/.zshrc`
### Creating a new action
@@ -118,11 +118,11 @@ Creating a new action
```bash
git init my-actions # should only be done once
cd my-actions
kraken tmpl init write-a-readme --command
cat write-a-readme/kraken.yml
octopush tmpl init write-a-readme --command
cat write-a-readme/octopush.yml
# Output
# apiVersion: git.front.kjuulh.io/kjuulh/kraken/blob/main/schema/v1
# apiVersion: git.front.kjuulh.io/kjuulh/octopush/blob/main/schema/v1
# name: write-a-readme
# select:
# repositories: []
@@ -131,7 +131,7 @@ cat write-a-readme/kraken.yml
# entry: "main.sh"
```
Kraken also ships with yaml schema, which should help write the yaml
Octopush also ships with yaml schema, which should help write the yaml
configuration.
#### Add upstream repositories (victims)
@@ -139,8 +139,8 @@ configuration.
Now add a preferred repository
```
cat << EOF > write-a-readme/kraken.yml
apiVersion: git.front.kjuulh.io/kjuulh/kraken/blob/main/schema/v1
cat << EOF > write-a-readme/octopush.yml
apiVersion: git.front.kjuulh.io/kjuulh/octopush/blob/main/schema/v1
name: write-a-readme
select:
providers: # new
@@ -158,13 +158,13 @@ on.
Another could be to use
```bash
cat << EOF > write-a-readme/kraken.yml
apiVersion: git.front.kjuulh.io/kjuulh/kraken/blob/main/schema/v1
cat << EOF > write-a-readme/octopush.yml
apiVersion: git.front.kjuulh.io/kjuulh/octopush/blob/main/schema/v1
name: write-a-readme
select:
repositories: #new
- git@git.front.kjuulh.io:kjuulh/kraken.git #new
- git@git.front.kjuulh.io:kjuulh/kraken-test.git #new
- git@git.front.kjuulh.io:kjuulh/octopush.git #new
- git@git.front.kjuulh.io:kjuulh/octopush-test.git #new
actions:
- type: shell
entry: "main.sh"
@@ -179,24 +179,24 @@ for a shared effect.
To run the script use
```bash
kraken process --path "write-a-readme"
octopush process --path "write-a-readme"
```
This will cause the kraken process to automatically apply the action on the repo
This will cause the octopush process to automatically apply the action on the repo
and open a pr.
### Query repositories
Kraken can also be used to query.
Octopush can also be used to query.
```bash
cat << EOF > write-a-readme/kraken.yml
apiVersion: git.front.kjuulh.io/kjuulh/kraken/blob/main/schema/v1
cat << EOF > write-a-readme/octopush.yml
apiVersion: git.front.kjuulh.io/kjuulh/octopush/blob/main/schema/v1
name: write-a-readme
select:
repositories:
- git@git.front.kjuulh.io:kjuulh/kraken.git
- git@git.front.kjuulh.io:kjuulh/kraken-test.git
- git@git.front.kjuulh.io:kjuulh/octopush.git
- git@git.front.kjuulh.io:kjuulh/octopush-test.git
queries:
- type: grep
query: "# README"
@@ -210,10 +210,10 @@ tools.
Do note: All actions will be run as dry-run unless `--apply` is added. This is
to help test locally, as well as not cause serious issues. The server
configuration is pretty much the same, except the command would look like so:
`kraken server process --path "write-a-readme" --apply`. Kraken will try to
`octopush server process --path "write-a-readme" --apply`. Octopush will try to
infer as much as possible, but it may be needed to apply some extra flags to
specify upstream repositories and such. Kraken will also help you setup keys and
such on the first run, using `kraken setup` or `kraken server setup`.
specify upstream repositories and such. Octopush will also help you setup keys and
such on the first run, using `octopush setup` or `octopush server setup`.
## Contributing
@@ -223,7 +223,7 @@ are welcome, though they are at your own risk.
### Bugs & features requests
Please use [issues](https://github.com/kjuulh/kraken/issues)
Please use [issues](https://github.com/kjuulh/octopush/issues)
### Development
@@ -234,7 +234,7 @@ outside core maintainers.
Simply:
```bash
go run cmd/kraken/kraken.go # CLI
go run cmd/octopush/octopush.go # CLI
go run cmd/server/server.go # Server
```