Skip to content
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

Update tag-based parsing to use lambda for additional customization #1039

Conversation

matthchr
Copy link
Contributor

This allows callers to override a bit more about struct field parsing. In particular, it's useful when parsing tags to perform escaping of tags that aren't supported CEL field names.
This allows implementation of something similar to what Kuberentes does with CEL field names:
https://kubernetes.io/docs/reference/using-api/cel/#escaping.

Pull Requests Guidelines

See CONTRIBUTING.md for more details about when to create
a GitHub Pull Request and when other kinds of contributions or
consultation might be more desirable.

When creating a new pull request, please fork the repo and work within a
development branch.

Commit Messages

  • Most changes should be accompanied by tests.
  • Commit messages should explain why the changes were made.
Summary of change in 50 characters or less

Background on why the change is being made with additional detail on
consequences of the changes elsewhere in the code or to the general
functionality of the library. Multiple paragraphs may be used, but
please keep lines to 72 characters or less.

Reviews

  • Perform a self-review.
  • Make sure the Travis CI build passes.
  • Assign a reviewer once both the above have been completed.

Merging

  • If a CEL maintaner approves the change, it may be merged by the author if
    they have write access. Otherwise, the change will be merged by a maintainer.
  • Multiple commits should be squashed before merging.
  • Please append the line closes #<issue-num>: description in the merge message,
    if applicable.

This allows callers to override a bit more about struct field parsing.
In particular, it's useful when parsing tags to perform escaping of tags
that aren't supported CEL field names.
This allows implementation of something similar to what Kuberentes does
with CEL field names:
https://kubernetes.io/docs/reference/using-api/cel/#escaping.
@matthchr
Copy link
Contributor Author

Realized this might be somewhat related to #1002

@matthchr
Copy link
Contributor Author

My main use-case for this is to control escaping of tags that aren't valid CEL names, but there are probably other viable use-cases as well like conditionally adding field name suffixes/prefixes or similar. Felt like rather than try to encode everything in the native types handler just exposing a function that enabled the caller to configure it how they want made sense.

@TristonianJones
Copy link
Collaborator

/gcbrun

@TristonianJones TristonianJones merged commit 2a010f9 into google:master Oct 15, 2024
2 checks passed
@matthchr matthchr deleted the feature/native-types-tag-configuration-2 branch October 16, 2024 16:52
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