Uh oh!
There was an error while loading. Please reload this page.
feat: Add support for GitHub Code Quality API - #4260
Conversation
gmlewis
left a comment
There was a problem hiding this comment.
Thank you, @MasterOogway1466!
Just a couple tweaks, please, then we should be ready for a second LGTM+Approval from any other contributor to this repo before merging.
cc: @stevehipwell - @alexandear - @zyfy29 - @Not-Dhananjay-Mishra - @munlicode
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## master #4260 +/- ##
=======================================
Coverage 97.48% 97.48% =======================================
Files 191 192 +1 Lines 19206 19227 +21 =======================================
+ Hits 18723 18744 +21
Misses 268 268 Partials 215 215 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Co-authored-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>
| // GitHub API docs: https://docs.github.com/rest/code-quality/code-quality?apiVersion=2022-11-28#get-a-code-quality-setup-configuration | ||
| // | ||
| //meta:operation GET /repos/{owner}/{repo}/code-quality/setup | ||
| func (s *CodeQualityService) GetSetup(ctx context.Context, owner, repo string) (*CodeQualitySetupConfiguration, *Response, error) { | ||
| u := fmt.Sprintf("repos/%v/%v/code-quality/setup", owner, repo) | ||
| req, err := s.client.NewRequest(ctx, "GET", u, nil, WithVersion(api20260310)) |
There was a problem hiding this comment.
The doc says, that apiVersion=2022-11-28. But the implementation has WithVersion(api20260310).
There was a problem hiding this comment.
Yeah, 2026-03-10 is the correct apiVersion sorry for not checking the comments thoroughly before submitting 🥲
| "github.com/google/go-cmp/cmp" | ||
| ) | ||
| func TestCodeQualitySetupConfiguration_Marshal(t *testing.T) { |
| testJSONMarshal(t, c, want) | ||
| } | ||
| func TestUpdateCodeQualitySetupResponse_Marshal(t *testing.T) { |
| func (s *CodeQualityService) UpdateSetup(ctx context.Context, owner, repo string, opts *UpdateCodeQualitySetupOptions) (*UpdateCodeQualitySetupResponse, *Response, error) { | ||
| u := fmt.Sprintf("repos/%v/%v/code-quality/setup", owner, repo) | ||
| req, err := s.client.NewRequest(ctx, "PATCH", u, opts, WithVersion(api20260310)) |
There was a problem hiding this comment.
| req, err:=s.client.NewRequest(ctx, "PATCH", u, opts, WithVersion(api20260310)) | |
| req, err:=s.client.NewRequest(ctx, "PATCH", u, opts) |
// GitHub API docs: https://docs.github.com/rest/code-quality/code-quality?apiVersion=2022-11-28#update-a-code-quality-setup-configurationThis link (L71) has apiVersion=2022-11-28. So I believe we can remove WithVersion(api20260310)
There was a problem hiding this comment.
@MasterOogway1466 Let's remove the WithVersion(api20260310). Basically, there is nothing specific for the API 2026-03-10 that is not present in 2022-11-28.
This will resolve your problem #4260 (comment)
Okay I have a question. Every time I implement the 2026-03-10 version of the API, it passes all the tests when I run As per the issue I opened the PR for, the API version is meant to be the 2026 version. Not quite sure how to proceed, can I get some help on what to do about this? |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Oleksandr Redko <oleksandr.red+github@gmail.com>
…stions from code review
gmlewis
left a comment
There was a problem hiding this comment.
Thank you, @MasterOogway1466, @stevehipwell, and @alexandear!
LGTM.
@Not-Dhananjay-Mishra - have all your concerns been addressed?
MasterOogway1466
commented
Jun 2, 2026
Thanks everyone for all your feedback and for the opportunity to contribute 😃 |
… v89.0.0) (#16) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [github.com/google/go-github/v88](https://github.com/google/go-github) | `v88.0.0` → `v89.0.0` |  |  | --- ### Release Notes <details> <summary>google/go-github (github.com/google/go-github/v88)</summary> ### [`v89.0.0`](https://github.com/google/go-github/releases/tag/v89.0.0) [Compare Source](google/go-github@v88.0.0...v89.0.0) This release contains the following breaking API changes: - refactor!: Pass `DeploymentRequest` and `DeploymentStatusRequest` by value ([#​4361](google/go-github#4361)) BREAKING CHANGE: `CreateDeployment` and `CreateDeploymentStatus` now take `DeploymentRequest` and `DeploymentStatusRequest` by value; `DeploymentRequest.Ref` and `DeploymentStatusRequest.State` are now `string`, and `DeploymentRequest.RequiredContexts` is now `[]string`. - refactor!: Pass `HookConfig` by value and rename `EditHookConfiguration` to `UpdateHookConfiguration` ([#​4360](google/go-github#4360)) BREAKING CHANGE: `EditHookConfiguration` is renamed to `UpdateHookConfiguration` on `RepositoriesService` and `OrganizationsService`; these methods and `AppsService.UpdateHookConfig` now take `HookConfig` by value. - refactor!: Pass `OIDCSubjectClaimCustomTemplate` by value in the OIDC subject-claim Set methods ([#​4340](google/go-github#4340)) BREAKING CHANGE: `SetOrgOIDCSubjectClaimCustomTemplate` and `SetRepoOIDCSubjectClaimCustomTemplate` now take their `body` params by value. - feat!: Refactor actions variables to pass request by value ([#​4346](google/go-github#4346)) BREAKING CHANGE: `ActionsService` methods involving variables have new params and return values. - feat!: Replace actions env secret endpoints ([#​4335](google/go-github#4335)) BREAKING CHANGE: `ActionsService` methods involving secrets have new params and return values. - refactor!: Pass `CreateJITConfigRequest` by value and rename `Generate*JITConfig` to `Create*JITConfig` ([#​4337](google/go-github#4337)) BREAKING CHANGE: the JIT config methods are renamed from `Generate*JITConfig` to `Create*JITConfig`, and they now take `CreateJITConfigRequest` (renamed from `GenerateJITConfigRequest`) by value instead of by pointer. - refactor!: Pass release-notes and asset params by value and rename `EditReleaseAsset` to `UpdateReleaseAsset` ([#​4336](google/go-github#4336)) BREAKING CHANGE: `GenerateReleaseNotes` now takes `GenerateNotesRequest` by value (renamed from `GenerateNotesOptions`); `EditReleaseAsset` is renamed to `UpdateReleaseAsset` and takes `UpdateReleaseAssetRequest` by value. - refactor!: Pass release params by value and rename `EditRelease` to `UpdateRelease` ([#​4329](google/go-github#4329)) BREAKING CHANGE: `CreateRelease` & `UpdateRelease` now take `RepositoryRelease` by value; `EditRelease` is renamed to `UpdateRelease`. - refactor!: Pass `GistsService` required params by value ([#​4320](google/go-github#4320)) BREAKING CHANGE: `GistsService` methods now pass required params by-value instead of by-ref. - fix!: Send request body in SCIM update methods ([#​4315](google/go-github#4315)) BREAKING CHANGE: `UpdateProvisionedOrgMembership` and `UpdateAttributeForSCIMUser` params and return values changed. - fix!: Fix `LicenseStatus` response and `Supportkey` type ([#​4297](google/go-github#4297)) BREAKING CHANGE: `LicenseStatus.SupportKey` type changed from `*string` to `*bool` and `License` return type is no longer a slice. - fix!: Enterprise App installation repos options structs ([#​4298](google/go-github#4298)) BREAKING CHANGE: `SelectedRepositoryIDs []int64` is now `Repositories []string` in `*AppInstallationRepositoriesOptions`. ...and the following additional changes: - chore: Bump version of go-github to v89.0.0 ([#​4369](google/go-github#4369)) - feat: Add user team membership fields ([#​4347](google/go-github#4347)) - chore: Add deprecated flag for unused metadata ([#​4367](google/go-github#4367)) - docs: Add AGENTS.md and review-feedback tip ([#​4368](google/go-github#4368)) - chore: Mark removed billing endpoints as deprecated ([#​4362](google/go-github#4362)) - chore: Validate metadata ([#​4358](google/go-github#4358)) - chore: Bump golang.org/x/tools to v0.47.0 ([#​4357](google/go-github#4357)) - build(deps): Bump actions/setup-go from 6.4.0 to 6.5.0 in the actions group ([#​4349](google/go-github#4349)) - build(deps): Bump the go\_modules group in /example ([#​4345](google/go-github#4345)) - feat: Add `AccessSource` to `Team` ([#​4344](google/go-github#4344)) - docs: Update `CONTRIBUTING.md` ([#​4341](google/go-github#4341)) - build(deps): Bump golangci/golangci-lint-action from 9.2.1 to 9.3.0 ([#​4342](google/go-github#4342)) - docs: Extend CONTRIBUTING.md with code guidelines ([#​4339](google/go-github#4339)) - fix: AuditEntry fields `org` and `org_id` can be an array ([#​4333](google/go-github#4333)) - build(deps): Bump actions/checkout from 6.0.3 to 7.0.0 in the actions group ([#​4332](google/go-github#4332)) - feat: Add code quality findings support ([#​4330](google/go-github#4330)) - chore: Update `openapi_operations.yaml` ([#​4331](google/go-github#4331)) - chore: Replace `time.Date` with `referenceTime` ([#​4325](google/go-github#4325)) - test: Refactor tests for `ProjectV2Item.UnmarshalJSON` ([#​4323](google/go-github#4323)) - chore: Remove obsolete test/fields utility ([#​4322](google/go-github#4322)) - feat: Add Issue Dependencies API support ([#​4130](google/go-github#4130)) - fix: Set `GetBody` on uploads for HTTP/2 retry ([#​4318](google/go-github#4318)) - chore: Remove deleted account from REVIEWERS ([#​4317](google/go-github#4317)) - build(deps): Bump golang.org/x/crypto from 0.52.0 to 0.53.0 in /example ([#​4305](google/go-github#4305)) - build(deps): Bump codecov/codecov-action from 6.0.1 to 7.0.0 ([#​4303](google/go-github#4303)) - build(deps): Bump golang.org/x/net from 0.55.0 to 0.56.0 in /scrape ([#​4302](google/go-github#4302)) - build(deps): Bump golang.org/x/term from 0.43.0 to 0.44.0 in /example ([#​4304](google/go-github#4304)) - build(deps): Bump golang.org/x/tools from 0.45.0 to 0.46.0 in /tools ([#​4314](google/go-github#4314)) - build(deps): Bump github.com/bradleyfalzon/ghinstallation/v2 from 2.18.0 to 2.19.0 in /example ([#​4306](google/go-github#4306)) - refactor: Fix parameters in method endpoints ([#​4300](google/go-github#4300)) - feat: Add enterprise billing usage endpoints and response types ([#​4288](google/go-github#4288)) - build(deps): Bump golang.org/x/sync from 0.20.0 to 0.21.0 in /tools ([#​4294](google/go-github#4294)) - build(deps): Bump github.com/getkin/kin-openapi from 0.139.0 to 0.140.0 in /tools ([#​4295](google/go-github#4295)) - build(deps): Bump actions/checkout from 6.0.2 to 6.0.3 in the actions group ([#​4293](google/go-github#4293)) - fix: Reject URL path segments containing percent-encoded dots ([#​4291](google/go-github#4291)) - fix: Comparison of durations in `AbuseRateLimitError.Is` ([#​4292](google/go-github#4292)) - test: Replace `&x` variables with inline `Ptr(value)` calls ([#​4289](google/go-github#4289)) - feat: Inject OpenAPI deprecations safely ([#​4286](google/go-github#4286)) - chore: Remove 'munlicode' from REVIEWERS ([#​4287](google/go-github#4287)) - feat: Add `GetOrgAICreditUsage` and `GetUserAICreditUsage` endpoints ([#​4282](google/go-github#4282)) - test: Fix test names and error messages ([#​4284](google/go-github#4284)) - test: Use `testJSONBody` helper for request body assertions ([#​4283](google/go-github#4283)) - feat: Add pull request fields to `Repository` ([#​4268](google/go-github#4268)) - build(deps): Bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 ([#​4272](google/go-github#4272)) - build(deps): Bump go.opentelemetry.io/otel to v1.44.0 ([#​4280](google/go-github#4280)) - build(deps): Bump golang.org/x/net from 0.54.0 to 0.55.0 in /scrape ([#​4271](google/go-github#4271)) - build(deps): Bump golang.org/x/crypto from 0.51.0 to 0.52.0 in /example ([#​4273](google/go-github#4273)) - fix: Handle missing reviewer type in `RequiredReviewer` unmarshal ([#​4270](google/go-github#4270)) - test: Remove redundant Marshal tests ([#​4266](google/go-github#4266)) - chore: Update `openapi_operations.yaml` ([#​4265](google/go-github#4265)) - feat: Add support for GitHub Code Quality API ([#​4260](google/go-github#4260)) - build(deps): Bump github.com/getkin/kin-openapi from 0.138.0 to 0.139.0 in /tools ([#​4261](google/go-github#4261)) - chore: Fix zizmor security issues in GHA workflows ([#​4259](google/go-github#4259)) - feat: Add support for getting Copilot cloud agent configuration ([#​4241](google/go-github#4241)) - feat: Add client API version support ([#​4246](google/go-github#4246)) - test: Add secret scanning marshal tests ([#​4252](google/go-github#4252)) - lint: Improve `extraneousnew` linter to catch unnecessary use of value var ([#​4249](google/go-github#4249)) - build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1 ([#​4248](google/go-github#4248)) - chore: Bump go-github from v87 to v88 in /scrape ([#​4247](google/go-github#4247)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL21ham9yIl19--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/forgesync/pulls/16


Summary
Adds client support for GitHub's Code Review REST API.
This implements the documented GitHub Code Quality: Repository Enablement API endpoints:
GET /repos/{owner}/{repo}/code-quality/setupPATCH /repos/{owner}/{repo}/code-quality/setupCloses#4258.
Validation
Ran the repository validation flow from
CONTRIBUTING.md:script/fmt.shscript/test.shscript/lint.shscript/generate.sh