diff --git a/cmd/soft/main.go b/cmd/soft/main.go index fdb60d49bf827f9f8f0fc64a321290f0eb03d473..5e5770e29a8eb9e806169be5e9fae9b7e6777dc3 100644 --- a/cmd/soft/main.go +++ b/cmd/soft/main.go @@ -118,7 +118,7 @@ func main() { ctx = log.WithContext(ctx, logger) if f != nil { - defer f.Close() // nolint: errcheck + defer f.Close() //nolint:errcheck } // Set global logger diff --git a/cmd/soft/serve/serve.go b/cmd/soft/serve/serve.go index 8a670cc95863d779300eba7fa2f7ae0f47b8d4c6..835b81f64386b2d0908493f3af6b40dd9d6c709d 100644 --- a/cmd/soft/serve/serve.go +++ b/cmd/soft/serve/serve.go @@ -50,10 +50,10 @@ var ( // Create custom hooks directory if it doesn't exist customHooksPath := filepath.Join(cfg.DataPath, "hooks") if _, err := os.Stat(customHooksPath); err != nil && os.IsNotExist(err) { - os.MkdirAll(customHooksPath, os.ModePerm) // nolint: errcheck + os.MkdirAll(customHooksPath, os.ModePerm) //nolint:errcheck // Generate update hook example without executable permissions hookPath := filepath.Join(customHooksPath, "update.sample") - // nolint: gosec + //nolint:gosec if err := os.WriteFile(hookPath, []byte(updateHookExample), 0o744); err != nil { return fmt.Errorf("failed to generate update hook example: %w", err) } @@ -62,7 +62,7 @@ var ( // Create log directory if it doesn't exist logPath := filepath.Join(cfg.DataPath, "log") if _, err := os.Stat(logPath); err != nil && os.IsNotExist(err) { - os.MkdirAll(logPath, os.ModePerm) // nolint: errcheck + os.MkdirAll(logPath, os.ModePerm) //nolint:errcheck } db := db.FromContext(ctx) diff --git a/cmd/soft/serve/server.go b/cmd/soft/serve/server.go index 56402f13e0182a0a5e9c0b089727cd398174a731..e2b53c405d972e63e5e24a9a2c368a8e56d5807c 100644 --- a/cmd/soft/serve/server.go +++ b/cmd/soft/serve/server.go @@ -167,7 +167,7 @@ func (s *Server) Shutdown(ctx context.Context) error { s.Cron.Stop() return nil }) - // defer s.DB.Close() // nolint: errcheck + // defer s.DB.Close() //nolint: errcheck return errg.Wait() } @@ -182,6 +182,6 @@ func (s *Server) Close() error { s.Cron.Stop() return nil }) - // defer s.DB.Close() // nolint: errcheck + // defer s.DB.Close() //nolint: errcheck return errg.Wait() } diff --git a/git/attr.go b/git/attr.go index 1a086a0340dc78c124d405f79f5edff95ac9a300..03848e6b2393c5c4d4e44e6eb45713f49331dd72 100644 --- a/git/attr.go +++ b/git/attr.go @@ -18,10 +18,10 @@ type Attribute struct { // CheckAttributes checks the attributes of the given ref and path. func (r *Repository) CheckAttributes(ref *Reference, path string) ([]Attribute, error) { rnd := rand.NewSource(time.Now().UnixNano()) - fn := "soft-serve-index-" + strconv.Itoa(rand.New(rnd).Int()) // nolint: gosec + fn := "soft-serve-index-" + strconv.Itoa(rand.New(rnd).Int()) //nolint: gosec tmpindex := filepath.Join(os.TempDir(), fn) - defer os.Remove(tmpindex) // nolint: errcheck + defer os.Remove(tmpindex) //nolint: errcheck readTree := NewCommand("read-tree", "--reset", "-i", ref.Name().String()). AddEnvs("GIT_INDEX_FILE=" + tmpindex) diff --git a/git/config.go b/git/config.go index 1ebb2470384145be6ff8b2ab4cafd346d41bac64..49bc227844cb52b0b4c5362e50a593981ccc01a8 100644 --- a/git/config.go +++ b/git/config.go @@ -15,7 +15,7 @@ func (r *Repository) Config() (*gcfg.Config, error) { return nil, err } - defer f.Close() // nolint: errcheck + defer f.Close() //nolint: errcheck d := gcfg.NewDecoder(f) cfg := gcfg.New() if err := d.Decode(cfg); err != nil { @@ -33,7 +33,7 @@ func (r *Repository) SetConfig(cfg *gcfg.Config) error { return err } - defer f.Close() // nolint: errcheck + defer f.Close() //nolint: errcheck e := gcfg.NewEncoder(f) return e.Encode(cfg) } diff --git a/git/patch.go b/git/patch.go index 3b860b5dcf60610b9f4bf33d2c8784d2e8f770a3..11d9aa017f6a23da15d78354c21c3b09e87f33fc 100644 --- a/git/patch.go +++ b/git/patch.go @@ -45,6 +45,8 @@ func (s *DiffSection) diffFor(line *git.DiffLine) string { diff1 = line.Content diff2 = compareLine.Content + case git.DiffLinePlain, git.DiffLineSection: + return fallback default: return fallback } @@ -69,6 +71,8 @@ func diffsToString(diffs []diffmatchpatch.Diff, lineType git.DiffLineType) strin buf.WriteByte('+') case git.DiffLineDelete: buf.WriteByte('-') + case git.DiffLinePlain, git.DiffLineSection: + // No prefix for these line types } for i := range diffs { diff --git a/git/tree.go b/git/tree.go index 1cce0a561740736eef196d1f6e1bb32e9297b8fb..43113ae248d1c2c98c39760d4b5d94f6d8289ab3 100644 --- a/git/tree.go +++ b/git/tree.go @@ -169,6 +169,8 @@ func (e *TreeEntry) Mode() fs.FileMode { switch m { case git.EntryTree: return fs.ModeDir | fs.ModePerm + case git.EntryBlob, git.EntryExec, git.EntrySymlink, git.EntryCommit: + return fs.FileMode(m) //nolint:gosec default: return fs.FileMode(m) //nolint:gosec } diff --git a/pkg/access/access.go b/pkg/access/access.go index 1ca1d56f5a1d1f40cbd9d3dba37d8f902f12185b..efe9a230d753f414f84911d72f5549fe6e87074d 100644 --- a/pkg/access/access.go +++ b/pkg/access/access.go @@ -6,7 +6,7 @@ import ( ) // AccessLevel is the level of access allowed to a repo. -type AccessLevel int // nolint: revive +type AccessLevel int //nolint: revive const ( // NoAccess does not allow access to the repo. diff --git a/pkg/backend/lfs.go b/pkg/backend/lfs.go index b940940bd5c81ebc4f564c054e8a7bff8ed38617..16569094ab84d41c095d8237cd8255ad648ba24e 100644 --- a/pkg/backend/lfs.go +++ b/pkg/backend/lfs.go @@ -39,7 +39,7 @@ func StoreRepoMissingLFSObjects(ctx context.Context, repo proto.Repository, dbx return objectError } - defer content.Close() // nolint: errcheck + defer content.Close() //nolint: errcheck return dbx.TransactionContext(ctx, func(tx *db.Tx) error { if err := store.CreateLFSObject(ctx, tx, repo.ID(), p.Oid, p.Size); err != nil { return db.WrapError(err) diff --git a/pkg/backend/repo.go b/pkg/backend/repo.go index bacc8993848b638d4090b79e9f50a348446aa99a..5a4433ec139c62e73808647cdc79895d1d99fbc3 100644 --- a/pkg/backend/repo.go +++ b/pkg/backend/repo.go @@ -751,7 +751,7 @@ func readOneline(path string) (string, error) { return "", err } - defer f.Close() // nolint: errcheck + defer f.Close() //nolint: errcheck s := bufio.NewScanner(f) s.Scan() return s.Text(), s.Err() diff --git a/pkg/config/config.go b/pkg/config/config.go index 05dd2c38e3e3f70d6e7facfe526afd8fe0fc4215..b492b7058d1a160381590881d8fc122b394722ca 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -231,7 +231,7 @@ func parseFile(cfg *Config, path string) error { return err } - defer f.Close() // nolint: errcheck + defer f.Close() //nolint: errcheck if err := yaml.NewDecoder(f).Decode(cfg); err != nil { return fmt.Errorf("decode config: %w", err) } @@ -286,7 +286,7 @@ func writeConfig(cfg *Config, path string) error { if err := os.MkdirAll(filepath.Dir(path), os.ModePerm); err != nil { return err } - return os.WriteFile(path, []byte(newConfigFile(cfg)), 0o644) // nolint: errcheck, gosec + return os.WriteFile(path, []byte(newConfigFile(cfg)), 0o644) //nolint: errcheck, gosec } // WriteConfig writes the configuration to the default file. @@ -307,7 +307,7 @@ func DefaultDataPath() string { } // ConfigPath returns the path to the config file. -func (c *Config) ConfigPath() string { // nolint:revive +func (c *Config) ConfigPath() string { //nolint:revive // If we have a custom config location set, then use that. if path := os.Getenv("SOFT_SERVE_CONFIG_LOCATION"); exist(path) { return path diff --git a/pkg/config/file.go b/pkg/config/file.go index 55e45c76d75a85da211bf0d9e7113e95f3e4404f..3974d0f5a7d2109678ea2217fa11ba3d7cfac6dd 100644 --- a/pkg/config/file.go +++ b/pkg/config/file.go @@ -125,6 +125,6 @@ jobs: func newConfigFile(cfg *Config) string { var b bytes.Buffer - configFileTmpl.Execute(&b, cfg) // nolint: errcheck + configFileTmpl.Execute(&b, cfg) //nolint: errcheck return b.String() } diff --git a/pkg/daemon/conn.go b/pkg/daemon/conn.go index b4a342309904f83d2f9c5c1555fefe7390280d48..38754a813165c1f485a2a3a88bb319accd31006b 100644 --- a/pkg/daemon/conn.go +++ b/pkg/daemon/conn.go @@ -91,15 +91,15 @@ func (c *serverConn) updateDeadline() { initTimeout := time.Now().Add(c.initTimeout) c.initTimeout = 0 if initTimeout.Unix() < c.maxDeadline.Unix() || c.maxDeadline.IsZero() { - c.Conn.SetDeadline(initTimeout) // nolint: errcheck + c.Conn.SetDeadline(initTimeout) //nolint: errcheck return } case c.idleTimeout > 0: idleDeadline := time.Now().Add(c.idleTimeout) if idleDeadline.Unix() < c.maxDeadline.Unix() || c.maxDeadline.IsZero() { - c.Conn.SetDeadline(idleDeadline) // nolint: errcheck + c.Conn.SetDeadline(idleDeadline) //nolint: errcheck return } } - c.Conn.SetDeadline(c.maxDeadline) // nolint: errcheck + c.Conn.SetDeadline(c.maxDeadline) //nolint: errcheck } diff --git a/pkg/daemon/daemon.go b/pkg/daemon/daemon.go index 30faadd7aac103ccf7110b36f402908f3ee67ed1..bcc6cbe4287c662a84c91b26283c66fa8efaf832 100644 --- a/pkg/daemon/daemon.go +++ b/pkg/daemon/daemon.go @@ -108,7 +108,7 @@ func (d *GitDaemon) Serve(listener net.Listener) error { default: d.logger.Debugf("git: error accepting connection: %v", err) } - if ne, ok := err.(net.Error); ok && ne.Temporary() { // nolint: staticcheck + if ne, ok := err.(net.Error); ok && ne.Temporary() { //nolint: staticcheck if tempDelay == 0 { tempDelay = 5 * time.Millisecond } else { @@ -139,7 +139,7 @@ func (d *GitDaemon) Serve(listener net.Listener) error { } func (d *GitDaemon) fatal(c net.Conn, err error) { - git.WritePktlineErr(c, err) // nolint: errcheck + git.WritePktlineErr(c, err) //nolint: errcheck if err := c.Close(); err != nil { d.logger.Debugf("git: error closing connection: %v", err) } @@ -160,7 +160,7 @@ func (d *GitDaemon) handleClient(conn net.Conn) { } d.conns.Add(c) defer func() { - d.conns.Close(c) // nolint: errcheck + d.conns.Close(c) //nolint: errcheck }() errc := make(chan error, 1) @@ -213,7 +213,7 @@ func (d *GitDaemon) handleClient(conn net.Conn) { opts := bytes.SplitN(split[1], []byte{0}, 3) if len(opts) < 2 { - d.fatal(c, git.ErrInvalidRequest) // nolint: errcheck + d.fatal(c, git.ErrInvalidRequest) //nolint: errcheck return } @@ -317,7 +317,7 @@ func (d *GitDaemon) handleClient(conn net.Conn) { // Close closes the underlying listener. func (d *GitDaemon) Close() error { err := d.closeListener() - d.conns.CloseAll() // nolint: errcheck + d.conns.CloseAll() //nolint: errcheck return err } diff --git a/pkg/daemon/daemon_test.go b/pkg/daemon/daemon_test.go index 8326e3023f988323610f5a8c8219fcec33915cfb..54a00e53e6841da90f63c0255aa0a875429d1b35 100644 --- a/pkg/daemon/daemon_test.go +++ b/pkg/daemon/daemon_test.go @@ -45,7 +45,7 @@ func TestMain(m *testing.M) { if err != nil { log.Fatal(err) } - defer dbx.Close() // nolint: errcheck + defer dbx.Close() //nolint: errcheck if err := migrate.Migrate(ctx, dbx); err != nil { log.Fatal(err) } diff --git a/pkg/db/migrate/0001_create_tables.go b/pkg/db/migrate/0001_create_tables.go index 8491328c04c5e979f60321071445991a39c45916..eaea03f3c62de3a365a5f5506b7508c3d1bcf2a3 100644 --- a/pkg/db/migrate/0001_create_tables.go +++ b/pkg/db/migrate/0001_create_tables.go @@ -15,6 +15,11 @@ import ( const ( createTablesName = "create tables" createTablesVersion = 1 + + // Database driver names + driverSQLite3 = "sqlite3" + driverSQLite = "sqlite" + driverPostgres = "postgres" ) var createTables = Migration{ @@ -28,7 +33,7 @@ var createTables = Migration{ // Alter old tables (if exist) // This is to support prior versions of Soft Serve v0.6 switch tx.DriverName() { - case "sqlite3", "sqlite": + case driverSQLite3, driverSQLite: insert += "OR IGNORE " hasUserTable := hasTable(tx, "user") @@ -62,7 +67,7 @@ var createTables = Migration{ } switch tx.DriverName() { - case "sqlite3", "sqlite": + case driverSQLite3, driverSQLite: if _, err := tx.ExecContext(ctx, "PRAGMA foreign_keys = OFF"); err != nil { return err @@ -140,7 +145,7 @@ var createTables = Migration{ for _, k := range cfg.AdminKeys() { query := insert + "INTO public_keys (user_id, public_key, updated_at) VALUES (?, ?, CURRENT_TIMESTAMP)" - if tx.DriverName() == "postgres" { + if tx.DriverName() == driverPostgres { query += " ON CONFLICT DO NOTHING" } diff --git a/pkg/db/migrate/migrate.go b/pkg/db/migrate/migrate.go index 8273e454c9b5a8b1ac28edef580147be04dcafee..4361144bf160b863c05e525cbc8f189dfe772c9f 100644 --- a/pkg/db/migrate/migrate.go +++ b/pkg/db/migrate/migrate.go @@ -11,7 +11,7 @@ import ( ) // MigrateFunc is a function that executes a migration. -type MigrateFunc func(ctx context.Context, tx *db.Tx) error // nolint:revive +type MigrateFunc func(ctx context.Context, tx *db.Tx) error //nolint:revive // Migration is a struct that contains the name of the migration and the // function to execute it. @@ -31,7 +31,7 @@ type Migrations struct { func (Migrations) schema(driverName string) string { switch driverName { - case "sqlite3", "sqlite": + case driverSQLite3, driverSQLite: return `CREATE TABLE IF NOT EXISTS migrations ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, @@ -127,9 +127,9 @@ func Rollback(ctx context.Context, dbx *db.DB) error { func hasTable(tx *db.Tx, tableName string) bool { var query string switch tx.DriverName() { - case "sqlite3", "sqlite": + case driverSQLite3, driverSQLite: query = "SELECT name FROM sqlite_master WHERE type='table' AND name=?" - case "postgres": + case driverPostgres: fallthrough case "mysql": query = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name = ?" diff --git a/pkg/git/service.go b/pkg/git/service.go index af589c25719320f4c2d8581fe375de32158346b9..3110d79d9dd061869e93c1a25231dac657548458 100644 --- a/pkg/git/service.go +++ b/pkg/git/service.go @@ -124,7 +124,7 @@ func gitServiceHandler(ctx context.Context, svc Service, scmd ServiceCommand) er // stdin if scmd.Stdin != nil { go func() { - defer stdin.Close() // nolint: errcheck + defer stdin.Close() //nolint: errcheck if _, err := io.Copy(stdin, scmd.Stdin); err != nil { log.Errorf("gitServiceHandler: failed to copy stdin: %v", err) } diff --git a/pkg/lfs/basic_transfer.go b/pkg/lfs/basic_transfer.go index d3e4100cd3477d77b3fe8a5953882f847336fd53..8bcf812252533c8da381a83cb0b78c4894ad4f41 100644 --- a/pkg/lfs/basic_transfer.go +++ b/pkg/lfs/basic_transfer.go @@ -105,7 +105,7 @@ func (a *BasicTransferAdapter) performRequest(ctx context.Context, method string } func handleErrorResponse(resp *http.Response) error { - defer resp.Body.Close() // nolint: errcheck + defer resp.Body.Close() //nolint: errcheck er, err := decodeResponseError(resp.Body) if err != nil { diff --git a/pkg/lfs/client.go b/pkg/lfs/client.go index 9cc9da0a15a115f82373fa8da50e8da2a504b1dc..70bfbc0f42296669b027429a97ce3e089389bda7 100644 --- a/pkg/lfs/client.go +++ b/pkg/lfs/client.go @@ -5,6 +5,13 @@ import ( "io" ) +const ( + // SchemeHTTP represents the HTTP protocol scheme + SchemeHTTP = "http" + // SchemeHTTPS represents the HTTPS protocol scheme + SchemeHTTPS = "https" +) + // DownloadCallback gets called for every requested LFS object to process its content type DownloadCallback func(p Pointer, content io.ReadCloser, objectError error) error @@ -19,7 +26,7 @@ type Client interface { // NewClient returns a new Git LFS client. func NewClient(e Endpoint) Client { - if e.Scheme == "http" || e.Scheme == "https" { + if e.Scheme == SchemeHTTP || e.Scheme == SchemeHTTPS { return newHTTPClient(e) } // TODO: support ssh client diff --git a/pkg/lfs/http_client.go b/pkg/lfs/http_client.go index c78a2e4b2e061a3f8b9c4a675b4f97226ee209bb..e517f437fa213b9a8e4e42be600eaff6a42f3c75 100644 --- a/pkg/lfs/http_client.go +++ b/pkg/lfs/http_client.go @@ -86,7 +86,7 @@ func (c *httpClient) batch(ctx context.Context, operation string, objects []Poin logger.Errorf("Error while processing request: %v", err) return nil, err } - defer res.Body.Close() // nolint: errcheck + defer res.Body.Close() //nolint: errcheck if res.StatusCode != http.StatusOK { return nil, fmt.Errorf("Unexpected server response: %s", res.Status) @@ -162,7 +162,7 @@ func (c *httpClient) performOperation(ctx context.Context, objects []Pointer, dc err = transferAdapter.Upload(ctx, object.Pointer, content, link) - content.Close() // nolint: errcheck + content.Close() //nolint: errcheck if err != nil { return err diff --git a/pkg/lfs/scanner.go b/pkg/lfs/scanner.go index 6cd19691fae22c5f96da572b97d93c4c6109571f..6688e4225a67a5aa5e0ac5fc59b02e6f1a2066cb 100644 --- a/pkg/lfs/scanner.go +++ b/pkg/lfs/scanner.go @@ -51,7 +51,7 @@ func SearchPointerBlobs(ctx context.Context, repo *git.Repository, pointerChan c func createPointerResultsFromCatFileBatch(ctx context.Context, catFileBatchReader *io.PipeReader, wg *sync.WaitGroup, pointerChan chan<- PointerBlob) { defer wg.Done() - defer catFileBatchReader.Close() // nolint: errcheck + defer catFileBatchReader.Close() //nolint: errcheck bufferedReader := bufio.NewReader(catFileBatchReader) buf := make([]byte, 1025) @@ -104,8 +104,8 @@ loop: func catFileBatch(ctx context.Context, shasToBatchReader *io.PipeReader, catFileBatchWriter *io.PipeWriter, wg *sync.WaitGroup, basePath string) { defer wg.Done() - defer shasToBatchReader.Close() // nolint: errcheck - defer catFileBatchWriter.Close() // nolint: errcheck + defer shasToBatchReader.Close() //nolint: errcheck + defer catFileBatchWriter.Close() //nolint: errcheck stderr := new(bytes.Buffer) var errbuf strings.Builder @@ -122,7 +122,7 @@ func catFileBatch(ctx context.Context, shasToBatchReader *io.PipeReader, catFile func blobsLessThan1024FromCatFileBatchCheck(catFileCheckReader *io.PipeReader, shasToBatchWriter *io.PipeWriter, wg *sync.WaitGroup) { defer wg.Done() - defer catFileCheckReader.Close() // nolint: errcheck + defer catFileCheckReader.Close() //nolint: errcheck scanner := bufio.NewScanner(catFileCheckReader) defer func() { _ = shasToBatchWriter.CloseWithError(scanner.Err()) @@ -154,8 +154,8 @@ func blobsLessThan1024FromCatFileBatchCheck(catFileCheckReader *io.PipeReader, s func catFileBatchCheck(ctx context.Context, shasToCheckReader *io.PipeReader, catFileCheckWriter *io.PipeWriter, wg *sync.WaitGroup, basePath string) { defer wg.Done() - defer shasToCheckReader.Close() // nolint: errcheck - defer catFileCheckWriter.Close() // nolint: errcheck + defer shasToCheckReader.Close() //nolint: errcheck + defer catFileCheckWriter.Close() //nolint: errcheck stderr := new(bytes.Buffer) var errbuf strings.Builder @@ -172,7 +172,7 @@ func catFileBatchCheck(ctx context.Context, shasToCheckReader *io.PipeReader, ca func blobsFromRevListObjects(revListReader *io.PipeReader, shasToCheckWriter *io.PipeWriter, wg *sync.WaitGroup) { defer wg.Done() - defer revListReader.Close() // nolint: errcheck + defer revListReader.Close() //nolint: errcheck scanner := bufio.NewScanner(revListReader) defer func() { _ = shasToCheckWriter.CloseWithError(scanner.Err()) @@ -201,7 +201,7 @@ func blobsFromRevListObjects(revListReader *io.PipeReader, shasToCheckWriter *io func revListAllObjects(ctx context.Context, revListWriter *io.PipeWriter, wg *sync.WaitGroup, basePath string, errChan chan<- error) { defer wg.Done() - defer revListWriter.Close() // nolint: errcheck + defer revListWriter.Close() //nolint: errcheck stderr := new(bytes.Buffer) var errbuf strings.Builder diff --git a/pkg/ssh/cmd/git.go b/pkg/ssh/cmd/git.go index 620b9f0890e2ee4c19b202f9e97eee7ecab325b2..6ae65898324f24c382fa881a5e7b971980e5966b 100644 --- a/pkg/ssh/cmd/git.go +++ b/pkg/ssh/cmd/git.go @@ -250,7 +250,7 @@ func gitRunE(cmd *cobra.Command, args []string) error { defer func() { if repo == nil { // If the repo was created, but the request failed, delete it. - be.DeleteRepository(ctx, name) // nolint: errcheck + be.DeleteRepository(ctx, name) //nolint: errcheck } }() diff --git a/pkg/ssh/cmd/webhooks.go b/pkg/ssh/cmd/webhooks.go index ca6e8978929c1ca283d3b5aff470ffed34358132..9e446ecf4c14a112739844466898a1c67a205a0c 100644 --- a/pkg/ssh/cmd/webhooks.go +++ b/pkg/ssh/cmd/webhooks.go @@ -361,34 +361,34 @@ func webhookDeliveriesGetCommand() *cobra.Command { } out := cmd.OutOrStdout() - fmt.Fprintf(out, "ID: %s\n", del.ID) //nolint:errcheck - fmt.Fprintf(out, "Event: %s\n", del.Event) //nolint:errcheck - fmt.Fprintf(out, "Request URL: %s\n", del.RequestURL) //nolint:errcheck - fmt.Fprintf(out, "Request Method: %s\n", del.RequestMethod) //nolint:errcheck - fmt.Fprintf(out, "Request Error: %s\n", del.RequestError.String) //nolint:errcheck - fmt.Fprintf(out, "Request Headers:\n") //nolint:errcheck + fmt.Fprintf(out, "ID: %s\n", del.ID) + fmt.Fprintf(out, "Event: %s\n", del.Event) + fmt.Fprintf(out, "Request URL: %s\n", del.RequestURL) + fmt.Fprintf(out, "Request Method: %s\n", del.RequestMethod) + fmt.Fprintf(out, "Request Error: %s\n", del.RequestError.String) + fmt.Fprintf(out, "Request Headers:\n") reqHeaders := strings.Split(del.RequestHeaders, "\n") for _, h := range reqHeaders { - fmt.Fprintf(out, " %s\n", h) //nolint:errcheck + fmt.Fprintf(out, " %s\n", h) } - fmt.Fprintf(out, "Request Body:\n") //nolint:errcheck + fmt.Fprintf(out, "Request Body:\n") reqBody := strings.Split(del.RequestBody, "\n") for _, b := range reqBody { - fmt.Fprintf(out, " %s\n", b) //nolint:errcheck + fmt.Fprintf(out, " %s\n", b) } - fmt.Fprintf(out, "Response Status: %d\n", del.ResponseStatus) //nolint:errcheck - fmt.Fprintf(out, "Response Headers:\n") //nolint:errcheck + fmt.Fprintf(out, "Response Status: %d\n", del.ResponseStatus) + fmt.Fprintf(out, "Response Headers:\n") resHeaders := strings.Split(del.ResponseHeaders, "\n") for _, h := range resHeaders { - fmt.Fprintf(out, " %s\n", h) //nolint:errcheck + fmt.Fprintf(out, " %s\n", h) } - fmt.Fprintf(out, "Response Body:\n") //nolint:errcheck + fmt.Fprintf(out, "Response Body:\n") resBody := strings.Split(del.ResponseBody, "\n") for _, b := range resBody { - fmt.Fprintf(out, " %s\n", b) //nolint:errcheck + fmt.Fprintf(out, " %s\n", b) } return nil diff --git a/pkg/ssh/middleware.go b/pkg/ssh/middleware.go index 8b59a70d9bdb3de6a53ef095e31c6780fa05a405..986a3943a38b2327fed2107179bf699f6412fd52 100644 --- a/pkg/ssh/middleware.go +++ b/pkg/ssh/middleware.go @@ -135,7 +135,7 @@ func CommandMiddleware(sh ssh.Handler) ssh.Handler { rootCmd.SetContext(ctx) if err := rootCmd.ExecuteContext(ctx); err != nil { - s.Exit(1) // nolint: errcheck + s.Exit(1) //nolint:errcheck return } } diff --git a/pkg/ssh/session_test.go b/pkg/ssh/session_test.go index f831327450cf92c32188bde1096473274c57e78e..aa1d36f49470d9fcb7966483bf50ec699b3d0e3f 100644 --- a/pkg/ssh/session_test.go +++ b/pkg/ssh/session_test.go @@ -36,7 +36,7 @@ func TestSession(t *testing.T) { go func() { time.Sleep(1 * time.Second) // s.Signal(gossh.SIGTERM) - s.Close() // nolint: errcheck + s.Close() //nolint: errcheck }() t.Log("waiting for session to exit") _, err = s.Output("test") diff --git a/pkg/ssh/ssh.go b/pkg/ssh/ssh.go index b9a23b59a2975e352be978157cb7eb011bc26117..4370a5c61106074e52393673eac368ecdb9e64aa 100644 --- a/pkg/ssh/ssh.go +++ b/pkg/ssh/ssh.go @@ -41,7 +41,7 @@ var ( ) // SSHServer is a SSH server that implements the git protocol. -type SSHServer struct { // nolint: revive +type SSHServer struct { //nolint:revive srv *ssh.Server cfg *config.Config be *backend.Backend diff --git a/pkg/storage/local.go b/pkg/storage/local.go index 496f20e37dcf47dba316250f0cf33878434e16ad..bf2fac9a5a37498b645f3dd234b3129bb985b6ac 100644 --- a/pkg/storage/local.go +++ b/pkg/storage/local.go @@ -51,7 +51,7 @@ func (l *LocalStorage) Put(name string, r io.Reader) (int64, error) { if err != nil { return 0, err } - defer f.Close() // nolint: errcheck + defer f.Close() //nolint: errcheck return io.Copy(f, r) } diff --git a/pkg/ui/pages/repo/filesitem.go b/pkg/ui/pages/repo/filesitem.go index 5c3e560f13f76796d4352dfa8e01030698d28594..64b4b1f4fb2a40295db893564236760c03d9e976 100644 --- a/pkg/ui/pages/repo/filesitem.go +++ b/pkg/ui/pages/repo/filesitem.go @@ -118,12 +118,12 @@ func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int, listItem nameStyle = s.Active.FileName sizeStyle = s.Active.FileSize modeStyle = s.Active.FileMode - fmt.Fprint(w, s.Selector.Render(">")) //nolint:errcheck + fmt.Fprint(w, s.Selector.Render(">")) } else { nameStyle = s.Normal.FileName sizeStyle = s.Normal.FileSize modeStyle = s.Normal.FileMode - fmt.Fprint(w, s.Selector.Render(" ")) //nolint:errcheck + fmt.Fprint(w, s.Selector.Render(" ")) } sizeStyle = sizeStyle. Width(8). @@ -142,7 +142,6 @@ func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int, listItem truncate := lipgloss.NewStyle().MaxWidth(m.Width() - s.Selector.GetHorizontalFrameSize() - s.Selector.GetWidth()) - //nolint:errcheck fmt.Fprint(w, d.common.Zone.Mark( i.ID(), diff --git a/pkg/ui/pages/repo/logitem.go b/pkg/ui/pages/repo/logitem.go index 1aefd53204ac9288fb6f122efdce0ccd69f81256..bb8e8abf53d580dc7db54f2e78c048567d9786d9 100644 --- a/pkg/ui/pages/repo/logitem.go +++ b/pkg/ui/pages/repo/logitem.go @@ -130,7 +130,7 @@ func (d LogItemDelegate) Render(w io.Writer, m list.Model, index int, listItem l } who += styles.Desc.Render("on ") + styles.Keyword.Render(date) who = common.TruncateString(who, m.Width()-horizontalFrameSize) - fmt.Fprint(w, //nolint:errcheck + fmt.Fprint(w, d.common.Zone.Mark( i.ID(), styles.Base.Render( diff --git a/pkg/ui/pages/repo/refsitem.go b/pkg/ui/pages/repo/refsitem.go index e89015049de9e83834b44c4bebee012c34d7bfd6..4932e7d4b77ba31e4dc88ddb2c48a7fc60d35852 100644 --- a/pkg/ui/pages/repo/refsitem.go +++ b/pkg/ui/pages/repo/refsitem.go @@ -191,7 +191,7 @@ func (d RefItemDelegate) Render(w io.Writer, m list.Model, index int, listItem l PaddingLeft(1). Render(sha) } - fmt.Fprint(w, //nolint:errcheck + fmt.Fprint(w, d.common.Zone.Mark( i.ID(), st.Base.Render( diff --git a/pkg/ui/pages/repo/repo.go b/pkg/ui/pages/repo/repo.go index e9e5535ee0bd46b6eab6bcec360715968491c757..3be81908cc60f055390f82de4caa9956ed41ee68 100644 --- a/pkg/ui/pages/repo/repo.go +++ b/pkg/ui/pages/repo/repo.go @@ -32,7 +32,7 @@ type EmptyRepoMsg struct{} type CopyURLMsg struct{} // RepoMsg is a message that contains a git.Repository. -type RepoMsg proto.Repository // nolint:revive +type RepoMsg proto.Repository //nolint:revive // GoBackMsg is a message to go back to the previous view. type GoBackMsg struct{} diff --git a/pkg/ui/pages/repo/stashitem.go b/pkg/ui/pages/repo/stashitem.go index a094040f992a9e7e70f565f92aaf70e14cfc7155..f77548d6a88708a9e57b8655621929264adb2ec1 100644 --- a/pkg/ui/pages/repo/stashitem.go +++ b/pkg/ui/pages/repo/stashitem.go @@ -93,7 +93,7 @@ func (d StashItemDelegate) Render(w io.Writer, m list.Model, index int, listItem selector = s.Selector.Render(selector) title := st.Render(item.Title()) - fmt.Fprint(w, d.common.Zone.Mark( //nolint:errcheck + fmt.Fprint(w, d.common.Zone.Mark( item.ID(), common.TruncateString(fmt.Sprintf("%s%s", selector, diff --git a/pkg/ui/pages/selection/item.go b/pkg/ui/pages/selection/item.go index 7b5b82809f16409c28ccf1666104c2bbf59fbe91..7478b53f875cb62994bf3a8813b971be8b026601 100644 --- a/pkg/ui/pages/selection/item.go +++ b/pkg/ui/pages/selection/item.go @@ -214,7 +214,7 @@ func (d *ItemDelegate) Render(w io.Writer, m list.Model, index int, listItem lis } cmd = common.TruncateString(cmd, m.Width()-styles.Base.GetHorizontalFrameSize()) s.WriteString(cmdStyler(cmd)) - fmt.Fprint(w, //nolint:errcheck + fmt.Fprint(w, d.common.Zone.Mark(i.ID(), styles.Base.Render(s.String()), ), diff --git a/pkg/web/git.go b/pkg/web/git.go index 9522783ad714ffba18dd3b8f8c3adde072e3bbac..50873cbc634b543b77e7915fcafe80afa8f619dd 100644 --- a/pkg/web/git.go +++ b/pkg/web/git.go @@ -434,7 +434,7 @@ func serviceRpc(w http.ResponseWriter, r *http.Request) { renderInternalServerError(w, r) return } - defer reader.Close() // nolint: errcheck + defer reader.Close() //nolint: errcheck } cmd.Stdin = reader @@ -459,7 +459,7 @@ type flushResponseWriter struct { } func (f *flushResponseWriter) ReadFrom(r io.Reader) (int64, error) { - flusher := http.NewResponseController(f.ResponseWriter) // nolint: bodyclose + flusher := http.NewResponseController(f.ResponseWriter) //nolint: bodyclose var n int64 p := make([]byte, 1024) @@ -537,12 +537,12 @@ func getInfoRefs(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", fmt.Sprintf("application/x-%s-advertisement", service)) w.WriteHeader(http.StatusOK) if version < 2 { - git.WritePktline(w, "# service="+service.String()) // nolint: errcheck + git.WritePktline(w, "# service="+service.String()) //nolint: errcheck } - w.Write(refs.Bytes()) // nolint: errcheck + w.Write(refs.Bytes()) //nolint: errcheck } else { // Dumb HTTP - updateServerInfo(ctx, dir) // nolint: errcheck + updateServerInfo(ctx, dir) //nolint: errcheck hdrNocache(w) sendFile("text/plain; charset=utf-8", w, r) } diff --git a/pkg/web/git_lfs.go b/pkg/web/git_lfs.go index b105979ce3beac15625ca81a6977ed54dd1827dd..96ba52253ff6e389e78490ec27730fff4d4a54bd 100644 --- a/pkg/web/git_lfs.go +++ b/pkg/web/git_lfs.go @@ -41,7 +41,7 @@ func serviceLfsBatch(w http.ResponseWriter, r *http.Request) { } var batchRequest lfs.BatchRequest - defer r.Body.Close() // nolint: errcheck + defer r.Body.Close() //nolint: errcheck if err := json.NewDecoder(r.Body).Decode(&batchRequest); err != nil { logger.Errorf("error decoding json: %s", err) renderJSON(w, http.StatusUnprocessableEntity, lfs.ErrorResponse{ @@ -282,7 +282,7 @@ func serviceLfsBasicDownload(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/octet-stream") w.Header().Set("Content-Length", strconv.FormatInt(obj.Size, 10)) - defer f.Close() // nolint: errcheck + defer f.Close() //nolint: errcheck if _, err := io.Copy(w, f); err != nil { logger.Error("error copying object to response", "oid", oid, "err", err) renderJSON(w, http.StatusInternalServerError, lfs.ErrorResponse{ @@ -313,7 +313,7 @@ func serviceLfsBasicUpload(w http.ResponseWriter, r *http.Request) { strg := storage.NewLocalStorage(filepath.Join(cfg.DataPath, "lfs", repoID)) name := mux.Vars(r)["repo"] - defer r.Body.Close() // nolint: errcheck + defer r.Body.Close() //nolint: errcheck repo, err := be.Repository(ctx, name) if err != nil { renderJSON(w, http.StatusNotFound, lfs.ErrorResponse{ @@ -326,7 +326,7 @@ func serviceLfsBasicUpload(w http.ResponseWriter, r *http.Request) { // partial error, so we need to skip existing objects. if _, err := datastore.GetLFSObjectByOid(ctx, dbx, repo.ID(), oid); err == nil { // Object exists, skip request - io.Copy(io.Discard, r.Body) // nolint: errcheck + io.Copy(io.Discard, r.Body) //nolint: errcheck renderStatus(http.StatusOK)(w, nil) return } else if !errors.Is(err, db.ErrRecordNotFound) { @@ -385,7 +385,7 @@ func serviceLfsBasicVerify(w http.ResponseWriter, r *http.Request) { return } - defer r.Body.Close() // nolint: errcheck + defer r.Body.Close() //nolint: errcheck if err := json.NewDecoder(r.Body).Decode(&pointer); err != nil { logger.Error("error decoding json", "err", err) renderJSON(w, http.StatusBadRequest, lfs.ErrorResponse{ diff --git a/pkg/web/logging.go b/pkg/web/logging.go index 1c00932f441f072156b143930486ac640dd47796..8fabb7f6c6019695c9febbc9d938cfd6bc2fd3dc 100644 --- a/pkg/web/logging.go +++ b/pkg/web/logging.go @@ -24,7 +24,7 @@ var _ http.Flusher = (*logWriter)(nil) var _ http.Hijacker = (*logWriter)(nil) -var _ http.CloseNotifier = (*logWriter)(nil) // nolint: staticcheck +var _ http.CloseNotifier = (*logWriter)(nil) //nolint: staticcheck // Write implements http.ResponseWriter. func (r *logWriter) Write(p []byte) (int, error) { @@ -54,7 +54,7 @@ func (r *logWriter) Flush() { // CloseNotify implements http.CloseNotifier. func (r *logWriter) CloseNotify() <-chan bool { - if cn, ok := r.ResponseWriter.(http.CloseNotifier); ok { // nolint: staticcheck + if cn, ok := r.ResponseWriter.(http.CloseNotifier); ok { //nolint: staticcheck return cn.CloseNotify() } return nil diff --git a/pkg/web/util.go b/pkg/web/util.go index 412d0e00ef14b545fc042462b63bf12626ea7cc5..cc2429d633775e7c223c5c11e328c28d0d4647fa 100644 --- a/pkg/web/util.go +++ b/pkg/web/util.go @@ -9,6 +9,6 @@ import ( func renderStatus(code int) http.HandlerFunc { return func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(code) - io.WriteString(w, fmt.Sprintf("%d %s", code, http.StatusText(code))) // nolint: errcheck + io.WriteString(w, fmt.Sprintf("%d %s", code, http.StatusText(code))) //nolint: errcheck } } diff --git a/pkg/webhook/webhook.go b/pkg/webhook/webhook.go index 15d93bb1db3a16485dad1558f516e4a652ae3bb6..12ad1f4b97725ee9d1ee0564f0542f223e6a0e64 100644 --- a/pkg/webhook/webhook.go +++ b/pkg/webhook/webhook.go @@ -70,7 +70,7 @@ func SendWebhook(ctx context.Context, w models.Webhook, event Event, payload int if err != nil { return err } - buf.WriteString(v.Encode()) // nolint: errcheck + buf.WriteString(v.Encode()) //nolint: errcheck default: return ErrInvalidContentType } @@ -90,7 +90,7 @@ func SendWebhook(ctx context.Context, w models.Webhook, event Event, payload int reqBody := buf.String() if w.Secret != "" { sig := hmac.New(sha256.New, []byte(w.Secret)) - sig.Write([]byte(reqBody)) // nolint: errcheck + sig.Write([]byte(reqBody)) //nolint: errcheck headers.Add("X-SoftServe-Signature", "sha256="+hex.EncodeToString(sig.Sum(nil))) } @@ -111,7 +111,7 @@ func SendWebhook(ctx context.Context, w models.Webhook, event Event, payload int } if res.Body != nil { - defer res.Body.Close() // nolint: errcheck + defer res.Body.Close() //nolint: errcheck b, err := io.ReadAll(res.Body) if err != nil { return err diff --git a/testscript/script_test.go b/testscript/script_test.go index db1593ff20c12739c0f082dbb65c0e5317df0fe4..0866d9bc6f51808e4cd2739ea6ced238d520d070 100644 --- a/testscript/script_test.go +++ b/testscript/script_test.go @@ -263,7 +263,7 @@ func cmdUI(key ssh.Signer) func(ts *testscript.TestScript, neg bool, args []stri break } check(ts, err, neg) - stdin.Write([]byte(string(r))) // nolint: errcheck + stdin.Write([]byte(string(r))) //nolint: errcheck // Wait for the UI to process the input time.Sleep(100 * time.Millisecond)