diff --git a/go.mod b/go.mod index f9a8b8e4..3c5c0eae 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,10 @@ module github.com/conductorone/baton-github-enterprise go 1.25.2 require ( - github.com/conductorone/baton-github v0.2.7 + github.com/conductorone/baton-github v0.2.9 github.com/conductorone/baton-sdk v0.8.10 github.com/ennyjfrick/ruleguard-logfatal v0.0.2 - github.com/quasilyte/go-ruleguard/dsl v0.3.22 + github.com/quasilyte/go-ruleguard/dsl v0.3.23 ) require ( diff --git a/go.sum b/go.sum index 52a06b69..77545126 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/conductorone/baton-github v0.2.7 h1:Adbi1n9KV6DnzMeJfB04jilIXcEGHqq4YBZILUWA9o4= -github.com/conductorone/baton-github v0.2.7/go.mod h1:jqiRaRBZCQeOxKY677H1mopyS0lMaSk0BvjAU5vnKqc= +github.com/conductorone/baton-github v0.2.9 h1:pvNomP6mhUTIPOvkwkfNzMjvv3qAsya9XLHjFtUjvIE= +github.com/conductorone/baton-github v0.2.9/go.mod h1:wlibj6Pj9RSI+ll8cf4keEewmnZwwnPgwr4nTdOxBb8= github.com/conductorone/baton-sdk v0.8.10 h1:snjHSyLgw6F8veU5qcte6zguhTFFb865Wp0l1iPK9wo= github.com/conductorone/baton-sdk v0.8.10/go.mod h1:agmFrml6APUw4ZlqMEBrnXYj3aAOGKOJ6gztiNj64h0= github.com/conductorone/dpop v0.2.3 h1:s91U3845GHQ6P6FWrdNr2SEOy1ES/jcFs1JtKSl2S+o= @@ -206,8 +206,8 @@ github.com/pquerna/xjwt/xkeyset v0.0.0-20241217022915-10fc997b2a9f/go.mod h1:zLK github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/quasilyte/go-ruleguard v0.4.4 h1:53DncefIeLX3qEpjzlS1lyUmQoUEeOWPFWqaTJq9eAQ= github.com/quasilyte/go-ruleguard v0.4.4/go.mod h1:Vl05zJ538vcEEwu16V/Hdu7IYZWyKSwIy4c88Ro1kRE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.3.23 h1:lxjt5B6ZCiBeeNO8/oQsegE6fLeCzuMRoVWSkXC4uvY= +github.com/quasilyte/go-ruleguard/dsl v0.3.23/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= diff --git a/vendor/github.com/conductorone/baton-github/pkg/connector/user.go b/vendor/github.com/conductorone/baton-github/pkg/connector/user.go index 93321b73..7a22e1ab 100644 --- a/vendor/github.com/conductorone/baton-github/pkg/connector/user.go +++ b/vendor/github.com/conductorone/baton-github/pkg/connector/user.go @@ -3,7 +3,6 @@ package connector import ( "context" "fmt" - "net/http" "net/mail" "strconv" "strings" @@ -11,12 +10,10 @@ import ( v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" "github.com/conductorone/baton-sdk/pkg/annotations" "github.com/conductorone/baton-sdk/pkg/types/resource" - "github.com/conductorone/baton-sdk/pkg/uhttp" "github.com/google/go-github/v69/github" "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" "github.com/shurcooL/githubv4" "go.uber.org/zap" - "google.golang.org/grpc/codes" "google.golang.org/protobuf/types/known/timestamppb" ) @@ -155,15 +152,13 @@ func (o *userResourceType) List(ctx context.Context, parentID *v2.ResourceId, op for _, user := range users { u, res, err := o.client.Users.GetByID(ctx, user.GetID()) if err != nil { - if isRatelimited(res) { - return nil, nil, uhttp.WrapErrors(codes.Unavailable, "too many requests", err) - } // This undocumented API can return 404 for some users. If this fails it means we won't get some of their details like email - if res == nil || res.StatusCode != http.StatusNotFound { - return nil, nil, err + if isNotFoundError(res) { + l.Warn("error fetching user by id", zap.Error(err), zap.Int64("user_id", user.GetID())) + u = user + } else { + return nil, nil, wrapGitHubError(err, res, "github-connector: failed to get user by id") } - l.Error("error fetching user by id", zap.Error(err), zap.Int64("user_id", user.GetID())) - u = user } userEmail := u.GetEmail() var extraEmails []string diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go index d3c73bdd..f46f721a 100644 --- a/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go +++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go @@ -16,6 +16,10 @@ type Matcher map[string]Var // `a/b/foo.Bar` type during the pattern execution. func (m Matcher) Import(pkgPath string) {} +// ImportAs is like Import, but can handle "/v2" packages +// and package name conflicts (e.g. "x/path" vs "y/path"). +func (m Matcher) ImportAs(pkgPath, localName string) {} + // Match specifies a set of patterns that match a rule being defined. // Pattern matching succeeds if at least 1 pattern matches. // @@ -106,7 +110,7 @@ type Var struct { Const bool // ConstSlice reports whether expr matched by var is a slice literal - // consisting of contant elements. + // consisting of constant elements. // // We need a separate Const-like predicate here because Go doesn't // treat slices of const elements as constants, so including diff --git a/vendor/modules.txt b/vendor/modules.txt index 60f88a7f..90983f83 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -162,7 +162,7 @@ github.com/cenkalti/backoff/v5 # github.com/cespare/xxhash/v2 v2.3.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/conductorone/baton-github v0.2.7 +# github.com/conductorone/baton-github v0.2.9 ## explicit; go 1.25.2 github.com/conductorone/baton-github/pkg/config github.com/conductorone/baton-github/pkg/connector @@ -400,7 +400,7 @@ github.com/pquerna/xjwt # github.com/pquerna/xjwt/xkeyset v0.0.0-20241217022915-10fc997b2a9f ## explicit; go 1.23 github.com/pquerna/xjwt/xkeyset -# github.com/quasilyte/go-ruleguard/dsl v0.3.22 +# github.com/quasilyte/go-ruleguard/dsl v0.3.23 ## explicit; go 1.15 github.com/quasilyte/go-ruleguard/dsl github.com/quasilyte/go-ruleguard/dsl/types