| """Copybara config to export files from google3 to gRPC repo in gBMC |
| |
| Validate the config in terms of syntax: |
| copybara validate third_party/gbmcweb/copy.bara.sky |
| |
| Test the transformation (add --init-history --squash for the first run) |
| |
| 1. Run the workflow in dry-run mode |
| alias copybara='/google/bin/releases/copybara/public/copybara/copybara' |
| copybara third_party/gbmcweb/copy.bara.sky gbmcweb_presubmit_piper_to_gerrit 12345 --dry-run --ignore-noop |
| 2. Format patch (get the GIT_DIR from the copybara output) |
| GIT_DIR=/usr/local/google/home/$USER/copybara/cache/git_repos/rpc%3A%2F%2Fgbmc%2Fgbmcweb git format-patch -1 \ |
| && cp 0001-DO-NOT-SUBMIT.patch /path/to/gbmcweb |
| 3. Apply the patch and test there. |
| """ |
| |
| load("//devtools/copybara/library/feedback", "critique_findings_to_gerrit") |
| load("//devtools/copybara/library/scrubbing", "cc_scrub", "doc_scrub", "message_scrub_google_block", "proto_scrub") |
| load("//devtools/copybara/library/workflow", "piper_sot_to_gerrit") |
| |
| ################################################################################### |
| # Do not modify this file from GoB. This file should only be modified in google3. # |
| ################################################################################### |
| |
| ######################## |
| # Private definitions |
| ######################## |
| # all c++ source files under current directory recrusively in google3 |
| _g3_cc_files = ["**.h", "**.cc"] |
| |
| # all c++ source files under current directory recrusively in GoB |
| _gob_cc_files = ["**.h", "**.cpp", "**.hpp", "**.cc"] |
| |
| # Common files like OWNERS, METADATA, etc are excluded |
| _excluded_meta_files = [ |
| "google3/third_party/gbmcweb/BUILD", |
| "google3/third_party/gbmcweb/bluze.textproto", |
| "google3/third_party/gbmcweb/METADATA", |
| "google3/third_party/gbmcweb/third_party.gbmcweb.blueprint", |
| "google3/third_party/gbmcweb/OWNERS", |
| "google3/third_party/gbmcweb/demo/**", |
| "google3/third_party/gbmcweb/**/BUILD", |
| ] |
| |
| _all_gbmcweb_google3_files = [ |
| # go/keep-sorted start |
| "google3/third_party/gbmcweb/LICENSE", |
| "google3/third_party/gbmcweb/config/bmcweb_config.h.in", |
| "google3/third_party/gbmcweb/config/meson.build", |
| "google3/third_party/gbmcweb/config/meson_options.txt", |
| "google3/third_party/gbmcweb/http/app.cc", |
| # "google3/third_party/gbmcweb/http/http_response_test.cc", |
| "google3/third_party/gbmcweb/http/app.h", |
| "google3/third_party/gbmcweb/http/app_get_routes_test.cc", |
| "google3/third_party/gbmcweb/http/app_singleton.cc", |
| "google3/third_party/gbmcweb/http/app_singleton.h", |
| "google3/third_party/gbmcweb/http/common.h", |
| "google3/third_party/gbmcweb/http/http_client.h", |
| "google3/third_party/gbmcweb/http/http_connection.h", |
| "google3/third_party/gbmcweb/http/http_request.cc", |
| "google3/third_party/gbmcweb/http/http_request.h", |
| "google3/third_party/gbmcweb/http/http_response.cc", |
| "google3/third_party/gbmcweb/http/http_response.h", |
| "google3/third_party/gbmcweb/http/http_server.h", |
| "google3/third_party/gbmcweb/http/logging.h", |
| "google3/third_party/gbmcweb/http/mutual_tls.h", |
| "google3/third_party/gbmcweb/http/parsing.h", |
| "google3/third_party/gbmcweb/http/routing.cc", |
| "google3/third_party/gbmcweb/http/routing.h", |
| "google3/third_party/gbmcweb/http/routing_test.cc", |
| "google3/third_party/gbmcweb/http/utility.cc", |
| "google3/third_party/gbmcweb/http/utility.h", |
| "google3/third_party/gbmcweb/http/utility_test.cc", |
| "google3/third_party/gbmcweb/http/verb.h", |
| "google3/third_party/gbmcweb/http/verb_test.cc", |
| "google3/third_party/gbmcweb/http/websocket.h", |
| "google3/third_party/gbmcweb/include/async_resolve.h", |
| "google3/third_party/gbmcweb/include/async_resp.cc", |
| "google3/third_party/gbmcweb/include/async_resp.h", |
| "google3/third_party/gbmcweb/include/authentication.h", |
| "google3/third_party/gbmcweb/include/dbus_utility.cc", |
| "google3/third_party/gbmcweb/include/dbus_utility.h", |
| "google3/third_party/gbmcweb/include/dbus_utility_test.cc", |
| "google3/third_party/gbmcweb/include/event_service_store.h", |
| "google3/third_party/gbmcweb/include/forward_unauthorized.h", |
| "google3/third_party/gbmcweb/include/http_utility.h", |
| "google3/third_party/gbmcweb/include/http_utility_test.cc", |
| "google3/third_party/gbmcweb/include/human_sort.h", |
| "google3/third_party/gbmcweb/include/human_sort_test.cc", |
| "google3/third_party/gbmcweb/include/json_html_serializer.h", |
| "google3/third_party/gbmcweb/include/openbmc_dbus_rest.h", |
| "google3/third_party/gbmcweb/include/openbmc_dbus_rest_test.cc", |
| "google3/third_party/gbmcweb/include/pam_authenticate.h", |
| "google3/third_party/gbmcweb/include/persistent_data.h", |
| "google3/third_party/gbmcweb/include/random.h", |
| "google3/third_party/gbmcweb/include/request_stats.cc", |
| "google3/third_party/gbmcweb/include/request_stats.h", |
| "google3/third_party/gbmcweb/include/request_stats_test.cc", |
| "google3/third_party/gbmcweb/include/security_headers.h", |
| "google3/third_party/gbmcweb/include/sessions.cc", |
| "google3/third_party/gbmcweb/include/sessions.h", |
| #"google3/third_party/gbmcweb/**", |
| "google3/third_party/gbmcweb/include/source_location.h", |
| "google3/third_party/gbmcweb/include/ssl_key_handler.h", |
| "google3/third_party/gbmcweb/include/str_utility.h", |
| "google3/third_party/gbmcweb/include/str_utility_test.cc", |
| "google3/third_party/gbmcweb/include/webroutes.h", |
| "google3/third_party/gbmcweb/redfish_core/include/aggregation_utils.h", |
| "google3/third_party/gbmcweb/redfish_core/include/error_messages.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/error_messages.h", |
| "google3/third_party/gbmcweb/redfish_core/include/error_messages_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/generated/enums/**", |
| "google3/third_party/gbmcweb/redfish_core/include/privileges.h", |
| "google3/third_party/gbmcweb/redfish_core/include/privileges_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/query.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/query.h", |
| "google3/third_party/gbmcweb/redfish_core/include/query_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator.h", |
| "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/registries.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/registries.h", |
| "google3/third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h", |
| "google3/third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h", |
| "google3/third_party/gbmcweb/redfish_core/include/registries/privilege_registry.h", |
| "google3/third_party/gbmcweb/redfish_core/include/registries_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/schemas.h", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils.h", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils.h", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils_test.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.cc", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.h", |
| "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils_test.cc", |
| "google3/third_party/gbmcweb/scripts/generate_schema_collections.py", |
| "google3/third_party/gbmcweb/scripts/generate_schema_enums.py", |
| "google3/third_party/gbmcweb/scripts/parse_registries.py", |
| "google3/third_party/gbmcweb/scripts/update_schemas.py", |
| # go/keep-sorted end |
| ] |
| |
| _git_files = [ |
| # go/keep-sorted start |
| "LICENSE", |
| "config/bmcweb_config.h.in", |
| "config/meson.build", |
| "http/app.cpp", |
| "http/app.hpp", |
| "http/app_singleton.cpp", |
| "http/app_singleton.hpp", |
| "http/common.hpp", |
| "http/http_client.hpp", |
| "http/http_connection.hpp", |
| "http/http_request.cpp", |
| "http/http_request.hpp", |
| "http/http_response.cpp", |
| "http/http_response.hpp", |
| "http/http_server.hpp", |
| "http/logging.hpp", |
| "http/mutual_tls.hpp", |
| "http/parsing.hpp", |
| "http/routing.cpp", |
| "http/routing.hpp", |
| "http/utility.cpp", |
| "http/utility.hpp", |
| "http/verb.hpp", |
| "http/websocket.hpp", |
| "include/async_resolve.hpp", |
| "include/async_resp.cpp", |
| "include/async_resp.hpp", |
| "include/authentication.hpp", |
| "include/dbus_utility.cpp", |
| "include/dbus_utility.hpp", |
| "include/event_service_store.hpp", |
| "include/forward_unauthorized.hpp", |
| "include/http_utility.hpp", |
| "include/human_sort.hpp", |
| "include/json_html_serializer.hpp", |
| "include/openbmc_dbus_rest.hpp", |
| "include/pam_authenticate.hpp", |
| "include/persistent_data.hpp", |
| "include/random.hpp", |
| "include/request_stats.hpp", |
| "include/security_headers.hpp", |
| "include/sessions.cpp", |
| "include/sessions.hpp", |
| "include/source_location.hpp", |
| "include/ssl_key_handler.hpp", |
| "include/str_utility.hpp", |
| "include/webroutes.hpp", |
| "meson_options.txt", |
| "redfish-core/include/aggregation_utils.hpp", |
| "redfish-core/include/error_messages.hpp", |
| "redfish-core/include/generated/enums/**", |
| "redfish-core/include/privileges.hpp", |
| "redfish-core/include/query.cpp", |
| "redfish-core/include/query.hpp", |
| "redfish-core/include/redfish_aggregator.hpp", |
| "redfish-core/include/registries.hpp", |
| "redfish-core/include/registries/base_message_registry.hpp", |
| "redfish-core/include/registries/openbmc_message_registry.hpp", |
| "redfish-core/include/registries/privilege_registry.hpp", |
| "redfish-core/include/schemas.hpp", |
| "redfish-core/include/utils/dbus_utils.hpp", |
| "redfish-core/include/utils/hex_utils.hpp", |
| "redfish-core/include/utils/ip_utils.hpp", |
| "redfish-core/include/utils/json_utils.hpp", |
| "redfish-core/src/error_messages.cpp", |
| "redfish-core/src/registries.cpp", |
| "redfish-core/src/utils/json_utils.cpp", |
| "scripts/generate_schema_collections.py", |
| "scripts/generate_schema_enums.py", |
| "scripts/parse_registries.py", |
| "scripts/update_schemas.py", |
| # "test/http/http_response_test.cpp", |
| "src/request_stats.cpp", |
| "test/http/crow_getroutes_test.cpp", |
| "test/http/router_test.cpp", |
| "test/http/utility_test.cpp", |
| "test/http/verb_test.cpp", |
| "test/include/dbus_utility_test.cpp", |
| "test/include/http_utility_test.cpp", |
| "test/include/human_sort_test.cpp", |
| "test/include/openbmc_dbus_rest_test.cpp", |
| "test/include/request_stats_test.cpp", |
| "test/include/str_utility_test.cpp", |
| "test/redfish-core/include/privileges_test.cpp", |
| "test/redfish-core/include/query_test.cpp", |
| "test/redfish-core/include/redfish_aggregator_test.cpp", |
| "test/redfish-core/include/registries_test.cpp", |
| "test/redfish-core/include/utils/hex_utils_test.cpp", |
| "test/redfish-core/include/utils/ip_utils_test.cpp", |
| "test/redfish-core/include/utils/json_utils_test.cpp", |
| "test/redfish-core/src/error_messages_test.cpp", |
| # go/keep-sorted end |
| ] |
| |
| # copy.bara.sky is g3 origin file only for piper to gob workflow |
| # copy.bara.sky is excluded from g3 destination file in reverse workflow to avoid any edit from gob |
| _google3_files_for_origin = glob( |
| include = [ |
| "google3/third_party/gbmcweb/copy.bara.sky", |
| ] + _all_gbmcweb_google3_files, |
| exclude = _excluded_meta_files, |
| ) |
| |
| _google3_files_for_destination = glob( |
| include = _all_gbmcweb_google3_files, |
| exclude = _excluded_meta_files, |
| ) |
| |
| # copy.bara.sky is gob destination file only for piper to gob workflow |
| # copy.bara.sky is excluded from gob origin file in reverse workflow to avoid any edit from gob |
| _git_files_for_destination = glob( |
| include = [ |
| "copy.bara.sky", |
| ] + _git_files, |
| exclude = [".gitignore"], |
| ) |
| |
| _git_files_for_origin = glob( |
| include = _git_files, |
| exclude = [".gitignore"], |
| ) |
| |
| _allowed_authors = { |
| "haoooamazing": "Hao Zhou <haoooamazing@google.com>", |
| "nanzhou": "Nan Zhou <nanzhou@google.com>", |
| } |
| |
| ######################## |
| # Transformations |
| ######################## |
| _transformations = [ |
| ############################### |
| # common scrubs |
| ############################### |
| cc_scrub(), |
| proto_scrub(), |
| doc_scrub(), |
| ############################### |
| # common headers |
| ############################### |
| core.replace( |
| # tranformation for all boost header |
| before = "third_party/boost/do_not_include_from_google3_only_third_party/boost/boost", |
| after = "boost", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "#include \"third_party/json/include/nlohmann/json.hpp\"", |
| after = "#include <nlohmann/json.hpp>", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| # tranformation for all absl header |
| before = "#include \"third_party/absl", |
| after = "#include \"absl", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| # transformation for all sdbusplus header |
| before = "#include \"third_party/openbmc_sdbusplus/include/sdbusplus", |
| after = "#include \"sdbusplus", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| # transformation for all grpc header |
| before = "#include \"third_party/grpc/include/grpcpp", |
| after = "#include \"grpcpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "#include \"testing/base/public/gunit.h\"", |
| after = "#include <gtest/gtest.h>", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "#include \"testing/base/public/gmock.h\"", |
| after = "#include <gmock/gmock.h>", |
| paths = glob(_g3_cc_files), |
| ), |
| ############################### |
| # Internal headers |
| ############################### |
| core.replace( |
| before = "third_party/gbmcweb/http/verb.h", |
| after = "verb.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "#include \"third_party/gbmcweb/http/utility.h\"", |
| after = "#include \"utility.hpp\"", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| # For CRYPTO_memcmp only |
| before = "<openssl/mem.h>", |
| after = "<openssl/crypto.h>", |
| paths = glob( |
| include = [ |
| "google3/third_party/gbmcweb/http/utility.cc", |
| ], |
| ), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/config/bmcweb_config.h", |
| after = "bmcweb_config.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/utils/hex_utils.h", |
| after = "hex_utils.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/logging.h", |
| after = "logging.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/sessions.h", |
| after = "sessions.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/random.h", |
| after = "random.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/utils/ip_utils.h", |
| after = "ip_utils.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/authz/bmcweb_authorizer_singleton.h", |
| after = "bmcweb_authorizer_singleton.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/common.h", |
| after = "common.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/http_request.h", |
| after = "http_request.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/bmcweb/managed_store_clock.h", |
| after = "managed_store_clock.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/request_stats.h", |
| after = "request_stats.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/ecclesia/lib/redfish/event/server/subscription.h", |
| after = "subscription.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/http_response.h", |
| after = "http_response.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "#include \"third_party/milotic/internal/cc/bmcweb/managed_store.h\"", |
| after = "#include \"managed_store.hpp\"", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/bmcweb/mock_managed_store.h", |
| after = "test/g3/mock_managed_store.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/async_resp.h", |
| after = "async_resp.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/dbus_utility.h", |
| after = "dbus_utility.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/privileges.h", |
| after = "privileges.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/event_service_store.h", |
| after = "event_service_store.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/http_utility.h", |
| after = "http_utility.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/forward_unauthorized.h", |
| after = "forward_unauthorized.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/pam_authenticate.h", |
| after = "pam_authenticate.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/webroutes.h", |
| after = "webroutes.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/authentication.h", |
| after = "authentication.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/json_html_serializer.h", |
| after = "json_html_serializer.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/mutual_tls.h", |
| after = "mutual_tls.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/security_headers.h", |
| after = "security_headers.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/ssl_key_handler.h", |
| after = "ssl_key_handler.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/http_connection.h", |
| after = "http_connection.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/async_resolve.h", |
| after = "async_resolve.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/bmcweb/managed_store_types.h", |
| after = "managed_store_types.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/source_location.h", |
| after = "source_location.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h", |
| after = "registries/base_message_registry.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h", |
| after = "registries/openbmc_message_registry.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/str_utility.h", |
| after = "str_utility.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/registries.h", |
| after = "registries.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/ecclesia/lib/redfish/authorizer_enums.h", |
| after = "authorizer_enums.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/redfish/uri_to_entity.h", |
| after = "uri_to_entity.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h", |
| after = "dbus_utils.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| # full line is best practice to avoid same name collisions (e.g.websocket.hpp from boost |
| before = "#include \"third_party/gbmcweb/http/websocket.h\"", |
| after = "#include \"websocket.hpp\"", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/routing.h", |
| after = "routing.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/error_messages.h", |
| after = "error_messages.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| # core.replace( |
| # before = "third_party/gbmcweb/include/persistent_data.h", |
| # after = "persistent_data.hpp", |
| # paths = glob(_g3_cc_files), |
| # ), |
| # core.replace( |
| # before = "third_party/gbmcweb/include/security_headers.h", |
| # after = "security_headers.hpp", |
| # paths = glob(_g3_cc_files), |
| # ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/bmcweb/app_interface.h", |
| after = "app_interface.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/milotic/internal/cc/bmcweb/smart_router.h", |
| after = "smart_router.h", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/app.h", |
| after = "app.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/http_server.h", |
| after = "http_server.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/parsing.h", |
| after = "parsing.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/openbmc_dbus_rest.h", |
| after = "openbmc_dbus_rest.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/app_singleton.h", |
| after = "app_singleton.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/aggregation_utils.h", |
| after = "aggregation_utils.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/http/http_client.h", |
| after = "http_client.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/redfish_aggregator.h", |
| after = "redfish_aggregator.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/query.h", |
| after = "query.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/include/human_sort.h", |
| after = "human_sort.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| before = "third_party/gbmcweb/redfish_core/include/utils/json_utils.h", |
| after = "json_utils.hpp", |
| paths = glob(_g3_cc_files), |
| ), |
| core.replace( |
| # replace for third_party/gbmcweb/scripts/update_schemas.py |
| before = "from google3.third_party.gbmcweb.scripts.generate_schema_collections import generate_top_collections", |
| after = "from generate_schema_collections import generate_top_collections", |
| paths = glob(["google3/third_party/gbmcweb/scripts/update_schemas.py"]), |
| ), |
| core.replace( |
| # replace for third_party/gbmcweb/scripts/update_schemas.py |
| before = "import google3.third_party.gbmcweb.scripts.generate_schema_enums as generate_schema_enums", |
| after = "import generate_schema_enums", |
| paths = glob(["google3/third_party/gbmcweb/scripts/update_schemas.py"]), |
| ), |
| ############################### |
| # move |
| ############################### |
| # Operations are in sequence. |
| core.move( |
| before = "google3/third_party/gbmcweb/http/verb.h", |
| after = "http/verb.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/verb_test.cc", |
| after = "test/http/verb_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/logging.h", |
| after = "http/logging.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/utility.cc", |
| after = "http/utility.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/utility.h", |
| after = "http/utility.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/utility_test.cc", |
| after = "test/http/utility_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/common.h", |
| after = "http/common.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/config/bmcweb_config.h.in", |
| after = "config/bmcweb_config.h.in", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/config/meson.build", |
| after = "config/meson.build", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/config/meson_options.txt", |
| after = "meson_options.txt", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils.h", |
| after = "redfish-core/include/utils/hex_utils.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils_test.cc", |
| after = "test/redfish-core/include/utils/hex_utils_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/random.h", |
| after = "include/random.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils.h", |
| after = "redfish-core/include/utils/ip_utils.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils_test.cc", |
| after = "test/redfish-core/include/utils/ip_utils_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/sessions.cc", |
| after = "include/sessions.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/sessions.h", |
| after = "include/sessions.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_request.cc", |
| after = "http/http_request.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_request.h", |
| after = "http/http_request.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/request_stats.h", |
| after = "include/request_stats.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/request_stats.cc", |
| after = "src/request_stats.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/request_stats_test.cc", |
| after = "test/include/request_stats_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_response.h", |
| after = "http/http_response.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_response.cc", |
| after = "http/http_response.cpp", |
| ), |
| # core.move( |
| # before = "google3/third_party/gbmcweb/http/http_response_test.cc", |
| # after = "test/http/http_response_test.cpp", |
| # ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/async_resp.h", |
| after = "include/async_resp.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/async_resp.cc", |
| after = "include/async_resp.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/dbus_utility.cc", |
| after = "include/dbus_utility.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/dbus_utility.h", |
| after = "include/dbus_utility.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/dbus_utility_test.cc", |
| after = "test/include/dbus_utility_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/parsing.h", |
| after = "http/parsing.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/privileges.h", |
| after = "redfish-core/include/privileges.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/privileges_test.cc", |
| after = "test/redfish-core/include/privileges_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/security_headers.h", |
| after = "include/security_headers.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/websocket.h", |
| after = "http/websocket.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/event_service_store.h", |
| after = "include/event_service_store.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/ssl_key_handler.h", |
| after = "include/ssl_key_handler.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/mutual_tls.h", |
| after = "http/mutual_tls.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/persistent_data.h", |
| after = "include/persistent_data.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/json_html_serializer.h", |
| after = "include/json_html_serializer.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/forward_unauthorized.h", |
| after = "include/forward_unauthorized.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/http_utility.h", |
| after = "include/http_utility.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/http_utility_test.cc", |
| after = "test/include/http_utility_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/pam_authenticate.h", |
| after = "include/pam_authenticate.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/webroutes.h", |
| after = "include/webroutes.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/authentication.h", |
| after = "include/authentication.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/async_resolve.h", |
| after = "include/async_resolve.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_connection.h", |
| after = "http/http_connection.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_server.h", |
| after = "http/http_server.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/http_client.h", |
| after = "http/http_client.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h", |
| after = "redfish-core/include/utils/dbus_utils.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/source_location.h", |
| after = "include/source_location.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/str_utility.h", |
| after = "include/str_utility.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/str_utility_test.cc", |
| after = "test/include/str_utility_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/registries.h", |
| after = "redfish-core/include/registries.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/registries.cc", |
| after = "redfish-core/src/registries.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/registries_test.cc", |
| after = "test/redfish-core/include/registries_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/error_messages.h", |
| after = "redfish-core/include/error_messages.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/error_messages.cc", |
| after = "redfish-core/src/error_messages.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/error_messages_test.cc", |
| after = "test/redfish-core/src/error_messages_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/routing.h", |
| after = "http/routing.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/routing.cc", |
| after = "http/routing.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/routing_test.cc", |
| after = "test/http/router_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/app.h", |
| after = "http/app.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/app.cc", |
| after = "http/app.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/app_get_routes_test.cc", |
| after = "test/http/crow_getroutes_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/openbmc_dbus_rest.h", |
| after = "include/openbmc_dbus_rest.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/openbmc_dbus_rest_test.cc", |
| after = "test/include/openbmc_dbus_rest_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/app_singleton.h", |
| after = "http/app_singleton.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/http/app_singleton.cc", |
| after = "http/app_singleton.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator.h", |
| after = "redfish-core/include/redfish_aggregator.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator_test.cc", |
| after = "test/redfish-core/include/redfish_aggregator_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/query.h", |
| after = "redfish-core/include/query.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/query.cc", |
| after = "redfish-core/include/query.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/query_test.cc", |
| after = "test/redfish-core/include/query_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/human_sort.h", |
| after = "include/human_sort.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/include/human_sort_test.cc", |
| after = "test/include/human_sort_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.h", |
| after = "redfish-core/include/utils/json_utils.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.cc", |
| after = "redfish-core/src/utils/json_utils.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils_test.cc", |
| after = "test/redfish-core/include/utils/json_utils_test.cpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/scripts/parse_registries.py", |
| after = "scripts/parse_registries.py", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h", |
| after = "redfish-core/include/registries/base_message_registry.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h", |
| after = "redfish-core/include/registries/openbmc_message_registry.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/registries/privilege_registry.h", |
| after = "redfish-core/include/registries/privilege_registry.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/scripts/generate_schema_collections.py", |
| after = "scripts/generate_schema_collections.py", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/scripts/generate_schema_enums.py", |
| after = "scripts/generate_schema_enums.py", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/scripts/update_schemas.py", |
| after = "scripts/update_schemas.py", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/aggregation_utils.h", |
| after = "redfish-core/include/aggregation_utils.hpp", |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/schemas.h", |
| after = "redfish-core/include/schemas.hpp", |
| ), |
| core.transform( |
| transformations = [ |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h", |
| after = "redfish-core/include/generated/enums/${file}.hpp", |
| regex_groups = {"file": ".*"}, |
| ), |
| ], |
| reversal = [ |
| core.move( |
| before = "redfish-core/include/generated/enums/${file}.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h", |
| regex_groups = {"file": ".*"}, |
| ), |
| ], |
| ), |
| core.move( |
| before = "google3/third_party/gbmcweb/LICENSE", |
| after = "LICENSE", |
| ), |
| ######################## |
| # Unidirectional files from G3 -> GoB |
| ######################## |
| core.move( |
| before = "google3/third_party/gbmcweb/copy.bara.sky", |
| after = "copy.bara.sky", |
| ), |
| ######################## |
| # Check for leaks after last transform |
| ######################## |
| leakr.check(), |
| ] |
| |
| _reverse_transformations = [ |
| ############################### |
| # common headers |
| ############################### |
| # Operations are in sequence. |
| core.replace( |
| before = "#include \"boost", |
| after = "#include \"third_party/boost/do_not_include_from_google3_only_third_party/boost/boost", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "#include <nlohmann/json.hpp>", |
| after = "#include \"third_party/json/include/nlohmann/json.hpp\"", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| # tranformation for all absl header |
| before = "#include \"absl", |
| after = "#include \"third_party/absl", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| # transformation for all sdbusplus header |
| before = "#include \"sdbusplus", |
| after = "#include \"third_party/openbmc_sdbusplus/include/sdbusplus", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| # transformation for all grpc header |
| before = "#include \"grpcpp", |
| after = "#include \"third_party/grpc/include/grpcpp", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "#include <gtest/gtest.h>", |
| after = "#include \"testing/base/public/gunit.h\"", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "#include <gmock/gmock.h>", |
| after = "#include \"testing/base/public/gmock.h\"", |
| paths = glob(_gob_cc_files), |
| ), |
| ############################### |
| # Internal headers |
| ############################### |
| core.replace( |
| before = "#include \"verb.hpp\"", |
| after = "#include \"third_party/gbmcweb/http/verb.h\"", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "#include \"utility.hpp\"", |
| after = "#include \"third_party/gbmcweb/http/utility.h\"", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| # For CRYPTO_memcmp only |
| before = "<openssl/crypto.h>", |
| after = "<openssl/mem.h>", |
| paths = glob( |
| include = ["http/utility.cpp"], |
| ), |
| ), |
| core.replace( |
| before = "bmcweb_config.h", |
| after = "third_party/gbmcweb/config/bmcweb_config.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "hex_utils.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/utils/hex_utils.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "logging.hpp", |
| after = "third_party/gbmcweb/http/logging.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "sessions.hpp", |
| after = "third_party/gbmcweb/include/sessions.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "random.hpp", |
| after = "third_party/gbmcweb/include/random.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "ip_utils.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/utils/ip_utils.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "bmcweb_authorizer_singleton.h", |
| after = "third_party/milotic/internal/cc/authz/bmcweb_authorizer_singleton.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "common.hpp", |
| after = "third_party/gbmcweb/http/common.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "http_request.hpp", |
| after = "third_party/gbmcweb/http/http_request.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "managed_store_clock.hpp", |
| after = "third_party/milotic/internal/cc/bmcweb/managed_store_clock.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "request_stats.hpp", |
| after = "third_party/gbmcweb/include/request_stats.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "subscription.h", |
| after = "third_party/ecclesia/lib/redfish/event/server/subscription.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "http_response.hpp", |
| after = "third_party/gbmcweb/http/http_response.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "#include \"managed_store.hpp\"", |
| after = "#include \"third_party/milotic/internal/cc/bmcweb/managed_store.h\"", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "test/g3/mock_managed_store.hpp", |
| after = "third_party/milotic/internal/cc/bmcweb/mock_managed_store.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "async_resp.hpp", |
| after = "third_party/gbmcweb/include/async_resp.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "dbus_utility.hpp", |
| after = "third_party/gbmcweb/include/dbus_utility.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "privileges.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/privileges.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "event_service_store.hpp", |
| after = "third_party/gbmcweb/include/event_service_store.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "http_utility.hpp", |
| after = "third_party/gbmcweb/include/http_utility.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "forward_unauthorized.hpp", |
| after = "third_party/gbmcweb/include/forward_unauthorized.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "pam_authenticate.hpp", |
| after = "third_party/gbmcweb/include/pam_authenticate.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "webroutes.hpp", |
| after = "third_party/gbmcweb/include/webroutes.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "authentication.hpp", |
| after = "third_party/gbmcweb/include/authentication.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "json_html_serializer.hpp", |
| after = "third_party/gbmcweb/include/json_html_serializer.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "mutual_tls.hpp", |
| after = "third_party/gbmcweb/http/mutual_tls.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "security_headers.hpp", |
| after = "third_party/gbmcweb/include/security_headers.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "ssl_key_handler.hpp", |
| after = "third_party/gbmcweb/include/ssl_key_handler.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "http_connection.hpp", |
| after = "third_party/gbmcweb/http/http_connection.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "async_resolve.hpp", |
| after = "third_party/gbmcweb/include/async_resolve.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "managed_store_types.hpp", |
| after = "third_party/milotic/internal/cc/bmcweb/managed_store_types.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "source_location.hpp", |
| after = "third_party/gbmcweb/include/source_location.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "registries/base_message_registry.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "registries/openbmc_message_registry.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "str_utility.hpp", |
| after = "third_party/gbmcweb/include/str_utility.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "registries.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/registries.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "authorizer_enums.h", |
| after = "third_party/ecclesia/lib/redfish/authorizer_enums.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "uri_to_entity.h", |
| after = "third_party/milotic/internal/cc/redfish/uri_to_entity.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "dbus_utils.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| # full line is best practice to avoid same name collisions (e.g.websocket.hpp from boost) |
| before = "#include \"websocket.hpp\"", |
| after = "#include \"third_party/gbmcweb/http/websocket.h\"", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "routing.hpp", |
| after = "third_party/gbmcweb/http/routing.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "error_messages.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/error_messages.h", |
| paths = glob(_gob_cc_files), |
| ), |
| # core.replace( |
| # before = "persistent_data.hpp", |
| # after = "third_party/gbmcweb/include/persistent_data.h", |
| # paths = glob(_gob_cc_files), |
| # ), |
| # core.replace( |
| # before = "security_headers.hpp", |
| # after = "third_party/gbmcweb/include/security_headers.h", |
| # paths = glob(_gob_cc_files), |
| # ), |
| core.replace( |
| before = "app_interface.h", |
| after = "third_party/milotic/internal/cc/bmcweb/app_interface.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "smart_router.h", |
| after = "third_party/milotic/internal/cc/bmcweb/smart_router.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "app.hpp", |
| after = "third_party/gbmcweb/http/app.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "http_server.hpp", |
| after = "third_party/gbmcweb/http/http_server.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "parsing.hpp", |
| after = "third_party/gbmcweb/http/parsing.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "openbmc_dbus_rest.hpp", |
| after = "third_party/gbmcweb/include/openbmc_dbus_rest.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "app_singleton.hpp", |
| after = "third_party/gbmcweb/http/app_singleton.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "aggregation_utils.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/aggregation_utils.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "http_client.hpp", |
| after = "third_party/gbmcweb/http/http_client.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "redfish_aggregator.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/redfish_aggregator.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "query.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/query.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "human_sort.hpp", |
| after = "third_party/gbmcweb/include/human_sort.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| before = "json_utils.hpp", |
| after = "third_party/gbmcweb/redfish_core/include/utils/json_utils.h", |
| paths = glob(_gob_cc_files), |
| ), |
| core.replace( |
| # replace for scripts/update_schemas.py |
| before = "from generate_schema_collections import generate_top_collections", |
| after = "from google3.third_party.gbmcweb.scripts.generate_schema_collections import generate_top_collections", |
| paths = glob(["scripts/update_schemas.py"]), |
| ), |
| core.replace( |
| # replace for scripts/update_schemas.py |
| before = "import generate_schema_enums", |
| after = "import google3.third_party.gbmcweb.scripts.generate_schema_enums as generate_schema_enums", |
| paths = glob(["scripts/update_schemas.py"]), |
| ), |
| ############################### |
| # move |
| ############################### |
| # Operations are in sequence. |
| core.move( |
| before = "http/verb.hpp", |
| after = "google3/third_party/gbmcweb/http/verb.h", |
| ), |
| core.move( |
| before = "test/http/verb_test.cpp", |
| after = "google3/third_party/gbmcweb/http/verb_test.cc", |
| ), |
| core.move( |
| before = "http/logging.hpp", |
| after = "google3/third_party/gbmcweb/http/logging.h", |
| ), |
| core.move( |
| before = "http/utility.cpp", |
| after = "google3/third_party/gbmcweb/http/utility.cc", |
| ), |
| core.move( |
| before = "http/utility.hpp", |
| after = "google3/third_party/gbmcweb/http/utility.h", |
| ), |
| core.move( |
| before = "test/http/utility_test.cpp", |
| after = "google3/third_party/gbmcweb/http/utility_test.cc", |
| ), |
| core.move( |
| before = "http/common.hpp", |
| after = "google3/third_party/gbmcweb/http/common.h", |
| ), |
| core.move( |
| before = "config/bmcweb_config.h.in", |
| after = "google3/third_party/gbmcweb/config/bmcweb_config.h.in", |
| ), |
| core.move( |
| before = "config/meson.build", |
| after = "google3/third_party/gbmcweb/config/meson.build", |
| ), |
| core.move( |
| before = "meson_options.txt", |
| after = "google3/third_party/gbmcweb/config/meson_options.txt", |
| ), |
| core.move( |
| before = "redfish-core/include/utils/hex_utils.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils.h", |
| ), |
| core.move( |
| before = "test/redfish-core/include/utils/hex_utils_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/hex_utils_test.cc", |
| ), |
| core.move( |
| before = "include/random.hpp", |
| after = "google3/third_party/gbmcweb/include/random.h", |
| ), |
| core.move( |
| before = "redfish-core/include/utils/ip_utils.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils.h", |
| ), |
| core.move( |
| before = "test/redfish-core/include/utils/ip_utils_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/ip_utils_test.cc", |
| ), |
| core.move( |
| before = "include/sessions.cpp", |
| after = "google3/third_party/gbmcweb/include/sessions.cc", |
| ), |
| core.move( |
| before = "include/sessions.hpp", |
| after = "google3/third_party/gbmcweb/include/sessions.h", |
| ), |
| core.move( |
| before = "http/http_request.cpp", |
| after = "google3/third_party/gbmcweb/http/http_request.cc", |
| ), |
| core.move( |
| before = "http/http_request.hpp", |
| after = "google3/third_party/gbmcweb/http/http_request.h", |
| ), |
| core.move( |
| before = "include/request_stats.hpp", |
| after = "google3/third_party/gbmcweb/include/request_stats.h", |
| ), |
| core.move( |
| before = "src/request_stats.cpp", |
| after = "google3/third_party/gbmcweb/include/request_stats.cc", |
| ), |
| core.move( |
| before = "test/include/request_stats_test.cpp", |
| after = "google3/third_party/gbmcweb/include/request_stats_test.cc", |
| ), |
| core.move( |
| before = "http/http_response.hpp", |
| after = "google3/third_party/gbmcweb/http/http_response.h", |
| ), |
| core.move( |
| before = "http/http_response.cpp", |
| after = "google3/third_party/gbmcweb/http/http_response.cc", |
| ), |
| # core.move( |
| # before = "test/http/http_response_test.cpp", |
| # after = "google3/third_party/gbmcweb/http/http_response_test.cc", |
| # ), |
| core.move( |
| before = "include/async_resp.hpp", |
| after = "google3/third_party/gbmcweb/include/async_resp.h", |
| ), |
| core.move( |
| before = "include/async_resp.cpp", |
| after = "google3/third_party/gbmcweb/include/async_resp.cc", |
| ), |
| core.move( |
| before = "include/dbus_utility.cpp", |
| after = "google3/third_party/gbmcweb/include/dbus_utility.cc", |
| ), |
| core.move( |
| before = "include/dbus_utility.hpp", |
| after = "google3/third_party/gbmcweb/include/dbus_utility.h", |
| ), |
| core.move( |
| before = "test/include/dbus_utility_test.cpp", |
| after = "google3/third_party/gbmcweb/include/dbus_utility_test.cc", |
| ), |
| core.move( |
| before = "http/parsing.hpp", |
| after = "google3/third_party/gbmcweb/http/parsing.h", |
| ), |
| core.move( |
| before = "redfish-core/include/privileges.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/privileges.h", |
| ), |
| core.move( |
| before = "test/redfish-core/include/privileges_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/privileges_test.cc", |
| ), |
| core.move( |
| before = "include/security_headers.hpp", |
| after = "google3/third_party/gbmcweb/include/security_headers.h", |
| ), |
| core.move( |
| before = "http/websocket.hpp", |
| after = "google3/third_party/gbmcweb/http/websocket.h", |
| ), |
| core.move( |
| before = "include/event_service_store.hpp", |
| after = "google3/third_party/gbmcweb/include/event_service_store.h", |
| ), |
| core.move( |
| before = "include/ssl_key_handler.hpp", |
| after = "google3/third_party/gbmcweb/include/ssl_key_handler.h", |
| ), |
| core.move( |
| before = "http/mutual_tls.hpp", |
| after = "google3/third_party/gbmcweb/http/mutual_tls.h", |
| ), |
| core.move( |
| before = "include/persistent_data.hpp", |
| after = "google3/third_party/gbmcweb/include/persistent_data.h", |
| ), |
| core.move( |
| before = "include/json_html_serializer.hpp", |
| after = "google3/third_party/gbmcweb/include/json_html_serializer.h", |
| ), |
| core.move( |
| before = "include/forward_unauthorized.hpp", |
| after = "google3/third_party/gbmcweb/include/forward_unauthorized.h", |
| ), |
| core.move( |
| before = "include/http_utility.hpp", |
| after = "google3/third_party/gbmcweb/include/http_utility.h", |
| ), |
| core.move( |
| before = "test/include/http_utility_test.cpp", |
| after = "google3/third_party/gbmcweb/include/http_utility_test.cc", |
| ), |
| core.move( |
| before = "include/pam_authenticate.hpp", |
| after = "google3/third_party/gbmcweb/include/pam_authenticate.h", |
| ), |
| core.move( |
| before = "include/webroutes.hpp", |
| after = "google3/third_party/gbmcweb/include/webroutes.h", |
| ), |
| core.move( |
| before = "include/authentication.hpp", |
| after = "google3/third_party/gbmcweb/include/authentication.h", |
| ), |
| core.move( |
| before = "include/async_resolve.hpp", |
| after = "google3/third_party/gbmcweb/include/async_resolve.h", |
| ), |
| core.move( |
| before = "http/http_connection.hpp", |
| after = "google3/third_party/gbmcweb/http/http_connection.h", |
| ), |
| core.move( |
| before = "http/http_server.hpp", |
| after = "google3/third_party/gbmcweb/http/http_server.h", |
| ), |
| core.move( |
| before = "http/http_client.hpp", |
| after = "google3/third_party/gbmcweb/http/http_client.h", |
| ), |
| core.move( |
| before = "redfish-core/include/utils/dbus_utils.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/dbus_utils.h", |
| ), |
| core.move( |
| before = "include/source_location.hpp", |
| after = "google3/third_party/gbmcweb/include/source_location.h", |
| ), |
| core.move( |
| before = "include/str_utility.hpp", |
| after = "google3/third_party/gbmcweb/include/str_utility.h", |
| ), |
| core.move( |
| before = "test/include/str_utility_test.cpp", |
| after = "google3/third_party/gbmcweb/include/str_utility_test.cc", |
| ), |
| core.move( |
| before = "redfish-core/include/registries.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/registries.h", |
| ), |
| core.move( |
| before = "redfish-core/src/registries.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/registries.cc", |
| ), |
| core.move( |
| before = "test/redfish-core/include/registries_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/registries_test.cc", |
| ), |
| core.move( |
| before = "redfish-core/include/error_messages.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/error_messages.h", |
| ), |
| core.move( |
| before = "redfish-core/src/error_messages.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/error_messages.cc", |
| ), |
| core.move( |
| before = "test/redfish-core/src/error_messages_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/error_messages_test.cc", |
| ), |
| core.move( |
| before = "http/routing.hpp", |
| after = "google3/third_party/gbmcweb/http/routing.h", |
| ), |
| core.move( |
| before = "http/routing.cpp", |
| after = "google3/third_party/gbmcweb/http/routing.cc", |
| ), |
| core.move( |
| before = "test/http/router_test.cpp", |
| after = "google3/third_party/gbmcweb/http/routing_test.cc", |
| ), |
| core.move( |
| before = "http/app.hpp", |
| after = "google3/third_party/gbmcweb/http/app.h", |
| ), |
| core.move( |
| before = "http/app.cpp", |
| after = "google3/third_party/gbmcweb/http/app.cc", |
| ), |
| core.move( |
| before = "test/http/crow_getroutes_test.cpp", |
| after = "google3/third_party/gbmcweb/http/app_get_routes_test.cc", |
| ), |
| core.move( |
| before = "include/openbmc_dbus_rest.hpp", |
| after = "google3/third_party/gbmcweb/include/openbmc_dbus_rest.h", |
| ), |
| core.move( |
| before = "test/include/openbmc_dbus_rest_test.cpp", |
| after = "google3/third_party/gbmcweb/include/openbmc_dbus_rest_test.cc", |
| ), |
| core.move( |
| before = "http/app_singleton.hpp", |
| after = "google3/third_party/gbmcweb/http/app_singleton.h", |
| ), |
| core.move( |
| before = "http/app_singleton.cpp", |
| after = "google3/third_party/gbmcweb/http/app_singleton.cc", |
| ), |
| core.move( |
| before = "redfish-core/include/redfish_aggregator.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator.h", |
| ), |
| core.move( |
| before = "test/redfish-core/include/redfish_aggregator_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/redfish_aggregator_test.cc", |
| ), |
| core.move( |
| before = "redfish-core/include/query.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/query.h", |
| ), |
| core.move( |
| before = "redfish-core/include/query.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/query.cc", |
| ), |
| core.move( |
| before = "test/redfish-core/include/query_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/query_test.cc", |
| ), |
| core.move( |
| before = "include/human_sort.hpp", |
| after = "google3/third_party/gbmcweb/include/human_sort.h", |
| ), |
| core.move( |
| before = "test/include/human_sort_test.cpp", |
| after = "google3/third_party/gbmcweb/include/human_sort_test.cc", |
| ), |
| core.move( |
| before = "redfish-core/include/utils/json_utils.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.h", |
| ), |
| core.move( |
| before = "redfish-core/src/utils/json_utils.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils.cc", |
| ), |
| core.move( |
| before = "test/redfish-core/include/utils/json_utils_test.cpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/utils/json_utils_test.cc", |
| ), |
| core.move( |
| before = "scripts/parse_registries.py", |
| after = "google3/third_party/gbmcweb/scripts/parse_registries.py", |
| ), |
| core.move( |
| before = "redfish-core/include/registries/base_message_registry.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/registries/base_message_registry.h", |
| ), |
| core.move( |
| before = "redfish-core/include/registries/openbmc_message_registry.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/registries/openbmc_message_registry.h", |
| ), |
| core.move( |
| before = "redfish-core/include/registries/privilege_registry.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/registries/privilege_registry.h", |
| ), |
| core.move( |
| before = "scripts/generate_schema_collections.py", |
| after = "google3/third_party/gbmcweb/scripts/generate_schema_collections.py", |
| ), |
| core.move( |
| before = "scripts/generate_schema_enums.py", |
| after = "google3/third_party/gbmcweb/scripts/generate_schema_enums.py", |
| ), |
| core.move( |
| before = "scripts/update_schemas.py", |
| after = "google3/third_party/gbmcweb/scripts/update_schemas.py", |
| ), |
| core.move( |
| before = "redfish-core/include/aggregation_utils.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/aggregation_utils.h", |
| ), |
| core.move( |
| before = "redfish-core/include/schemas.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/schemas.h", |
| ), |
| core.transform( |
| transformations = [ |
| core.move( |
| before = "redfish-core/include/generated/enums/${file}.hpp", |
| after = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h", |
| regex_groups = {"file": ".*"}, |
| ), |
| ], |
| reversal = [ |
| core.move( |
| before = "google3/third_party/gbmcweb/redfish_core/include/generated/enums/${file}.h", |
| after = "redfish-core/include/generated/enums/${file}.hpp", |
| regex_groups = {"file": ".*"}, |
| ), |
| ], |
| ), |
| core.move( |
| before = "LICENSE", |
| after = "google3/third_party/gbmcweb/LICENSE", |
| ), |
| ######################## |
| # Check for leaks after last transform |
| ######################## |
| leakr.check(), |
| ] |
| |
| ######################## |
| # Workflows |
| ######################## |
| piper_sot_to_gerrit( |
| name_prefix = "gbmcweb", |
| google3_files = _google3_files_for_origin, |
| default_author = "gBMC Team <gbmc-core@google.com>", |
| allowed_authors = _allowed_authors, |
| contact_email = "gbmc-core+copybara@google.com", |
| url = "rpc://gbmc/gbmcweb", |
| branch = "master", |
| transformations = _transformations, |
| owner_mdb = "gbmc-git-approvers", |
| ci_labels = ["Presubmit"], |
| common_flags = { |
| # "--ignore-noop": [], |
| "--read-config-from-change": [], |
| }, |
| git_files = _git_files_for_destination, |
| metadata_scrubber = message_scrub_google_block(), |
| ) |
| |
| # Workflow for moving changes from gerrit to google3 |
| core.workflow( |
| name = "gbmcweb_gob_to_piper_reverse_workflow", |
| origin = git.gerrit_origin( |
| url = "rpc://gbmc/gbmcweb", |
| branch = "master", |
| import_wip_changes = False, |
| ), |
| origin_files = _git_files_for_origin, |
| destination = piper.destination( |
| mode = "AUTO_SUBMIT", |
| reviewers = [ |
| "haoooamazing@google.com", |
| "nanzhou@google.com", |
| ], |
| cc = [ |
| "haoooamazing@google.com", |
| ], |
| ), |
| destination_files = _google3_files_for_destination, |
| mode = "CHANGE_REQUEST", |
| # cannot pass through since vendor will not have access to google3 |
| authoring = authoring.allowed( |
| default = "gBMC Team <gbmc-core@google.com>", |
| allowlist = [ |
| "haoooamazing", |
| ], |
| ), |
| transformations = _reverse_transformations, |
| ) |
| |
| # automate reverse workflow |
| service.migration( |
| migration_name = "gbmcweb_gob_to_piper_reverse_workflow", |
| owner_mdb = "gbmc-git-approvers", |
| contact_email = "gbmc-core+copybara@google.com", |
| cns_mdb = "copybara-freebie", |
| notifications = service.notifications( |
| on_error = [service.email(address = "gbmc-core+copybara@google.com")], |
| ), |
| state = "ACTIVE", |
| ) |
| |
| # feedback from critique to gerrit |
| critique_findings_to_gerrit( |
| name = "gbmcweb_piper_sot_findings_to_gerrit", |
| description = "Post presubmit TAP findings from Critique to the original Gerrit review", |
| categories = [ |
| "Presubmit:Tests:CheckGbmcwebTap", |
| "Presubmit:Tests:CheckMilotic", |
| "Presubmit:Tests:CheckMiloticAsan", |
| "Presubmit:Tests:CheckMiloticMsan", |
| "Presubmit:Tests:CheckMiloticTsan", |
| ], |
| gob_url = "rpc://gbmc/gbmcweb", |
| label = "Google-Verified", |
| checker = leakr.check(), |
| piper_files = _google3_files_for_destination, |
| ) |
| |
| # automate feedback (critique -> gerrit) for reverse workflow (gob->piper) |
| service.migration( |
| migration_name = "gbmcweb_piper_sot_findings_to_gerrit", |
| owner_mdb = "gbmc-git-approvers", |
| contact_email = "gbmc-core+copybara@google.com", |
| cns_mdb = "copybara-freebie", |
| notifications = service.notifications( |
| on_error = [service.email(address = "gbmc-core+copybara@google.com")], |
| ), |
| state = "ACTIVE", |
| ) |