Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-google-auth-oauthlib for openSUSE:Factory checked in at 2023-03-07 16:50:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-google-auth-oauthlib (Old) and /work/SRC/openSUSE:Factory/.python-google-auth-oauthlib.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-google-auth-oauthlib" Tue Mar 7 16:50:55 2023 rev:13 rq:1069914 version:1.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-google-auth-oauthlib/python-google-auth-oauthlib.changes 2023-01-05 15:01:26.097204374 +0100 +++ /work/SRC/openSUSE:Factory/.python-google-auth-oauthlib.new.31432/python-google-auth-oauthlib.changes 2023-03-07 16:51:22.169911722 +0100 @@ -1,0 +2,8 @@ +Tue Mar 7 10:38:03 UTC 2023 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to 1.0.0 + * PKCE is enabled by default. (#269) + * Change the library from preview to stable (#267) + * Remove deprecated OOB code (1391486) + +------------------------------------------------------------------- Old: ---- google-auth-oauthlib-0.8.0.tar.gz New: ---- google-auth-oauthlib-1.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-google-auth-oauthlib.spec ++++++ --- /var/tmp/diff_new_pack.TP8fvI/_old 2023-03-07 16:51:22.737914717 +0100 +++ /var/tmp/diff_new_pack.TP8fvI/_new 2023-03-07 16:51:22.753914802 +0100 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without python2 Name: python-google-auth-oauthlib -Version: 0.8.0 +Version: 1.0.0 Release: 0 Summary: Google authentication library License: Apache-2.0 ++++++ google-auth-oauthlib-0.8.0.tar.gz -> google-auth-oauthlib-1.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/PKG-INFO new/google-auth-oauthlib-1.0.0/PKG-INFO --- old/google-auth-oauthlib-0.8.0/PKG-INFO 2022-12-12 22:57:51.401111100 +0100 +++ new/google-auth-oauthlib-1.0.0/PKG-INFO 2023-02-07 21:53:17.732518700 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: google-auth-oauthlib -Version: 0.8.0 +Version: 1.0.0 Summary: Google Authentication Library Home-page: https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib Author: Google Cloud Platform @@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 -Classifier: Development Status :: 3 - Alpha +Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/google_auth_oauthlib/flow.py new/google-auth-oauthlib-1.0.0/google_auth_oauthlib/flow.py --- old/google-auth-oauthlib-0.8.0/google_auth_oauthlib/flow.py 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/google_auth_oauthlib/flow.py 2023-02-07 21:50:41.000000000 +0100 @@ -52,7 +52,6 @@ import hashlib import json import logging -import warnings try: from secrets import SystemRandom @@ -70,11 +69,6 @@ _LOGGER = logging.getLogger(__name__) -_OOB_REDIRECT_URIS = [ - "urn:ietf:wg:oauth:2.0:oob", - "urn:ietf:wg:oauth:2.0:oob:auto", - "oob", -] class Flow(object): @@ -103,7 +97,7 @@ client_config, redirect_uri=None, code_verifier=None, - autogenerate_code_verifier=False, + autogenerate_code_verifier=True, ): """ Args: @@ -214,17 +208,8 @@ @redirect_uri.setter def redirect_uri(self, value): - if value in _OOB_REDIRECT_URIS: - warnings.warn( - "'{}' is an OOB redirect URI. The OAuth out-of-band (OOB) flow is deprecated. " - "New clients will be unable to use this flow starting on Feb 28, 2022. " - "This flow will be deprecated for all clients on Oct 3, 2022. " - "Migrate to an alternative flow. " - "See https://developers.googleblog.com/2022/02/making-oauth-flows-safer.html?m=1#disallowed-oob".format( - value - ), - DeprecationWarning, - ) + """The OAuth 2.0 redirect URI. Pass-through to + ``self.oauth2session.redirect_uri``.""" self.oauth2session.redirect_uri = value def authorization_url(self, **kwargs): @@ -370,8 +355,6 @@ https://github.com/googleapis/google-api-python-client/blob/main/docs/oauth-installed.md """ - _OOB_REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob" - _DEFAULT_AUTH_PROMPT_MESSAGE = ( "Please visit this URL to authorize this application: {url}" ) @@ -385,63 +368,6 @@ "The authentication flow has completed. You may close this window." ) - def run_console( - self, - authorization_prompt_message=_DEFAULT_AUTH_PROMPT_MESSAGE, - authorization_code_message=_DEFAULT_AUTH_CODE_MESSAGE, - **kwargs - ): - """Run the flow using the console strategy. - - .. deprecated:: 0.5.0 - Use :meth:`run_local_server` instead. - - The OAuth out-of-band (OOB) flow is deprecated. New clients will be unable to - use this flow starting on Feb 28, 2022. This flow will be deprecated - for all clients on Oct 3, 2022. Migrate to an alternative flow. - - See https://developers.googleblog.com/2022/02/making-oauth-flows-safer.html?m=1#disallowed-oob" - - The console strategy instructs the user to open the authorization URL - in their browser. Once the authorization is complete the authorization - server will give the user a code. The user then must copy & paste this - code into the application. The code is then exchanged for a token. - - Args: - authorization_prompt_message (str | None): The message to display to tell - the user to navigate to the authorization URL. If None or empty, - don't display anything. - authorization_code_message (str): The message to display when - prompting the user for the authorization code. - kwargs: Additional keyword arguments passed through to - :meth:`authorization_url`. - - Returns: - google.oauth2.credentials.Credentials: The OAuth 2.0 credentials - for the user. - """ - kwargs.setdefault("prompt", "consent") - warnings.warn( - "New clients will be unable to use `InstalledAppFlow.run_console` " - "starting on Feb 28, 2022. All clients will be unable to use this method starting on Oct 3, 2022. " - "Use `InstalledAppFlow.run_local_server` instead. For details on the OOB flow deprecation, " - "see https://developers.googleblog.com/2022/02/making-oauth-flows-safer.html?m=1#disallowed-oob", - DeprecationWarning, - ) - - self.redirect_uri = self._OOB_REDIRECT_URI - - auth_url, _ = self.authorization_url(**kwargs) - - if authorization_prompt_message: - print(authorization_prompt_message.format(url=auth_url)) - - code = input(authorization_code_message) - - self.fetch_token(code=code) - - return self.credentials - def run_local_server( self, host="localhost", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/google_auth_oauthlib/interactive.py new/google-auth-oauthlib-1.0.0/google_auth_oauthlib/interactive.py --- old/google-auth-oauthlib-0.8.0/google_auth_oauthlib/interactive.py 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/google_auth_oauthlib/interactive.py 2023-02-07 21:50:41.000000000 +0100 @@ -156,7 +156,6 @@ "installed": { "client_id": client_id, "client_secret": client_secret, - "redirect_uris": ["urn:ietf:wg:oauth:2.0:oob"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/google_auth_oauthlib/tool/__main__.py new/google-auth-oauthlib-1.0.0/google_auth_oauthlib/tool/__main__.py --- old/google-auth-oauthlib-0.8.0/google_auth_oauthlib/tool/__main__.py 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/google_auth_oauthlib/tool/__main__.py 2023-02-07 21:50:41.000000000 +0100 @@ -72,15 +72,7 @@ default=os.path.join(click.get_app_dir(APP_NAME), DEFAULT_CREDENTIALS_FILENAME), help="Path to store OAuth2 credentials.", ) -@click.option( - "--headless", - is_flag=True, - metavar="<headless_mode>", - show_default=True, - default=False, - help="Run a console based flow.", -) -def main(client_secrets, scope, save, credentials, headless): +def main(client_secrets, scope, save, credentials): """Command-line tool for obtaining authorization and credentials from a user. This tool uses the OAuth 2.0 Authorization Code grant as described @@ -88,9 +80,7 @@ https://tools.ietf.org/html/rfc6749#section-1.3.1 This tool is intended for assist developers in obtaining credentials - for testing applications where it may not be possible or easy to run a - complete OAuth 2.0 authorization flow, especially in the case of code - samples or embedded devices without input / display capabilities. + for testing applications or samples. This is not intended for production use where a combination of companion and on-device applications should complete the OAuth 2.0 @@ -102,10 +92,7 @@ client_secrets, scopes=scope ) - if not headless: - creds = flow.run_local_server() - else: - creds = flow.run_console() + creds = flow.run_local_server() creds_data = { "token": creds.token, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/google_auth_oauthlib.egg-info/PKG-INFO new/google-auth-oauthlib-1.0.0/google_auth_oauthlib.egg-info/PKG-INFO --- old/google-auth-oauthlib-0.8.0/google_auth_oauthlib.egg-info/PKG-INFO 2022-12-12 22:57:51.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/google_auth_oauthlib.egg-info/PKG-INFO 2023-02-07 21:53:17.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: google-auth-oauthlib -Version: 0.8.0 +Version: 1.0.0 Summary: Google Authentication Library Home-page: https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib Author: Google Cloud Platform @@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 -Classifier: Development Status :: 3 - Alpha +Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/setup.py new/google-auth-oauthlib-1.0.0/setup.py --- old/google-auth-oauthlib-0.8.0/setup.py 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/setup.py 2023-02-07 21:50:41.000000000 +0100 @@ -27,7 +27,7 @@ long_description = fh.read() -version = "0.8.0" +version = "1.0.0" setup( name="google-auth-oauthlib", @@ -56,7 +56,7 @@ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", - "Development Status :: 3 - Alpha", + "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/tests/unit/data/client_secrets.json new/google-auth-oauthlib-1.0.0/tests/unit/data/client_secrets.json --- old/google-auth-oauthlib-0.8.0/tests/unit/data/client_secrets.json 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/tests/unit/data/client_secrets.json 2023-02-07 21:50:41.000000000 +0100 @@ -7,7 +7,6 @@ "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_secret": "itsasecrettoeveryone", "redirect_uris": [ - "urn:ietf:wg:oauth:2.0:oob", "http://localhost" ] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/tests/unit/test_flow.py new/google-auth-oauthlib-1.0.0/tests/unit/test_flow.py --- old/google-auth-oauthlib-0.8.0/tests/unit/test_flow.py 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/tests/unit/test_flow.py 2023-02-07 21:50:41.000000000 +0100 @@ -58,20 +58,6 @@ == mock.sentinel.redirect_uri ) - def test_from_client_secrets_file_with_oob_redirect_uri(self): - with pytest.deprecated_call(): - instance = flow.Flow.from_client_secrets_file( - CLIENT_SECRETS_FILE, - scopes=mock.sentinel.scopes, - redirect_uri="urn:ietf:wg:oauth:2.0:oob", - ) - - assert ( - instance.redirect_uri - == instance.oauth2session.redirect_uri - == "urn:ietf:wg:oauth:2.0:oob" - ) - def test_from_client_config_installed(self): client_config = {"installed": CLIENT_SECRETS_INFO["web"]} instance = flow.Flow.from_client_config( @@ -296,25 +282,6 @@ with fetch_token_patch as fetch_token_mock: yield fetch_token_mock - @mock.patch("builtins.input", autospec=True) - def test_run_console(self, input_mock, instance, mock_fetch_token): - input_mock.return_value = mock.sentinel.code - instance.code_verifier = "amanaplanacanalpanama" - - with pytest.deprecated_call(): - credentials = instance.run_console() - - assert credentials.token == mock.sentinel.access_token - assert credentials._refresh_token == mock.sentinel.refresh_token - assert credentials.id_token == mock.sentinel.id_token - - mock_fetch_token.assert_called_with( - CLIENT_SECRETS_INFO["web"]["token_uri"], - client_secret=CLIENT_SECRETS_INFO["web"]["client_secret"], - code=mock.sentinel.code, - code_verifier="amanaplanacanalpanama", - ) - @pytest.mark.webtest @mock.patch("google_auth_oauthlib.flow.webbrowser", autospec=True) def test_run_local_server(self, webbrowser_mock, instance, mock_fetch_token, port): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/google-auth-oauthlib-0.8.0/tests/unit/test_tool.py new/google-auth-oauthlib-1.0.0/tests/unit/test_tool.py --- old/google-auth-oauthlib-0.8.0/tests/unit/test_tool.py 2022-12-12 22:54:41.000000000 +0100 +++ new/google-auth-oauthlib-1.0.0/tests/unit/test_tool.py 2023-02-07 21:50:41.000000000 +0100 @@ -57,16 +57,6 @@ flow.return_value = dummy_credentials yield flow - @pytest.fixture - def console_mock(self, dummy_credentials): - run_console_patch = mock.patch.object( - google_auth_oauthlib.flow.InstalledAppFlow, "run_console", autospec=True - ) - - with run_console_patch as flow: - flow.return_value = dummy_credentials - yield flow - def test_help(self, runner): result = runner.invoke(cli.main, ["--help"]) assert not result.exception @@ -91,22 +81,6 @@ assert creds.client_secret == dummy_credentials.client_secret assert creds.scopes == dummy_credentials.scopes - def test_headless(self, runner, dummy_credentials, console_mock): - result = runner.invoke( - cli.main, - [ - "--client-secrets", - CLIENT_SECRETS_FILE, - "--scope", - "somescope", - "--headless", - ], - ) - console_mock.assert_called_with(mock.ANY) - assert not result.exception - assert dummy_credentials.refresh_token in result.output - assert result.exit_code == 0 - def test_save_new_dir(self, runner, dummy_credentials, local_server_mock): credentials_tmpdir = tempfile.mkdtemp() credentials_path = os.path.join(