From 2628daba97c2ea3025bc703072fa928fc5a5c41f Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sat, 31 Jan 2026 11:58:56 +0100 Subject: [PATCH] CI: prevent backends from importing internal/restic package --- .golangci.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.golangci.yml b/.golangci.yml index 8538f4aee..fd703473f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -6,6 +6,8 @@ linters: - asciicheck # ensure that http response bodies are closed - bodyclose + # restrict imports from other restic packages for internal/backend (cache exempt) + - depguard - copyloopvar # make sure all errors returned by functions are handled - errcheck @@ -24,6 +26,20 @@ linters: # find unused variables, functions, structs, types, etc. - unused settings: + depguard: + rules: + # Prevent backend packages from importing the internal/restic package to keep the architectural layers intact. + backend-imports: + files: + - "**/internal/backend/**" + - "!**/internal/backend/cache/**" + - "!**/internal/backend/test/**" + - "!**/*_test.go" + deny: + - pkg: "github.com/restic/restic/internal/restic" + desc: "internal/restic should not be imported to keep the architectural layers intact" + - pkg: "github.com/restic/restic/internal/repository" + desc: "internal/repository should not be imported to keep the architectural layers intact" importas: alias: - pkg: github.com/restic/restic/internal/test