# Fix CI failures after go-git v6 upgrade and module rename

`98a36eb`→[main](/content/gh/entireio/git-sync/commits/main/index.html)·

Soph·2mo ago·2 files·+11 added/-3 removed

- Make FetchToStore surface context.Canceled deterministically when the
context is canceled, by joining ctx.Err() with any underlying read
error. The cancellation tests raced against downstream pkt-line parse/
network-close errors; under go-git v6 timing this began flaking in
CI.
- Update .golangci.yaml ireturn allow list to use the new module path
(entire.io/git-sync), missed during the rename from github.com/entirehq.

## Sessions

cea42415e239View transcript

[?\
can you take a look again, we renamed the package name and I rebased onto main, also tests seem to failClaude Code·Opus 4.7[1m]·1 step](/content/gh/entireio/git-sync/session/4746b2b9-d72d-4d6a-81af-a70ba92e9c94#timeline-cea42415e239/index.html)

## Changes

2

- M.golangci.yaml+1/-1

- internal/gitproto

- Mfetch.go+10/-2

```
96 unmodified lines

97
98
99
100
100
101
102
103

96 unmodified lines

- github.com/go-git/go-git/v6/storage.Storer
        - github.com/go-git/go-git/v6/plumbing/storer.EncodedObjectIter
        - github.com/go-git/go-billy/v6.Filesystem
        - github.com/entirehq/git-sync/internal/auth.Method
        - entire.io/git-sync/internal/auth.Method
    nolintlint:
      require-explanation: true
      require-specific: true
```

M.golangci.yaml+1/-1

```
58 unmodified lines

59
60
61
62
63
64
64
65
66
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

58 unmodified lines

desired map[plumbing.ReferenceName]DesiredRef,
	targetRefs map[plumbing.ReferenceName]plumbing.Hash,
) error {
	var err error
	switch s.Protocol {
	case "v2":
		return fetchToStoreV2(ctx, store, conn, s.V2Caps, desired, targetRefs, s.Verbose)
		err = fetchToStoreV2(ctx, store, conn, s.V2Caps, desired, targetRefs, s.Verbose)
	case "v1":
		return fetchToStoreV1(ctx, store, conn, s.V1Adv, desired, targetRefs, s.Verbose)
		err = fetchToStoreV1(ctx, store, conn, s.V1Adv, desired, targetRefs, s.Verbose)
	default:
		return fmt.Errorf("unsupported source protocol %q", s.Protocol)
	}
	// If the context was canceled, surface that as the primary error — any
	// downstream parse/network failure is a side effect of cancellation and
	// would race with ctx.Err() depending on read timing.
	if err != nil && ctx.Err() != nil {
		return errors.Join(ctx.Err(), err)
	}
	return err
}

// FetchPack fetches a packfile from source and returns the pack stream as a reader.
```

Minternal/gitproto/fetch.go+10/-2
