Hello community,

here is the log from the commit of package python-pygerrit2 for 
openSUSE:Factory checked in at 2020-08-10 15:02:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pygerrit2 (Old)
 and      /work/SRC/openSUSE:Factory/.python-pygerrit2.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pygerrit2"

Mon Aug 10 15:02:40 2020 rev:4 rq:825260 version:2.0.13

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pygerrit2/python-pygerrit2.changes        
2020-03-21 00:02:33.941137641 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-pygerrit2.new.3399/python-pygerrit2.changes  
    2020-08-10 15:03:30.884175242 +0200
@@ -1,0 +2,9 @@
+Fri Aug  7 15:04:44 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- update to 2.0.13
+  * Return result from review() method
+  * Support explicit anonymous access
+  * Debug log when .netrc could not be parsed
+  * Remove unnecessary string concatenation
+
+-------------------------------------------------------------------

Old:
----
  pygerrit2-2.0.10.tar.gz

New:
----
  pygerrit2-2.0.13.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pygerrit2.spec ++++++
--- /var/tmp/diff_new_pack.KyrVLW/_old  2020-08-10 15:03:35.056177444 +0200
+++ /var/tmp/diff_new_pack.KyrVLW/_new  2020-08-10 15:03:35.056177444 +0200
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-pygerrit2
-Version:        2.0.10
+Version:        2.0.13
 Release:        0
 Summary:        Client library for interacting with Gerrit code review
 License:        MIT
@@ -26,16 +26,13 @@
 URL:            https://github.com/dpursehouse/pygerrit2
 Source:         
https://files.pythonhosted.org/packages/source/p/pygerrit2/pygerrit2-%{version}.tar.gz
 BuildRequires:  %{python_module devel}
-BuildRequires:  %{python_module pbr}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
-Requires:       python-importlib-metadata >= 0.22
 Requires:       python-pbr >= 0.8.0
-Requires:       python-requests >= 2.10.0
+Requires:       python-requests >= 2.20.0
 BuildArch:      noarch
 # SECTION test requirements
-BuildRequires:  %{python_module importlib-metadata >= 0.22}
 BuildRequires:  %{python_module mock}
 BuildRequires:  %{python_module pbr >= 0.8.0}
 BuildRequires:  %{python_module requests >= 2.20.0}

++++++ pygerrit2-2.0.10.tar.gz -> pygerrit2-2.0.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/ChangeLog 
new/pygerrit2-2.0.13/ChangeLog
--- old/pygerrit2-2.0.10/ChangeLog      2020-02-16 08:23:10.000000000 +0100
+++ new/pygerrit2-2.0.13/ChangeLog      2020-06-19 05:05:14.000000000 +0200
@@ -1,6 +1,50 @@
 CHANGES
 =======
 
+2.0.13
+------
+
+* Update livetests to use latest versions
+* Bump requests from 2.23.0 to 2.24.0
+* Return result from review() method
+* Use latest version in live tests
+* Bump testcontainers from 3.0.2 to 3.0.3
+* Bump importlib-metadata from 1.6.0 to 1.6.1
+* Add live tests against 3.2.0
+* Run live test with 2.16.20
+* Bump pytest from 5.4.2 to 5.4.3
+* Use latest releases in live tests
+* Bump testcontainers from 3.0.0 to 3.0.2
+* Bump pytest from 5.4.1 to 5.4.2
+* Bump testcontainers from 2.6.0 to 3.0.0
+* Drop livetests against 2.14.x and 2.15.x
+* Run livetests against 2.16.18
+* Bump pbr from 5.4.4 to 5.4.5
+* Run livetests against 3.1.4
+* Bump importlib-metadata from 1.5.2 to 1.6.0
+
+2.0.12
+------
+
+* Fix anonymous auth
+* Remove remnants of 2.13 auth from livetests
+
+2.0.11
+------
+
+* Run livetests with 2.16.17 and 3.0.8
+* Bump importlib-metadata from 1.5.0 to 1.5.2
+* Fix typo in README
+* Bump pytest from 5.4.0 to 5.4.1
+* Support explicit anonymous access
+* Debug log when .netrc could not be parsed
+* Remove unnecessary string concatenation
+* Minor update in README
+* Bump pytest from 5.3.5 to 5.4.0
+* Bump mock from 4.0.1 to 4.0.2
+* Bump testcontainers from 2.5 to 2.6.0
+* Bump requests from 2.22.0 to 2.23.0
+
 2.0.10
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/PKG-INFO 
new/pygerrit2-2.0.13/PKG-INFO
--- old/pygerrit2-2.0.10/PKG-INFO       2020-02-16 08:23:10.563132300 +0100
+++ new/pygerrit2-2.0.13/PKG-INFO       2020-06-19 05:05:14.945085000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pygerrit2
-Version: 2.0.10
+Version: 2.0.13
 Summary: Client library for interacting with Gerrit's REST API
 Home-page: https://github.com/dpursehouse/pygerrit2
 Author: David Pursehouse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/Pipfile new/pygerrit2-2.0.13/Pipfile
--- old/pygerrit2-2.0.10/Pipfile        2020-02-11 04:56:06.000000000 +0100
+++ new/pygerrit2-2.0.13/Pipfile        2020-06-09 04:54:58.000000000 +0200
@@ -12,7 +12,7 @@
 pbr = "*"
 pydocstyle = "*"
 flake8 = "*"
-importlib_metadata = {version = "==1.5.0", markers = "python_version < 
'3.8.0'"}
+importlib_metadata = {version = "==1.6.1", markers = "python_version < 
'3.8.0'"}
 pyflakes = "*"
 pytest = "*"
 testcontainers = "*"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/Pipfile.lock 
new/pygerrit2-2.0.13/Pipfile.lock
--- old/pygerrit2-2.0.10/Pipfile.lock   2020-02-11 04:56:06.000000000 +0100
+++ new/pygerrit2-2.0.13/Pipfile.lock   2020-06-18 11:32:20.000000000 +0200
@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": 
"c5026f9ed8a29188733301139d200440923bb38312cf8010aa01c005abdc4ae1"
+            "sha256": 
"b5187e91c06b5548b71003a7945fd64715aab4674b9cb7fe382736513930d584"
         },
         "pipfile-spec": 6,
         "requires": {},
@@ -16,10 +16,10 @@
     "default": {
         "certifi": {
             "hashes": [
-                
"sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3",
-                
"sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f"
+                
"sha256:5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1",
+                
"sha256:9cd41137dc19af6a5e03b630eefe7d1f458d964d406342dd3edf625839b944cc"
             ],
-            "version": "==2019.11.28"
+            "version": "==2020.4.5.2"
         },
         "chardet": {
             "hashes": [
@@ -34,41 +34,41 @@
         },
         "idna": {
             "hashes": [
-                
"sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
-                
"sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
+                
"sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb",
+                
"sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"
             ],
-            "version": "==2.8"
+            "version": "==2.9"
         },
         "pbr": {
             "hashes": [
-                
"sha256:139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b",
-                
"sha256:61aa52a0f18b71c5cc58232d2cf8f8d09cd67fcad60b742a60124cb8d6951488"
+                
"sha256:07f558fece33b05caf857474a366dfcc00562bca13dd8b47b2b3e22d9f9bf55c",
+                
"sha256:579170e23f8e0c2f24b0de612f71f648eccb79fb1322c814ae6b3c07b5ba23e8"
             ],
-            "version": "==5.4.4"
+            "version": "==5.4.5"
         },
         "requests": {
             "hashes": [
-                
"sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4",
-                
"sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31"
+                
"sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b",
+                
"sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"
             ],
             "index": "pypi",
-            "version": "==2.22.0"
+            "version": "==2.24.0"
         },
         "urllib3": {
             "hashes": [
-                
"sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc",
-                
"sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc"
+                
"sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
+                
"sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
             ],
-            "version": "==1.25.8"
+            "version": "==1.25.9"
         }
     },
     "develop": {
         "appdirs": {
             "hashes": [
-                
"sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92",
-                
"sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"
+                
"sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41",
+                
"sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"
             ],
-            "version": "==1.4.3"
+            "version": "==1.4.4"
         },
         "attrs": {
             "hashes": [
@@ -95,10 +95,10 @@
         },
         "certifi": {
             "hashes": [
-                
"sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3",
-                
"sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f"
+                
"sha256:5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1",
+                
"sha256:9cd41137dc19af6a5e03b630eefe7d1f458d964d406342dd3edf625839b944cc"
             ],
-            "version": "==2019.11.28"
+            "version": "==2020.4.5.2"
         },
         "chardet": {
             "hashes": [
@@ -109,10 +109,10 @@
         },
         "click": {
             "hashes": [
-                
"sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13",
-                
"sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
+                
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
+                
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
             ],
-            "version": "==7.0"
+            "version": "==7.1.2"
         },
         "colorama": {
             "hashes": [
@@ -123,17 +123,24 @@
         },
         "crayons": {
             "hashes": [
-                
"sha256:50e5fa729d313e2c607ae8bf7b53bb487652e10bd8e7a1e08c4bc8bf62755ffc",
-                
"sha256:8c9e4a3a607bc10e9a9140d496ecd16c6805088dd16c852c378f1f1d5db7aeb6"
+                
"sha256:4066ec91fecd6b86755d3f083943815e5958688aecdfae54b24443f190ba6950",
+                
"sha256:dcb85b87aa03bb65bd3a073d012796b024cabeb086033e616759e2abb769440b"
             ],
-            "version": "==0.3.0"
+            "version": "==0.3.1"
+        },
+        "deprecation": {
+            "hashes": [
+                
"sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff",
+                
"sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a"
+            ],
+            "version": "==2.1.0"
         },
         "docker": {
             "hashes": [
-                
"sha256:1c2ddb7a047b2599d1faec00889561316c674f7099427b9c51e8cb804114b553",
-                
"sha256:ddae66620ab5f4bce769f64bcd7934f880c8abe6aa50986298db56735d0f722e"
+                
"sha256:380a20d38fbfaa872e96ee4d0d23ad9beb0f9ed57ff1c30653cbeb0c9c0964f2",
+                
"sha256:672f51aead26d90d1cfce84a87e6f71fca401bbc2a6287be18603583620a28ba"
             ],
-            "version": "==4.2.0"
+            "version": "==4.2.1"
         },
         "e1839a8": {
             "editable": true,
@@ -156,19 +163,19 @@
         },
         "idna": {
             "hashes": [
-                
"sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
-                
"sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
+                
"sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb",
+                
"sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"
             ],
-            "version": "==2.8"
+            "version": "==2.9"
         },
         "importlib-metadata": {
             "hashes": [
-                
"sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302",
-                
"sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"
+                
"sha256:0505dd08068cfec00f53a74a0ad927676d7757da81b7436a6eefe4c7cf75c545",
+                
"sha256:15ec6c0fd909e893e3a08b3a7c76ecb149122fb14b7efe1199ddd4c7c57ea958"
             ],
             "index": "pypi",
             "markers": "python_version < '3.8.0'",
-            "version": "==1.5.0"
+            "version": "==1.6.1"
         },
         "mccabe": {
             "hashes": [
@@ -179,39 +186,39 @@
         },
         "mock": {
             "hashes": [
-                
"sha256:2a572b715f09dd2f0a583d8aeb5bb67d7ed7a8fd31d193cf1227a99c16a67bc3",
-                
"sha256:5e48d216809f6f393987ed56920305d8f3c647e6ed35407c1ff2ecb88a9e1151"
+                
"sha256:3f9b2c0196c60d21838f307f5825a7b86b678cedc58ab9e50a8988187b4d81e0",
+                
"sha256:dd33eb70232b6118298d516bbcecd26704689c386594f0f3c4f13867b2c56f72"
             ],
             "index": "pypi",
-            "version": "==4.0.1"
+            "version": "==4.0.2"
         },
         "more-itertools": {
             "hashes": [
-                
"sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c",
-                
"sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"
+                
"sha256:68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5",
+                
"sha256:b78134b2063dd214000685165d81c154522c3ee0a1c0d4d113c80361c234c5a2"
             ],
-            "version": "==8.2.0"
+            "version": "==8.4.0"
         },
         "packaging": {
             "hashes": [
-                
"sha256:170748228214b70b672c581a3dd610ee51f733018650740e98c7df862a583f73",
-                
"sha256:e665345f9eef0c621aa0bf2f8d78cf6d21904eef16a93f020240b704a57f1334"
+                
"sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8",
+                
"sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"
             ],
-            "version": "==20.1"
+            "version": "==20.4"
         },
         "pathspec": {
             "hashes": [
-                
"sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424",
-                
"sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96"
+                
"sha256:7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0",
+                
"sha256:da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061"
             ],
-            "version": "==0.7.0"
+            "version": "==0.8.0"
         },
         "pbr": {
             "hashes": [
-                
"sha256:139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b",
-                
"sha256:61aa52a0f18b71c5cc58232d2cf8f8d09cd67fcad60b742a60124cb8d6951488"
+                
"sha256:07f558fece33b05caf857474a366dfcc00562bca13dd8b47b2b3e22d9f9bf55c",
+                
"sha256:579170e23f8e0c2f24b0de612f71f648eccb79fb1322c814ae6b3c07b5ba23e8"
             ],
-            "version": "==5.4.4"
+            "version": "==5.4.5"
         },
         "pluggy": {
             "hashes": [
@@ -222,10 +229,10 @@
         },
         "py": {
             "hashes": [
-                
"sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa",
-                
"sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"
+                
"sha256:a673fa23d7000440cc885c17dbd34fafcb7d7a6e230b29f6766400de36a33c44",
+                
"sha256:f3b3a4c36512a4c4f024041ab51866f11761cc169670204b235f6b20523d4e6b"
             ],
-            "version": "==1.8.1"
+            "version": "==1.8.2"
         },
         "pycodestyle": {
             "hashes": [
@@ -252,59 +259,59 @@
         },
         "pyparsing": {
             "hashes": [
-                
"sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f",
-                
"sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec"
+                
"sha256:67199f0c41a9c702154efb0e7a8cc08accf830eb003b4d9fa42c4059002e2492",
+                
"sha256:700d17888d441604b0bd51535908dcb297561b040819cccde647a92439db5a2a"
             ],
-            "version": "==2.4.6"
+            "version": "==3.0.0a1"
         },
         "pytest": {
             "hashes": [
-                
"sha256:0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d",
-                
"sha256:ff615c761e25eb25df19edddc0b970302d2a9091fbce0e7213298d85fb61fef6"
+                
"sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1",
+                
"sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"
             ],
             "index": "pypi",
-            "version": "==5.3.5"
+            "version": "==5.4.3"
         },
         "regex": {
             "hashes": [
-                
"sha256:07b39bf943d3d2fe63d46281d8504f8df0ff3fe4c57e13d1656737950e53e525",
-                
"sha256:0932941cdfb3afcbc26cc3bcf7c3f3d73d5a9b9c56955d432dbf8bbc147d4c5b",
-                
"sha256:0e182d2f097ea8549a249040922fa2b92ae28be4be4895933e369a525ba36576",
-                
"sha256:10671601ee06cf4dc1bc0b4805309040bb34c9af423c12c379c83d7895622bb5",
-                
"sha256:23e2c2c0ff50f44877f64780b815b8fd2e003cda9ce817a7fd00dea5600c84a0",
-                
"sha256:26ff99c980f53b3191d8931b199b29d6787c059f2e029b2b0c694343b1708c35",
-                
"sha256:27429b8d74ba683484a06b260b7bb00f312e7c757792628ea251afdbf1434003",
-                
"sha256:3e77409b678b21a056415da3a56abfd7c3ad03da71f3051bbcdb68cf44d3c34d",
-                
"sha256:4e8f02d3d72ca94efc8396f8036c0d3bcc812aefc28ec70f35bb888c74a25161",
-                
"sha256:4eae742636aec40cf7ab98171ab9400393360b97e8f9da67b1867a9ee0889b26",
-                
"sha256:6a6ae17bf8f2d82d1e8858a47757ce389b880083c4ff2498dba17c56e6c103b9",
-                
"sha256:6a6ba91b94427cd49cd27764679024b14a96874e0dc638ae6bdd4b1a3ce97be1",
-                
"sha256:7bcd322935377abcc79bfe5b63c44abd0b29387f267791d566bbb566edfdd146",
-                
"sha256:98b8ed7bb2155e2cbb8b76f627b2fd12cf4b22ab6e14873e8641f266e0fb6d8f",
-                
"sha256:bd25bb7980917e4e70ccccd7e3b5740614f1c408a642c245019cff9d7d1b6149",
-                
"sha256:d0f424328f9822b0323b3b6f2e4b9c90960b24743d220763c7f07071e0778351",
-                
"sha256:d58e4606da2a41659c84baeb3cfa2e4c87a74cec89a1e7c56bee4b956f9d7461",
-                
"sha256:e3cd21cc2840ca67de0bbe4071f79f031c81418deb544ceda93ad75ca1ee9f7b",
-                
"sha256:e6c02171d62ed6972ca8631f6f34fa3281d51db8b326ee397b9c83093a6b7242",
-                
"sha256:e7c7661f7276507bce416eaae22040fd91ca471b5b33c13f8ff21137ed6f248c",
-                
"sha256:ecc6de77df3ef68fee966bb8cb4e067e84d4d1f397d0ef6fce46913663540d77"
+                
"sha256:08997a37b221a3e27d68ffb601e45abfb0093d39ee770e4257bd2f5115e8cb0a",
+                
"sha256:112e34adf95e45158c597feea65d06a8124898bdeac975c9087fe71b572bd938",
+                
"sha256:1700419d8a18c26ff396b3b06ace315b5f2a6e780dad387e4c48717a12a22c29",
+                
"sha256:2f6f211633ee8d3f7706953e9d3edc7ce63a1d6aad0be5dcee1ece127eea13ae",
+                
"sha256:52e1b4bef02f4040b2fd547357a170fc1146e60ab310cdbdd098db86e929b387",
+                
"sha256:55b4c25cbb3b29f8d5e63aeed27b49fa0f8476b0d4e1b3171d85db891938cc3a",
+                
"sha256:5aaa5928b039ae440d775acea11d01e42ff26e1561c0ffcd3d805750973c6baf",
+                
"sha256:654cb773b2792e50151f0e22be0f2b6e1c3a04c5328ff1d9d59c0398d37ef610",
+                
"sha256:690f858d9a94d903cf5cada62ce069b5d93b313d7d05456dbcd99420856562d9",
+                
"sha256:6ad8663c17db4c5ef438141f99e291c4d4edfeaacc0ce28b5bba2b0bf273d9b5",
+                
"sha256:89cda1a5d3e33ec9e231ece7307afc101b5217523d55ef4dc7fb2abd6de71ba3",
+                
"sha256:92d8a043a4241a710c1cf7593f5577fbb832cf6c3a00ff3fc1ff2052aff5dd89",
+                
"sha256:95fa7726d073c87141f7bbfb04c284901f8328e2d430eeb71b8ffdd5742a5ded",
+                
"sha256:97712e0d0af05febd8ab63d2ef0ab2d0cd9deddf4476f7aa153f76feef4b2754",
+                
"sha256:b2ba0f78b3ef375114856cbdaa30559914d081c416b431f2437f83ce4f8b7f2f",
+                
"sha256:bae83f2a56ab30d5353b47f9b2a33e4aac4de9401fb582b55c42b132a8ac3868",
+                
"sha256:c78e66a922de1c95a208e4ec02e2e5cf0bb83a36ceececc10a72841e53fbf2bd",
+                
"sha256:cf59bbf282b627130f5ba68b7fa3abdb96372b24b66bdf72a4920e8153fc7910",
+                
"sha256:e3cdc9423808f7e1bb9c2e0bdb1c9dc37b0607b30d646ff6faf0d4e41ee8fee3",
+                
"sha256:e9b64e609d37438f7d6e68c2546d2cb8062f3adb27e6336bc129b51be20773ac",
+                
"sha256:fbff901c54c22425a5b809b914a3bfaf4b9570eee0e5ce8186ac71eb2025191c"
             ],
-            "version": "==2020.1.8"
+            "version": "==2020.6.8"
         },
         "requests": {
             "hashes": [
-                
"sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4",
-                
"sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31"
+                
"sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b",
+                
"sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"
             ],
             "index": "pypi",
-            "version": "==2.22.0"
+            "version": "==2.24.0"
         },
         "six": {
             "hashes": [
-                
"sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a",
-                
"sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"
+                
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
+                
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
             ],
-            "version": "==1.14.0"
+            "version": "==1.15.0"
         },
         "snowballstemmer": {
             "hashes": [
@@ -315,17 +322,17 @@
         },
         "testcontainers": {
             "hashes": [
-                
"sha256:26e35b46c67cc8e1e60dae6cdfe63a4e59840e8f0b338cdf8e3cc284168cadb3"
+                
"sha256:58235a82c3b4d18fd740bf7efd2df43f1e4f3ea5bdd3507a766b25c0b7d4eb09"
             ],
             "index": "pypi",
-            "version": "==2.5"
+            "version": "==3.0.3"
         },
         "toml": {
             "hashes": [
-                
"sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c",
-                
"sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"
+                
"sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f",
+                
"sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"
             ],
-            "version": "==0.10.0"
+            "version": "==0.10.1"
         },
         "typed-ast": {
             "hashes": [
@@ -355,17 +362,17 @@
         },
         "urllib3": {
             "hashes": [
-                
"sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc",
-                
"sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc"
+                
"sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
+                
"sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
             ],
-            "version": "==1.25.8"
+            "version": "==1.25.9"
         },
         "wcwidth": {
             "hashes": [
-                
"sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603",
-                
"sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8"
+                
"sha256:79375666b9954d4a1a10739315816324c3e73110af9d0e102d906fdb0aec009f",
+                
"sha256:8c6b5b6ee1360b842645f336d9e5d68c55817c26d3050f46b235ef2bc650e48f"
             ],
-            "version": "==0.1.8"
+            "version": "==0.2.4"
         },
         "websocket-client": {
             "hashes": [
@@ -376,16 +383,16 @@
         },
         "wrapt": {
             "hashes": [
-                
"sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1"
+                
"sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
             ],
-            "version": "==1.11.2"
+            "version": "==1.12.1"
         },
         "zipp": {
             "hashes": [
-                
"sha256:5c56e330306215cd3553342cfafc73dda2c60792384117893f3a83f8a1209f50",
-                
"sha256:d65287feb793213ffe11c0f31b81602be31448f38aeb8ffc2eb286c4f6f6657e"
+                
"sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b",
+                
"sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"
             ],
-            "version": "==2.2.0"
+            "version": "==3.1.0"
         }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/README.md 
new/pygerrit2-2.0.13/README.md
--- old/pygerrit2-2.0.10/README.md      2020-02-10 09:22:43.000000000 +0100
+++ new/pygerrit2-2.0.13/README.md      2020-03-18 03:52:48.000000000 +0100
@@ -50,9 +50,8 @@
 changes = rest.get("/changes/?q=owner:self%20status:open")
 ```
 
-Note that is is not necessary to add the `/a/` prefix on the endpoint
-URLs. This is automatically added when the API is instantiated with an
-authentication object.
+Note that it is not necessary to add the `/a/` prefix; it is automatically
+added on all URLs when the API is instantiated with authentication.
 
 If the user's HTTP username and password are defined in the `.netrc`
 file:
@@ -73,9 +72,21 @@
 ```
 
 If no `auth` parameter is specified, pygerrit2 will attempt to find
-credentials in the `netrc` and use them with HTTP basic auth. If no
+credentials in the `.netrc` and use them with HTTP basic auth. If no
 credentials are found, it will fall back to using no authentication.
 
+To explicitly use anonymous access, i.e. no authentication, use the
+`Anonymous` class:
+
+```python
+from pygerrit2 import GerritRestAPI, Anonymous
+
+url = 'http://review.example.net'
+auth = Anonymous()
+rest = GerritRestAPI(url=url, auth=auth)
+changes = rest.get("/changes/?q=status:open")
+```
+
 Note that the HTTP password is not the same as the SSH password. For
 instructions on how to obtain the HTTP password, refer to Gerrit's
 [HTTP upload settings documentation][settings].
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/livetests.py 
new/pygerrit2-2.0.13/livetests.py
--- old/pygerrit2-2.0.10/livetests.py   2020-02-09 05:02:54.000000000 +0100
+++ new/pygerrit2-2.0.13/livetests.py   2020-06-19 04:54:26.000000000 +0200
@@ -28,7 +28,7 @@
 import base64
 import pytest
 import unittest
-from pygerrit2 import GerritRestAPI, GerritReview, HTTPBasicAuth, 
HTTPDigestAuth
+from pygerrit2 import GerritRestAPI, GerritReview, HTTPBasicAuth, Anonymous
 from testcontainers.core.container import DockerContainer
 from testcontainers.core.waiting_utils import wait_container_is_ready
 
@@ -52,19 +52,17 @@
 
 
 @pytest.fixture(
-    scope="module", params=["2.14.20", "2.15.18", "2.16.16", "3.0.7", "3.1.3"]
+    scope="module", params=["2.16.21", "3.0.11", "3.1.7", "3.2.2"]
 )
 def gerrit_api(request):
     """Create a Gerrit container for the given version and return an API."""
     with GerritContainer(request.param) as gerrit:
         port = gerrit.get_exposed_port(8080)
         url = "http://localhost:%s"; % port
-        if request.param == "2.13.11":
-            auth = HTTPDigestAuth("admin", "secret")
-        else:
-            auth = HTTPBasicAuth("admin", "secret")
-        api = GerritRestAPI(url=url, auth=auth)
+        api = GerritRestAPI(url=url, auth=Anonymous())
         _initialize(api)
+        auth = HTTPBasicAuth("admin", "secret")
+        api = GerritRestAPI(url=url, auth=auth)
         yield api
 
 
@@ -190,7 +188,10 @@
         review.set_message("Review from live test")
         review.add_labels({"Code-Review": 1})
         review.set_tag("a_test_tag")
-        gerrit_api.review(change_id, "current", review)
+        result = gerrit_api.review(change_id, "current", review)
+        assert "labels" in result
+        assert "Code-Review" in result["labels"]
+        assert result["labels"]["Code-Review"] == 1
 
 
 if __name__ == "__main__":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/pygerrit2/__init__.py 
new/pygerrit2-2.0.13/pygerrit2/__init__.py
--- old/pygerrit2-2.0.10/pygerrit2/__init__.py  2019-07-25 02:19:29.000000000 
+0200
+++ new/pygerrit2-2.0.13/pygerrit2/__init__.py  2020-03-18 03:52:48.000000000 
+0100
@@ -24,9 +24,10 @@
 
 from .rest import GerritRestAPI, GerritReview
 from requests.auth import HTTPBasicAuth, HTTPDigestAuth
-from .rest.auth import HTTPBasicAuthFromNetrc, HTTPDigestAuthFromNetrc
+from .rest.auth import HTTPBasicAuthFromNetrc, HTTPDigestAuthFromNetrc, 
Anonymous
 
 __all__ = [
+    "Anonymous",
     "GerritRestAPI",
     "GerritReview",
     "HTTPBasicAuth",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/pygerrit2/rest/__init__.py 
new/pygerrit2-2.0.13/pygerrit2/rest/__init__.py
--- old/pygerrit2-2.0.10/pygerrit2/rest/__init__.py     2019-12-10 
03:30:21.000000000 +0100
+++ new/pygerrit2-2.0.13/pygerrit2/rest/__init__.py     2020-06-17 
03:40:39.000000000 +0200
@@ -28,7 +28,7 @@
 from requests.adapters import HTTPAdapter
 from requests.packages.urllib3.util.retry import Retry
 
-from .auth import HTTPBasicAuthFromNetrc
+from .auth import HTTPBasicAuthFromNetrc, Anonymous
 
 logger = logging.getLogger("pygerrit2")
 fmt = "%(asctime)s-[%(name)s-%(levelname)s] %(message)s"
@@ -94,7 +94,6 @@
 
     def __init__(self, url, auth=None, verify=True):
         """See class docstring."""
-        self.kwargs = {"auth": auth, "verify": verify}
         self.url = url.rstrip("/")
         self.session = requests.session()
         retry = Retry(
@@ -111,13 +110,17 @@
         if not auth:
             try:
                 auth = HTTPBasicAuthFromNetrc(url)
-            except ValueError:
+            except ValueError as e:
+                logger.debug("Error parsing netrc: %s", str(e))
                 pass
+        elif isinstance(auth, Anonymous):
+            logger.debug("Anonymous")
+            auth = None
 
         if auth:
             if not isinstance(auth, requests.auth.AuthBase):
                 raise ValueError(
-                    "Invalid auth type; must be derived " "from 
requests.auth.AuthBase"
+                    "Invalid auth type; must be derived from 
requests.auth.AuthBase"
                 )
 
             if not self.url.endswith(GERRIT_AUTH_SUFFIX):
@@ -126,6 +129,8 @@
             if self.url.endswith(GERRIT_AUTH_SUFFIX):
                 self.url = self.url[: -len(GERRIT_AUTH_SUFFIX)]
 
+        self.kwargs = {"auth": auth, "verify": verify}
+
         # Keep a copy of the auth, only needed for tests
         self.auth = auth
 
@@ -268,7 +273,7 @@
 
         """
         endpoint = "changes/%s/revisions/%s/review" % (change_id, revision)
-        self.post(
+        return self.post(
             endpoint, data=str(review), headers={"Content-Type": 
"application/json"}
         )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/pygerrit2/rest/auth.py 
new/pygerrit2-2.0.13/pygerrit2/rest/auth.py
--- old/pygerrit2-2.0.10/pygerrit2/rest/auth.py 2018-06-11 05:37:48.000000000 
+0200
+++ new/pygerrit2-2.0.13/pygerrit2/rest/auth.py 2020-03-18 03:52:48.000000000 
+0100
@@ -52,3 +52,9 @@
             raise ValueError("netrc missing or no credentials found in netrc")
         username, password = auth
         super(HTTPBasicAuthFromNetrc, self).__init__(username, password)
+
+
+class Anonymous:
+    """No authentication; i.e. anonymous access."""
+
+    pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/pygerrit2.egg-info/PKG-INFO 
new/pygerrit2-2.0.13/pygerrit2.egg-info/PKG-INFO
--- old/pygerrit2-2.0.10/pygerrit2.egg-info/PKG-INFO    2020-02-16 
08:23:10.000000000 +0100
+++ new/pygerrit2-2.0.13/pygerrit2.egg-info/PKG-INFO    2020-06-19 
05:05:14.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pygerrit2
-Version: 2.0.10
+Version: 2.0.13
 Summary: Client library for interacting with Gerrit's REST API
 Home-page: https://github.com/dpursehouse/pygerrit2
 Author: David Pursehouse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/pygerrit2.egg-info/pbr.json 
new/pygerrit2-2.0.13/pygerrit2.egg-info/pbr.json
--- old/pygerrit2-2.0.10/pygerrit2.egg-info/pbr.json    2020-02-16 
08:23:10.000000000 +0100
+++ new/pygerrit2-2.0.13/pygerrit2.egg-info/pbr.json    2020-06-19 
05:05:14.000000000 +0200
@@ -1 +1 @@
-{"git_version": "cc65317", "is_release": true}
\ No newline at end of file
+{"git_version": "35b64d0", "is_release": false}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygerrit2-2.0.10/unittests.py 
new/pygerrit2-2.0.13/unittests.py
--- old/pygerrit2-2.0.10/unittests.py   2019-10-29 11:23:07.000000000 +0100
+++ new/pygerrit2-2.0.13/unittests.py   2020-03-18 03:52:48.000000000 +0100
@@ -30,7 +30,7 @@
 
 from mock import patch
 from pygerrit2 import GerritReviewMessageFormatter, GerritReview
-from pygerrit2 import HTTPBasicAuthFromNetrc, HTTPDigestAuthFromNetrc
+from pygerrit2 import HTTPBasicAuthFromNetrc, HTTPDigestAuthFromNetrc, 
Anonymous
 from pygerrit2 import GerritRestAPI
 
 EXPECTED_TEST_CASE_FIELDS = ["header", "footer", "paragraphs", "result"]
@@ -251,6 +251,24 @@
             GerritRestAPI(url="http://review.example.com";, auth="foo")
         assert re.search(r"Invalid auth type", str(exc.exception))
 
+    def test_explicit_anonymous_with_netrc(self):
+        """Test explicit anonymous access when credentials are in netrc."""
+        with patch("pygerrit2.rest.auth._get_netrc_auth") as mock_netrc:
+            mock_netrc.return_value = ("netrcuser", "netrcpass")
+            auth = Anonymous()
+            api = GerritRestAPI(url="http://review.example.com";, auth=auth)
+            assert api.auth is None
+            assert not api.url.endswith("/a/")
+
+    def test_explicit_anonymous_without_netrc(self):
+        """Test explicit anonymous access when credentials are not in netrc."""
+        with patch("pygerrit2.rest.auth._get_netrc_auth") as mock_netrc:
+            mock_netrc.return_value = None
+            auth = Anonymous()
+            api = GerritRestAPI(url="http://review.example.com";, auth=auth)
+            assert api.auth is None
+            assert not api.url.endswith("/a/")
+
 
 class TestKwargsTranslation(unittest.TestCase):
     """Test that kwargs translation works."""


Reply via email to