Skip to content

Conversation

@drstrangelooker
Copy link
Collaborator

Release-As: 25.20.0

@drstrangelooker drstrangelooker requested a review from a team as a code owner November 5, 2025 19:20
@gemini-code-assist
Copy link

Summary of Changes

Hello @drstrangelooker, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the Looker SDKs to version 25.20, incorporating new API features and model enhancements. The changes include adding new parameters for filtering LookML models, introducing comprehensive content certification capabilities, and extending various data models with additional properties to support new functionalities. This ensures the SDKs remain current with the latest Looker platform updates, providing developers with access to the newest features and improved data structures.

Highlights

  • SDK Version Update: The SDK version across all supported languages (C#, Go, Kotlin, TypeScript, Python, Swift) has been updated to 25.20 to align with the latest Looker release.
  • New Parameter for LookML Models: The all_lookml_models method in all SDKs now includes a new optional parameter, include_self_service, allowing users to filter for self-service models.
  • New Certification Models: New Certification and CertificationStatus models have been introduced, along with their writeable counterparts (WriteCertification), to manage content certification metadata.
  • Extended Model Properties: Several existing models, including AlertNotifications, ContentSummary, Dashboard, DashboardBase, Look, LookBasic, LookWithDashboards, LookWithQuery, DashboardElement, ExternalOauthApplication, and LookmlModelExploreField, have been extended with new properties such as notification_type, certification_metadata, dashboard_layout_id, bi_directional_data_access, datatype, and convert_tz.
  • CI Run Result Refactor: The CIRunResult model has been refactored and renamed to RunResult, with all references updated accordingly across the SDKs.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the SDKs to support Looker version 25.20. The changes are mostly auto-generated and reflect the new features and model updates in the Looker API, such as the addition of content certification metadata and new parameters in some methods. The updates across C#, Go, Kotlin, TypeScript, Python, and Swift SDKs appear consistent and correct. I've noted a minor formatting issue in the generated Go models file that could be improved for better readability.

Comment on lines 424 to 445
type ContentSummary struct {
Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object
Id *string `json:"id,omitempty"` // Unique id
ContentType *string `json:"content_type,omitempty"` // Content type
ContentId *string `json:"content_id,omitempty"` // Content id
ContentSlug *string `json:"content_slug,omitempty"` // Content slug
ContentUrl *string `json:"content_url,omitempty"` // Content url
Title *string `json:"title,omitempty"` // Content title
Description *string `json:"description,omitempty"` // Content Description
LastViewedAt *time.Time `json:"last_viewed_at,omitempty"` // Last time viewed by current user
UserId *string `json:"user_id,omitempty"` // ID of user who created the content
UserFullName *string `json:"user_full_name,omitempty"` // Full name of user who created the content
IsScheduled *bool `json:"is_scheduled,omitempty"` // If the content is scheduled by the current user
FavoriteCount *int64 `json:"favorite_count,omitempty"` // Number of favorites
ViewCount *int64 `json:"view_count,omitempty"` // Number of views
FavoriteId *string `json:"favorite_id,omitempty"` // Corresponding favorite id if item is favorited by current user
WeightedScore *float32 `json:"weighted_score,omitempty"`
GroupWeightedScore *float32 `json:"group_weighted_score,omitempty"`
SuggestionScore *float32 `json:"suggestion_score,omitempty"`
PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this content (ie: dashboards or dashboards-next)
Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object
Id *string `json:"id,omitempty"` // Unique id
ContentType *string `json:"content_type,omitempty"` // Content type
ContentId *string `json:"content_id,omitempty"` // Content id
ContentSlug *string `json:"content_slug,omitempty"` // Content slug
ContentUrl *string `json:"content_url,omitempty"` // Content url
Title *string `json:"title,omitempty"` // Content title
Description *string `json:"description,omitempty"` // Content Description
LastViewedAt *time.Time `json:"last_viewed_at,omitempty"` // Last time viewed by current user
UserId *string `json:"user_id,omitempty"` // ID of user who created the content
UserFullName *string `json:"user_full_name,omitempty"` // Full name of user who created the content
IsScheduled *bool `json:"is_scheduled,omitempty"` // If the content is scheduled by the current user
FavoriteCount *int64 `json:"favorite_count,omitempty"` // Number of favorites
ViewCount *int64 `json:"view_count,omitempty"` // Number of views
FavoriteId *string `json:"favorite_id,omitempty"` // Corresponding favorite id if item is favorited by current user
WeightedScore *float32 `json:"weighted_score,omitempty"`
GroupWeightedScore *float32 `json:"group_weighted_score,omitempty"`
SuggestionScore *float32 `json:"suggestion_score,omitempty"`
PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this content (ie: dashboards or dashboards-next)
CertificationMetadata *Certification `json:"certification_metadata,omitempty"`
}

Choose a reason for hiding this comment

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

medium

The struct fields in ContentSummary and many other modified structs in this file are not vertically aligned. While the code is functionally correct, it deviates from standard Go formatting practices which recommend aligning struct fields for better readability.

Running a tool like gofmt on this file would automatically fix these alignment issues. Since this is a generated file, it would be best to update the code generator to produce correctly formatted code.

@gemini-code-assist
Copy link

Summary of Changes

Hello @drstrangelooker, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the Looker SDKs to version 25.20, incorporating a range of new API features and model enhancements. The changes primarily focus on expanding data models with new properties like certification metadata, adding new parameters to existing API methods for more granular control, and introducing new models to support evolving Looker functionalities. This ensures the SDKs remain synchronized with the latest Looker platform capabilities.

Highlights

  • SDK Version Update: The SDK version has been updated across all supported languages (C#, Go, Kotlin, TypeScript, Python, Swift) from 25.18 to 25.20 to reflect the latest Looker release.
  • New API Parameter for LookML Models: The all_lookml_models method now includes a new optional parameter, include_self_service, allowing users to filter for self-service models. This has been added to the C#, Go, Kotlin, TypeScript, Python, and Swift SDKs.
  • New Certification Models: New Certification and CertificationStatus models have been introduced to represent content certification metadata. Corresponding WriteCertification models have also been added for write operations.
  • Expanded Model Properties: Several existing models have been enhanced with new properties: AlertNotifications now includes notification_type, DashboardElement includes dashboard_layout_id, ExternalOauthApplication includes bi_directional_data_access, and LookmlModelExploreField now includes datatype and convert_tz.
  • Certification Metadata Integration: Certification metadata has been integrated into key content models, including ContentSummary, Dashboard, DashboardBase, Look, LookBasic, LookWithDashboards, and LookWithQuery, allowing access to certification details directly from these objects. Corresponding WriteCertification properties have been added to their writeable counterparts.
  • CI Run Result Model Refactor: The CIRunResult model has been renamed to RunResult and its references updated within the Run model across all SDKs for improved clarity and consistency.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the SDKs for Looker 25.20. While the changes are consistently applied across most languages, there's a critical omission for the Swift SDK: the models file (swift/looker/sdk/models.swift) has not been updated. This means new models and properties are missing, which will result in an incomplete and likely broken Swift SDK. Please ensure the Swift models are correctly generated and included. Additionally, I've added a comment regarding a potential breaking change (CIRunResult rename) for your consideration.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

Go Tests

  6 files    6 suites   2m 14s ⏱️
 50 tests  50 ✅ 0 💤 0 ❌
120 runs  120 ✅ 0 💤 0 ❌

Results for commit 98d759f.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

Python Tests

 10 files  ±0   10 suites  ±0   1m 25s ⏱️ -3s
144 tests ±0  139 ✅ ±0   5 💤 ±0  0 ❌ ±0 
792 runs  ±0  770 ✅ ±0  22 💤 ±0  0 ❌ ±0 

Results for commit 98d759f. ± Comparison against base commit 3b8cd99.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

Typescript Tests

  2 files  ±0   56 suites  ±0   1m 1s ⏱️ +2s
208 tests ±0  206 ✅ ±0  2 💤 ±0  0 ❌ ±0 
444 runs  ±0  440 ✅ ±0  4 💤 ±0  0 ❌ ±0 

Results for commit 98d759f. ± Comparison against base commit 3b8cd99.

@drstrangelooker drstrangelooker merged commit 89c707d into main Nov 5, 2025
42 checks passed
@drstrangelooker drstrangelooker deleted the sdk_25_20 branch November 5, 2025 20:19
drstrangelooker pushed a commit that referenced this pull request Nov 5, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>@looker/api-explorer: 0.9.80</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/code-editor bumped from 0.1.46 to 0.1.47
    * @looker/extension-utils bumped from 0.1.56 to 0.1.57
    * @looker/run-it bumped from 0.9.79 to 0.9.80
    * @looker/sdk bumped from 25.18.0 to 25.20.0
    * @looker/sdk-codegen bumped from 21.10.1 to 21.10.2
  * devDependencies
    * @looker/sdk-codegen-scripts bumped from 21.5.36 to 21.5.37
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/code-editor: 0.1.47</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @looker/sdk-codegen bumped from 21.10.1 to 21.10.2
</details>

<details><summary>@looker/extension-api-explorer: 22.21.37</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/api-explorer bumped from 0.9.79 to 0.9.80
    * @looker/extension-sdk bumped from 25.18.0 to 25.20.0
    * @looker/extension-sdk-react bumped from 25.18.0 to 25.20.0
    * @looker/extension-utils bumped from 0.1.56 to 0.1.57
    * @looker/run-it bumped from 0.9.79 to 0.9.80
    * @looker/sdk bumped from 25.18.0 to 25.20.0
    * @looker/sdk-codegen bumped from 21.10.1 to 21.10.2
</details>

<details><summary>@looker/extension-playground: 1.0.37</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/extension-sdk bumped from 25.18.0 to 25.20.0
    * @looker/extension-sdk-react bumped from 25.18.0 to 25.20.0
    * @looker/sdk bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/extension-tile-playground: 1.1.24</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/extension-sdk bumped from 25.18.0 to 25.20.0
    * @looker/extension-sdk-react bumped from 25.18.0 to 25.20.0
    * @looker/sdk bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/extension-utils: 0.1.57</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/code-editor bumped from 0.1.46 to 0.1.47
    * @looker/extension-sdk bumped from 25.18.0 to 25.20.0
    * @looker/extension-sdk-react bumped from 25.18.0 to 25.20.0
    * @looker/sdk bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/hackathon: 22.21.39</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/code-editor bumped from 0.1.46 to 0.1.47
    * @looker/extension-sdk bumped from 25.18.0 to 25.20.0
    * @looker/extension-sdk-react bumped from 25.18.0 to 25.20.0
    * @looker/extension-utils bumped from 0.1.56 to 0.1.57
    * @looker/sdk bumped from 25.18.0 to 25.20.0
    * @looker/wholly-artifact bumped from 0.1.37 to 0.1.38
</details>

<details><summary>@looker/run-it: 0.9.80</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/code-editor bumped from 0.1.46 to 0.1.47
    * @looker/extension-utils bumped from 0.1.56 to 0.1.57
    * @looker/sdk bumped from 25.18.0 to 25.20.0
    * @looker/sdk-codegen bumped from 21.10.1 to 21.10.2
    * @looker/sdk-codegen-utils bumped from 21.0.26 to 21.0.27
</details>

<details><summary>@looker/sdk-codegen: 21.10.2</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @looker/sdk-codegen-utils bumped from 21.0.26 to 21.0.27
</details>

<details><summary>@looker/sdk-codegen-scripts: 21.5.37</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
    * @looker/sdk-codegen bumped from 21.10.1 to 21.10.2
    * @looker/sdk-codegen-utils bumped from 21.0.26 to 21.0.27
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/sdk-codegen-utils: 21.0.27</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/wholly-artifact: 0.1.38</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
  * devDependencies
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>@looker/wholly-sheet: 0.5.76</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
  * devDependencies
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>sdk-codegen-all: 25.20.0</summary>

##
[25.20.0](sdk-codegen-all-v25.18.0...sdk-codegen-all-v25.20.0)
(2025-11-05)


### Features

* generate SDKs for Looker 25.20
([#1612](#1612))
([89c707d](89c707d))
</details>

<details><summary>looker_sdk: 25.20.0</summary>

##
[25.20.0](looker_sdk-v25.18.0...looker_sdk-v25.20.0)
(2025-11-05)


### Features

* generate SDKs for Looker 25.20
([#1612](#1612))
([89c707d](89c707d))
</details>

<details><summary>embed-components: 25.20.0</summary>

##
[25.20.0](embed-components-v25.18.0...embed-components-v25.20.0)
(2025-11-05)


### Miscellaneous Chores

* **embed-components:** Synchronize undefined versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/embed-services bumped from 25.18.0 to 25.20.0
    * @looker/sdk bumped from 25.18.0 to 25.20.0
  * devDependencies
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>embed-services: 25.20.0</summary>

##
[25.20.0](embed-services-v25.18.0...embed-services-v25.20.0)
(2025-11-05)


### Miscellaneous Chores

* **embed-services:** Synchronize undefined versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
  * devDependencies
    * @looker/sdk-node bumped from 25.18.0 to 25.20.0
</details>

<details><summary>extension-sdk: 25.20.0</summary>

##
[25.20.0](extension-sdk-v25.18.0...extension-sdk-v25.20.0)
(2025-11-05)


### Miscellaneous Chores

* **extension-sdk:** Synchronize undefined versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
</details>

<details><summary>extension-sdk-react: 25.20.0</summary>

##
[25.20.0](extension-sdk-react-v25.18.0...extension-sdk-react-v25.20.0)
(2025-11-05)


### Miscellaneous Chores

* **extension-sdk-react:** Synchronize undefined versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/extension-sdk bumped from 25.18.0 to 25.20.0
    * @looker/sdk bumped from 25.18.0 to 25.20.0
</details>

<details><summary>sdk: 25.20.0</summary>

##
[25.20.0](sdk-v25.18.0...sdk-v25.20.0)
(2025-11-05)


### Features

* generate SDKs for Looker 25.20
([#1612](#1612))
([89c707d](89c707d))
</details>

<details><summary>sdk-node: 25.20.0</summary>

##
[25.20.0](sdk-node-v25.18.0...sdk-node-v25.20.0)
(2025-11-05)


### Miscellaneous Chores

* **sdk-node:** Synchronize undefined versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @looker/sdk bumped from 25.18.0 to 25.20.0
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants