diff --git a/.golangci.yml b/.golangci.yml
index 263149f773..ebb90af9d5 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -111,67 +111,16 @@ issues:
     - linters:
         - gocritic
       text: "`ID' should not be capitalized"
-    - path: modules/templates/helper.go
-      linters:
-        - gocritic
     - linters:
         - unused
         - deadcode
       text: "swagger"
-    - path: contrib/pr/checkout.go
-      linters:
-        - errcheck
-    - path: models/issue.go
-      linters:
-        - errcheck
-    - path: models/migrations/
-      linters:
-        - errcheck
-    - path: modules/log/
-      linters:
-        - errcheck
-    - path: routers/api/v1/repo/issue_subscription.go
-      linters:
-        - dupl
-    - path: routers/repo/view.go
-      linters:
-        - dupl
-    - path: models/migrations/
-      linters:
-        - unused
     - linters:
         - staticcheck
       text: "argument x is overwritten before first use"
-    - path: modules/httplib/httplib.go
-      linters:
-        - staticcheck
-    # Enabling this would require refactoring the methods and how they are called.
-    - path: models/issue_comment_list.go
-      linters:
-        - dupl
-    - path: models/update.go
-      linters:
-        - unused
-    - path: cmd/dump.go
-      linters:
-        - dupl
-    - path: services/webhook/webhook.go
-      linters:
-        - structcheck
     - text: "commentFormatting: put a space between `//` and comment text"
       linters:
         - gocritic
     - text: "exitAfterDefer:"
       linters:
         - gocritic
-    - path: modules/graceful/manager_windows.go
-      linters:
-        - staticcheck
-      text: "svc.IsAnInteractiveSession is deprecated: Use IsWindowsService instead."
-    - path: models/user/openid.go
-      linters:
-        - golint
-    - path: models/user/badge.go
-      linters:
-        - revive
-      text: "exported: type name will be used as user.UserBadge by other packages, and that stutters; consider calling this Badge"
diff --git a/models/migrations/v1_13/v140.go b/models/migrations/v1_13/v140.go
index 4d87b955fd..30c1bc07d2 100644
--- a/models/migrations/v1_13/v140.go
+++ b/models/migrations/v1_13/v140.go
@@ -22,10 +22,10 @@ func FixLanguageStatsToSaveSize(x *xorm.Engine) error {
 	type RepoIndexerType int
 
 	const (
-		// RepoIndexerTypeCode code indexer
-		RepoIndexerTypeCode RepoIndexerType = iota // 0
-		// RepoIndexerTypeStats repository stats indexer
-		RepoIndexerTypeStats // 1
+		// RepoIndexerTypeCode code indexer - 0
+		RepoIndexerTypeCode RepoIndexerType = iota //nolint:unused
+		// RepoIndexerTypeStats repository stats indexer - 1
+		RepoIndexerTypeStats
 	)
 
 	// RepoIndexerStatus see models/repo_indexer.go
diff --git a/models/migrations/v1_14/v157.go b/models/migrations/v1_14/v157.go
index b9d8225af8..7187278d29 100644
--- a/models/migrations/v1_14/v157.go
+++ b/models/migrations/v1_14/v157.go
@@ -8,13 +8,13 @@ import (
 )
 
 func FixRepoTopics(x *xorm.Engine) error {
-	type Topic struct {
+	type Topic struct { //nolint:unused
 		ID        int64  `xorm:"pk autoincr"`
 		Name      string `xorm:"UNIQUE VARCHAR(25)"`
 		RepoCount int
 	}
 
-	type RepoTopic struct {
+	type RepoTopic struct { //nolint:unused
 		RepoID  int64 `xorm:"pk"`
 		TopicID int64 `xorm:"pk"`
 	}
diff --git a/models/migrations/v1_14/v165.go b/models/migrations/v1_14/v165.go
index a784832e1c..926350cdf7 100644
--- a/models/migrations/v1_14/v165.go
+++ b/models/migrations/v1_14/v165.go
@@ -16,7 +16,7 @@ func ConvertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error {
 		return nil
 	}
 
-	type HookTask struct {
+	type HookTask struct { //nolint:unused
 		Typ string `xorm:"VARCHAR(16) index"`
 	}
 
@@ -42,7 +42,7 @@ func ConvertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error {
 		return err
 	}
 
-	type Webhook struct {
+	type Webhook struct { //nolint:unused
 		Type string `xorm:"VARCHAR(16) index"`
 	}
 
diff --git a/models/user/badge.go b/models/user/badge.go
index 948b0b1065..ee52b44cf5 100644
--- a/models/user/badge.go
+++ b/models/user/badge.go
@@ -17,7 +17,7 @@ type Badge struct {
 }
 
 // UserBadge represents a user badge
-type UserBadge struct {
+type UserBadge struct { //nolint:revive
 	ID      int64 `xorm:"pk autoincr"`
 	BadgeID int64
 	UserID  int64 `xorm:"INDEX"`
diff --git a/modules/graceful/manager_windows.go b/modules/graceful/manager_windows.go
index 212ddf437c..f3606084aa 100644
--- a/modules/graceful/manager_windows.go
+++ b/modules/graceful/manager_windows.go
@@ -96,7 +96,7 @@ func (g *Manager) start() {
 	run := svc.Run
 
 	//lint:ignore SA1019 We use IsAnInteractiveSession because IsWindowsService has a different permissions profile
-	isAnInteractiveSession, err := svc.IsAnInteractiveSession()
+	isAnInteractiveSession, err := svc.IsAnInteractiveSession() //nolint:staticcheck
 	if err != nil {
 		log.Error("Unable to ascertain if running as an Windows Service: %v", err)
 		return
diff --git a/modules/log/event.go b/modules/log/event.go
index 4466f7ff34..d23e56807b 100644
--- a/modules/log/event.go
+++ b/modules/log/event.go
@@ -82,7 +82,7 @@ func (l *ChannelledLog) Start() {
 				l.closeLogger()
 				return
 			}
-			l.loggerProvider.LogEvent(event)
+			l.loggerProvider.LogEvent(event) //nolint:errcheck
 		case _, ok := <-l.flush:
 			if !ok {
 				l.closeLogger()
@@ -119,7 +119,7 @@ func (l *ChannelledLog) emptyQueue() bool {
 			if !ok {
 				return false
 			}
-			l.loggerProvider.LogEvent(event)
+			l.loggerProvider.LogEvent(event) //nolint:errcheck
 		default:
 			return true
 		}
diff --git a/modules/log/file.go b/modules/log/file.go
index 16fe26f84d..55147ffac8 100644
--- a/modules/log/file.go
+++ b/modules/log/file.go
@@ -181,7 +181,7 @@ func (log *FileLogger) DoRotate() error {
 		}
 
 		if log.Compress {
-			go compressOldLogFile(fname, log.CompressionLevel)
+			go compressOldLogFile(fname, log.CompressionLevel) //nolint:errcheck
 		}
 
 		// re-start logger
@@ -216,7 +216,7 @@ func compressOldLogFile(fname string, compressionLevel int) error {
 	if err != nil {
 		zw.Close()
 		fw.Close()
-		util.Remove(fname + ".gz")
+		util.Remove(fname + ".gz") //nolint:errcheck
 		return err
 	}
 	reader.Close()
diff --git a/modules/log/log.go b/modules/log/log.go
index 9057cda37e..eee2728bf6 100644
--- a/modules/log/log.go
+++ b/modules/log/log.go
@@ -245,7 +245,7 @@ func Close() {
 func Log(skip int, level Level, format string, v ...interface{}) {
 	l, ok := NamedLoggers.Load(DEFAULT)
 	if ok {
-		l.Log(skip+1, level, format, v...)
+		l.Log(skip+1, level, format, v...) //nolint:errcheck
 	}
 }
 
@@ -273,7 +273,7 @@ func (l *LoggerAsWriter) Write(p []byte) (int, error) {
 	for _, logger := range l.ourLoggers {
 		// Skip = 3 because this presumes that we have been called by log.Println()
 		// If the caller has used log.Output or the like this will be wrong
-		logger.Log(3, l.level, string(p))
+		logger.Log(3, l.level, string(p)) //nolint:errcheck
 	}
 	return len(p), nil
 }
diff --git a/modules/log/logger.go b/modules/log/logger.go
index 56e39c392e..71949e29b8 100644
--- a/modules/log/logger.go
+++ b/modules/log/logger.go
@@ -53,7 +53,7 @@ type LevelLoggerLogger struct {
 
 // Trace records trace log
 func (l *LevelLoggerLogger) Trace(format string, v ...interface{}) {
-	l.Log(1, TRACE, format, v...)
+	l.Log(1, TRACE, format, v...) //nolint:errcheck
 }
 
 // IsTrace returns true if the logger is TRACE
@@ -63,7 +63,7 @@ func (l *LevelLoggerLogger) IsTrace() bool {
 
 // Debug records debug log
 func (l *LevelLoggerLogger) Debug(format string, v ...interface{}) {
-	l.Log(1, DEBUG, format, v...)
+	l.Log(1, DEBUG, format, v...) //nolint:errcheck
 }
 
 // IsDebug returns true if the logger is DEBUG
@@ -73,7 +73,7 @@ func (l *LevelLoggerLogger) IsDebug() bool {
 
 // Info records information log
 func (l *LevelLoggerLogger) Info(format string, v ...interface{}) {
-	l.Log(1, INFO, format, v...)
+	l.Log(1, INFO, format, v...) //nolint:errcheck
 }
 
 // IsInfo returns true if the logger is INFO
@@ -83,7 +83,7 @@ func (l *LevelLoggerLogger) IsInfo() bool {
 
 // Warn records warning log
 func (l *LevelLoggerLogger) Warn(format string, v ...interface{}) {
-	l.Log(1, WARN, format, v...)
+	l.Log(1, WARN, format, v...) //nolint:errcheck
 }
 
 // IsWarn returns true if the logger is WARN
@@ -93,12 +93,12 @@ func (l *LevelLoggerLogger) IsWarn() bool {
 
 // Error records error log
 func (l *LevelLoggerLogger) Error(format string, v ...interface{}) {
-	l.Log(1, ERROR, format, v...)
+	l.Log(1, ERROR, format, v...) //nolint:errcheck
 }
 
 // ErrorWithSkip records error log from "skip" calls back from this function
 func (l *LevelLoggerLogger) ErrorWithSkip(skip int, format string, v ...interface{}) {
-	l.Log(skip+1, ERROR, format, v...)
+	l.Log(skip+1, ERROR, format, v...) //nolint:errcheck
 }
 
 // IsError returns true if the logger is ERROR
@@ -108,12 +108,12 @@ func (l *LevelLoggerLogger) IsError() bool {
 
 // Critical records critical log
 func (l *LevelLoggerLogger) Critical(format string, v ...interface{}) {
-	l.Log(1, CRITICAL, format, v...)
+	l.Log(1, CRITICAL, format, v...) //nolint:errcheck
 }
 
 // CriticalWithSkip records critical log from "skip" calls back from this function
 func (l *LevelLoggerLogger) CriticalWithSkip(skip int, format string, v ...interface{}) {
-	l.Log(skip+1, CRITICAL, format, v...)
+	l.Log(skip+1, CRITICAL, format, v...) //nolint:errcheck
 }
 
 // IsCritical returns true if the logger is CRITICAL
@@ -123,14 +123,14 @@ func (l *LevelLoggerLogger) IsCritical() bool {
 
 // Fatal records fatal log and exit the process
 func (l *LevelLoggerLogger) Fatal(format string, v ...interface{}) {
-	l.Log(1, FATAL, format, v...)
+	l.Log(1, FATAL, format, v...) //nolint:errcheck
 	l.Close()
 	os.Exit(1)
 }
 
 // FatalWithSkip records fatal log from "skip" calls back from this function and exits the process
 func (l *LevelLoggerLogger) FatalWithSkip(skip int, format string, v ...interface{}) {
-	l.Log(skip+1, FATAL, format, v...)
+	l.Log(skip+1, FATAL, format, v...) //nolint:errcheck
 	l.Close()
 	os.Exit(1)
 }
diff --git a/modules/log/multichannel.go b/modules/log/multichannel.go
index 8ccb08179c..6b8a9b8246 100644
--- a/modules/log/multichannel.go
+++ b/modules/log/multichannel.go
@@ -99,6 +99,6 @@ func (l *MultiChannelledLogger) SendLog(level Level, caller, filename string, li
 		time:       time.Now(),
 		stacktrace: stack,
 	}
-	l.LogEvent(event)
+	l.LogEvent(event) //nolint:errcheck
 	return nil
 }
diff --git a/modules/log/writer.go b/modules/log/writer.go
index ac4b3c8c4e..61f1d866ee 100644
--- a/modules/log/writer.go
+++ b/modules/log/writer.go
@@ -202,7 +202,7 @@ func (logger *WriterLogger) createMsg(buf *[]byte, event *Event) {
 	(&protectedANSIWriter{
 		w:    &baw,
 		mode: pawMode,
-	}).Write(msg)
+	}).Write(msg) //nolint:errcheck
 	*buf = baw
 
 	if event.stacktrace != "" && logger.StacktraceLevel <= event.level {
@@ -249,7 +249,7 @@ func (logger *WriterLogger) Match(event *Event) bool {
 	(&protectedANSIWriter{
 		w:    &baw,
 		mode: removeColor,
-	}).Write([]byte(event.msg))
+	}).Write([]byte(event.msg)) //nolint:errcheck
 	msg = baw
 	return logger.regexp.Match(msg)
 }