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

Automatically update and check copied code #13

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions internal/searchapi/generate.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
Copyright (c) 2023 Red Hat, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing permissions and limitations under the
License.
*/

package searchapi

// The models used by the ACM search GraphQL server are part of the 'stolostron/search-v2-api'
// project, but we don't want to import it because that would bring many other dependencies
// that may be problematic in the future. Instead of that we copy that code into our project.
//
//go:generate curl -Lso searchapi.go https://raw.githubusercontent.com/stolostron/search-v2-api/234de1a26d82b3de2af74cf21aa1226db8e5f26a/graph/model/models_gen.go
Copy link
Collaborator

Choose a reason for hiding this comment

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

Isn't it tied to a specific commit? I.e. I would expect it would fetch from latest 'master' branch? Or is there some other mechanism for fetching the latest bits?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It is tied to a specific commit on purpose. We could get the latest from the master branch with this:

https://github.com/stolostron/search-v2-api/blob/main/graph/model/models_gen.go

But that would make the build non-repeatable.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Not that the point here is not really to automatically update, but rather to ensure that we don't manually change this file by accident. If we did, then the check-generated-code action would detect it and fail the build. Not super important, just a tad better.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Not that the point here is not really to automatically update, but rather to ensure that we don't manually change this file by accident. If we did, then the check-generated-code action would detect it and fail the build. Not super important, just a tad better.

Cool, makes sense.

//go:generate sed -i "s/^package model$/package searchapi/" searchapi.go
2 changes: 0 additions & 2 deletions internal/searchapi/searchapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.