utils

package
v1.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2025 License: MIT Imports: 25 Imported by: 0

Documentation

Overview

utils/http_client.go

utils/path.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckAndNotifyEnv

func CheckAndNotifyEnv(key, defaultValue string, logger *zap.Logger) (string, bool)

CheckAndNotifyEnv verifica se uma variável de ambiente está definida, registra se o padrão foi usado e retorna o valor

func CheckEnvVariables

func CheckEnvVariables(logger *zap.Logger)

CheckEnvVariables verifica as variáveis de ambiente necessárias e informa o usuário

func CheckProviderEnvVariables

func CheckProviderEnvVariables(logger *zap.Logger)

CheckProviderEnvVariables verifica e notifica sobre as variáveis de ambiente específicas dos provedores

func DetectFileType

func DetectFileType(filePath string) string

DetectFileType detecta o tipo de arquivo com base na extensão

func ExpandPath

func ExpandPath(path string) (string, error)

ExpandPath expande o caractere ~ no início de um caminho para o diretório home do usuário. Se o caminho não começar com ~, ele é retornado sem modificações. A função não suporta a expansão de ~username, retornando um erro nesse caso.

func FormatDirectoryContent

func FormatDirectoryContent(files []FileInfo, maxTotalSize int64) string

FormatDirectoryContent formata o conteúdo de vários arquivos em uma única string organizada com separadores claros e formatação adequada para cada tipo de arquivo.

func GenerateUUID

func GenerateUUID() string

GenerateUUID gera um UUID (Universally Unique Identifier)

func GetEnvOrDefault

func GetEnvOrDefault(key, defaultValue string) string

GetEnvOrDefault retorna o valor da variável de ambiente ou um valor padrão se não estiver definida

func GetEnvVariables

func GetEnvVariables() string

GetEnvVariables retorna todas as variáveis de ambiente como uma string formatada.

func GetFileBlame

func GetFileBlame(filepath string) (string, error)

Função auxiliar para obter blame de um arquivo

func GetFileDiff

func GetFileDiff(filepath string) (string, error)

Função auxiliar para obter diferenças específicas de um arquivo

func GetFileHistory

func GetFileHistory(filepath string) (string, error)

Função auxiliar para obter o histórico de um arquivo específico

func GetGitInfo

func GetGitInfo() (string, error)

GetGitInfo retorna informações detalhadas sobre o repositório Git atual

func GetHomeDir

func GetHomeDir() (string, error)

GetHomeDir retorna o diretório home do usuário atual.

func GetShellConfigFilePath

func GetShellConfigFilePath(shellName string) string

GetShellConfigFilePath retorna o caminho do arquivo de configuração do shell com base no nome do shell.

func GetShellHistory

func GetShellHistory() (string, error)

GetShellHistory lê o arquivo de histórico do shell e retorna seu conteúdo como string.

func GetShellHistoryFile

func GetShellHistoryFile() (string, error)

GetShellHistoryFile retorna o caminho do arquivo de histórico do shell com base no shell do usuário.

func GetTerminalSize

func GetTerminalSize() (width int, height int, err error)

GetTerminalSize retorna a largura e a altura do terminal.

func GetUserShell

func GetUserShell() string

GetUserShell retorna o shell do usuário atual com base na variável de ambiente SHELL.

func InitializeLogger

func InitializeLogger() (*zap.Logger, error)

InitializeLogger configura e inicializa um logger com base nas variáveis de ambiente.

func IsTemporaryError

func IsTemporaryError(err error) bool

IsTemporaryError verifica se o erro é temporário e pode ser retryado. Desde o Go 1.18, 'Temporary' é desaconselhado. Normalmente só timeout é considerado seguro para retry.

func LogStartupInfo added in v1.10.1

func LogStartupInfo(logger *zap.Logger)

func NewHTTPClient

func NewHTTPClient(logger *zap.Logger, timeout time.Duration) *http.Client

NewHTTPClient cria um cliente HTTP com LoggingTransport e timeout configurado

func NewJSONReader

func NewJSONReader(data []byte) io.Reader

NewJSONReader cria um io.Reader a partir de um []byte para enviar em requisições HTTP

func ReadFileContent

func ReadFileContent(filePath string, maxSize int64) (string, error)

ReadFileContent lê o conteúdo de um arquivo, expandindo ~ para o diretório home, mostrando um indicador de progresso para arquivos grandes.

func ShouldSkipDir

func ShouldSkipDir(dirName string) bool

ShouldSkipDir verifica se um diretório deve ser ignorado

Types

type APIClient

type APIClient struct {
	// contains filtered or unexported fields
}

APIClient é um cliente HTTP especializado para APIs REST

func NewAPIClient

func NewAPIClient(logger *zap.Logger, baseURL string, headers map[string]string) *APIClient

NewAPIClient cria um novo cliente API com cabeçalhos padrão

func (*APIClient) Get

func (c *APIClient) Get(ctx context.Context, path string) ([]byte, error)

Get faz uma requisição GET

func (*APIClient) Post

func (c *APIClient) Post(ctx context.Context, path string, payload interface{}) ([]byte, error)

Post faz uma requisição POST

func (*APIClient) Request

func (c *APIClient) Request(ctx context.Context, method, path string, body []byte) ([]byte, error)

Request faz uma requisição HTTP com retry exponencial

type DirectoryScanOptions

type DirectoryScanOptions struct {
	MaxTotalSize      int64 // Tamanho máximo do conteúdo total (em bytes)
	MaxFilesToProcess int   // Número máximo de arquivos a processar
	Logger            *zap.Logger
	Extensions        []string            // Extensões de arquivo a incluir (vazio = todas)
	ExcludeDirs       []string            // Diretórios a excluir
	ExcludePatterns   []string            // Padrões de nome de arquivo a excluir (ex: "*.tmp")
	IncludeHidden     bool                // Incluir arquivos/diretórios ocultos?
	OnFileProcessed   func(info FileInfo) // Callback para cada arquivo processado
}

DirectoryScanOptions configura opções para escaneamento de diretórios

func DefaultDirectoryScanOptions

func DefaultDirectoryScanOptions(logger *zap.Logger) DirectoryScanOptions

DefaultDirectoryScanOptions retorna opções padrão para escaneamento

type FileInfo

type FileInfo struct {
	Path    string
	Content string
	Size    int64
	Type    string
}

FileInfo armazena informações e conteúdo de um arquivo

func ProcessDirectory

func ProcessDirectory(dirPath string, options DirectoryScanOptions) ([]FileInfo, error)

ProcessDirectory processa um diretório recursivamente, coletando conteúdo de arquivos que correspondam aos critérios definidos nas opções.

type LoggingTransport

type LoggingTransport struct {
	Logger      *zap.Logger
	Transport   http.RoundTripper
	MaxBodySize int
}

LoggingTransport é um http.RoundTripper que adiciona logs às requisições e respostas

func (*LoggingTransport) RoundTrip

func (t *LoggingTransport) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip implementa a interface http.RoundTripper

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL