mirror of
https://github.com/skoelle/kctl-tui.git
synced 2026-09-17 20:10:24 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10f996cfef | ||
|
|
15e4aa64f7 | ||
|
|
50ad7d7335 | ||
|
|
28eeeda58e | ||
|
|
0d33a57118 | ||
|
|
0dbce4769b | ||
|
|
406d65ca33 | ||
|
|
d066733c20 | ||
|
|
2e7d48a2bb | ||
|
|
be4ad209db | ||
|
|
d8d656504c | ||
|
|
a3480f41bf | ||
|
|
9521f47377 | ||
|
|
a1e8894222 | ||
|
|
43aef3b76c | ||
|
|
84dbd9c230 |
+24
-10
@@ -15,11 +15,11 @@ jobs:
|
|||||||
name: Test
|
name: Test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v7
|
||||||
|
|
||||||
- uses: actions/setup-go@v5
|
- uses: actions/setup-go@v7
|
||||||
with:
|
with:
|
||||||
go-version: "1.22"
|
go-version: "1.24"
|
||||||
cache: false
|
cache: false
|
||||||
|
|
||||||
- name: Tidy dependencies (generates/updates go.sum)
|
- name: Tidy dependencies (generates/updates go.sum)
|
||||||
@@ -40,11 +40,11 @@ jobs:
|
|||||||
goos: [linux, windows, darwin]
|
goos: [linux, windows, darwin]
|
||||||
goarch: [amd64, arm64]
|
goarch: [amd64, arm64]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v7
|
||||||
|
|
||||||
- uses: actions/setup-go@v5
|
- uses: actions/setup-go@v7
|
||||||
with:
|
with:
|
||||||
go-version: "1.22"
|
go-version: "1.24"
|
||||||
cache: false
|
cache: false
|
||||||
|
|
||||||
- name: Tidy dependencies (generates/updates go.sum)
|
- name: Tidy dependencies (generates/updates go.sum)
|
||||||
@@ -64,7 +64,7 @@ jobs:
|
|||||||
echo "Built $out"
|
echo "Built $out"
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: kctl-tui-${{ matrix.goos }}-${{ matrix.goarch }}
|
name: kctl-tui-${{ matrix.goos }}-${{ matrix.goarch }}
|
||||||
path: dist/*
|
path: dist/*
|
||||||
@@ -75,13 +75,27 @@ jobs:
|
|||||||
needs: build
|
needs: build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/checkout@v7
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Extract release notes from commit message
|
||||||
|
id: release
|
||||||
|
run: |
|
||||||
|
MSG=$(git log -1 --pretty=format:"%B" "${{ github.sha }}")
|
||||||
|
{
|
||||||
|
echo 'body<<EOF'
|
||||||
|
echo "$MSG"
|
||||||
|
echo 'EOF'
|
||||||
|
} >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v8
|
||||||
with:
|
with:
|
||||||
path: dist
|
path: dist
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
|
|
||||||
- name: Create release and upload binaries
|
- name: Create release and upload binaries
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v3
|
||||||
with:
|
with:
|
||||||
|
body: ${{ steps.release.outputs.body }}
|
||||||
files: dist/*
|
files: dist/*
|
||||||
generate_release_notes: true
|
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
description: Create and push a release tag (e.g. /create-release 1.0.0)
|
||||||
|
---
|
||||||
|
|
||||||
|
Create a release tag and push it to origin. The GitHub Action will automatically build for all platforms and create the GitHub Release.
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. Validate the version argument ($ARGUMENTS):
|
||||||
|
- Must be provided, otherwise show error and stop
|
||||||
|
- Must match semver format (e.g. 1.0.0, 0.9.1, 2.0.0-beta.1)
|
||||||
|
|
||||||
|
2. Check for uncommitted changes:
|
||||||
|
- Run `git status --porcelain`
|
||||||
|
- If any output, warn the user and stop (commit first)
|
||||||
|
|
||||||
|
3. Analyze changes since last release:
|
||||||
|
- Run `git log --oneline $(git describe --tags --abbrev=0 HEAD)..HEAD` to list all commits
|
||||||
|
- Read the changed files to understand context
|
||||||
|
- Write a concise, well-structured release summary in English with:
|
||||||
|
- A one-line overview
|
||||||
|
- Bullet points for each notable change (features, fixes, breaking changes)
|
||||||
|
- Keep it developer-friendly, no fluff
|
||||||
|
|
||||||
|
4. Create release commit with the summary as message:
|
||||||
|
- Run `git commit --allow-empty -m "release v$ARGUMENTS\n\n<summary>"`
|
||||||
|
- The commit message IS the release notes — the GitHub Action picks it up automatically
|
||||||
|
|
||||||
|
5. Create annotated tag on that commit:
|
||||||
|
- Run `git tag -a v$ARGUMENTS -m "Release v$ARGUMENTS"`
|
||||||
|
|
||||||
|
6. Push commit and tag:
|
||||||
|
- Run `git push origin main --tags` (or current branch)
|
||||||
|
|
||||||
|
7. Confirm success with the version number
|
||||||
@@ -14,7 +14,7 @@ is still open. For the full requirements, see [SPEC.md](SPEC.md).
|
|||||||
API is unreachable.
|
API is unreachable.
|
||||||
- [x] `README.md`, `config.example.yaml`.
|
- [x] `README.md`, `config.example.yaml`.
|
||||||
|
|
||||||
## Phase 1 — Core logic + navigation (done, initial version)
|
## Phase 1 — Core logic + navigation (done)
|
||||||
|
|
||||||
- [x] `internal/kctl`: pure, unit-tested logic —
|
- [x] `internal/kctl`: pure, unit-tested logic —
|
||||||
template resolution (`ResolveTemplate`), namespace/label filtering
|
template resolution (`ResolveTemplate`), namespace/label filtering
|
||||||
@@ -49,41 +49,101 @@ is still open. For the full requirements, see [SPEC.md](SPEC.md).
|
|||||||
**whole secret** (one ExternalSecret annotation).
|
**whole secret** (one ExternalSecret annotation).
|
||||||
- `Esc` closes the whole tmux session (`tmux kill-session`).
|
- `Esc` closes the whole tmux session (`tmux kill-session`).
|
||||||
|
|
||||||
## Phase 2 — Hardening (open)
|
## Phase 2 — Hardening (done)
|
||||||
|
|
||||||
- [ ] Handle non-JSON AWS secrets and Kubernetes secrets with binary
|
- [x] Handle non-JSON AWS secrets and Kubernetes secrets with binary
|
||||||
(non-UTF8) values more gracefully in the diff table (currently
|
(non-UTF8) values more gracefully in the diff table.
|
||||||
falls back to a single "value" key or may render oddly).
|
|
||||||
- [ ] Add integration-style tests against a local `kind`/`k3d` cluster in
|
- [ ] Add integration-style tests against a local `kind`/`k3d` cluster in
|
||||||
CI for the `kubeexec` wrappers currently excluded from automated
|
CI for the `kubeexec` wrappers currently excluded from automated
|
||||||
testing.
|
testing. *(Deferred — superseded by client-go in v0.3.0)*
|
||||||
- [ ] Input validation for the free-text steps in "panel" mode (empty
|
- [x] Input validation for the free-text steps in "panel" mode.
|
||||||
region/secret name, invalid characters).
|
- [x] Graceful handling when `tmux`, `k9s`, or `aws` are not installed.
|
||||||
- [ ] Graceful handling when `tmux`, `k9s`, or `aws` are not installed
|
- [x] Structured logging / `--verbose` flag for troubleshooting failed
|
||||||
(currently surfaces the raw exec error).
|
|
||||||
- [ ] Structured logging / `--verbose` flag for troubleshooting failed
|
|
||||||
`kubectl`/`aws` calls.
|
`kubectl`/`aws` calls.
|
||||||
- [ ] Paginate/scroll the secrets diff table for secrets with many fields
|
- [x] Paginate/scroll the secrets diff table for secrets with many fields.
|
||||||
instead of relying on terminal wrapping.
|
|
||||||
|
|
||||||
## Phase 3 — Windows-native support (done)
|
## Phase 3 — Windows-native support (done)
|
||||||
|
|
||||||
- [x] Windows support via [psmux](https://github.com/marlocarlo/psmux) —
|
- [x] Windows support via [psmux](https://github.com/marlocarlo/psmux).
|
||||||
a native, tmux-compatible terminal multiplexer. kctl-tui works
|
|
||||||
without code changes; `CheckTool("tmux")` error message includes
|
|
||||||
Windows-specific install hint.
|
|
||||||
- [x] `install.ps1` — PowerShell install script for Windows.
|
- [x] `install.ps1` — PowerShell install script for Windows.
|
||||||
- [x] Updated README and SPEC with Windows + psmux setup instructions.
|
- [x] Updated README and SPEC with Windows + psmux setup instructions.
|
||||||
|
|
||||||
## Phase 4 — Nice-to-haves (open, not committed)
|
## Phase 4 — Nice-to-haves (done for v0.2.0)
|
||||||
|
|
||||||
- [x] `--version` flag — prints version, set via `-ldflags` at build time.
|
- [x] `--version` flag — prints version, set via `-ldflags` at build time.
|
||||||
- [x] Config validation command (`kctl-tui config check`) — validates
|
- [x] Config validation command (`kctl-tui config check`) — validates
|
||||||
required fields and shows a resolved context example.
|
required fields and shows a resolved context example.
|
||||||
- [ ] Optional direct use of `client-go` instead of shelling out to
|
- [x] `kctl-tui doctor` — health check for tools, config, and connectivity.
|
||||||
`kubectl`, for faster context/namespace/label queries.
|
- [x] `--help` flag with full usage documentation.
|
||||||
- [ ] Homebrew tap / `scoop` manifest as additional install options
|
- [x] CHANGELOG.md, CONTRIBUTING.md, GitHub Issue/PR templates.
|
||||||
alongside `install.sh`.
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bugfix Sprint — between v0.2.0 and v0.3.0
|
||||||
|
|
||||||
|
- [ ] **Dead code** `cmd/kctl-tui/main.go:47-49` — empty
|
||||||
|
`if len(filtered) == 0` block with comment. Remove.
|
||||||
|
- [ ] **Redundant logic** `internal/kctl/diff.go:60-63` —
|
||||||
|
`if lb || rb { match = l == r }` is identical to the line above.
|
||||||
|
Either dead or misunderstood.
|
||||||
|
- [ ] **Diff-scroll is a no-op** `cmd/kctl-tui/panel.go:398-413` —
|
||||||
|
`renderDiffTable` is always called with `visibleHeight=0`, so
|
||||||
|
`end = len(entries)` is always true. j/k/arrows only change the
|
||||||
|
offset text but the table is always fully rendered. The CHANGELOG
|
||||||
|
promises "Diff table scroll support" but the feature is incomplete.
|
||||||
|
- [ ] **README duplicate** `README.md:98-102` — "This downloads the latest
|
||||||
|
release binary..." appears twice (once "to your PATH", once
|
||||||
|
"to /usr/local/bin"). Edit leftover.
|
||||||
|
- [ ] **go mod tidy in CI** `build.yml` — mutates `go.sum` during the
|
||||||
|
build instead of enforcing a tidy check. If someone forgets to tidy,
|
||||||
|
it's silently fixed instead of blocking the PR.
|
||||||
|
- [ ] **Bubbles filter disabled** `full.go:53`, `panel.go:87` — workaround
|
||||||
|
for the stuck-filter bug (commit 7db58b6). Users can no longer
|
||||||
|
type-to-filter. Worth restoring with a proper fix later.
|
||||||
|
- [ ] **Kleinkram:**
|
||||||
|
- `fmt.Errorf("%s", msg)` → `errors.New(msg)` in `kubeexec.go:41`
|
||||||
|
- `helpers.go` is a pointless 1:1 passthrough to the `kctl` package
|
||||||
|
- `IsBinary` also marks UTF-8 special chars (>0x7F) as "binary"
|
||||||
|
|
||||||
|
- [ ] **SECURITY.md** — fehlt, besonders wichtig für ein Tool mit
|
||||||
|
Secret-Workflows.
|
||||||
|
- [ ] **dependabot.yml** — automatische Dependency-Updates.
|
||||||
|
- [ ] **Checksummen für Release-Assets** — CI erzeugt Binaries aber keine
|
||||||
|
`.sha256`-Dateien; für `curl | bash`-Install wichtig.
|
||||||
|
- [ ] **Makefile / justfile** — Build/Test/Vet-Komfort.
|
||||||
|
- [ ] **golangci-lint** — `go vet` allein ist dünn; optional aber empfohlen.
|
||||||
|
- [ ] **PLAN.md aufräumen** — erledigte Phasen als „Done" markieren,
|
||||||
|
offene Items konsolidieren.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
### v0.3.0 — client-go integration
|
||||||
|
|
||||||
|
Replace kubectl shell-outs with direct API calls via `client-go`.
|
||||||
|
|
||||||
|
- [ ] Add `internal/kubeclient` package using `client-go` for:
|
||||||
|
- Context/namespace/label queries (faster than kubectl JSON parsing)
|
||||||
|
- Deployment list and rollout restart/status
|
||||||
|
- Secret fetch (AWS Secrets Manager via SDK, K8s secrets via API)
|
||||||
|
- ExternalSecret annotation update
|
||||||
|
- [ ] Keep `internal/kubeexec` as fallback for operations not yet
|
||||||
|
covered by `client-go`
|
||||||
|
- [ ] Remove `kind`/`k3d` integration test plan (client-go has its own
|
||||||
|
test coverage)
|
||||||
|
- [ ] Add unit tests with `fake.Clientset` for the new package
|
||||||
|
|
||||||
|
### v1.0 — Stable release
|
||||||
|
|
||||||
|
Production-ready with package manager support and documentation.
|
||||||
|
|
||||||
|
- [ ] Homebrew tap (`skoelle/homebrew-tap`) with `kctl-tui` formula
|
||||||
|
- [ ] Scoop manifest (`skoelle/scoop-bucket`) for Windows
|
||||||
|
- [ ] Full test coverage for `internal/kubeclient`
|
||||||
|
- [ ] Documentation: architecture diagram, config reference, troubleshooting
|
||||||
|
- [ ] Semantic versioning policy documented
|
||||||
|
- [ ] Deprecation policy for config schema changes
|
||||||
|
|
||||||
## Notes for contributors
|
## Notes for contributors
|
||||||
|
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ See [SPEC.md](SPEC.md) for the full requirements and design rationale, and
|
|||||||
| -> 1) Quit 2) beta 3) prod |
|
| -> 1) Quit 2) beta 3) prod |
|
||||||
| each with: a) Secrets sync b) Redeploy |
|
| each with: a) Secrets sync b) Redeploy |
|
||||||
+--------------------------------------------------+
|
+--------------------------------------------------+
|
||||||
| k9s --context <resolved beta context> -n <ns> |
|
| k9s --context <resolved beta context> --namespace <ns> --command pods |
|
||||||
+--------------------------------------------------+
|
+--------------------------------------------------+
|
||||||
| k9s --context <resolved prod context> -n <ns> |
|
| k9s --context <resolved prod context> --namespace <ns> --command pods |
|
||||||
+--------------------------------------------------+
|
+--------------------------------------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -95,9 +95,6 @@ curl -fsSL https://raw.githubusercontent.com/skoelle/kctl-tui/main/install.sh |
|
|||||||
irm https://raw.githubusercontent.com/skoelle/kctl-tui/main/install.ps1 | iex
|
irm https://raw.githubusercontent.com/skoelle/kctl-tui/main/install.ps1 | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
This downloads the latest release binary for your architecture from
|
|
||||||
GitHub Releases and installs it to your PATH.
|
|
||||||
|
|
||||||
This downloads the latest release binary for your OS/architecture from
|
This downloads the latest release binary for your OS/architecture from
|
||||||
GitHub Releases and installs it to `/usr/local/bin/kctl-tui`.
|
GitHub Releases and installs it to `/usr/local/bin/kctl-tui`.
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ work, bundling the most common workflows currently done via long
|
|||||||
`kubectl`/`k9s`/`aws-cli` commands, operable through a text UI (arrow keys,
|
`kubectl`/`k9s`/`aws-cli` commands, operable through a text UI (arrow keys,
|
||||||
Esc) instead of long typed commands.
|
Esc) instead of long typed commands.
|
||||||
|
|
||||||
Target platform: **Linux / WSL** (primary usage scenario, since split
|
Target platform: **Linux / WSL / Windows** (primary usage scenario, since
|
||||||
panes require a real terminal multiplexer). Native Windows (without WSL)
|
split panes require a real terminal multiplexer). On Windows, use
|
||||||
is possible but with reduced split-view functionality (see 3.6).
|
[psmux](https://github.com/marlocarlo/psmux) as tmux-compatible
|
||||||
|
multiplexer.
|
||||||
|
|
||||||
**Technology decision: Go + Bubble Tea** (see section 5).
|
**Technology decision: Go + Bubble Tea** (see section 5).
|
||||||
|
|
||||||
@@ -177,11 +178,11 @@ Alternatively, run kctl-tui inside WSL with standard `tmux`.
|
|||||||
|
|
||||||
## 4. Non-functional requirements
|
## 4. Non-functional requirements
|
||||||
|
|
||||||
- **Primary platform Linux/WSL**, secondary native Windows (via psmux).
|
- **Platforms**: Linux, macOS, Windows (via psmux or WSL).
|
||||||
- **Single-binary distribution** without external runtime dependency (Go
|
- **Single-binary distribution** without external runtime dependency (Go
|
||||||
provides this natively).
|
provides this natively).
|
||||||
- **External dependencies**: `kubectl` mandatory; `tmux`, `k9s`, `aws-cli`
|
- **External dependencies**: `kubectl` mandatory; `tmux`/`psmux`, `k9s`,
|
||||||
depending on the action used.
|
`aws-cli` depending on the action used.
|
||||||
- **Low startup time**, noticeably faster than the current `kubens`
|
- **Low startup time**, noticeably faster than the current `kubens`
|
||||||
experience.
|
experience.
|
||||||
- **No destructive actions without confirmation** (redeploy, force-sync).
|
- **No destructive actions without confirmation** (redeploy, force-sync).
|
||||||
@@ -243,16 +244,14 @@ Rejected options (see discussion history):
|
|||||||
- These fixes are a prerequisite before the tool can be meaningfully
|
- These fixes are a prerequisite before the tool can be meaningfully
|
||||||
tested, since it builds directly on `kubectl config`.
|
tested, since it builds directly on `kubectl config`.
|
||||||
|
|
||||||
## 8. Open items / out of scope (v1)
|
## 8. Open items / out of scope
|
||||||
|
|
||||||
- No automatic label setup for namespaces (migration is a separate,
|
- No automatic label setup for namespaces (migration is a separate,
|
||||||
one-time task).
|
one-time task).
|
||||||
- Split view v1 fixed at 2 status panes + 1 control pane (3 panes total).
|
- Split view fixed at 2 status panes + 1 control pane (3 panes total).
|
||||||
- No RBAC/permission checks before executing sensitive actions — the tool
|
- No RBAC/permission checks before executing sensitive actions — the tool
|
||||||
assumes existing kubectl permissions.
|
assumes existing kubectl permissions.
|
||||||
- Configuration file format (`config.yaml`) is defined and implemented;
|
- Configuration file format (`config.yaml`) is defined and implemented;
|
||||||
concrete label keys, context names, and namespace names are
|
concrete label keys, context names, and namespace names are
|
||||||
project-specific and belong exclusively in the user's local, unversioned
|
project-specific and belong exclusively in the user's local, unversioned
|
||||||
configuration, not in this document or the source code.
|
configuration, not in this document or the source code.
|
||||||
- Native Windows (without WSL) remains a secondary platform with manual
|
|
||||||
pane handling instead of an automated tmux lifecycle.
|
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ func main() {
|
|||||||
verbose = true
|
verbose = true
|
||||||
case "--version", "-v":
|
case "--version", "-v":
|
||||||
fmt.Printf("kctl-tui %s\n", version)
|
fmt.Printf("kctl-tui %s\n", version)
|
||||||
|
fmt.Println("Copyright (c) 2026 Stefan Koelle (https://stefankoelle.de)")
|
||||||
|
fmt.Println("Licensed under the MIT License")
|
||||||
return
|
return
|
||||||
case "--help", "-h":
|
case "--help", "-h":
|
||||||
showHelp = true
|
showHelp = true
|
||||||
@@ -85,6 +87,7 @@ func main() {
|
|||||||
|
|
||||||
func printUsage() {
|
func printUsage() {
|
||||||
fmt.Print(`kctl-tui — Kubernetes entry-point TUI
|
fmt.Print(`kctl-tui — Kubernetes entry-point TUI
|
||||||
|
https://github.com/skoelle/kctl-tui
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
kctl-tui [flags] start the TUI (full navigation mode)
|
kctl-tui [flags] start the TUI (full navigation mode)
|
||||||
|
|||||||
@@ -1,30 +1,36 @@
|
|||||||
module github.com/skoelle/kctl-tui
|
module github.com/skoelle/kctl-tui
|
||||||
|
|
||||||
go 1.22
|
go 1.24.2
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/charmbracelet/bubbles v0.20.0
|
github.com/charmbracelet/bubbles v0.21.1
|
||||||
github.com/charmbracelet/bubbletea v1.1.1
|
github.com/charmbracelet/bubbletea v1.3.10
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/atotto/clipboard v0.1.4 // indirect
|
github.com/atotto/clipboard v0.1.4 // indirect
|
||||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
github.com/charmbracelet/lipgloss v1.0.0 // indirect
|
github.com/charmbracelet/colorprofile v0.4.1 // indirect
|
||||||
github.com/charmbracelet/x/ansi v0.4.2 // indirect
|
github.com/charmbracelet/lipgloss v1.1.0 // indirect
|
||||||
github.com/charmbracelet/x/term v0.2.0 // indirect
|
github.com/charmbracelet/x/ansi v0.11.5 // indirect
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
|
||||||
|
github.com/charmbracelet/x/term v0.2.2 // indirect
|
||||||
|
github.com/clipperhouse/displaywidth v0.9.0 // indirect
|
||||||
|
github.com/clipperhouse/stringish v0.1.1 // indirect
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
|
||||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
github.com/mattn/go-localereader v0.0.1 // indirect
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
||||||
github.com/mattn/go-runewidth v0.0.16 // indirect
|
github.com/mattn/go-runewidth v0.0.19 // indirect
|
||||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||||
github.com/muesli/cancelreader v0.2.2 // indirect
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||||
github.com/muesli/termenv v0.15.2 // indirect
|
github.com/muesli/termenv v0.16.0 // indirect
|
||||||
github.com/rivo/uniseg v0.4.7 // indirect
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
github.com/sahilm/fuzzy v0.1.1 // indirect
|
github.com/sahilm/fuzzy v0.1.1 // indirect
|
||||||
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||||
golang.org/x/sync v0.8.0 // indirect
|
golang.org/x/sync v0.8.0 // indirect
|
||||||
golang.org/x/sys v0.24.0 // indirect
|
golang.org/x/sys v0.38.0 // indirect
|
||||||
golang.org/x/text v0.3.8 // indirect
|
golang.org/x/text v0.3.8 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,43 +4,73 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
|
|||||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
||||||
github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
|
github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
|
||||||
github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
|
github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
|
||||||
|
github.com/charmbracelet/bubbles v0.21.1 h1:nj0decPiixaZeL9diI4uzzQTkkz1kYY8+jgzCZXSmW0=
|
||||||
|
github.com/charmbracelet/bubbles v0.21.1/go.mod h1:HHvIYRCpbkCJw2yo0vNX1O5loCwSr9/mWS8GYSg50Sk=
|
||||||
github.com/charmbracelet/bubbletea v1.1.1 h1:KJ2/DnmpfqFtDNVTvYZ6zpPFL9iRCRr0qqKOCvppbPY=
|
github.com/charmbracelet/bubbletea v1.1.1 h1:KJ2/DnmpfqFtDNVTvYZ6zpPFL9iRCRr0qqKOCvppbPY=
|
||||||
github.com/charmbracelet/bubbletea v1.1.1/go.mod h1:9Ogk0HrdbHolIKHdjfFpyXJmiCzGwy+FesYkZr7hYU4=
|
github.com/charmbracelet/bubbletea v1.1.1/go.mod h1:9Ogk0HrdbHolIKHdjfFpyXJmiCzGwy+FesYkZr7hYU4=
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.1 h1:a1lO03qTrSIRaK8c3JRxJDZOvhvIeSco3ej+ngLk1kk=
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk=
|
||||||
github.com/charmbracelet/lipgloss v1.0.0 h1:O7VkGDvqEdGi93X+DeqsQ7PKHDgtQfF8j8/O2qFMQNg=
|
github.com/charmbracelet/lipgloss v1.0.0 h1:O7VkGDvqEdGi93X+DeqsQ7PKHDgtQfF8j8/O2qFMQNg=
|
||||||
github.com/charmbracelet/lipgloss v1.0.0/go.mod h1:U5fy9Z+C38obMs+T+tJqst9VGzlOYGj4ri9reL3qUlo=
|
github.com/charmbracelet/lipgloss v1.0.0/go.mod h1:U5fy9Z+C38obMs+T+tJqst9VGzlOYGj4ri9reL3qUlo=
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
|
||||||
github.com/charmbracelet/x/ansi v0.4.2 h1:0JM6Aj/g/KC154/gOP4vfxun0ff6itogDYk41kof+qk=
|
github.com/charmbracelet/x/ansi v0.4.2 h1:0JM6Aj/g/KC154/gOP4vfxun0ff6itogDYk41kof+qk=
|
||||||
github.com/charmbracelet/x/ansi v0.4.2/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
|
github.com/charmbracelet/x/ansi v0.4.2/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.5 h1:NBWeBpj/lJPE3Q5l+Lusa4+mH6v7487OP8K0r1IhRg4=
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.5/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
|
||||||
github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0=
|
github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0=
|
||||||
github.com/charmbracelet/x/term v0.2.0/go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0=
|
github.com/charmbracelet/x/term v0.2.0/go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0=
|
||||||
|
github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
|
||||||
|
github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
|
||||||
|
github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
|
||||||
|
github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
|
||||||
|
github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
|
||||||
|
github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.5.0 h1:x7T0T4eTHDONxFJsL94uKNKPHrclyFI0lm7+w94cO8U=
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.5.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
|
||||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
||||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
||||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
|
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
|
||||||
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
|
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
|
||||||
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
|
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
|
||||||
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||||
|
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
|
||||||
|
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
|
||||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
|
||||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
|
||||||
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
|
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
|
||||||
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
|
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
|
||||||
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
|
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
|
||||||
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
|
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
|
||||||
|
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
|
||||||
|
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
|
||||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||||
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
github.com/sahilm/fuzzy v0.1.1 h1:ceu5RHF8DGgoi+/dR5PsECjCDH1BE3Fnmpo7aVXOdRA=
|
github.com/sahilm/fuzzy v0.1.1 h1:ceu5RHF8DGgoi+/dR5PsECjCDH1BE3Fnmpo7aVXOdRA=
|
||||||
github.com/sahilm/fuzzy v0.1.1/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
|
github.com/sahilm/fuzzy v0.1.1/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
|
||||||
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
|
||||||
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
|
||||||
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
||||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
|
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
|
||||||
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
||||||
|
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||||
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
|
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": ["config:recommended"],
|
||||||
|
"schedule": ["before 6am on Monday"],
|
||||||
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"matchManagers": ["github-actions"],
|
||||||
|
"matchUpdateTypes": ["minor", "patch"],
|
||||||
|
"groupName": "GitHub Actions",
|
||||||
|
"automerge": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matchManagers": ["github-actions"],
|
||||||
|
"matchUpdateTypes": ["major"],
|
||||||
|
"groupName": "GitHub Actions (major)",
|
||||||
|
"labels": ["major-update"],
|
||||||
|
"automerge": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matchManagers": ["gomod"],
|
||||||
|
"matchUpdateTypes": ["minor", "patch"],
|
||||||
|
"groupName": "Go dependencies",
|
||||||
|
"automerge": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matchManagers": ["gomod"],
|
||||||
|
"matchUpdateTypes": ["major"],
|
||||||
|
"groupName": "Go dependencies (major)",
|
||||||
|
"labels": ["major-update"],
|
||||||
|
"automerge": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matchUpdateTypes": ["minor", "patch"],
|
||||||
|
"automerge": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matchUpdateTypes": ["major"],
|
||||||
|
"labels": ["major-update"],
|
||||||
|
"automerge": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user