Skip to content

Update API Clients#18

Open
guysmoilov wants to merge 1 commit into
mainfrom
update-clients-31
Open

Update API Clients#18
guysmoilov wants to merge 1 commit into
mainfrom
update-clients-31

Conversation

@guysmoilov

Copy link
Copy Markdown
Member

Automated clients update due to an update in the OpenAPI description

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR removes the entire C# SDK codebase except for documentation and a few model classes. The OpenAPI specification version is bumped to 1.0.3, with corresponding schema updates to models like Issue, User, Files1, and Integration. Two new models (ExperimentsResponse) are added, and ExperimentMetricsResponse is corrected. All API implementations, client infrastructure, tests, and build configuration are deleted.

Changes

OpenAPI 1.0.3 Model and Schema Updates

Layer / File(s) Summary
New and corrected experiment/response models
C#/src/dagshub_api/Model/ExperimentsResponse.cs, C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs, C#/src/dagshub_api.Test/Model/ExperimentMetricsResponseTests.cs
ExperimentsResponse model class added with Experiments dictionary, IsEditor, and NextPageToken properties. ExperimentMetricsResponse corrected (renamed from WebhookEvents template) with updated equality and ToJson() override.
File collection and integration type updates
C#/src/dagshub_api/Model/Files.cs, C#/src/dagshub_api/Model/Files1.cs, C#/src/dagshub_api/Model/Integration.cs, C#/docs/Files1.md, C#/src/dagshub_api.Test/Model/Files1Tests.cs
Files and Files1 element type changed from System.IO.Stream to ComponentsschemasFileYaml. Files1.Limit parameter removed; pagination uses only NextToken. Integration changed from List<IntegrationInner> to List<object>.
Issue and User schema documentation updates
C#/docs/Issue.md, C#/docs/User.md, C#/src/dagshub_api.Test/Model/IssueTests.cs, C#/src/dagshub_api.Test/Model/UserTests.cs
Issue model: Id/Number widened to long?, User/Assignee reference updated to ComponentsschemasUserYaml, CreatedAt/UpdatedAt changed to DateTime?, Closed property removed. User model: Id changed to long?, Username documented as legacy alias, new properties added (PublicEmail, Website, Company, Description).
Model documentation schema reference updates
C#/docs/PatchIssue.md, C#/docs/PostIssue.md
Property type references changed from inline primitives to component schema links (Componentsschemas*Yaml).
OpenAPI spec version metadata updates
C#/src/dagshub_api.Test/Model/*Tests.cs, C#/src/dagshub_api/Model/ExperimentKeys.cs, C#/docs/*
Routine version bumps from 1.0.2 to 1.0.3 across generated source files and documentation.

API Surface and Client Infrastructure Removal

Layer / File(s) Summary
API endpoint implementation classes removal
C#/src/dagshub_api/Api/BranchesApi.cs, C#/src/dagshub_api/Api/CollaboratorsApi.cs, C#/src/dagshub_api/Api/CommitsApi.cs, C#/src/dagshub_api/Api/ContentApi.cs, C#/src/dagshub_api/Api/ExperimentsApi.cs, C#/src/dagshub_api/Api/IssuesApi.cs, C#/src/dagshub_api/Api/ReleasesApi.cs, C#/src/dagshub_api/Api/RepositoryApi.cs, C#/src/dagshub_api/Api/StorageIntegrationsApi.cs, C#/src/dagshub_api/Api/UserApi.cs, C#/src/dagshub_api/Api/WebhooksApi.cs
All API implementations removed: IBranchesApi, BranchesApi, ICollaboratorsApi, CollaboratorsApi, etc., including all endpoint methods (sync/async variants) and request construction logic.
Client infrastructure and configuration removal
C#/src/dagshub_api/Client/ApiClient.cs, C#/src/dagshub_api/Client/ApiException.cs, C#/src/dagshub_api/Client/ApiResponse.cs, C#/src/dagshub_api/Client/Configuration.cs, C#/src/dagshub_api/Client/ExceptionFactory.cs, C#/src/dagshub_api/Client/GlobalConfiguration.cs, C#/src/dagshub_api/Client/IApiAccessor.cs, C#/src/dagshub_api/Client/IReadableConfiguration.cs, C#/src/dagshub_api/Client/SwaggerDateConverter.cs
Removal of REST client orchestration, configuration management, exception handling, and supporting utilities.

Test Suite and Build Infrastructure Removal

Layer / File(s) Summary
API test fixtures removal
C#/src/dagshub_api.Test/Api/*ApiTests.cs
All API test classes removed (placeholder test methods for API endpoint operations).
Model test fixtures removal and updates
C#/src/dagshub_api.Test/Model/*Tests.cs
Most model test fixtures deleted; remaining fixtures updated to reflect schema changes (ExperimentMetricsResponseTests renamed, ExperimentsResponseTests added, Files1Tests updated to remove LimitTest).
Build scripts and project configuration removal
C#/.gitignore, C#/.swagger-codegen-ignore, C#/.swagger-codegen/VERSION, C#/.travis.yml, C#/README.md, C#/build.bat, C#/build.sh, C#/dagshub_api.sln, C#/git_push.sh, C#/mono_nunit_test.sh, C#/src/dagshub_api.Test/dagshub_api.Test.csproj, C#/src/dagshub_api.Test/packages.config
Removal of build automation, CI configuration, solution/project files, and dependency specifications.

🎯 4 (Complex) | ⏱️ ~60 minutes

Hops through code with thoughtful care,
Old implementations fade like spring air,
New schemas bloom where types now gleam,
A fresh SDK regeneration dream! 🐰✨

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Update API Clients' is directly related to the primary change: a major update of C# API client files and models due to an OpenAPI specification update.
Description check ✅ Passed The description clearly relates to the changeset by explaining that this is an automated client update triggered by an OpenAPI description update.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update-clients-31

Comment @coderabbitai help to get the list of available commands and usage tips.

@guysmoilov guysmoilov self-assigned this Jun 11, 2026
@guysmoilov guysmoilov added the documentation Improvements or additions to documentation label Jun 11, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
C#/docs/Issue.md (1)

11-12: ⚖️ Poor tradeoff

Type safety degraded: strongly-typed models replaced with Object.

The Labels, Milestone, and PullRequest properties changed from specific types (List<IssueLabels>, IssueMilestone, specific model) to generic Object or List<Object>. This eliminates compile-time type checking and forces consumers to perform runtime type inspection or casting, increasing the risk of runtime errors.

If the OpenAPI spec genuinely requires this flexibility (e.g., polymorphic types), consider using a discriminated union or base class hierarchy instead of raw Object to preserve some type safety.

Also applies to: 18-18


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3b4d0b16-84c3-4879-99fa-43ee3e56cadd

📥 Commits

Reviewing files that changed from the base of the PR and between af80e13 and 33fcc8e.

⛔ Files ignored due to path filters (1)
  • Java/gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
📒 Files selected for processing (299)
  • C#/.gitignore
  • C#/.swagger-codegen-ignore
  • C#/.swagger-codegen/VERSION
  • C#/.travis.yml
  • C#/README.md
  • C#/build.bat
  • C#/build.sh
  • C#/dagshub_api.sln
  • C#/docs/BranchesApi.md
  • C#/docs/CollaboratorsApi.md
  • C#/docs/CollaboratorsCollaboratorBody.md
  • C#/docs/CommitsApi.md
  • C#/docs/ContentApi.md
  • C#/docs/CreateRepo.md
  • C#/docs/EditExperimentPost.md
  • C#/docs/ExperimentMetricsResponse.md
  • C#/docs/ExperimentsApi.md
  • C#/docs/ExperimentsResponse.md
  • C#/docs/File.md
  • C#/docs/Files1.md
  • C#/docs/HooksIdBody.md
  • C#/docs/IntegrationInner.md
  • C#/docs/Issue.md
  • C#/docs/IssueAssignee.md
  • C#/docs/IssueLabels.md
  • C#/docs/IssueMilestone.md
  • C#/docs/IssuesApi.md
  • C#/docs/Labels.md
  • C#/docs/MigrateRepo.md
  • C#/docs/PatchIssue.md
  • C#/docs/PostIssue.md
  • C#/docs/ReleasesApi.md
  • C#/docs/RepoHooksBody.md
  • C#/docs/RepositoryApi.md
  • C#/docs/StorageIntegrationsApi.md
  • C#/docs/User.md
  • C#/docs/UserApi.md
  • C#/docs/WebhookConfig.md
  • C#/docs/WebhookEvents.md
  • C#/docs/WebhooksApi.md
  • C#/git_push.sh
  • C#/mono_nunit_test.sh
  • C#/src/dagshub_api.Test/Api/BranchesApiTests.cs
  • C#/src/dagshub_api.Test/Api/CollaboratorsApiTests.cs
  • C#/src/dagshub_api.Test/Api/CommitsApiTests.cs
  • C#/src/dagshub_api.Test/Api/ContentApiTests.cs
  • C#/src/dagshub_api.Test/Api/ExperimentsApiTests.cs
  • C#/src/dagshub_api.Test/Api/IssuesApiTests.cs
  • C#/src/dagshub_api.Test/Api/ReleasesApiTests.cs
  • C#/src/dagshub_api.Test/Api/RepositoryApiTests.cs
  • C#/src/dagshub_api.Test/Api/StorageIntegrationsApiTests.cs
  • C#/src/dagshub_api.Test/Api/UserApiTests.cs
  • C#/src/dagshub_api.Test/Api/WebhooksApiTests.cs
  • C#/src/dagshub_api.Test/Model/CollaboratorsCollaboratorBodyTests.cs
  • C#/src/dagshub_api.Test/Model/CreateRepoTests.cs
  • C#/src/dagshub_api.Test/Model/EditExperimentPostTests.cs
  • C#/src/dagshub_api.Test/Model/ExperimentKeysTests.cs
  • C#/src/dagshub_api.Test/Model/ExperimentMetricsResponseTests.cs
  • C#/src/dagshub_api.Test/Model/ExperimentsResponseTests.cs
  • C#/src/dagshub_api.Test/Model/FileTests.cs
  • C#/src/dagshub_api.Test/Model/Files1Tests.cs
  • C#/src/dagshub_api.Test/Model/FilesTests.cs
  • C#/src/dagshub_api.Test/Model/HooksIdBodyTests.cs
  • C#/src/dagshub_api.Test/Model/IntegrationTests.cs
  • C#/src/dagshub_api.Test/Model/IssueAssigneeTests.cs
  • C#/src/dagshub_api.Test/Model/IssueLabelsTests.cs
  • C#/src/dagshub_api.Test/Model/IssueMilestoneTests.cs
  • C#/src/dagshub_api.Test/Model/IssueTests.cs
  • C#/src/dagshub_api.Test/Model/IssuesTests.cs
  • C#/src/dagshub_api.Test/Model/LabelsTests.cs
  • C#/src/dagshub_api.Test/Model/MigrateRepoTests.cs
  • C#/src/dagshub_api.Test/Model/PatchIssueTests.cs
  • C#/src/dagshub_api.Test/Model/PostIssueTests.cs
  • C#/src/dagshub_api.Test/Model/PutFileTests.cs
  • C#/src/dagshub_api.Test/Model/RepoHooksBodyTests.cs
  • C#/src/dagshub_api.Test/Model/StateTests.cs
  • C#/src/dagshub_api.Test/Model/UserTests.cs
  • C#/src/dagshub_api.Test/Model/WebhookConfigTests.cs
  • C#/src/dagshub_api.Test/dagshub_api.Test.csproj
  • C#/src/dagshub_api.Test/packages.config
  • C#/src/dagshub_api/Api/BranchesApi.cs
  • C#/src/dagshub_api/Api/CollaboratorsApi.cs
  • C#/src/dagshub_api/Api/CommitsApi.cs
  • C#/src/dagshub_api/Api/ContentApi.cs
  • C#/src/dagshub_api/Api/ExperimentsApi.cs
  • C#/src/dagshub_api/Api/IssuesApi.cs
  • C#/src/dagshub_api/Api/ReleasesApi.cs
  • C#/src/dagshub_api/Api/RepositoryApi.cs
  • C#/src/dagshub_api/Api/StorageIntegrationsApi.cs
  • C#/src/dagshub_api/Api/UserApi.cs
  • C#/src/dagshub_api/Api/WebhooksApi.cs
  • C#/src/dagshub_api/Client/ApiClient.cs
  • C#/src/dagshub_api/Client/ApiException.cs
  • C#/src/dagshub_api/Client/ApiResponse.cs
  • C#/src/dagshub_api/Client/Configuration.cs
  • C#/src/dagshub_api/Client/ExceptionFactory.cs
  • C#/src/dagshub_api/Client/GlobalConfiguration.cs
  • C#/src/dagshub_api/Client/IApiAccessor.cs
  • C#/src/dagshub_api/Client/IReadableConfiguration.cs
  • C#/src/dagshub_api/Client/SwaggerDateConverter.cs
  • C#/src/dagshub_api/Model/CollaboratorsCollaboratorBody.cs
  • C#/src/dagshub_api/Model/CreateRepo.cs
  • C#/src/dagshub_api/Model/EditExperimentPost.cs
  • C#/src/dagshub_api/Model/ExperimentKeys.cs
  • C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs
  • C#/src/dagshub_api/Model/ExperimentsResponse.cs
  • C#/src/dagshub_api/Model/File.cs
  • C#/src/dagshub_api/Model/Files.cs
  • C#/src/dagshub_api/Model/Files1.cs
  • C#/src/dagshub_api/Model/HooksIdBody.cs
  • C#/src/dagshub_api/Model/Integration.cs
  • C#/src/dagshub_api/Model/IntegrationInner.cs
  • C#/src/dagshub_api/Model/Issue.cs
  • C#/src/dagshub_api/Model/IssueAssignee.cs
  • C#/src/dagshub_api/Model/IssueLabels.cs
  • C#/src/dagshub_api/Model/IssueMilestone.cs
  • C#/src/dagshub_api/Model/Issues.cs
  • C#/src/dagshub_api/Model/Labels.cs
  • C#/src/dagshub_api/Model/MigrateRepo.cs
  • C#/src/dagshub_api/Model/PatchIssue.cs
  • C#/src/dagshub_api/Model/PostIssue.cs
  • C#/src/dagshub_api/Model/PutFile.cs
  • C#/src/dagshub_api/Model/RepoHooksBody.cs
  • C#/src/dagshub_api/Model/State.cs
  • C#/src/dagshub_api/Model/User.cs
  • C#/src/dagshub_api/Model/WebhookConfig.cs
  • C#/src/dagshub_api/Properties/AssemblyInfo.cs
  • C#/src/dagshub_api/dagshub_api.csproj
  • C#/src/dagshub_api/dagshub_api.nuspec
  • C#/src/dagshub_api/packages.config
  • Go/.gitignore
  • Go/.swagger-codegen-ignore
  • Go/.swagger-codegen/VERSION
  • Go/.travis.yml
  • Go/README.md
  • Go/api/swagger.yaml
  • Go/api_branches.go
  • Go/api_collaborators.go
  • Go/api_commits.go
  • Go/api_content.go
  • Go/api_experiments.go
  • Go/api_issues.go
  • Go/api_releases.go
  • Go/api_repository.go
  • Go/api_storage_integrations.go
  • Go/api_user.go
  • Go/api_webhooks.go
  • Go/client.go
  • Go/configuration.go
  • Go/docs/BranchesApi.md
  • Go/docs/CollaboratorsApi.md
  • Go/docs/CollaboratorsCollaboratorBody.md
  • Go/docs/CommitsApi.md
  • Go/docs/ContentApi.md
  • Go/docs/CreateRepo.md
  • Go/docs/EditExperimentPost.md
  • Go/docs/ExperimentsApi.md
  • Go/docs/ExperimentsResponse.md
  • Go/docs/File.md
  • Go/docs/Files1.md
  • Go/docs/HooksIdBody.md
  • Go/docs/IntegrationInner.md
  • Go/docs/Issue.md
  • Go/docs/IssueAssignee.md
  • Go/docs/IssueLabels.md
  • Go/docs/IssueMilestone.md
  • Go/docs/IssuesApi.md
  • Go/docs/MigrateRepo.md
  • Go/docs/PatchIssue.md
  • Go/docs/PostIssue.md
  • Go/docs/ReleasesApi.md
  • Go/docs/RepoHooksBody.md
  • Go/docs/RepositoryApi.md
  • Go/docs/StorageIntegrationsApi.md
  • Go/docs/User.md
  • Go/docs/UserApi.md
  • Go/docs/WebhookConfig.md
  • Go/docs/WebhooksApi.md
  • Go/git_push.sh
  • Go/model_collaborators_collaborator_body.go
  • Go/model_create_repo.go
  • Go/model_edit_experiment_post.go
  • Go/model_experiment_keys.go
  • Go/model_experiments_response.go
  • Go/model_file.go
  • Go/model_files_1.go
  • Go/model_hooks_id_body.go
  • Go/model_integration_inner.go
  • Go/model_issue.go
  • Go/model_issue_assignee.go
  • Go/model_issue_labels.go
  • Go/model_issue_milestone.go
  • Go/model_migrate_repo.go
  • Go/model_patch_issue.go
  • Go/model_post_issue.go
  • Go/model_put_file.go
  • Go/model_repo_hooks_body.go
  • Go/model_state.go
  • Go/model_user.go
  • Go/model_webhook_config.go
  • Go/response.go
  • Java/.gitignore
  • Java/.swagger-codegen-ignore
  • Java/.swagger-codegen/VERSION
  • Java/.travis.yml
  • Java/README.md
  • Java/build.gradle
  • Java/build.sbt
  • Java/docs/BranchesApi.md
  • Java/docs/CollaboratorsApi.md
  • Java/docs/CollaboratorsCollaboratorBody.md
  • Java/docs/CommitsApi.md
  • Java/docs/ContentApi.md
  • Java/docs/CreateRepo.md
  • Java/docs/EditExperimentPost.md
  • Java/docs/ExperimentMetricsResponse.md
  • Java/docs/ExperimentsApi.md
  • Java/docs/ExperimentsResponse.md
  • Java/docs/File.md
  • Java/docs/Files1.md
  • Java/docs/HooksIdBody.md
  • Java/docs/IntegrationInner.md
  • Java/docs/Issue.md
  • Java/docs/IssueAssignee.md
  • Java/docs/IssueLabels.md
  • Java/docs/IssueMilestone.md
  • Java/docs/IssuesApi.md
  • Java/docs/MigrateRepo.md
  • Java/docs/PatchIssue.md
  • Java/docs/PostIssue.md
  • Java/docs/ReleasesApi.md
  • Java/docs/RepoHooksBody.md
  • Java/docs/RepositoryApi.md
  • Java/docs/State.md
  • Java/docs/StorageIntegrationsApi.md
  • Java/docs/User.md
  • Java/docs/UserApi.md
  • Java/docs/WebhookConfig.md
  • Java/docs/WebhooksApi.md
  • Java/git_push.sh
  • Java/gradle.properties
  • Java/gradle/wrapper/gradle-wrapper.properties
  • Java/gradlew
  • Java/gradlew.bat
  • Java/pom.xml
  • Java/settings.gradle
  • Java/src/main/AndroidManifest.xml
  • Java/src/main/java/io/swagger/client/ApiCallback.java
  • Java/src/main/java/io/swagger/client/ApiClient.java
  • Java/src/main/java/io/swagger/client/ApiException.java
  • Java/src/main/java/io/swagger/client/ApiResponse.java
  • Java/src/main/java/io/swagger/client/Configuration.java
  • Java/src/main/java/io/swagger/client/GzipRequestInterceptor.java
  • Java/src/main/java/io/swagger/client/JSON.java
  • Java/src/main/java/io/swagger/client/Pair.java
  • Java/src/main/java/io/swagger/client/ProgressRequestBody.java
  • Java/src/main/java/io/swagger/client/ProgressResponseBody.java
  • Java/src/main/java/io/swagger/client/StringUtil.java
  • Java/src/main/java/io/swagger/client/api/BranchesApi.java
  • Java/src/main/java/io/swagger/client/api/CollaboratorsApi.java
  • Java/src/main/java/io/swagger/client/api/CommitsApi.java
  • Java/src/main/java/io/swagger/client/api/ContentApi.java
  • Java/src/main/java/io/swagger/client/api/ExperimentsApi.java
  • Java/src/main/java/io/swagger/client/api/IssuesApi.java
  • Java/src/main/java/io/swagger/client/api/ReleasesApi.java
  • Java/src/main/java/io/swagger/client/api/RepositoryApi.java
  • Java/src/main/java/io/swagger/client/api/StorageIntegrationsApi.java
  • Java/src/main/java/io/swagger/client/api/UserApi.java
  • Java/src/main/java/io/swagger/client/api/WebhooksApi.java
  • Java/src/main/java/io/swagger/client/auth/ApiKeyAuth.java
  • Java/src/main/java/io/swagger/client/auth/Authentication.java
  • Java/src/main/java/io/swagger/client/auth/HttpBasicAuth.java
  • Java/src/main/java/io/swagger/client/auth/OAuth.java
  • Java/src/main/java/io/swagger/client/auth/OAuthFlow.java
  • Java/src/main/java/io/swagger/client/model/CollaboratorsCollaboratorBody.java
  • Java/src/main/java/io/swagger/client/model/CreateRepo.java
  • Java/src/main/java/io/swagger/client/model/EditExperimentPost.java
  • Java/src/main/java/io/swagger/client/model/ExperimentKeys.java
  • Java/src/main/java/io/swagger/client/model/ExperimentMetricsResponse.java
  • Java/src/main/java/io/swagger/client/model/ExperimentsResponse.java
  • Java/src/main/java/io/swagger/client/model/File.java
  • Java/src/main/java/io/swagger/client/model/Files.java
  • Java/src/main/java/io/swagger/client/model/Files1.java
  • Java/src/main/java/io/swagger/client/model/HooksIdBody.java
  • Java/src/main/java/io/swagger/client/model/Integration.java
  • Java/src/main/java/io/swagger/client/model/IntegrationInner.java
  • Java/src/main/java/io/swagger/client/model/Issue.java
  • Java/src/main/java/io/swagger/client/model/IssueAssignee.java
  • Java/src/main/java/io/swagger/client/model/IssueLabels.java
  • Java/src/main/java/io/swagger/client/model/IssueMilestone.java
  • Java/src/main/java/io/swagger/client/model/Issues.java
  • Java/src/main/java/io/swagger/client/model/Labels.java
  • Java/src/main/java/io/swagger/client/model/MigrateRepo.java
  • Java/src/main/java/io/swagger/client/model/PatchIssue.java
  • Java/src/main/java/io/swagger/client/model/PostIssue.java
  • Java/src/main/java/io/swagger/client/model/PutFile.java
  • Java/src/main/java/io/swagger/client/model/RepoHooksBody.java
  • Java/src/main/java/io/swagger/client/model/State.java
  • Java/src/main/java/io/swagger/client/model/User.java
💤 Files with no reviewable changes (87)
  • C#/.swagger-codegen-ignore
  • C#/src/dagshub_api.Test/Model/HooksIdBodyTests.cs
  • C#/docs/CollaboratorsApi.md
  • C#/src/dagshub_api.Test/Api/CommitsApiTests.cs
  • C#/dagshub_api.sln
  • C#/git_push.sh
  • C#/src/dagshub_api/Client/IApiAccessor.cs
  • C#/docs/IntegrationInner.md
  • C#/docs/WebhookConfig.md
  • C#/src/dagshub_api.Test/Model/EditExperimentPostTests.cs
  • C#/docs/IssuesApi.md
  • C#/docs/CommitsApi.md
  • C#/src/dagshub_api.Test/Api/UserApiTests.cs
  • C#/src/dagshub_api.Test/Api/ExperimentsApiTests.cs
  • C#/docs/IssueMilestone.md
  • C#/docs/Labels.md
  • C#/src/dagshub_api.Test/Api/BranchesApiTests.cs
  • C#/src/dagshub_api/Client/IReadableConfiguration.cs
  • C#/src/dagshub_api.Test/Model/FileTests.cs
  • C#/docs/EditExperimentPost.md
  • C#/docs/ContentApi.md
  • C#/.travis.yml
  • C#/docs/BranchesApi.md
  • C#/src/dagshub_api/Client/SwaggerDateConverter.cs
  • C#/src/dagshub_api.Test/Api/ReleasesApiTests.cs
  • C#/src/dagshub_api/Model/IntegrationInner.cs
  • C#/src/dagshub_api.Test/Model/IssueLabelsTests.cs
  • C#/src/dagshub_api/Client/ApiResponse.cs
  • C#/docs/WebhookEvents.md
  • C#/src/dagshub_api.Test/Api/ContentApiTests.cs
  • C#/docs/IssueAssignee.md
  • C#/.gitignore
  • C#/docs/IssueLabels.md
  • C#/src/dagshub_api.Test/Api/WebhooksApiTests.cs
  • C#/src/dagshub_api.Test/Model/WebhookConfigTests.cs
  • C#/src/dagshub_api.Test/Api/RepositoryApiTests.cs
  • C#/docs/HooksIdBody.md
  • C#/docs/UserApi.md
  • C#/docs/MigrateRepo.md
  • C#/README.md
  • C#/docs/ExperimentsApi.md
  • C#/docs/File.md
  • C#/src/dagshub_api.Test/Api/StorageIntegrationsApiTests.cs
  • C#/src/dagshub_api.Test/Model/LabelsTests.cs
  • C#/src/dagshub_api.Test/Model/IssueMilestoneTests.cs
  • C#/src/dagshub_api.Test/Model/MigrateRepoTests.cs
  • C#/docs/WebhooksApi.md
  • C#/src/dagshub_api/Client/ExceptionFactory.cs
  • C#/src/dagshub_api.Test/Model/RepoHooksBodyTests.cs
  • C#/mono_nunit_test.sh
  • C#/src/dagshub_api.Test/Api/IssuesApiTests.cs
  • C#/src/dagshub_api.Test/Model/IssueAssigneeTests.cs
  • C#/docs/StorageIntegrationsApi.md
  • C#/docs/RepositoryApi.md
  • C#/docs/CreateRepo.md
  • C#/docs/CollaboratorsCollaboratorBody.md
  • C#/build.bat
  • C#/.swagger-codegen/VERSION
  • C#/src/dagshub_api/Client/GlobalConfiguration.cs
  • C#/src/dagshub_api/Client/ApiException.cs
  • C#/src/dagshub_api.Test/dagshub_api.Test.csproj
  • C#/docs/RepoHooksBody.md
  • C#/src/dagshub_api.Test/Model/StateTests.cs
  • C#/build.sh
  • C#/src/dagshub_api/Api/StorageIntegrationsApi.cs
  • C#/src/dagshub_api/Api/CollaboratorsApi.cs
  • C#/src/dagshub_api/Model/CollaboratorsCollaboratorBody.cs
  • C#/src/dagshub_api/Api/ContentApi.cs
  • C#/src/dagshub_api/Model/HooksIdBody.cs
  • C#/src/dagshub_api.Test/Model/CreateRepoTests.cs
  • C#/src/dagshub_api/Api/BranchesApi.cs
  • C#/src/dagshub_api.Test/Api/CollaboratorsApiTests.cs
  • C#/src/dagshub_api/Model/CreateRepo.cs
  • C#/docs/ReleasesApi.md
  • C#/src/dagshub_api/Model/EditExperimentPost.cs
  • C#/src/dagshub_api/Client/Configuration.cs
  • C#/src/dagshub_api/Api/WebhooksApi.cs
  • C#/src/dagshub_api.Test/Model/CollaboratorsCollaboratorBodyTests.cs
  • C#/src/dagshub_api/Api/ExperimentsApi.cs
  • C#/src/dagshub_api/Api/CommitsApi.cs
  • C#/src/dagshub_api.Test/packages.config
  • C#/src/dagshub_api/Api/RepositoryApi.cs
  • C#/src/dagshub_api/Api/UserApi.cs
  • C#/src/dagshub_api/Api/ReleasesApi.cs
  • C#/src/dagshub_api/Model/File.cs
  • C#/src/dagshub_api/Client/ApiClient.cs
  • C#/src/dagshub_api/Api/IssuesApi.cs
📜 Review details
🔇 Additional comments (17)
C#/src/dagshub_api/Model/ExperimentKeys.cs (1)

6-6: LGTM!

C#/src/dagshub_api/Model/Files.cs (1)

6-6: LGTM!

Also applies to: 30-30

C#/src/dagshub_api/Model/Files1.cs (1)

36-37: LGTM!

Also applies to: 47-47, 50-53

C#/docs/ExperimentMetricsResponse.md (1)

1-1: LGTM!

C#/docs/ExperimentsResponse.md (1)

1-10: LGTM!

C#/src/dagshub_api/Model/Integration.cs (1)

30-30: Integration : List<Object> matches the generated SDK contract (OpenAPI 1.0.3)

integration is generated as an untyped collection across clients: C# uses Integration : List<Object>, Java uses Integration extends ArrayList<Object>, and JavaScript uses Integration extends Array, consistent with swagger-codegen treating the items as generic object (so runtime casting is expected).

C#/src/dagshub_api.Test/Model/IssueTests.cs (2)

1-9: LGTM!


23-175: LGTM!

C#/src/dagshub_api.Test/Model/UserTests.cs (2)

1-9: LGTM!


84-139: LGTM!

C#/src/dagshub_api.Test/Model/ExperimentKeysTests.cs (1)

1-80: LGTM!

C#/src/dagshub_api.Test/Model/FilesTests.cs (1)

1-72: LGTM!

C#/src/dagshub_api.Test/Model/IntegrationTests.cs (1)

1-72: LGTM!

C#/src/dagshub_api.Test/Model/IssuesTests.cs (1)

1-72: LGTM!

C#/src/dagshub_api.Test/Model/PatchIssueTests.cs (1)

1-112: LGTM!

C#/src/dagshub_api.Test/Model/PostIssueTests.cs (1)

1-120: LGTM!

C#/src/dagshub_api.Test/Model/PutFileTests.cs (1)

6-6: LGTM!

Comment thread C#/docs/Files1.md
**Entries** | **List&lt;System.IO.Stream&gt;** | | [optional]
**Limit** | **int?** | | [optional]
**NextToken** | **string** | | [optional]
**Entries** | [**List&lt;ComponentsschemasFileYaml&gt;**](ComponentsschemasFileYaml.md) | | [optional]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify ComponentsschemasFileYaml.md exists

fd -t f "ComponentsschemasFileYaml.md" "C#/docs/"

Repository: DagsHub/api-clients

Length of output: 45


Fix broken schema reference for Entries

  • C#/docs/Files1.md (line 6) links Entries to ComponentsschemasFileYaml.md, but C#/docs/ComponentsschemasFileYaml.md is missing in this repo snapshot, leaving the reference dangling.
  • The “changed from List<System.IO.Stream>” breaking-change claim isn’t evidenced in the repo contents provided—only the current Entries: List<ComponentsschemasFileYaml> appears—so align the breaking-change description/migration guidance to the actual prior type/version (spec/changelog) before asserting impact.

/// </summary>
/// <returns>JSON string presentation of the object</returns>
public string ToJson()
public override string ToJson()

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs"

echo "== File header =="
ls -la "$FILE" || true

echo
echo "== Snippet around line 56 =="
nl -ba "$FILE" | sed -n '35,90p'

echo
echo "== Class declaration lines =="
rg -n "class\s+ExperimentMetricsResponse" -n "$FILE" || true

echo
echo "== Any ToJson() occurrences in this file =="
rg -n "ToJson\s*\(" "$FILE" || true

echo
echo "== Search for ToJson() definition in project (broad) =="
rg -n "string\s+ToJson\s*\(" "C#/" || true

echo
echo "== Search for base class that might define virtual ToJson() =="
# Find likely base types by locating any ": " on the class line and show it
rg -n "class\s+ExperimentMetricsResponse\s*[:{]" "$FILE" || true

Repository: DagsHub/api-clients

Length of output: 276


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs"

echo "== Snippet around line 56 =="
cat -n "$FILE" | sed -n '45,75p'

echo
echo "== Class declaration lines =="
rg -n "class\s+ExperimentMetricsResponse" "$FILE" || true
rg -n "ExperimentMetricsResponse\s*[:{]" "$FILE" || true

echo
echo "== Any ToJson() occurrences in this file =="
rg -n "ToJson\s*\(" "$FILE" || true

echo
echo "== Search for ToJson() definition in project =="
rg -n "virtual\s+.*ToJson\s*\(" "C#/" || true
rg -n "abstract\s+.*ToJson\s*\(" "C#/" || true
rg -n "string\s+ToJson\s*\(" "C#/" || true

echo
echo "== Search for usage of override ToJson() =="
rg -n "override\s+string\s+ToJson\s*\(" "C#/" || true

Repository: DagsHub/api-clients

Length of output: 3818


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs"

echo "== File start (imports/namespace/inheritance context) =="
sed -n '1,80p' "$FILE" | nl -ba

echo
echo "== Look for type aliases affecting Dictionary =="
rg -n "using\s+.*Dictionary\s*=" "C#/" || true
rg -n "using\s+Dictionary\b" "C#/" || true

echo
echo "== Search for other partial declarations of ExperimentMetricsResponse =="
rg -n "partial\s+class\s+ExperimentMetricsResponse" "C#/" || true

echo
echo "== Search for project-defined Dictionary types (non-BCL) =="
rg -n "class\s+Dictionary\b" "C#/" || true
rg -n "namespace\s+.*\bDictionary\b" "C#/" || true

echo
echo "== Confirm what Dictionary symbol resolves to in this project (direct definition/alias) =="
# Show any 'Dictionary' identifier occurrences near inheritance line
sed -n '20,45p' "$FILE" | nl -ba

Repository: DagsHub/api-clients

Length of output: 181


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs"

echo "== File start (first 80 lines) =="
cat -n "$FILE" | sed -n '1,80p'

echo
echo "== Inheritance line area (lines 20-50) =="
cat -n "$FILE" | sed -n '20,55p'

echo
echo "== Search for partial declarations of ExperimentMetricsResponse =="
rg -n "partial\s+class\s+ExperimentMetricsResponse" "C#/src" || true

echo
echo "== Search for project-defined types named Dictionary (non-BCL) =="
rg -n "class\s+Dictionary\b" "C#/src" || true
rg -n "struct\s+Dictionary\b" "C#/src" || true
rg -n "interface\s+Dictionary\b" "C#/src" || true

echo
echo "== Search for virtual/abstract ToJson() implementations on any Dictionary type =="
rg -n "Dictionary\b.*(virtual|abstract)\s+string\s+ToJson\s*\(" "C#/src" || true
rg -n "(virtual|abstract)\s+string\s+ToJson\s*\(" "C#/src" || true | head -n 50

Repository: DagsHub/api-clients

Length of output: 6231


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show the ToJson + surrounding class inheritance for a few models that have virtual ToJson
for f in \
  "C#/src/dagshub_api/Model/User.cs" \
  "C#/src/dagshub_api/Model/ExperimentsResponse.cs" \
  "C#/src/dagshub_api/Model/ExperimentMetricsResponse.cs"
do
  echo "==================== $f ===================="
  echo "-- class line(s) --"
  rg -n "public\s+partial\s+class|public\s+class|class\s+\w+\s*:" "$f" | head -n 20 || true

  # Show area around the first ToJson occurrence in the file
  echo "-- ToJson area (first match) --"
  LINE=$(rg -n "ToJson\s*\(" "$f" | head -n 1 | cut -d: -f1 || true)
  if [ -n "${LINE:-}" ]; then
    start=$((LINE-15))
    end=$((LINE+25))
    sed -n "${start},${end}p" "$f" | cat -n
  else
    echo "No ToJson found"
  fi
done

echo
echo "== Search for any custom Dictionary type definition (beyond BCL) =="
rg -n "namespace\s+dagshub_api\.Model[\s\S]*\b(Dictionary)\b" C#/src/dagshub_api/Model || true
rg -n "\b(using\s+Dictionary\s*=\s*)|(\btypedef\b)|(\bDictionary\s*=)" C#/src/dagshub_api || true
rg -n "\b(partial\s+class\s+Dictionary|class\s+Dictionary|struct\s+Dictionary|interface\s+Dictionary)\b" C#/src/dagshub_api || true

Repository: DagsHub/api-clients

Length of output: 6227


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Search for classes inheriting from Dictionary<,> in generated models =="
rg -n ":\s*Dictionary\s*<\s*[^,]+,\s*[^>]+\s*>" "C#/src/dagshub_api/Model" || true

echo
echo "== Search for override string ToJson() in model files =="
rg -n "override\s+string\s+ToJson\s*\(" "C#/src/dagshub_api/Model" || true

echo
echo "== Search for any custom Dictionary type definitions anywhere under C#src =="
rg -n "class\s+Dictionary\s*<" "C#/src" || true
rg -n "class\s+Dictionary\b" "C#/src" || true
rg -n "namespace\s+dagshub_api\.Model[\s\S]{0,200}class\s+Dictionary\b" "C#/src/dagshub_api" || true

echo
echo "== Inspect for any 'Dictionary' using-aliases =="
rg -n "using\s+Dictionary\b" "C#/src" || true
rg -n "using\s+([A-Za-z_][A-Za-z0-9_]*)\s*=\s*.*Dictionary" "C#/src" || true

Repository: DagsHub/api-clients

Length of output: 626


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Search for any non-generic Dictionary type definitions in C# =="
rg -n --glob 'C#/**/*.cs' "(class|struct|interface)\s+Dictionary\b" C# || true
rg -n --glob 'C#/**/*.cs' "partial\s+class\s+Dictionary\b" C# || true
rg -n --glob 'C#/**/*.cs' "using\s+Dictionary\s*=\s*" C# || true

echo
echo "== Search for any ToJson() base/virtual definitions that could make override valid =="
rg -n --glob 'C#/**/*.cs' "(virtual|abstract|override)\s+string\s+ToJson\s*\(" C# || true

echo
echo "== Confirm whether any dictionary-like base class defines ToJson() =="
rg -n --glob 'C#/**/*.cs' "class\s+\w*Dictionary\w*\s*[:{]" C# || true

Repository: DagsHub/api-clients

Length of output: 1032


Fix invalid override on ToJson() (compile blocker).

ExperimentMetricsResponse inherits Dictionary<String, Dictionary>, which has no virtual/abstract ToJson() to override; this file is also the only one using override string ToJson() (other models use public virtual string ToJson()).

Suggested fix
-        public override string ToJson()
+        public string ToJson()
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
public override string ToJson()
public string ToJson()

Comment on lines +110 to +116
return
(
this.Experiments == input.Experiments ||
this.Experiments != null &&
input.Experiments != null &&
this.Experiments.SequenceEqual(input.Experiments)
) &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix dictionary equality/hash contract mismatch.

At Line 115, SequenceEqual on Dictionary<string, ...> is order-sensitive. At Line 139, GetHashCode() is reference-based for the dictionary. This can make logically equal payloads compare unequal (or hash inconsistently).

Suggested fix
@@
-                (
-                    this.Experiments == input.Experiments ||
-                    this.Experiments != null &&
-                    input.Experiments != null &&
-                    this.Experiments.SequenceEqual(input.Experiments)
-                ) && 
+                (
+                    this.Experiments == input.Experiments ||
+                    this.Experiments != null &&
+                    input.Experiments != null &&
+                    this.Experiments.Count == input.Experiments.Count &&
+                    this.Experiments.All(kvp =>
+                        input.Experiments.TryGetValue(kvp.Key, out var otherVal) &&
+                        Equals(kvp.Value, otherVal))
+                ) &&
@@
-                if (this.Experiments != null)
-                    hashCode = hashCode * 59 + this.Experiments.GetHashCode();
+                if (this.Experiments != null)
+                {
+                    foreach (var kvp in this.Experiments.OrderBy(k => k.Key))
+                    {
+                        hashCode = hashCode * 59 + kvp.Key.GetHashCode();
+                        if (kvp.Value != null)
+                            hashCode = hashCode * 59 + kvp.Value.GetHashCode();
+                    }
+                }

Also applies to: 133-143

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant