Merge pull request #19 from bartvdbraak/feat/cargo-publish

Publish to crates.io and improve documentation
This commit is contained in:
Bart van der Braak 2023-11-10 00:52:16 +01:00 committed by GitHub
commit c1632d4d24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 59 additions and 23 deletions

5
.github/renovate.json vendored Normal file
View file

@ -0,0 +1,5 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"reviewers": ["bartvdbraak"]
}

View file

@ -145,12 +145,12 @@ jobs:
keyweave-*.tar.xz keyweave-*.tar.xz
keyweave-x86_64-pc-windows-gnu/keyweave.exe keyweave-x86_64-pc-windows-gnu/keyweave.exe
sign: release:
needs: needs:
- pre-check - pre-check
- build - build
name: Checksum and sign name: Sign and Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
id-token: write id-token: write
@ -195,7 +195,6 @@ jobs:
github-token: ${{ secrets.PAT_TOKEN }} github-token: ${{ secrets.PAT_TOKEN }}
script: | script: |
const sha256sums = ${{ steps.homebrew-inputs.outputs.sha256sums }} const sha256sums = ${{ steps.homebrew-inputs.outputs.sha256sums }}
await github.rest.actions.createWorkflowDispatch({ await github.rest.actions.createWorkflowDispatch({
owner: 'bartvdbraak', owner: 'bartvdbraak',
repo: 'homebrew-keyweave', repo: 'homebrew-keyweave',
@ -205,4 +204,20 @@ jobs:
version: '${{ needs.pre-check.outputs.version }}', version: '${{ needs.pre-check.outputs.version }}',
sha256sums: JSON.stringify(sha256sums) sha256sums: JSON.stringify(sha256sums)
} }
}) })
publish:
needs: release
name: Publish crate
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: cargo publish --token ${CARGO_REGISTRY_TOKEN}
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

6
Cargo.lock generated
View file

@ -852,7 +852,7 @@ dependencies = [
[[package]] [[package]]
name = "keyweave" name = "keyweave"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"azure_identity", "azure_identity",
"azure_security_keyvault", "azure_security_keyvault",
@ -1464,9 +1464,9 @@ dependencies = [
[[package]] [[package]]
name = "smallvec" name = "smallvec"
version = "1.11.1" version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
[[package]] [[package]]
name = "socket2" name = "socket2"

View file

@ -1,8 +1,13 @@
[package] [package]
name = "keyweave" name = "keyweave"
version = "0.2.1" version = "0.2.2"
edition = "2021" edition = "2021"
authors = ["Bart van der Braak <bart@vanderbraak.nl>"] authors = ["Bart van der Braak <bart@vanderbraak.nl>"]
keywords = ["azure", "keyvault", "env"]
description = "Fetches secrets from Azure Key Vault and weaves them into a convenient .env file"
license = "GPL-3.0"
documentation = "https://docs.rs/keyweave"
repository = "https://github.com/bartvdbraak/keyweave/"
[dependencies] [dependencies]
azure_identity = "0.17.0" azure_identity = "0.17.0"

View file

@ -1,6 +1,6 @@
# Keyweave # Keyweave
<img align="right" src="https://github.com/bartvdbraak/keyweave/assets/3996360/bed7f004-e897-46e5-98a4-c654251c0e17" alt="Cluster" height="256"> <img align="right" src="https://github.com/bartvdbraak/keyweave/assets/3996360/bed7f004-e897-46e5-98a4-c654251c0e17" alt="Cluster" width="40%">
Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets. Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets.
@ -15,14 +15,25 @@ Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure K
Before diving into Keyweave, ensure you have the following prerequisites: Before diving into Keyweave, ensure you have the following prerequisites:
- **Azure Account**: Log into your Azure tenant and set up the right subscription, along with any Access Policies required for you to read and list secrets from your Key Vault. - Logged into the right Azure tenant:
```sh ```bash
az login --tenant "your-tenant-guid" az login --tenant "your-tenant-guid"
az account set --subscription "your-subscription-guid" ```
- Identity has `Get` and `List` Secret Permissions in the Access Policies of the Key Vault.
## Installation
### Cargo
Keyweave is built with [Cargo](https://doc.rust-lang.org/cargo/), the Rust package manager. It can also be used to install from [crates.io](https://crates.io/crates/keyweave):
```bash
cargo install keyweave
``` ```
## Installation (MacOS, Linux) ### Homebrew (MacOS, Linux)
For MacOS and Linux systems, installation is a breeze with [Homebrew](https://brew.sh/). Simply run: For MacOS and Linux systems, installation is a breeze with [Homebrew](https://brew.sh/). Simply run:
@ -31,13 +42,15 @@ brew tap bartvdbraak/keyweave
brew install keyweave brew install keyweave
``` ```
## Manual Download ### Manual Download
If you prefer manual installation or need binaries for different platforms (including an executable for Windows), visit the [Releases](/releases) page of this GitHub repository. If you prefer manual installation or need binaries for different platforms (including an executable for Windows), visit the [Releases](/releases) page of this GitHub repository.
## Building from Source ```powershell
Invoke-WebRequest -Uri 'https://github.com/bartvdbraak/keyweave/releases/latest/download/keyweave.exe' -OutFile 'keyweave.exe'
```
Keyweave is built with [Cargo](https://doc.rust-lang.org/cargo/), the Rust package manager. ## Building from Source
To build Keyweave from source, follow these steps: To build Keyweave from source, follow these steps:
@ -71,6 +84,10 @@ keyweave --vault_name <VAULT_NAME> [--output <FILE>] [--filter <FILTER>]
keyweave --vault_name my-key-vault --output my-env-file.env --filter my-secret keyweave --vault_name my-key-vault --output my-env-file.env --filter my-secret
``` ```
## Documentation
Additional documentation for this package can be found on [docs.rs](https://docs.rs/keyweave).
## License ## License
Keyweave is licensed under the GPLv3 License. See [LICENSE](LICENSE) for more details. Keyweave is licensed under the GPLv3 License. See [LICENSE](LICENSE) for more details.

View file

@ -1,6 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
]
}