From 3b19ba06fda7a3a2ce42c767f5c6cba79d2200cb Mon Sep 17 00:00:00 2001 From: Fernando Nogueira Date: Sat, 30 May 2026 15:22:42 +0100 Subject: [PATCH] chore(deps): update go-github to v88 --- go.mod | 2 +- go.sum | 30 ++++--------------- pkg/usecase/auth/github/oauth.go | 6 +++- pkg/usecase/auth/profile.go | 6 +++- pkg/usecase/sync/org/github/sync.go | 4 +-- .../sync/user_resources/github/sync.go | 8 +++-- pkg/usecase/utils/gh/ghutils.go | 20 +++++-------- 7 files changed, 33 insertions(+), 43 deletions(-) diff --git a/go.mod b/go.mod index 8b3e805..00c7af4 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/gofiber/contrib/v3/jwt v1.1.5 github.com/gofiber/fiber/v3 v3.3.0 github.com/golang-jwt/jwt/v5 v5.3.1 - github.com/google/go-github/v85 v85.0.0 + github.com/google/go-github/v88 v88.0.0 github.com/google/uuid v1.6.0 github.com/jackc/pgx/v5 v5.9.2 github.com/jferrl/go-githubauth v1.6.0 diff --git a/go.sum b/go.sum index 768c50e..aeb5ed6 100644 --- a/go.sum +++ b/go.sum @@ -51,8 +51,6 @@ github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDf github.com/docker/cli v27.4.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= -github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -77,14 +75,10 @@ github.com/go-viper/mapstructure/v2 v2.1.0 h1:gHnMa2Y/pIxElCH2GlZZ1lZSsn6XMtufpG github.com/go-viper/mapstructure/v2 v2.1.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gofiber/contrib/v3/jwt v1.1.5 h1:W8K91JePPXAptQG+3fsUvmKtjub4llKeYrd9ngzYqHQ= github.com/gofiber/contrib/v3/jwt v1.1.5/go.mod h1:2JVxnG5byQa7fm32hRlKQ5Uc81+SyIoyqpbtYCbkq3Y= -github.com/gofiber/fiber/v3 v3.2.0 h1:g9+09D320foINPpCnR3ibQ5oBEFHjAWRRfDG1te54u8= -github.com/gofiber/fiber/v3 v3.2.0/go.mod h1:FHOsc2Db7HhHpsE62QAaJlXVV1pNkbZEptZ4jtti7m4= github.com/gofiber/fiber/v3 v3.3.0 h1:QBd3sYCqdy6Qs5gJYzSw4I4SbqL204jPqpdub/ueiw8= github.com/gofiber/fiber/v3 v3.3.0/go.mod h1:YH7/TAoRaU4kF8slDCtQuFJ1NzC+3MtxUI4KfvQtaIA= github.com/gofiber/schema v1.7.1 h1:oSJBKdgP8JeIME4TQSAqlNKTU2iBB+2RNmKi8Nsc+TI= github.com/gofiber/schema v1.7.1/go.mod h1:A/X5Ffyru4p9eBdp99qu+nzviHzQiZ7odLT+TwxWhbk= -github.com/gofiber/utils/v2 v2.0.5 h1:IMXoI2A5Dao/aMMBURTNxnhbtQO4kUwUFOgcwFSIjLU= -github.com/gofiber/utils/v2 v2.0.5/go.mod h1:FwwopfzwAQsoXLCHhOT24eH2jQfBgrrra9S5p0+luxg= github.com/gofiber/utils/v2 v2.0.6 h1:7fXYy7nSsyqbH0GQUMtK4Kwjy4J7R5742VM7JsZxzOs= github.com/gofiber/utils/v2 v2.0.6/go.mod h1:p7mAHAk3+oUK10ZX2xTw9fZQixb4hCg8SKd4IH2xroU= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -96,8 +90,8 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/go-github/v85 v85.0.0 h1:1+TLFX/akTFXK7o9Z9uAloQGufOn4ySa5DItUM1VWT4= -github.com/google/go-github/v85 v85.0.0/go.mod h1:jYkBnqN+SzR2A2fGKYfbt6DEEQAyxeK0Q2XpPV9ZFsU= +github.com/google/go-github/v88 v88.0.0 h1:dZA9IKkPK1eXZj4ypngnpRj5FwdpTv4whix2PrQMP7M= +github.com/google/go-github/v88 v88.0.0/go.mod h1:rufTDgn2N45wjhukLTyxmvc9nilSp3mr3Rgtt6b1MPw= github.com/google/go-querystring v1.2.0 h1:yhqkPbu2/OH+V9BfpCVPZkNmUXhb2gBxJArfhIxNtP0= github.com/google/go-querystring v1.2.0/go.mod h1:8IFJqpSRITyJ8QhQ13bmbeMBDfmeEJZD5A0egEOmkqU= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= @@ -144,8 +138,6 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= -github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/opencontainers/runc v1.2.3 h1:fxE7amCzfZflJO2lHXf4y/y8M1BoAqp+FVmG19oYB80= @@ -164,8 +156,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= -github.com/shamaton/msgpack/v3 v3.1.0 h1:jsk0vEAqVvvS9+fTZ5/EcQ9tz860c9pWxJ4Iwecz8gU= -github.com/shamaton/msgpack/v3 v3.1.0/go.mod h1:DcQG8jrdrQCIxr3HlMYkiXdMhK+KfN2CitkyzsQV4uc= +github.com/shamaton/msgpack/v3 v3.1.2 h1:d5gWAIyMU4M0WgDjz6IFSCuXJUA2dFwRHBpDclE8CLw= +github.com/shamaton/msgpack/v3 v3.1.2/go.mod h1:DcQG8jrdrQCIxr3HlMYkiXdMhK+KfN2CitkyzsQV4uc= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -198,24 +190,16 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= -go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= -go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= -go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= -go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= -go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= -go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/metric/x v0.66.0 h1:YkCrx1zLOChi9ZcZ6euupOcsgzbVlec7D/xoEU1+cTA= +go.opentelemetry.io/otel/metric/x v0.66.0/go.mod h1:d1+BDj9t96do0/1LoU1ayfCv79ZgNE41qbhBvnMOBZk= go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= -go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= -go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= -go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= -go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -243,8 +227,6 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/pkg/usecase/auth/github/oauth.go b/pkg/usecase/auth/github/oauth.go index c16718f..d68919e 100644 --- a/pkg/usecase/auth/github/oauth.go +++ b/pkg/usecase/auth/github/oauth.go @@ -198,7 +198,11 @@ func (o *OAuthHandler) Callback(c fiber.Ctx) error { return c.SendStatus(fiber.StatusInternalServerError) } - ghClient := gh.NewDefaultGithubClient(tokenResponse.AccessToken) + ghClient, err := gh.NewDefaultGithubClient(tokenResponse.AccessToken) + if err != nil { + log.Errorf("Failed to create github client: %v", err) + return c.SendStatus(fiber.StatusInternalServerError) + } user, _, err := ghClient.Users.Get(c.Context(), "") if err != nil { log.Errorf("Failed to get user: %v", err) diff --git a/pkg/usecase/auth/profile.go b/pkg/usecase/auth/profile.go index e927eaa..ffd52c1 100644 --- a/pkg/usecase/auth/profile.go +++ b/pkg/usecase/auth/profile.go @@ -28,7 +28,11 @@ func (h *ProfileHandler) GetLoggedUser(c fiber.Ctx) error { return c.SendStatus(fiber.StatusInternalServerError) } - ghClient := gh.NewDefaultGithubClient(dbUser.AccessToken) + ghClient, err := gh.NewDefaultGithubClient(dbUser.AccessToken) + if err != nil { + log.Error("error creating github client. ", err) + return c.SendStatus(fiber.StatusInternalServerError) + } ghUser, _, err := ghClient.Users.Get(c.Context(), "") if err != nil { log.Error("error getting github user. ", err) diff --git a/pkg/usecase/sync/org/github/sync.go b/pkg/usecase/sync/org/github/sync.go index 5437b1d..57574d7 100644 --- a/pkg/usecase/sync/org/github/sync.go +++ b/pkg/usecase/sync/org/github/sync.go @@ -9,7 +9,7 @@ import ( "driftive.cloud/api/pkg/usecase/utils/parsing" "errors" "github.com/gofiber/fiber/v3/log" - "github.com/google/go-github/v85/github" + "github.com/google/go-github/v88/github" "time" ) @@ -152,7 +152,7 @@ func (so SyncOrganization) SyncInstallationIdByOrgId(ctx context.Context, orgId return } - installation, _, err := ghClient.Apps.FindOrganizationInstallation(ctx, org.Name) + installation, _, err := ghClient.Apps.GetOrganizationInstallation(ctx, org.Name) if err != nil { log.Error("error fetching installations for org: ", org.Name) return diff --git a/pkg/usecase/sync/user_resources/github/sync.go b/pkg/usecase/sync/user_resources/github/sync.go index 4fdbbf4..fbb34bf 100644 --- a/pkg/usecase/sync/user_resources/github/sync.go +++ b/pkg/usecase/sync/user_resources/github/sync.go @@ -12,7 +12,7 @@ import ( "errors" "github.com/gofiber/fiber/v3" "github.com/gofiber/fiber/v3/log" - "github.com/google/go-github/v85/github" + "github.com/google/go-github/v88/github" "time" ) @@ -48,7 +48,11 @@ func (s *UserResourceSyncer) SyncUserResources(ctx context.Context, userId int64 log.Errorf("error finding user by id: %v", err) } - ghClient := gh.NewDefaultGithubClient(user.AccessToken) + ghClient, err := gh.NewDefaultGithubClient(user.AccessToken) + if err != nil { + log.Errorf("error creating github client: %v", err) + return err + } var allOrgs []*github.Organization opts := &github.ListOptions{PerPage: 100} // Fetch up to 100 orgs per page diff --git a/pkg/usecase/utils/gh/ghutils.go b/pkg/usecase/utils/gh/ghutils.go index 7d68ba5..0faa533 100644 --- a/pkg/usecase/utils/gh/ghutils.go +++ b/pkg/usecase/utils/gh/ghutils.go @@ -12,20 +12,18 @@ import ( "driftive.cloud/api/pkg/repository" "github.com/gofiber/fiber/v3/log" - "github.com/google/go-github/v85/github" + "github.com/google/go-github/v88/github" "github.com/jferrl/go-githubauth" "golang.org/x/oauth2" ) -func NewDefaultGithubClient(token string) *github.Client { +func NewDefaultGithubClient(token string) (*github.Client, error) { httpClient := http.Client{} - ghClient := github.NewClient(&httpClient) - + opts := []github.ClientOptionsFunc{github.WithHTTPClient(&httpClient)} if token != "" { - return ghClient.WithAuthToken(token) + opts = append(opts, github.WithAuthToken(token)) } - - return ghClient + return github.NewClient(opts...) } func NewUserGithubClient(ctx context.Context, userId int64, usersRepository repository.UserRepository) (*github.Client, error) { @@ -34,7 +32,7 @@ func NewUserGithubClient(ctx context.Context, userId int64, usersRepository repo return nil, err } - return NewDefaultGithubClient(user.AccessToken), nil + return NewDefaultGithubClient(user.AccessToken) } func NewAppGithubInstallationClient(ctx context.Context, installationId int64) (*github.Client, error) { @@ -53,8 +51,7 @@ func NewAppGithubInstallationClient(ctx context.Context, installationId int64) ( installationTokenSource := githubauth.NewInstallationTokenSource(installationId, appTokenSource) oauth2HttpClient := oauth2.NewClient(ctx, installationTokenSource) - ghClient := github.NewClient(oauth2HttpClient) - return ghClient, nil + return github.NewClient(github.WithHTTPClient(oauth2HttpClient)) } func NewAppGithubClient(ctx context.Context) (*github.Client, error) { @@ -71,8 +68,7 @@ func NewAppGithubClient(ctx context.Context) (*github.Client, error) { } oauth2HttpClient := oauth2.NewClient(ctx, appTokenSource) - ghClient := github.NewClient(oauth2HttpClient) - return ghClient, nil + return github.NewClient(github.WithHTTPClient(oauth2HttpClient)) } func ParseOrgRole(role string) string {