diff --git a/.toys/generate-updates.rb b/.toys/generate-updates.rb index 5c97e8cf76c..f7950a283ad 100644 --- a/.toys/generate-updates.rb +++ b/.toys/generate-updates.rb @@ -13,6 +13,7 @@ # limitations under the License. require "uri" +require "psych" desc "Run standard Google client generation." @@ -75,17 +76,31 @@ def run end def list_apis_versions - return requested.map { |request| request.split(":") } unless all + excluded = excluded_apis + + return requested.map { |request| request.split(":") }.reject do |(name, version)| + excluded.include?("#{name}.#{version}") || excluded.include?("#{name}:#{version}") + end unless all + path = git_cache.find("https://github.com/googleapis/discovery-artifact-manager.git", path: "discoveries/index.json", update: true) apis_versions = [] - JSON.parse(File.read path)["items"].each do |item| + JSON.parse(File.read(path))["items"].each do |item| + next if excluded.include?("#{item['name']}.#{item['version']}") || excluded.include?("#{item['name']}:#{item['version']}") next unless item["preferred"] || gem_exists?(item) apis_versions << [item["name"], item["version"]] end apis_versions.shuffle end +def excluded_apis + config_path = "#{context_directory}/api_list_config.yaml" + return [] unless File.file?(config_path) + Psych.load_file(config_path)["exclude"] || [] +rescue StandardError + [] +end + def gem_exists? item name = item["name"] version = item["version"] diff --git a/api_list_config.yaml b/api_list_config.yaml index de4986c0614..09d985b46d0 100644 --- a/api_list_config.yaml +++ b/api_list_config.yaml @@ -5,5 +5,8 @@ include: - name: youtubePartner version: v1 discovery_rest_url: https://content.googleapis.com/discovery/v1/apis/youtubePartner/v1/rest -exclude: [] +exclude: + - discoveryengine.v1 + - discoveryengine.v1alpha + - discoveryengine.v1beta pause: []