IssuesFiltered is unusable by external consumers — IssueFilter lives in internal/graphql
Summary
Client.IssuesFiltered is exported on the public linear.Client but its parameter type, *intgraphql.IssueFilter, is defined in github.com/chainguard-sandbox/go-linear/v2/internal/graphql. External modules cannot import that package, so the method signature is visible but the method itself cannot be called.
Steps to reproduce
import gl "github.com/chainguard-sandbox/go-linear/v2/pkg/linear"
c, _ := gl.NewClient(apiKey)
// Cannot construct the filter — intgraphql is unreachable:
// filter := &intgraphql.IssueFilter{ ... } // compile error
// So this call can never be made from outside the module:
// c.IssuesFiltered(ctx, &n, nil, filter)
./main.go:10:15: use of internal package github.com/chainguard-sandbox/go-linear/v2/internal/graphql not allowed
The same problem affects ProjectsFiltered, SearchIssues, and any other method whose parameters reference internal/graphql types.
Expected behaviour
Server-side filtering should be accessible to all callers. Either:
- Re-export
IssueFilter (and related types) from the public package (pkg/linear), or
- Provide wrapper constructors / builder helpers in
pkg/linear that construct the internal types, so callers never need to import internal/graphql directly.
Actual behaviour
Callers who need project- or state-scoped issue lists must either fetch the entire workspace and filter in memory, or bypass the SDK and write raw HTTP/GraphQL requests by hand.
Environment
- Module:
github.com/chainguard-sandbox/go-linear/v2
- Version:
v2.2.1
- Go version:
go1.24+
IssuesFilteredis unusable by external consumers —IssueFilterlives ininternal/graphqlSummary
Client.IssuesFilteredis exported on the publiclinear.Clientbut its parameter type,*intgraphql.IssueFilter, is defined ingithub.com/chainguard-sandbox/go-linear/v2/internal/graphql. External modules cannot import that package, so the method signature is visible but the method itself cannot be called.Steps to reproduce
The same problem affects
ProjectsFiltered,SearchIssues, and any other method whose parameters referenceinternal/graphqltypes.Expected behaviour
Server-side filtering should be accessible to all callers. Either:
IssueFilter(and related types) from the public package (pkg/linear), orpkg/linearthat construct the internal types, so callers never need to importinternal/graphqldirectly.Actual behaviour
Callers who need project- or state-scoped issue lists must either fetch the entire workspace and filter in memory, or bypass the SDK and write raw HTTP/GraphQL requests by hand.
Environment
github.com/chainguard-sandbox/go-linear/v2v2.2.1go1.24+