Go to file
Kasper Juul Hermansen a3ecad1355
All checks were successful
continuous-integration/drone/push Build is passing
Update all dependencies (#39)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [clap](https://github.com/clap-rs/clap) | dependencies | patch | `4.0.18` -> `4.0.27` |
| [url](https://github.com/servo/rust-url) | dependencies | minor | `^2.2` -> `^2.3` |
| [uuid](https://github.com/uuid-rs/uuid) | dependencies | minor | `^1.0` -> `^1.2` |

---

### Release Notes

<details>
<summary>clap-rs/clap</summary>

### [`v4.0.27`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4027---2022-11-24)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.26...v4.0.27)

##### Features

-   Have `Arg::value_parser` accept `Vec<impl Into<PossibleValue>>`
-   Implement `Display` and `FromStr` for `ColorChoice`

##### Fixes

-   Remove soundness issue by switching from `atty` to `is-terminal`

### [`v4.0.26`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4026---2022-11-16)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.25...v4.0.26)

##### Fixes

-   *(error)* Fix typos in `ContextKind::as_str`

### [`v4.0.25`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4025---2022-11-15)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.24...v4.0.25)

##### Features

-   *(error)* Report available subcommands when required subcommand is missing

### [`v4.0.24`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4024---2022-11-14)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.23...v4.0.24)

##### Fixes

-   Avoid panic when printing an argument that isn't built

### [`v4.0.23`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4023---2022-11-11)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.22...v4.0.23)

##### Fixes

-   Don't panic on reporting invalid-long errors when followed by invalid UTF8
-   *(help)* Clarified argument to `help` subcommand

### [`v4.0.22`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4022---2022-11-07)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.21...v4.0.22)

##### Fixes

-   *(help)* Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

### [`v4.0.21`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4021---2022-11-07)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.20...v4.0.21)

##### Features

-   *(derive)* `long_about` and `long_help` attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

### [`v4.0.20`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4020---2022-11-07)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.19...v4.0.20)

##### Fixes

-   *(derive)*  Allow defaulted value parser for '()' fields

### [`v4.0.19`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;4019---2022-11-04)

[Compare Source](https://github.com/clap-rs/clap/compare/v4.0.18...v4.0.19)

##### Features

-   `ColorChoice` now implements `ValueEnum`

</details>

<details>
<summary>servo/rust-url</summary>

### [`v2.3.1`](https://github.com/servo/rust-url/compare/v2.3.0...v2.3.1)

[Compare Source](https://github.com/servo/rust-url/compare/v2.3.0...v2.3.1)

### [`v2.3.0`](https://github.com/servo/rust-url/compare/v2.2.2...v2.3.0)

[Compare Source](https://github.com/servo/rust-url/compare/v2.2.2...v2.3.0)

### [`v2.2.2`](https://github.com/servo/rust-url/compare/v2.2.1...v2.2.2)

[Compare Source](https://github.com/servo/rust-url/compare/v2.2.1...v2.2.2)

### [`v2.2.1`](https://github.com/servo/rust-url/compare/v2.2.0...v2.2.1)

[Compare Source](https://github.com/servo/rust-url/compare/v2.2.0...v2.2.1)

</details>

<details>
<summary>uuid-rs/uuid</summary>

### [`v1.2.2`](https://github.com/uuid-rs/uuid/releases/tag/1.2.2)

[Compare Source](https://github.com/uuid-rs/uuid/compare/1.2.1...1.2.2)

#### What's Changed

-   CI Cleanups by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/640
-   Remove extern crate alloc by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/645
-   Prepare for 1.2.2 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/646

**Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.2.1...1.2.2

### [`v1.2.1`](https://github.com/uuid-rs/uuid/releases/tag/1.2.1)

[Compare Source](https://github.com/uuid-rs/uuid/compare/1.2.0...1.2.1)

#### What's Changed

-   Fix up lost re-export of v1 Timestamp by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/636
-   Prepare for 1.2.1 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/637

**Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.2.0...1.2.1

### [`v1.2.0`](https://github.com/uuid-rs/uuid/releases/tag/1.2.0)

[Compare Source](https://github.com/uuid-rs/uuid/compare/1.1.2...1.2.0)

#### What's Changed

-   formatting changes by [@&#8203;pintariching](https://github.com/pintariching) in https://github.com/uuid-rs/uuid/pull/610
-   Remove outdated Travis CI reference by [@&#8203;atouchet](https://github.com/atouchet) in https://github.com/uuid-rs/uuid/pull/616
-   refactors Timestamp, Context and ClockSequence, and adds UUIDS v6, v7, v8 by [@&#8203;rrichardson](https://github.com/rrichardson) in https://github.com/uuid-rs/uuid/pull/611
-   migrate from winapi to windows_sys in examples by [@&#8203;sn99](https://github.com/sn99) in https://github.com/uuid-rs/uuid/pull/626
-   Update windows-sys requirement from 0.36.1 to 0.42.0 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/uuid-rs/uuid/pull/628
-   Some work on the new version features by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/625
-   Implement now in wasm by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/630
-   More work on docs by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/631
-   hide draft versions behind the unstable cfg by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/633
-   Prepare for 1.2.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/634

#### New Contributors

-   [@&#8203;pintariching](https://github.com/pintariching) made their first contribution in https://github.com/uuid-rs/uuid/pull/610
-   [@&#8203;atouchet](https://github.com/atouchet) made their first contribution in https://github.com/uuid-rs/uuid/pull/616
-   [@&#8203;sn99](https://github.com/sn99) made their first contribution in https://github.com/uuid-rs/uuid/pull/626

**Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.1.2...1.2.0

### [`v1.1.2`](https://github.com/uuid-rs/uuid/releases/tag/1.1.2)

[Compare Source](https://github.com/uuid-rs/uuid/compare/1.1.1...1.1.2)

#### What's Changed

-   Fix some doc links by [@&#8203;mbrobbel](https://github.com/mbrobbel) in https://github.com/uuid-rs/uuid/pull/606
-   Prepare for 1.1.2 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/607

#### New Contributors

-   [@&#8203;mbrobbel](https://github.com/mbrobbel) made their first contribution in https://github.com/uuid-rs/uuid/pull/606

**Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.1.1...1.1.2

### [`v1.1.1`](https://github.com/uuid-rs/uuid/releases/tag/1.1.1)

[Compare Source](https://github.com/uuid-rs/uuid/compare/1.1.0...1.1.1)

#### What's Changed

-   Fix documentation typo by [@&#8203;nstinus](https://github.com/nstinus) in https://github.com/uuid-rs/uuid/pull/603
-   Prepare for 1.1.1 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/604

#### New Contributors

-   [@&#8203;nstinus](https://github.com/nstinus) made their first contribution in https://github.com/uuid-rs/uuid/pull/603

**Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.1.0...1.1.1

### [`v1.1.0`](https://github.com/uuid-rs/uuid/releases/tag/1.1.0)

[Compare Source](https://github.com/uuid-rs/uuid/compare/1.0.0...1.1.0)

#### What's Changed

-   note that the Error display impl is public API by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/597
-   Fixed documentation link by [@&#8203;Razican](https://github.com/Razican) in https://github.com/uuid-rs/uuid/pull/600
-   Add to_bytes_le method by [@&#8203;dfaust](https://github.com/dfaust) in https://github.com/uuid-rs/uuid/pull/599
-   Prepare for 1.1.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/602

#### New Contributors

-   [@&#8203;Razican](https://github.com/Razican) made their first contribution in https://github.com/uuid-rs/uuid/pull/600
-   [@&#8203;dfaust](https://github.com/dfaust) made their first contribution in https://github.com/uuid-rs/uuid/pull/599

**Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.0.0...1.1.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yMy4xIiwidXBkYXRlZEluVmVyIjoiMzQuMjMuMSJ9-->

Reviewed-on: #39
2022-11-27 19:08:28 +00:00
_examples Rewrite rust (#38) 2022-11-27 11:21:35 +00:00
crates Update all dependencies (#39) 2022-11-27 19:08:28 +00:00
src Rewrite rust (#38) 2022-11-27 11:21:35 +00:00
.drone.yml Rewrite rust (#38) 2022-11-27 11:21:35 +00:00
.gitignore Rewrite rust (#38) 2022-11-27 11:21:35 +00:00
Cargo.lock Update all dependencies (#39) 2022-11-27 19:08:28 +00:00
Cargo.toml Rewrite rust (#38) 2022-11-27 11:21:35 +00:00
cuddle.yaml Rewrite rust (#38) 2022-11-27 11:21:35 +00:00
LICENSE Add logging 2022-09-10 00:09:09 +02:00
README.md with updated readme 2022-11-27 12:28:37 +01:00
renovate.json Configure Renovate (#22) 2022-10-25 20:57:08 +00:00

Octopush - Your cute action executor

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. Octopush aims to change that.

DISCLAIMER: It is still early days, and the api is subject to change.

Features

  • Uses an actions repository, where you store all your pending commands or queries to be performed across your fleet of repositories. (See _examples)
  • Actions can both execute changes, open pull-requests or in some cases commit directly to your preferred branch
    • Actions natively use either shell, go or docker files to execute changes (see _examples/actions)
  • Actions can also be analytical, so you can query your fleet for whatever you would like
  • Supports SSH/https for fetching repos
  • Supports GPG signing
  • Supports dry-run mode for easy testing when developing your actions (enabled by default on the cli)

Roadmap

Refer to roadmap.md

Installation

Octopush runs on your client and acts on your behalf, unless of course it is setup on a remote server

Client (CLI)

Download executable from releases

Or Use docker image

docker run --rm kasperhermansen/octopushcli:latest version

Or Build from source

git clone https://github.com/kjuulh/octopush.git
cd octopush

cargo build --release --target=x64_86-unknown-linux_musl
./target/x64_86-unknown-linux_musl/octopush version

Or Build with cuddle

git clone https://github.com/kjuulh/octopush.git
cd octopush

cuddle_cli x build_cli

Usage

DISCLAIMER: It is still early days, and the api of the CLI is subject to change, this provides the aim of the project, but as it is currently in flux, there may not be as much handholding in the actual usage.

Creating a new action

Creating a new action

git init my-actions # should only be done once
cd my-actions
octopush tmpl init write-a-readme --action
cat write-a-readme/octopush.yml

# Output
# apiVersion: action
# name: write-a-readme
# select:
#   git:
#     repositories: []
# actions:
#   - type: shell
#     entry: "main.sh"

Octopush also ships with yaml schema, which should help write the yaml configuration.

Add upstream repositories (victims)

Now add a preferred repository

cat << EOF > write-a-readme/octopush.yml
apiVersion: git.front.kjuulh.io/kjuulh/octopush/blob/main/schema/v1
name: write-a-readme
select:
  gitea:                  # new
    repositories:         # new
      "kjuulh/octopush"   # new
actions:
  - type: shell
    entry: "main.sh"
EOF

This will take all your repositories under an organisation and run the script on.

Another could be to use

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/octopush.git       #new
    - git@git.front.kjuulh.io:kjuulh/octopush-test.git  #new
actions:
  - type: shell
    entry: "main.sh"
EOF

This will just apply to those repositories instead. Both can also be combined for a shared effect.

Execute action

To run the script use

octopush process --path "write-a-readme"

This will cause the octopush process to automatically apply the action on the repo and open a pr.

Query repositories

Octopush can also be used to query.

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/octopush.git
    - git@git.front.kjuulh.io:kjuulh/octopush-test.git
queries:
  - type: grep
    query: "# README"
EOF

Using the same command as above, will return the lines on each repo with those criteria. Everything is run in docker, even locally, so no need to install fancy 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: 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. Octopush will also help you setup keys and such on the first run, using octopush setup or octopush server setup.

Contributing

It is still early days, and as such things are moving fast, I may not be able to implement features, because I am focusing my energy on the API. That said PRs are welcome, though they are at your own risk.

Bugs & features requests

Please use issues

Development

We use cuddle to improve ease of use, it is however, not a requirement, and probably won't need to be used outside core maintainers.

Simply:

cargo build