diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml
index 288e39489..81807f7c2 100644
--- a/.github/.OwlBot.lock.yaml
+++ b/.github/.OwlBot.lock.yaml
@@ -1,4 +1,4 @@
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,4 +13,4 @@
# limitations under the License.
docker:
image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest
- digest: sha256:9de537d592b60e5eac73b374a28263969bae91ecdb29b445e894576fbf54851c
+ digest: sha256:d5da32501662e4e53365220cc14cfb1d3b9446585397d57dac50171d92556ae7
diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in
index a5010f77d..b19a8dbfd 100644
--- a/.kokoro/requirements.in
+++ b/.kokoro/requirements.in
@@ -1,34 +1,6 @@
-gcp-docuploader==0.6.3
-google-crc32c==1.3.0
-googleapis-common-protos==1.56.3
-gcp-releasetool==1.9.1
-cryptography==38.0.3
-cachetools==4.2.4
-cffi==1.15.1
-jeepney==0.7.1
-jinja2==3.0.3
-markupsafe==2.0.1
-keyring==23.4.1
-packaging==21.3
-protobuf==3.19.5
-pyjwt==2.4.0
-pyparsing==3.0.9
-pycparser==2.21
-pyperclip==1.8.2
-python-dateutil==2.8.2
-requests==2.27.1
-certifi==2022.12.7
-importlib-metadata==4.8.3
-zipp==3.6.0
-google_api_core==2.8.2
-google-cloud-storage==2.0.0
-google-resumable-media==2.3.3
-google-cloud-core==2.3.1
-typing-extensions==4.1.1
-urllib3==1.26.12
-zipp==3.6.0
-rsa==4.9
-six==1.16.0
-attrs==22.1.0
-google-auth==2.14.1
-idna==3.4
\ No newline at end of file
+gcp-docuploader
+gcp-releasetool
+wheel
+setuptools
+typing-extensions
+click<8.1.0
\ No newline at end of file
diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt
index 15c404aa5..4895c9631 100644
--- a/.kokoro/requirements.txt
+++ b/.kokoro/requirements.txt
@@ -1,27 +1,21 @@
#
-# This file is autogenerated by pip-compile with python 3.10
-# To update, run:
+# This file is autogenerated by pip-compile with Python 3.9
+# by the following command:
#
-# pip-compile --generate-hashes requirements.in
+# pip-compile --allow-unsafe --generate-hashes requirements.in
#
attrs==22.1.0 \
--hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \
--hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c
- # via
- # -r requirements.in
- # gcp-releasetool
+ # via gcp-releasetool
cachetools==4.2.4 \
--hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \
--hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1
- # via
- # -r requirements.in
- # google-auth
+ # via google-auth
certifi==2022.12.7 \
--hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \
--hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
- # via
- # -r requirements.in
- # requests
+ # via requests
cffi==1.15.1 \
--hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
--hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \
@@ -87,9 +81,7 @@ cffi==1.15.1 \
--hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \
--hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \
--hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0
- # via
- # -r requirements.in
- # cryptography
+ # via cryptography
charset-normalizer==2.0.12 \
--hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
--hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
@@ -98,6 +90,7 @@ click==8.0.4 \
--hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \
--hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb
# via
+ # -r requirements.in
# gcp-docuploader
# gcp-releasetool
colorlog==6.7.0 \
@@ -132,12 +125,11 @@ cryptography==38.0.3 \
--hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \
--hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722
# via
- # -r requirements.in
# gcp-releasetool
# secretstorage
-gcp-docuploader==0.6.3 \
- --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \
- --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b
+gcp-docuploader==0.6.4 \
+ --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \
+ --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf
# via -r requirements.in
gcp-releasetool==1.9.1 \
--hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \
@@ -147,13 +139,12 @@ google-api-core==2.8.2 \
--hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \
--hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50
# via
- # -r requirements.in
# google-cloud-core
# google-cloud-storage
google-auth==2.14.1 \
+ --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \
--hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016
# via
- # -r requirements.in
# gcp-releasetool
# google-api-core
# google-cloud-core
@@ -161,15 +152,11 @@ google-auth==2.14.1 \
google-cloud-core==2.3.1 \
--hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \
--hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53
- # via
- # -r requirements.in
- # google-cloud-storage
+ # via google-cloud-storage
google-cloud-storage==2.0.0 \
--hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \
--hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7
- # via
- # -r requirements.in
- # gcp-docuploader
+ # via gcp-docuploader
google-crc32c==1.3.0 \
--hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \
--hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \
@@ -214,52 +201,37 @@ google-crc32c==1.3.0 \
--hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \
--hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \
--hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3
- # via
- # -r requirements.in
- # google-resumable-media
+ # via google-resumable-media
google-resumable-media==2.3.3 \
--hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \
--hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5
- # via
- # -r requirements.in
- # google-cloud-storage
+ # via google-cloud-storage
googleapis-common-protos==1.56.3 \
--hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \
--hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461
- # via
- # -r requirements.in
- # google-api-core
+ # via google-api-core
idna==3.4 \
--hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \
--hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2
- # via
- # -r requirements.in
- # requests
+ # via requests
importlib-metadata==4.8.3 \
--hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \
--hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668
+ # via keyring
+jeepney==0.8.0 \
+ --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \
+ --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755
# via
- # -r requirements.in
- # keyring
-jeepney==0.7.1 \
- --hash=sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac \
- --hash=sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f
- # via
- # -r requirements.in
# keyring
# secretstorage
jinja2==3.0.3 \
--hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \
--hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7
- # via
- # -r requirements.in
- # gcp-releasetool
+ # via gcp-releasetool
keyring==23.4.1 \
--hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \
--hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55
- # via
- # -r requirements.in
- # gcp-releasetool
+ # via gcp-releasetool
markupsafe==2.0.1 \
--hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \
--hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \
@@ -330,49 +302,39 @@ markupsafe==2.0.1 \
--hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \
--hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \
--hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872
- # via
- # -r requirements.in
- # jinja2
+ # via jinja2
packaging==21.3 \
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
+ # via gcp-releasetool
+protobuf==3.20.2 \
+ --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \
+ --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \
+ --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \
+ --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \
+ --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \
+ --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \
+ --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \
+ --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \
+ --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \
+ --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \
+ --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \
+ --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \
+ --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \
+ --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \
+ --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \
+ --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \
+ --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \
+ --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \
+ --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \
+ --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \
+ --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \
+ --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0
# via
- # -r requirements.in
- # gcp-releasetool
-protobuf==3.19.5 \
- --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \
- --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \
- --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \
- --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \
- --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \
- --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \
- --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \
- --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \
- --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \
- --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \
- --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \
- --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \
- --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \
- --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \
- --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \
- --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \
- --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \
- --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \
- --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \
- --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \
- --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \
- --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \
- --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \
- --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \
- --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \
- --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de
- # via
- # -r requirements.in
# gcp-docuploader
# gcp-releasetool
# google-api-core
# google-cloud-storage
- # googleapis-common-protos
pyasn1==0.4.8 \
--hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \
--hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba
@@ -386,71 +348,61 @@ pyasn1-modules==0.2.8 \
pycparser==2.21 \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
- # via
- # -r requirements.in
- # cffi
+ # via cffi
pyjwt==2.4.0 \
--hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \
--hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba
- # via
- # -r requirements.in
- # gcp-releasetool
+ # via gcp-releasetool
pyparsing==3.0.9 \
--hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
--hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc
- # via
- # -r requirements.in
- # packaging
+ # via packaging
pyperclip==1.8.2 \
--hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57
- # via
- # -r requirements.in
- # gcp-releasetool
+ # via gcp-releasetool
python-dateutil==2.8.2 \
--hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
--hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9
- # via
- # -r requirements.in
- # gcp-releasetool
+ # via gcp-releasetool
requests==2.27.1 \
--hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \
--hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d
# via
- # -r requirements.in
# gcp-releasetool
# google-api-core
# google-cloud-storage
rsa==4.9 \
--hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \
--hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21
- # via
- # -r requirements.in
- # google-auth
+ # via google-auth
secretstorage==3.3.3 \
--hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \
--hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99
# via keyring
+setuptools==65.6.3 \
+ --hash=sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54 \
+ --hash=sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75
+ # via -r requirements.in
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
# via
- # -r requirements.in
# gcp-docuploader
# google-auth
# python-dateutil
-typing-extensions==4.1.1 \
- --hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \
- --hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2
+typing-extensions==4.4.0 \
+ --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \
+ --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e
# via -r requirements.in
urllib3==1.26.12 \
--hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \
--hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997
- # via
- # -r requirements.in
- # requests
+ # via requests
+wheel==0.38.4 \
+ --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \
+ --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8
+ # via -r requirements.in
zipp==3.6.0 \
--hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \
--hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc
- # via
- # -r requirements.in
- # importlib-metadata
+ # via importlib-metadata
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d8965cc05..8b6ca3743 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [2.1.3](https://github.com/googleapis/google-api-java-client/compare/v2.1.2...v2.1.3) (2023-01-20)
+
+
+### Bug Fixes
+
+* Media upload to have applicationName as User-Agent ([#2227](https://github.com/googleapis/google-api-java-client/issues/2227)) ([2595de0](https://github.com/googleapis/google-api-java-client/commit/2595de042b95fff8c6acc67f3427c0b8e4eee3bc))
+
## [2.1.2](https://github.com/googleapis/google-api-java-client/compare/v2.1.1...v2.1.2) (2023-01-03)
diff --git a/google-api-client-android/pom.xml b/google-api-client-android/pom.xml
index 99fbe5f3f..28e3cced4 100644
--- a/google-api-client-android/pom.xml
+++ b/google-api-client-android/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-android
diff --git a/google-api-client-appengine/pom.xml b/google-api-client-appengine/pom.xml
index ea6ec4215..50696f697 100644
--- a/google-api-client-appengine/pom.xml
+++ b/google-api-client-appengine/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-appengine
diff --git a/google-api-client-assembly/pom.xml b/google-api-client-assembly/pom.xml
index 327335e63..7209a8874 100644
--- a/google-api-client-assembly/pom.xml
+++ b/google-api-client-assembly/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
com.google.api-client
diff --git a/google-api-client-bom/pom.xml b/google-api-client-bom/pom.xml
index 75e975003..a1a71c441 100644
--- a/google-api-client-bom/pom.xml
+++ b/google-api-client-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.api-client
google-api-client-bom
- 2.1.2
+ 2.1.3
pom
Google API Client Library for Java BOM
@@ -63,53 +63,53 @@
com.google.api-client
google-api-client
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-android
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-appengine
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-assembly
- 2.1.2
+ 2.1.3
pom
com.google.api-client
google-api-client-gson
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-jackson2
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-java6
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-protobuf
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-servlet
- 2.1.2
+ 2.1.3
com.google.api-client
google-api-client-xml
- 2.1.2
+ 2.1.3
diff --git a/google-api-client-gson/pom.xml b/google-api-client-gson/pom.xml
index 8c8dd5c07..0307057c2 100644
--- a/google-api-client-gson/pom.xml
+++ b/google-api-client-gson/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-gson
diff --git a/google-api-client-jackson2/pom.xml b/google-api-client-jackson2/pom.xml
index a7a7c4b2c..88450cde4 100644
--- a/google-api-client-jackson2/pom.xml
+++ b/google-api-client-jackson2/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-jackson2
diff --git a/google-api-client-java6/pom.xml b/google-api-client-java6/pom.xml
index 08dfa99cf..9691f70e0 100644
--- a/google-api-client-java6/pom.xml
+++ b/google-api-client-java6/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-java6
diff --git a/google-api-client-protobuf/pom.xml b/google-api-client-protobuf/pom.xml
index 1f10ce4c6..fd9389872 100644
--- a/google-api-client-protobuf/pom.xml
+++ b/google-api-client-protobuf/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-protobuf
diff --git a/google-api-client-servlet/pom.xml b/google-api-client-servlet/pom.xml
index 5ad7b47f7..fc0131d28 100644
--- a/google-api-client-servlet/pom.xml
+++ b/google-api-client-servlet/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-servlet
diff --git a/google-api-client-xml/pom.xml b/google-api-client-xml/pom.xml
index 548cbb9e8..5b4b4fc95 100644
--- a/google-api-client-xml/pom.xml
+++ b/google-api-client-xml/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client-xml
diff --git a/google-api-client/pom.xml b/google-api-client/pom.xml
index 477e89299..18a202e64 100644
--- a/google-api-client/pom.xml
+++ b/google-api-client/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
../pom.xml
google-api-client
diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java
index 3b8d3cc3d..cd6d12b65 100644
--- a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java
+++ b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java
@@ -351,15 +351,42 @@ public final MediaHttpUploader getMediaHttpUploader() {
*/
protected final void initializeMediaUpload(AbstractInputStreamContent mediaContent) {
HttpRequestFactory requestFactory = abstractGoogleClient.getRequestFactory();
+ String applicationName = abstractGoogleClient.getApplicationName();
+ HttpRequestInitializer requestInitializer =
+ mediaUploadRequestUserAgentInitializer(applicationName, requestFactory.getInitializer());
this.uploader =
- new MediaHttpUploader(
- mediaContent, requestFactory.getTransport(), requestFactory.getInitializer());
+ new MediaHttpUploader(mediaContent, requestFactory.getTransport(), requestInitializer);
this.uploader.setInitiationRequestMethod(requestMethod);
if (httpContent != null) {
this.uploader.setMetadata(httpContent);
}
}
+ private static HttpRequestInitializer mediaUploadRequestUserAgentInitializer(
+ final String applicationName, final HttpRequestInitializer originalInitializer) {
+ if (applicationName == null) {
+ return originalInitializer;
+ }
+ if (originalInitializer == null) {
+ return new HttpRequestInitializer() {
+ @Override
+ public void initialize(HttpRequest request) {
+ HttpHeaders headers = request.getHeaders();
+ headers.setUserAgent(applicationName);
+ }
+ };
+ } else {
+ return new HttpRequestInitializer() {
+ @Override
+ public void initialize(HttpRequest request) throws IOException {
+ originalInitializer.initialize(request);
+ HttpHeaders headers = request.getHeaders();
+ headers.setUserAgent(applicationName);
+ }
+ };
+ }
+ }
+
/** Returns the media HTTP downloader or {@code null} for none. */
public final MediaHttpDownloader getMediaHttpDownloader() {
return downloader;
diff --git a/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientTest.java b/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientTest.java
index 2164af792..7d2ff6383 100644
--- a/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientTest.java
+++ b/google-api-client/src/test/java/com/google/api/client/googleapis/services/AbstractGoogleClientTest.java
@@ -16,6 +16,7 @@
import com.google.api.client.googleapis.testing.services.MockGoogleClient;
import com.google.api.client.googleapis.testing.services.MockGoogleClientRequest;
import com.google.api.client.http.EmptyContent;
+import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpExecuteInterceptor;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestInitializer;
@@ -33,6 +34,8 @@
import com.google.api.client.util.Key;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
import junit.framework.TestCase;
/**
@@ -132,6 +135,7 @@ private static class MediaTransport extends MockHttpTransport {
int bytesUploaded;
int contentLength = MediaHttpUploader.DEFAULT_CHUNK_SIZE;
boolean contentLengthNotSpecified;
+ List userAgentsRecorded = new ArrayList<>();
protected MediaTransport() {}
@@ -169,6 +173,7 @@ public LowLevelHttpResponse execute() {
String expectedContentRange = "bytes " + bytesRange + "/" + contentLength;
assertEquals(expectedContentRange, getFirstHeaderValue("Content-Range"));
bytesUploaded += MediaHttpUploader.DEFAULT_CHUNK_SIZE;
+ userAgentsRecorded.add(getFirstHeaderValue("User-Agent"));
if (bytesUploaded == contentLength) {
// Return 200 since the upload is complete.
@@ -207,6 +212,32 @@ public void testMediaUpload() throws Exception {
assertEquals("somevalue", result.foo);
}
+ public void testMediaUpload_applicationNameAsUserAgent() throws Exception {
+ MediaTransport fakeTransport = new MediaTransport();
+ String applicationName = "Foo/1.0 (BAR:Baz/1.0) XYZ/1.0";
+ AbstractGoogleClient client =
+ new MockGoogleClient.Builder(
+ fakeTransport, TEST_RESUMABLE_REQUEST_URL, "", JSON_OBJECT_PARSER, null)
+ .setApplicationName(applicationName)
+ .build();
+ InputStream is = new ByteArrayInputStream(new byte[MediaHttpUploader.DEFAULT_CHUNK_SIZE]);
+ InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is);
+ mediaContent.setLength(MediaHttpUploader.DEFAULT_CHUNK_SIZE);
+ MockGoogleClientRequest rq =
+ new MockGoogleClientRequest(client, "POST", "", null, A.class);
+
+ rq.initializeMediaUpload(mediaContent);
+ MediaHttpUploader mediaHttpUploader = rq.getMediaHttpUploader();
+ mediaHttpUploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL));
+
+ assertEquals(1, fakeTransport.userAgentsRecorded.size());
+ for (String userAgent : fakeTransport.userAgentsRecorded) {
+ assertTrue(
+ "UserAgent header does not have expected value in requests",
+ userAgent.contains(applicationName));
+ }
+ }
+
private static class GZipCheckerInitializer implements HttpRequestInitializer {
private boolean gzipDisabled;
diff --git a/pom.xml b/pom.xml
index ecf8edabc..5dfd16ffc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.google.api-client
google-api-client-parent
- 2.1.2
+ 2.1.3
pom
Parent for the Google API Client Library for Java
The Google APIs Client Library for Java is a Java client library
@@ -308,7 +308,7 @@
org.apache.maven.plugins
maven-checkstyle-plugin
- 3.2.0
+ 3.2.1
org.codehaus.mojo
@@ -328,7 +328,7 @@
org.apache.maven.plugins
maven-project-info-reports-plugin
- 3.4.1
+ 3.4.2
org.apache.maven.plugins
@@ -511,7 +511,7 @@
1.34.1
3.0.2
2.8.6
- 3.21.9
+ 3.21.12
31.1-jre
2.0.10
1.1.4c
@@ -521,7 +521,7 @@
4.0.3
2.5
false
- 2.10
+ 2.10.1
diff --git a/renovate.json b/renovate.json
index 68e63ff15..d830b8c4e 100644
--- a/renovate.json
+++ b/renovate.json
@@ -2,6 +2,7 @@
"extends": [
"config:base"
],
+ "ignorePaths": [".kokoro/requirements.txt"],
"packageRules": [
{
"packagePatterns": ["^com.google.appengine:appengine-"],
diff --git a/versions.txt b/versions.txt
index 60034d20d..aaa6b477f 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,4 +1,4 @@
# Format:
# module:released-version:current-version
-google-api-client:2.1.2:2.1.2
+google-api-client:2.1.3:2.1.3