Skip to content

feat(pubsub): rewrite v2 schema samples #5340

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: pubsub-v2-samples-trunk
Choose a base branch
from

Conversation

hongalex
Copy link
Contributor

This is part 3 of 3 PRs that will be updating our existing Go Pub/Sub samples to use the new v2 library. This PR focuses on updating schema samples and the tests associated with them.

We are merging these PRs into pubsub-v2-samples-trunk since the v2 library isn't fully released yet.

@hongalex hongalex requested review from a team as code owners June 24, 2025 22:50
@product-auto-label product-auto-label bot added api: pubsub Issues related to the Pub/Sub API. samples Issues that are directly related to samples. labels Jun 24, 2025
@hongalex hongalex changed the base branch from main to pubsub-v2-samples-trunk June 24, 2025 22:50
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.

Summary of Changes

Hello @hongalex, 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 is the third part of a series aimed at updating existing Go Pub/Sub samples to utilize the new v2 client library. Specifically, it focuses on rewriting schema-related samples and their associated tests to adopt the protobuf-based API of the cloud.google.com/go/pubsub/v2 package, ensuring the samples reflect the latest recommended usage.

Highlights

  • Go Pub/Sub v2 Client Migration: The core change involves migrating all Go Pub/Sub schema and related topic samples from the older cloud.google.com/go/pubsub client library to the new cloud.google.com/go/pubsub/v2 client, which utilizes a protobuf-based API.
  • Schema API Updates: All schema management operations (create, commit, get, list, delete, rollback revisions) have been updated to use the new pubsub/v2/apiv1.SchemaClient methods, which now accept protobuf request objects (e.g., pubsubpb.CreateSchemaRequest) instead of direct parameters or pubsub.SchemaConfig structs.
  • Topic Administration API Updates: Topic creation, deletion, listing, IAM policy management, and updates (including ingestion settings) now leverage the client.TopicAdminClient within the v2 Pub/Sub client, using protobuf request and response structures (e.g., pubsubpb.CreateTopicRequest, pubsubpb.UpdateTopicRequest with FieldMask).
  • Publisher and Subscriber Client Refinements: Message publishing operations now use client.Publisher(topicName) for creating publisher clients, and subscription operations use client.Subscriber(subID) for subscriber clients, reflecting changes in the v2 client's API surface for these functionalities.
  • Test Suite Alignment: The integration tests for both schema and topic samples have been thoroughly updated to align with the new v2 client API, ensuring compatibility and correctness of the migrated code examples.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 is currently in preview and 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 to provide feedback.

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 migrates the Pub/Sub schema samples to the v2 Go library. I've provided suggestions to fix a bug in schema revision fetching, remove redundant code, and improve test clarity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: pubsub Issues related to the Pub/Sub API. samples Issues that are directly related to samples.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant