mirror of
https://github.com/ddworken/hishtory.git
synced 2025-03-19 18:06:48 +01:00
Merge branch 'master' into import
This commit is contained in:
commit
6604c63b26
2
.github/workflows/distro-smoke-test.yml
vendored
2
.github/workflows/distro-smoke-test.yml
vendored
@ -44,7 +44,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- name: Go test
|
- name: Go test
|
||||||
if: ${{ !startsWith(github.event.head_commit.message, 'Release') }}
|
if: ${{ !startsWith(github.event.head_commit.message, 'Release') }}
|
||||||
env:
|
env:
|
||||||
|
2
.github/workflows/docker-compose-test.yml
vendored
2
.github/workflows/docker-compose-test.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- name: Docker Compose setup
|
- name: Docker Compose setup
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
6
.github/workflows/go-test.yml
vendored
6
.github/workflows/go-test.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
needs: extra-delay
|
needs: extra-delay
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, macos-14]
|
os: [ubuntu-latest, macos-14]
|
||||||
test_shard: ["0", "1", "2", "3", "4"]
|
test_shard: ["0", "1", "2", "3", "4"]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
@ -32,7 +32,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- name: Linux Setup
|
- name: Linux Setup
|
||||||
if: ${{ matrix.os == 'ubuntu-latest'}}
|
if: ${{ matrix.os == 'ubuntu-latest'}}
|
||||||
run: |
|
run: |
|
||||||
@ -119,7 +119,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- name: Download artifact
|
- name: Download artifact
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
- name: Check all goldens were used
|
- name: Check all goldens were used
|
||||||
|
2
.github/workflows/pre-commit.yml
vendored
2
.github/workflows/pre-commit.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
|||||||
- uses: actions/setup-python@v3
|
- uses: actions/setup-python@v3
|
||||||
- uses: actions/setup-go@v4
|
- uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
|
|
||||||
|
2
.github/workflows/server-releaser.yml
vendored
2
.github/workflows/server-releaser.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- name: Build server binary
|
- name: Build server binary
|
||||||
run: |
|
run: |
|
||||||
GOARCH=${{ matrix.goarch }} GOOS=${{ matrix.goos }} go build -o hishtory-server-${{ matrix.goos }}-${{ matrix.goarch }} backend/server/server.go
|
GOARCH=${{ matrix.goarch }} GOOS=${{ matrix.goos }} go build -o hishtory-server-${{ matrix.goos }}-${{ matrix.goarch }} backend/server/server.go
|
||||||
|
16
.github/workflows/slsa-releaser.yml
vendored
16
.github/workflows/slsa-releaser.yml
vendored
@ -33,7 +33,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-linux-amd64.yml
|
config-file: .github/slsa/.slsa-goreleaser-linux-amd64.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
build-linux-arm64:
|
build-linux-arm64:
|
||||||
@ -45,7 +45,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-linux-arm64.yml
|
config-file: .github/slsa/.slsa-goreleaser-linux-arm64.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
build-linux-arm7:
|
build-linux-arm7:
|
||||||
@ -57,7 +57,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-linux-arm7.yml
|
config-file: .github/slsa/.slsa-goreleaser-linux-arm7.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
build-freebsd-amd64:
|
build-freebsd-amd64:
|
||||||
@ -69,7 +69,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-freebsd-amd64.yml
|
config-file: .github/slsa/.slsa-goreleaser-freebsd-amd64.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
build-netbsd-amd64:
|
build-netbsd-amd64:
|
||||||
@ -81,7 +81,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-netbsd-amd64.yml
|
config-file: .github/slsa/.slsa-goreleaser-netbsd-amd64.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
build-darwin-amd64:
|
build-darwin-amd64:
|
||||||
@ -94,7 +94,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-darwin-amd64.yml
|
config-file: .github/slsa/.slsa-goreleaser-darwin-amd64.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
build-darwin-arm64:
|
build-darwin-arm64:
|
||||||
@ -107,7 +107,7 @@ jobs:
|
|||||||
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.10.0
|
||||||
with:
|
with:
|
||||||
config-file: .github/slsa/.slsa-goreleaser-darwin-arm64.yml
|
config-file: .github/slsa/.slsa-goreleaser-darwin-arm64.yml
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
evaluated-envs: "VERSION_LDFLAGS:${{needs.args.outputs.ldflags}}"
|
||||||
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
compile-builder: true # See github.com/slsa-framework/slsa-github-generator/issues/942
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: 1.21
|
go-version: 1.23
|
||||||
- uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741
|
- uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741
|
||||||
with:
|
with:
|
||||||
name: hishtory-linux-amd64
|
name: hishtory-linux-amd64
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/Bahjat/pre-commit-golang
|
- repo: https://github.com/Bahjat/pre-commit-golang
|
||||||
rev: a4be1d0f860565649a450a8d480e541844c14a07
|
rev: bdba95f94147c2f5da7eda81e15cdd92c41758ba
|
||||||
hooks:
|
hooks:
|
||||||
- id: go-vet
|
- id: go-vet
|
||||||
- id: go-static-check # install https://staticcheck.io/docs/
|
- id: go-static-check # install https://staticcheck.io/docs/
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM golang:1.21-alpine3.17 AS builder
|
FROM golang:1.23.0-alpine3.20 AS builder
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk add --update --no-cache --virtual .build-deps build-base
|
RUN apk add --update --no-cache --virtual .build-deps build-base
|
||||||
|
@ -27,7 +27,19 @@ func (db *DB) AllHistoryEntriesForUser(ctx context.Context, userID string) ([]*s
|
|||||||
return nil, fmt.Errorf("tx.Error: %w", tx.Error)
|
return nil, fmt.Errorf("tx.Error: %w", tx.Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
return historyEntries, nil
|
// Remove duplicate entries using EncryptedId as the key to save bandwidth when sending data to the client
|
||||||
|
uniqueEntries := make(map[string]*shared.EncHistoryEntry)
|
||||||
|
for _, entry := range historyEntries {
|
||||||
|
uniqueEntries[entry.EncryptedId] = entry
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert the map back to a slice
|
||||||
|
dedupedEntries := make([]*shared.EncHistoryEntry, 0, len(uniqueEntries))
|
||||||
|
for _, entry := range uniqueEntries {
|
||||||
|
dedupedEntries = append(dedupedEntries, entry)
|
||||||
|
}
|
||||||
|
|
||||||
|
return dedupedEntries, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *DB) HistoryEntriesForDevice(ctx context.Context, deviceID string, limit int) ([]*shared.EncHistoryEntry, error) {
|
func (db *DB) HistoryEntriesForDevice(ctx context.Context, deviceID string, limit int) ([]*shared.EncHistoryEntry, error) {
|
||||||
|
@ -74,7 +74,6 @@ func (s *Server) apiSubmitHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) apiBootstrapHandler(w http.ResponseWriter, r *http.Request) {
|
func (s *Server) apiBootstrapHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
// TODO: Update this to filter out duplicate entries
|
|
||||||
userId := getRequiredQueryParam(r, "user_id")
|
userId := getRequiredQueryParam(r, "user_id")
|
||||||
deviceId := getRequiredQueryParam(r, "device_id")
|
deviceId := getRequiredQueryParam(r, "device_id")
|
||||||
version := getHishtoryVersion(r)
|
version := getHishtoryVersion(r)
|
||||||
|
@ -116,7 +116,7 @@ func TestESubmitThenQuery(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, decEntry, entry)
|
require.Equal(t, decEntry, entry)
|
||||||
|
|
||||||
// Bootstrap handler should return 2 entries, one for each device
|
// Bootstrap handler should return 1 entries, one for each device, but deduplicated
|
||||||
w = httptest.NewRecorder()
|
w = httptest.NewRecorder()
|
||||||
searchReq = httptest.NewRequest(http.MethodGet, "/?user_id="+data.UserId("key")+"&device_id="+devId1, nil)
|
searchReq = httptest.NewRequest(http.MethodGet, "/?user_id="+data.UserId("key")+"&device_id="+devId1, nil)
|
||||||
s.apiBootstrapHandler(w, searchReq)
|
s.apiBootstrapHandler(w, searchReq)
|
||||||
@ -125,7 +125,7 @@ func TestESubmitThenQuery(t *testing.T) {
|
|||||||
respBody, err = io.ReadAll(res.Body)
|
respBody, err = io.ReadAll(res.Body)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, json.Unmarshal(respBody, &retrievedEntries))
|
require.NoError(t, json.Unmarshal(respBody, &retrievedEntries))
|
||||||
require.Len(t, retrievedEntries, 2)
|
require.Len(t, retrievedEntries, 1)
|
||||||
|
|
||||||
// Assert that we aren't leaking connections
|
// Assert that we aren't leaking connections
|
||||||
assertNoLeakedConnections(t, DB)
|
assertNoLeakedConnections(t, DB)
|
||||||
|
@ -594,6 +594,10 @@ func setup(userSecret string, isOffline bool) error {
|
|||||||
config.HighlightMatches = true
|
config.HighlightMatches = true
|
||||||
config.AiCompletion = true
|
config.AiCompletion = true
|
||||||
config.IsOffline = isOffline
|
config.IsOffline = isOffline
|
||||||
|
if isOffline {
|
||||||
|
// By default, offline mode disables AI completion. Users can still enable it if they want it. See #220.
|
||||||
|
config.AiCompletion = false
|
||||||
|
}
|
||||||
config.EnablePresaving = true
|
config.EnablePresaving = true
|
||||||
err := hctx.SetConfig(&config)
|
err := hctx.SetConfig(&config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -42,7 +42,7 @@ func GetLogger() *logrus.Logger {
|
|||||||
lumberjackLogger := &lumberjack.Logger{
|
lumberjackLogger := &lumberjack.Logger{
|
||||||
Filename: path.Join(homedir, data.GetHishtoryPath(), "hishtory.log"),
|
Filename: path.Join(homedir, data.GetHishtoryPath(), "hishtory.log"),
|
||||||
MaxSize: 1, // MB
|
MaxSize: 1, // MB
|
||||||
MaxBackups: 10,
|
MaxBackups: 1,
|
||||||
MaxAge: 30, // days
|
MaxAge: 30, // days
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ func GetConfig() (ClientConfig, error) {
|
|||||||
return ClientConfig{}, fmt.Errorf("failed to parse config file: %w", err)
|
return ClientConfig{}, fmt.Errorf("failed to parse config file: %w", err)
|
||||||
}
|
}
|
||||||
config.KeyBindings = config.KeyBindings.WithDefaults()
|
config.KeyBindings = config.KeyBindings.WithDefaults()
|
||||||
if config.DisplayedColumns == nil || len(config.DisplayedColumns) == 0 {
|
if len(config.DisplayedColumns) == 0 {
|
||||||
config.DisplayedColumns = []string{"Hostname", "CWD", "Timestamp", "Runtime", "Exit Code", "Command"}
|
config.DisplayedColumns = []string{"Hostname", "CWD", "Timestamp", "Runtime", "Exit Code", "Command"}
|
||||||
}
|
}
|
||||||
if config.TimestampFormat == "" {
|
if config.TimestampFormat == "" {
|
||||||
|
@ -31,6 +31,7 @@ import (
|
|||||||
"github.com/schollz/progressbar/v3"
|
"github.com/schollz/progressbar/v3"
|
||||||
"golang.org/x/exp/slices"
|
"golang.org/x/exp/slices"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
"iter"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:embed config.sh
|
//go:embed config.sh
|
||||||
@ -218,7 +219,7 @@ func ImportHistory(ctx context.Context, shouldReadStdin, force bool) (int, error
|
|||||||
filepath.Join(homedir, ".bash_history"),
|
filepath.Join(homedir, ".bash_history"),
|
||||||
filepath.Join(homedir, ".zsh_history"),
|
filepath.Join(homedir, ".zsh_history"),
|
||||||
}
|
}
|
||||||
if histfile := os.Getenv("HISTFILE"); histfile != "" && !slices.Contains[string](inputFiles, histfile) {
|
if histfile := os.Getenv("HISTFILE"); histfile != "" && !slices.Contains(inputFiles, histfile) {
|
||||||
inputFiles = append(inputFiles, histfile)
|
inputFiles = append(inputFiles, histfile)
|
||||||
}
|
}
|
||||||
zHistPath := filepath.Join(homedir, ".zhistory")
|
zHistPath := filepath.Join(homedir, ".zhistory")
|
||||||
@ -369,10 +370,10 @@ func getFishHistoryPath(homedir string) string {
|
|||||||
return filepath.Join(homedir, ".local/share/fish/fish_history")
|
return filepath.Join(homedir, ".local/share/fish/fish_history")
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseFishHistory(homedir string) Seq2[string, error] {
|
func parseFishHistory(homedir string) iter.Seq2[string, error] {
|
||||||
lines := readFileToIterator(getFishHistoryPath(homedir))
|
lines := readFileToIterator(getFishHistoryPath(homedir))
|
||||||
return func(yield func(string, error) bool) bool {
|
return func(yield func(string, error) bool) {
|
||||||
return lines(func(line string, err error) bool {
|
lines(func(line string, err error) bool {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return yield(line, err)
|
return yield(line, err)
|
||||||
}
|
}
|
||||||
@ -385,44 +386,37 @@ func parseFishHistory(homedir string) Seq2[string, error] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type (
|
// Concatenate two iterators.
|
||||||
// Represents an iterator of (K,V). Equivalent of the future Go stdlib type iter.Seq2.
|
// TODO: Equivalent of the future Go stdlib function iter.Concat2.
|
||||||
// TODO: Swap this to the stdlib function once it has been released, along with the below two functions
|
func concatIterators(iters ...iter.Seq2[string, error]) iter.Seq2[string, error] {
|
||||||
Seq2[K, V any] func(yield func(K, V) bool) bool
|
return func(yield func(string, error) bool) {
|
||||||
)
|
|
||||||
|
|
||||||
// Concatenate two iterators. Equivalent of the future Go stdlib function iter.Concat2.
|
|
||||||
func concatIterators(iters ...Seq2[string, error]) Seq2[string, error] {
|
|
||||||
return func(yield func(string, error) bool) bool {
|
|
||||||
for _, seq := range iters {
|
for _, seq := range iters {
|
||||||
if !seq(yield) {
|
seq(yield)
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert a slice into an iterator. Equivalent of the future Go stdlib function iter.Values
|
// Convert a slice into an iterator.
|
||||||
func Values[Slice ~[]Elem, Elem any](s Slice) Seq2[Elem, error] {
|
// TODO: Equivalent of the future Go stdlib function iter.Values
|
||||||
return func(yield func(Elem, error) bool) bool {
|
func Values[Slice ~[]Elem, Elem any](s Slice) iter.Seq2[Elem, error] {
|
||||||
|
return func(yield func(Elem, error) bool) {
|
||||||
for _, v := range s {
|
for _, v := range s {
|
||||||
if !yield(v, nil) {
|
if !yield(v, nil) {
|
||||||
return false
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func readFileToIterator(path string) Seq2[string, error] {
|
func readFileToIterator(path string) iter.Seq2[string, error] {
|
||||||
return func(yield func(string, error) bool) bool {
|
return func(yield func(string, error) bool) {
|
||||||
if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) {
|
if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) {
|
||||||
return true
|
return
|
||||||
}
|
}
|
||||||
file, err := os.Open(path)
|
file, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return yield("", fmt.Errorf("failed to open file: %w", err))
|
yield("", fmt.Errorf("failed to open file: %w", err))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
@ -432,15 +426,14 @@ func readFileToIterator(path string) Seq2[string, error] {
|
|||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
line := scanner.Text()
|
line := scanner.Text()
|
||||||
if !yield(line, nil) {
|
if !yield(line, nil) {
|
||||||
return false
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := scanner.Err(); err != nil {
|
if err := scanner.Err(); err != nil {
|
||||||
return yield("", fmt.Errorf("scanner.Err()=%w", err))
|
yield("", fmt.Errorf("scanner.Err()=%w", err))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Search Query: [90m> [7m[39ml[0m[90ms[39m
|
Search Query: [90m> [7m[39ml[0m[90ms
|
||||||
|
|
||||||
[90m┌────────────────────────────────────────────────────────────────────────────────────────────────────────┐[39m
|
┌────────────────────────────────────────────────────────────────────────────────────────────────────────┐[39m
|
||||||
[90m│[39m Hostname CWD Timestamp Runtime Exit Code Command [90m│[39m
|
[90m│[39m Hostname CWD Timestamp Runtime Exit Code Command [90m│[39m
|
||||||
[90m│────────────────────────────────────────────────────────────────────────────────────────────────────────│[39m
|
[90m│────────────────────────────────────────────────────────────────────────────────────────────────────────│[39m
|
||||||
[90m│[93m[104m localhost /tmp/ Oct 17 2022 21:43:21 PDT 3s 2 echo 'aaaaaa bbbb' [90m[49m│[39m
|
[90m│[93m[104m localhost /tmp/ Oct 17 2022 21:43:21 PDT 3s 2 echo 'aaaaaa bbbb' [90m[49m│[39m
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Search Query: [90m> [7m[39ml[0m[90m[49ms[39m
|
Search Query: [90m> [7m[39ml[0m[90m[49ms
|
||||||
|
|
||||||
[90m┌────────────────────────────────────────────────────────────────────────────────────────────────────────┐[39m
|
┌────────────────────────────────────────────────────────────────────────────────────────────────────────┐[39m
|
||||||
[90m│[39m Hostname CWD Timestamp Runtime Exit Code Command [90m│[39m
|
[90m│[39m Hostname CWD Timestamp Runtime Exit Code Command [90m│[39m
|
||||||
[90m│────────────────────────────────────────────────────────────────────────────────────────────────────────│[39m
|
[90m│────────────────────────────────────────────────────────────────────────────────────────────────────────│[39m
|
||||||
[90m│[93m[104m localhost /tmp/ Oct 17 2022 21:43:21 PDT 3s 2 echo 'aaaaaa bbbb' [90m[49m│[39m
|
[90m│[93m[104m localhost /tmp/ Oct 17 2022 21:43:21 PDT 3s 2 echo 'aaaaaa bbbb' [90m[49m│[39m
|
||||||
|
4
client/testdata/unittestTable-truncatedTable
vendored
4
client/testdata/unittestTable-truncatedTable
vendored
@ -1,5 +1,5 @@
|
|||||||
[1mColumn1 [0m [1mColumn2 [0m
|
Column1 Column2
|
||||||
[1;m a1 a2345 [0m
|
a1 a2345
|
||||||
b1 b23
|
b1 b23
|
||||||
c1 c1234567890abcdefgh…
|
c1 c1234567890abcdefgh…
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[1mColumn1 [0m [1mColumn2 [0m
|
Column1 Column2
|
||||||
[1;m a1 …2345 [0m
|
a1 …2345
|
||||||
b1 …23
|
b1 …23
|
||||||
c1 …1234567890abcdefgh…
|
c1 …1234567890abcdefgh…
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[1mColumn1 [0m [1mColumn2 [0m
|
Column1 Column2
|
||||||
[1;m a1 …345 [0m
|
a1 …345
|
||||||
b1 …3
|
b1 …3
|
||||||
c1 …234567890abcdefghi…
|
c1 …234567890abcdefghi…
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[1mColumn1 [0m [1mColumn2 [0m
|
Column1 Column2
|
||||||
[1;m a1 …45 [0m
|
a1 …45
|
||||||
b1 …
|
b1 …
|
||||||
c1 …34567890abcdefghij…
|
c1 …34567890abcdefghij…
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ func getRowsFromAiSuggestions(ctx context.Context, columnNames []string, shellNa
|
|||||||
func getRows(ctx context.Context, columnNames []string, shellName, defaultFilter, query string, numEntries int) ([]table.Row, []*data.HistoryEntry, error) {
|
func getRows(ctx context.Context, columnNames []string, shellName, defaultFilter, query string, numEntries int) ([]table.Row, []*data.HistoryEntry, error) {
|
||||||
db := hctx.GetDb(ctx)
|
db := hctx.GetDb(ctx)
|
||||||
config := hctx.GetConf(ctx)
|
config := hctx.GetConf(ctx)
|
||||||
if config.AiCompletion && !config.IsOffline && strings.HasPrefix(query, "?") && len(query) > 1 {
|
if config.AiCompletion && strings.HasPrefix(query, "?") && len(query) > 1 {
|
||||||
return getRowsFromAiSuggestions(ctx, columnNames, shellName, query)
|
return getRowsFromAiSuggestions(ctx, columnNames, shellName, query)
|
||||||
}
|
}
|
||||||
searchResults, err := lib.Search(ctx, db, defaultFilter+" "+query, numEntries)
|
searchResults, err := lib.Search(ctx, db, defaultFilter+" "+query, numEntries)
|
||||||
|
328
go.mod
328
go.mod
@ -1,146 +1,165 @@
|
|||||||
module github.com/ddworken/hishtory
|
module github.com/ddworken/hishtory
|
||||||
|
|
||||||
go 1.21
|
go 1.23.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/DataDog/datadog-go v4.8.3+incompatible
|
github.com/DataDog/datadog-go v4.8.3+incompatible
|
||||||
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
|
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
|
||||||
github.com/charmbracelet/bubbles v0.15.0
|
github.com/charmbracelet/bubbles v0.19.0
|
||||||
github.com/charmbracelet/bubbletea v0.25.1-0.20240205134909-2b46020ca072
|
github.com/charmbracelet/bubbletea v0.27.1
|
||||||
github.com/charmbracelet/lipgloss v0.6.0
|
github.com/charmbracelet/lipgloss v0.13.0
|
||||||
github.com/fatih/color v1.16.0
|
github.com/fatih/color v1.17.0
|
||||||
github.com/glebarez/sqlite v1.4.7
|
github.com/glebarez/sqlite v1.11.0
|
||||||
github.com/go-test/deep v1.1.0
|
github.com/go-test/deep v1.1.1
|
||||||
github.com/google/go-cmp v0.6.0
|
github.com/google/go-cmp v0.6.0
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/jackc/pgx/v4 v4.18.2
|
github.com/jackc/pgx/v4 v4.18.2
|
||||||
github.com/lib/pq v1.10.9
|
github.com/lib/pq v1.10.9
|
||||||
github.com/mattn/go-runewidth v0.0.15
|
github.com/mattn/go-runewidth v0.0.16
|
||||||
github.com/muesli/termenv v0.15.2
|
github.com/muesli/termenv v0.15.2
|
||||||
github.com/rodaine/table v1.0.1
|
github.com/rodaine/table v1.3.0
|
||||||
github.com/samber/lo v1.46.0
|
github.com/samber/lo v1.46.0
|
||||||
github.com/schollz/progressbar/v3 v3.13.1
|
github.com/schollz/progressbar/v3 v3.14.6
|
||||||
github.com/sirupsen/logrus v1.9.1
|
github.com/sirupsen/logrus v1.9.3
|
||||||
github.com/slsa-framework/slsa-verifier v1.4.2-0.20221130213533-128324f48837
|
github.com/slsa-framework/slsa-verifier v1.4.2-0.20221130213533-128324f48837
|
||||||
github.com/spf13/cobra v1.8.0
|
github.com/spf13/cobra v1.8.1
|
||||||
github.com/stretchr/testify v1.8.4
|
github.com/stretchr/testify v1.9.0
|
||||||
golang.org/x/exp v0.0.0-20230321023759-10a507213a29
|
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948
|
||||||
golang.org/x/sys v0.20.0
|
golang.org/x/sys v0.24.0
|
||||||
golang.org/x/term v0.20.0
|
golang.org/x/term v0.23.0
|
||||||
gopkg.in/DataDog/dd-trace-go.v1 v1.43.1
|
gopkg.in/DataDog/dd-trace-go.v1 v1.67.0
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1
|
||||||
gorm.io/driver/postgres v1.3.1
|
gorm.io/driver/postgres v1.4.6
|
||||||
gorm.io/driver/sqlite v1.3.6
|
gorm.io/driver/sqlite v1.5.6
|
||||||
gorm.io/gorm v1.23.8
|
gorm.io/gorm v1.25.11
|
||||||
gotest.tools/gotestsum v1.11.0
|
gotest.tools/gotestsum v1.11.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go/compute v1.23.4 // indirect
|
cloud.google.com/go/compute v1.28.0 // indirect
|
||||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
cloud.google.com/go/compute/metadata v0.5.0 // indirect
|
||||||
github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0 // indirect
|
github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect
|
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||||
github.com/Azure/go-autorest/autorest v0.11.29 // indirect
|
github.com/Azure/go-autorest/autorest v0.11.29 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect
|
github.com/Azure/go-autorest/autorest/adal v0.9.24 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 // indirect
|
github.com/Azure/go-autorest/autorest/azure/auth v0.5.13 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect
|
github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
|
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
|
||||||
github.com/Azure/go-autorest/logger v0.2.1 // indirect
|
github.com/Azure/go-autorest/logger v0.2.1 // indirect
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
|
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
|
||||||
github.com/DataDog/datadog-agent/pkg/obfuscate v0.40.1 // indirect
|
github.com/DataDog/appsec-internal-go v1.7.0 // indirect
|
||||||
github.com/DataDog/datadog-go/v5 v5.1.1 // indirect
|
github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 // indirect
|
||||||
github.com/DataDog/gostackparse v0.5.0 // indirect
|
github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1 // indirect
|
||||||
github.com/DataDog/sketches-go v1.4.1 // indirect
|
github.com/DataDog/datadog-go/v5 v5.3.0 // indirect
|
||||||
|
github.com/DataDog/go-libddwaf/v3 v3.3.0 // indirect
|
||||||
|
github.com/DataDog/go-tuf v1.0.2-0.5.2 // indirect
|
||||||
|
github.com/DataDog/gostackparse v0.7.0 // indirect
|
||||||
|
github.com/DataDog/sketches-go v1.4.5 // indirect
|
||||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||||
github.com/ThalesIgnite/crypto11 v1.2.5 // indirect
|
github.com/ThalesIgnite/crypto11 v1.2.5 // indirect
|
||||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 // indirect
|
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect
|
||||||
github.com/alibabacloud-go/cr-20160607 v1.0.1 // indirect
|
github.com/alibabacloud-go/cr-20160607 v1.0.1 // indirect
|
||||||
github.com/alibabacloud-go/cr-20181201 v1.0.10 // indirect
|
github.com/alibabacloud-go/cr-20181201 v1.0.10 // indirect
|
||||||
github.com/alibabacloud-go/darabonba-openapi v0.1.18 // indirect
|
github.com/alibabacloud-go/darabonba-openapi v0.2.1 // indirect
|
||||||
github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 // indirect
|
github.com/alibabacloud-go/debug v1.0.1 // indirect
|
||||||
github.com/alibabacloud-go/endpoint-util v1.1.1 // indirect
|
github.com/alibabacloud-go/endpoint-util v1.1.1 // indirect
|
||||||
github.com/alibabacloud-go/openapi-util v0.0.11 // indirect
|
github.com/alibabacloud-go/openapi-util v0.1.1 // indirect
|
||||||
github.com/alibabacloud-go/tea v1.1.18 // indirect
|
github.com/alibabacloud-go/tea v1.2.2 // indirect
|
||||||
github.com/alibabacloud-go/tea-utils v1.4.4 // indirect
|
github.com/alibabacloud-go/tea-utils v1.4.5 // indirect
|
||||||
github.com/alibabacloud-go/tea-xml v1.1.2 // indirect
|
github.com/alibabacloud-go/tea-utils/v2 v2.0.6 // indirect
|
||||||
github.com/aliyun/credentials-go v1.2.3 // indirect
|
github.com/alibabacloud-go/tea-xml v1.1.3 // indirect
|
||||||
|
github.com/aliyun/credentials-go v1.3.7 // indirect
|
||||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
||||||
github.com/atotto/clipboard v0.1.4 // indirect
|
github.com/atotto/clipboard v0.1.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2 v1.25.2 // indirect
|
github.com/aws/aws-sdk-go-v2 v1.30.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.4 // indirect
|
github.com/aws/aws-sdk-go-v2/config v1.27.30 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.4 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.29 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ecr v1.15.0 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ecr v1.32.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.12.0 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.2 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 // indirect
|
||||||
github.com/aws/smithy-go v1.20.1 // indirect
|
github.com/aws/smithy-go v1.20.4 // indirect
|
||||||
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20220228164355-396b2034c795 // indirect
|
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240823171036-ae5ff3e791a3 // indirect
|
||||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
github.com/bitfield/gotestdox v0.2.1 // indirect
|
github.com/bitfield/gotestdox v0.2.1 // indirect
|
||||||
github.com/blang/semver v3.5.1+incompatible // indirect
|
github.com/blang/semver v3.5.1+incompatible // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/chrismellard/docker-credential-acr-env v0.0.0-20220119192733-fe33c00cee21 // indirect
|
github.com/charmbracelet/x/ansi v0.2.3 // indirect
|
||||||
github.com/clbanning/mxj/v2 v2.5.6 // indirect
|
github.com/charmbracelet/x/input v0.2.0 // indirect
|
||||||
|
github.com/charmbracelet/x/term v0.2.0 // indirect
|
||||||
|
github.com/charmbracelet/x/windows v0.2.0 // indirect
|
||||||
|
github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 // indirect
|
||||||
|
github.com/clbanning/mxj/v2 v2.7.0 // indirect
|
||||||
github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be // indirect
|
github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be // indirect
|
||||||
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
|
github.com/containerd/console v1.0.4 // indirect
|
||||||
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
|
github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect
|
||||||
github.com/coreos/go-oidc/v3 v3.9.0 // indirect
|
github.com/coreos/go-oidc/v3 v3.11.0 // indirect
|
||||||
github.com/cyberphone/json-canonicalization v0.0.0-20220623050100-57a0ce2678a7 // indirect
|
github.com/cyberphone/json-canonicalization v0.0.0-20231217050601-ba74d44ecf5f // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||||
github.com/dgraph-io/ristretto v0.1.0 // indirect
|
github.com/dgraph-io/ristretto v0.1.0 // indirect
|
||||||
github.com/dimchansky/utfbom v1.1.1 // indirect
|
github.com/dimchansky/utfbom v1.1.1 // indirect
|
||||||
github.com/docker/cli v24.0.0+incompatible // indirect
|
github.com/docker/cli v27.1.2+incompatible // indirect
|
||||||
github.com/docker/distribution v2.8.2+incompatible // indirect
|
github.com/docker/distribution v2.8.3+incompatible // indirect
|
||||||
github.com/docker/docker v25.0.6+incompatible // indirect
|
github.com/docker/docker v27.1.2+incompatible // indirect
|
||||||
github.com/docker/docker-credential-helpers v0.7.0 // indirect
|
github.com/docker/docker-credential-helpers v0.8.2 // indirect
|
||||||
github.com/docker/go v1.5.1-1 // indirect
|
github.com/docker/go v1.5.1-1 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
github.com/ebitengine/purego v0.6.0-alpha.5 // indirect
|
||||||
|
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
||||||
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||||
|
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
|
||||||
|
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
|
||||||
github.com/ghodss/yaml v1.0.0 // indirect
|
github.com/ghodss/yaml v1.0.0 // indirect
|
||||||
github.com/glebarez/go-sqlite v1.18.2 // indirect
|
github.com/glebarez/go-sqlite v1.22.0 // indirect
|
||||||
github.com/go-chi/chi v4.1.2+incompatible // indirect
|
github.com/go-chi/chi v4.1.2+incompatible // indirect
|
||||||
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
||||||
github.com/go-logr/logr v1.4.1 // indirect
|
github.com/go-jose/go-jose/v4 v4.0.4 // indirect
|
||||||
|
github.com/go-logr/logr v1.4.2 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-openapi/analysis v0.21.4 // indirect
|
github.com/go-openapi/analysis v0.23.0 // indirect
|
||||||
github.com/go-openapi/errors v0.20.3 // indirect
|
github.com/go-openapi/errors v0.22.0 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.0 // indirect
|
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
||||||
github.com/go-openapi/loads v0.21.2 // indirect
|
github.com/go-openapi/loads v0.22.0 // indirect
|
||||||
github.com/go-openapi/runtime v0.26.0 // indirect
|
github.com/go-openapi/runtime v0.28.0 // indirect
|
||||||
github.com/go-openapi/spec v0.20.9 // indirect
|
github.com/go-openapi/spec v0.21.0 // indirect
|
||||||
github.com/go-openapi/strfmt v0.21.7 // indirect
|
github.com/go-openapi/strfmt v0.23.0 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.23.0 // indirect
|
||||||
github.com/go-openapi/validate v0.22.1 // indirect
|
github.com/go-openapi/validate v0.24.0 // indirect
|
||||||
github.com/go-playground/locales v0.14.1 // indirect
|
github.com/go-playground/locales v0.14.1 // indirect
|
||||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||||
github.com/go-playground/validator/v10 v10.14.0 // indirect
|
github.com/go-playground/validator/v10 v10.22.0 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
|
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
|
||||||
github.com/golang/glog v1.2.0 // indirect
|
github.com/golang/glog v1.2.1 // indirect
|
||||||
github.com/golang/protobuf v1.5.4 // indirect
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/google/certificate-transparency-go v1.1.6 // indirect
|
github.com/google/certificate-transparency-go v1.2.1 // indirect
|
||||||
github.com/google/go-containerregistry v0.19.0 // indirect
|
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
|
||||||
|
github.com/google/go-containerregistry v0.20.2 // indirect
|
||||||
github.com/google/go-github/v45 v45.2.0 // indirect
|
github.com/google/go-github/v45 v45.2.0 // indirect
|
||||||
github.com/google/go-querystring v1.1.0 // indirect
|
github.com/google/go-querystring v1.1.0 // indirect
|
||||||
github.com/google/gofuzz v1.2.0 // indirect
|
github.com/google/gofuzz v1.2.0 // indirect
|
||||||
github.com/google/pprof v0.0.0-20221103000818-d260c55eee4c // indirect
|
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 // indirect
|
||||||
github.com/google/trillian v1.5.2 // indirect
|
github.com/google/trillian v1.6.0 // indirect
|
||||||
github.com/googleapis/gnostic v0.5.5 // indirect
|
github.com/googleapis/gnostic v0.5.5 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
||||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 // indirect
|
||||||
github.com/imdario/mergo v0.3.12 // indirect
|
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
|
||||||
|
github.com/hashicorp/go-sockaddr v1.0.2 // indirect
|
||||||
|
github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
|
||||||
|
github.com/imdario/mergo v0.3.16 // indirect
|
||||||
github.com/in-toto/in-toto-golang v0.9.0 // indirect
|
github.com/in-toto/in-toto-golang v0.9.0 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
|
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
|
||||||
@ -150,23 +169,25 @@ require (
|
|||||||
github.com/jackc/pgproto3/v2 v2.3.3 // indirect
|
github.com/jackc/pgproto3/v2 v2.3.3 // indirect
|
||||||
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
|
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
|
||||||
github.com/jackc/pgtype v1.14.0 // indirect
|
github.com/jackc/pgtype v1.14.0 // indirect
|
||||||
github.com/jedisct1/go-minisign v0.0.0-20211028175153-1c139d1cc84b // indirect
|
github.com/jackc/pgx/v5 v5.6.0 // indirect
|
||||||
|
github.com/jackc/puddle/v2 v2.2.1 // indirect
|
||||||
|
github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267 // indirect
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
github.com/jinzhu/now v1.1.5 // indirect
|
||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/klauspost/compress v1.16.5 // indirect
|
github.com/klauspost/compress v1.17.9 // indirect
|
||||||
github.com/kr/pretty v0.3.1 // indirect
|
github.com/kr/pretty v0.3.1 // indirect
|
||||||
github.com/leodido/go-urn v1.2.4 // indirect
|
github.com/leodido/go-urn v1.4.0 // indirect
|
||||||
github.com/letsencrypt/boulder v0.0.0-20230907030200-6d76a0f91e1e // indirect
|
github.com/letsencrypt/boulder v0.0.0-20240823215653-da7865cb107b // indirect
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||||
github.com/magiconair/properties v1.8.7 // indirect
|
github.com/magiconair/properties v1.8.7 // indirect
|
||||||
github.com/mailru/easyjson v0.7.7 // indirect
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
github.com/mattn/go-colorable v0.1.13 // 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-sqlite3 v1.14.16 // indirect
|
github.com/mattn/go-sqlite3 v1.14.22 // indirect
|
||||||
github.com/miekg/pkcs11 v1.1.1 // indirect
|
github.com/miekg/pkcs11 v1.1.1 // indirect
|
||||||
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
|
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
|
||||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||||
@ -174,90 +195,101 @@ require (
|
|||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
github.com/mozillazg/docker-credential-acr-helper v0.3.0 // indirect
|
github.com/mozillazg/docker-credential-acr-helper v0.3.0 // indirect
|
||||||
github.com/muesli/ansi v0.0.0-20221106050444-61f0cd9a192a // 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/reflow v0.3.0 // indirect
|
github.com/muesli/reflow v0.3.0 // indirect
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||||
github.com/oklog/ulid v1.3.1 // indirect
|
github.com/oklog/ulid v1.3.1 // indirect
|
||||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||||
github.com/opencontainers/image-spec v1.1.0-rc3 // indirect
|
github.com/opencontainers/image-spec v1.1.0 // indirect
|
||||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||||
github.com/pelletier/go-toml/v2 v2.0.6 // indirect
|
github.com/outcaste-io/ristretto v0.2.3 // indirect
|
||||||
github.com/philhofer/fwd v1.1.1 // indirect
|
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
|
||||||
|
github.com/philhofer/fwd v1.1.2 // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||||
github.com/prometheus/client_model v0.5.0 // indirect
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
github.com/rivo/uniseg v0.4.4 // indirect
|
github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect
|
||||||
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
|
github.com/ryanuber/go-glob v1.0.0 // indirect
|
||||||
|
github.com/sagikazarmark/locafero v0.6.0 // indirect
|
||||||
|
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||||
github.com/sassoftware/relic v7.2.1+incompatible // indirect
|
github.com/sassoftware/relic v7.2.1+incompatible // indirect
|
||||||
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
|
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
|
||||||
github.com/segmentio/ksuid v1.0.4 // indirect
|
github.com/segmentio/ksuid v1.0.4 // indirect
|
||||||
github.com/shibumi/go-pathspec v1.3.0 // indirect
|
github.com/shibumi/go-pathspec v1.3.0 // indirect
|
||||||
github.com/sigstore/cosign v1.13.6 // indirect
|
github.com/sigstore/cosign v1.13.6 // indirect
|
||||||
github.com/sigstore/fulcio v1.0.0 // indirect
|
github.com/sigstore/fulcio v1.6.3 // indirect
|
||||||
github.com/sigstore/protobuf-specs v0.1.0 // indirect
|
github.com/sigstore/protobuf-specs v0.3.2 // indirect
|
||||||
github.com/sigstore/rekor v1.2.0 // indirect
|
github.com/sigstore/rekor v1.3.6 // indirect
|
||||||
github.com/sigstore/sigstore v1.8.0 // indirect
|
github.com/sigstore/sigstore v1.8.8 // indirect
|
||||||
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect
|
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect
|
||||||
github.com/slsa-framework/slsa-github-generator v1.2.1 // indirect
|
github.com/slsa-framework/slsa-github-generator v1.10.0 // indirect
|
||||||
github.com/spf13/afero v1.10.0 // indirect
|
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||||
github.com/spf13/cast v1.5.0 // indirect
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
|
github.com/spf13/afero v1.11.0 // indirect
|
||||||
|
github.com/spf13/cast v1.7.0 // indirect
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/spf13/viper v1.15.0 // indirect
|
github.com/spf13/viper v1.19.0 // indirect
|
||||||
github.com/subosito/gotenv v1.4.2 // indirect
|
github.com/subosito/gotenv v1.6.0 // indirect
|
||||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
|
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
|
||||||
github.com/thales-e-security/pool v0.0.2 // indirect
|
github.com/thales-e-security/pool v0.0.2 // indirect
|
||||||
github.com/theupdateframework/go-tuf v0.7.0 // indirect
|
github.com/theupdateframework/go-tuf v0.7.0 // indirect
|
||||||
github.com/tinylib/msgp v1.1.6 // indirect
|
github.com/tinylib/msgp v1.1.8 // indirect
|
||||||
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
|
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
|
||||||
github.com/tjfoc/gmsm v1.3.2 // indirect
|
github.com/tjfoc/gmsm v1.4.1 // indirect
|
||||||
github.com/transparency-dev/merkle v0.0.2 // indirect
|
github.com/transparency-dev/merkle v0.0.2 // indirect
|
||||||
github.com/vbatts/tar-split v0.11.3 // indirect
|
github.com/vbatts/tar-split v0.11.5 // indirect
|
||||||
github.com/xanzy/go-gitlab v0.74.0 // indirect
|
github.com/x448/float16 v0.8.4 // indirect
|
||||||
go.mongodb.org/mongo-driver v1.11.3 // indirect
|
github.com/xanzy/go-gitlab v0.107.0 // indirect
|
||||||
go.opentelemetry.io/otel v1.23.0 // indirect
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.23.0 // indirect
|
go.mongodb.org/mongo-driver v1.16.1 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.23.0 // indirect
|
go.opentelemetry.io/otel v1.29.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
go.opentelemetry.io/otel/metric v1.29.0 // indirect
|
||||||
go.uber.org/multierr v1.9.0 // indirect
|
go.opentelemetry.io/otel/trace v1.29.0 // indirect
|
||||||
go.uber.org/zap v1.24.0 // indirect
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
go.uber.org/zap v1.27.0 // indirect
|
||||||
go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect
|
go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect
|
||||||
go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect
|
go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect
|
||||||
golang.org/x/crypto v0.23.0 // indirect
|
golang.org/x/crypto v0.26.0 // indirect
|
||||||
golang.org/x/mod v0.17.0 // indirect
|
golang.org/x/mod v0.20.0 // indirect
|
||||||
golang.org/x/net v0.25.0 // indirect
|
golang.org/x/net v0.28.0 // indirect
|
||||||
golang.org/x/oauth2 v0.17.0 // indirect
|
golang.org/x/oauth2 v0.22.0 // indirect
|
||||||
golang.org/x/sync v0.7.0 // indirect
|
golang.org/x/sync v0.8.0 // indirect
|
||||||
golang.org/x/text v0.16.0 // indirect
|
golang.org/x/text v0.17.0 // indirect
|
||||||
golang.org/x/time v0.5.0 // indirect
|
golang.org/x/time v0.6.0 // indirect
|
||||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
|
golang.org/x/tools v0.24.0 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
||||||
google.golang.org/appengine v1.6.8 // indirect
|
google.golang.org/appengine v1.6.8 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20240205150955-31a09d347014 // indirect
|
google.golang.org/genproto v0.0.0-20240823204242-4ba0660f739c // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240823204242-4ba0660f739c // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240823204242-4ba0660f739c // indirect
|
||||||
google.golang.org/grpc v1.62.1 // indirect
|
google.golang.org/grpc v1.65.0 // indirect
|
||||||
google.golang.org/protobuf v1.33.0 // indirect
|
google.golang.org/protobuf v1.34.2 // indirect
|
||||||
gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect
|
gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
inet.af/netaddr v0.0.0-20220617031823-097006376321 // indirect
|
inet.af/netaddr v0.0.0-20220617031823-097006376321 // indirect
|
||||||
k8s.io/api v0.23.5 // indirect
|
k8s.io/api v0.31.0 // indirect
|
||||||
k8s.io/apimachinery v0.23.5 // indirect
|
k8s.io/apimachinery v0.31.0 // indirect
|
||||||
k8s.io/client-go v0.23.5 // indirect
|
k8s.io/client-go v0.31.0 // indirect
|
||||||
k8s.io/klog/v2 v2.100.1 // indirect
|
k8s.io/klog/v2 v2.130.1 // indirect
|
||||||
k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf // indirect
|
k8s.io/kube-openapi v0.0.0-20240822171749-76de80e0abd9 // indirect
|
||||||
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect
|
k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect
|
||||||
modernc.org/libc v1.19.0 // indirect
|
modernc.org/libc v1.59.9 // indirect
|
||||||
modernc.org/mathutil v1.5.0 // indirect
|
modernc.org/mathutil v1.6.0 // indirect
|
||||||
modernc.org/memory v1.4.0 // indirect
|
modernc.org/memory v1.8.0 // indirect
|
||||||
modernc.org/sqlite v1.19.1 // indirect
|
modernc.org/sqlite v1.32.0 // indirect
|
||||||
sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||||
sigs.k8s.io/release-utils v0.7.4 // indirect
|
sigs.k8s.io/release-utils v0.8.4 // indirect
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
|
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
||||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
replace github.com/rodaine/table => github.com/ddworken/table v1.0.2
|
replace github.com/rodaine/table => github.com/ddworken/table v1.0.2
|
||||||
|
Loading…
Reference in New Issue
Block a user