pyOpenSSL version of 24.3.0 breaks PyDrive
まだ誰も着手していません。
評価
調査の方向性
pydrive2/apiattr.py、auth.py、files.py の失敗しているパスから始め、pyOpenSSL 24.3.0 を使用して service account の refresh の失敗を再現します。影響を受ける依存関係の動作を 24.2.1 と比較し、issue にリンクされている移行のコンテキストを確認します。移行が完了し、OpenSSL.crypto.sign の失敗を再発させることなく pyOpenSSL のバージョン固定を解除できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Edited by @shcheklein : Action item: unpin pyOpenSSL after migration is done. See the comment below https://github.com/iterative/PyDrive2/issues/361#issuecomment-2506655182
Hey, after pip installed a new version of pyOpenSSL overnight (24.3.0), all my pipelines that contain pydrive started to fail with the following error:
File "/usr/local/lib/python3.9/dist-packages/pydrive2/apiattr.py", line 166, in GetList
for x in self:
File "/usr/local/lib/python3.9/dist-packages/pydrive2/apiattr.py", line 150, in __next__
result = self._GetList()
File "/usr/local/lib/python3.9/dist-packages/pydrive2/auth.py", line 85, in _decorated
return decoratee(self, *args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/pydrive2/files.py", line 84, in _GetList
self.auth.service.files()
File "/usr/local/lib/python3.9/dist-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/googleapiclient/http.py", line 923, in execute
resp, content = _retry_request(
File "/usr/local/lib/python3.9/dist-packages/googleapiclient/http.py", line 191, in _retry_request
resp, content = http.request(uri, method, *args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/transport.py", line 159, in new_request
credentials._refresh(orig_request_method)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 749, in _refresh
self._do_refresh_request(http)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 774, in _do_refresh_request
body = self._generate_refresh_request_body()
File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 1484, in _generate_refresh_request_body
assertion = self._generate_assertion()
File "/usr/local/lib/python3.9/dist-packages/oauth2client/service_account.py", line 384, in _generate_assertion
return crypt.make_signed_jwt(self._signer, payload,
File "/usr/local/lib/python3.9/dist-packages/oauth2client/crypt.py", line 97, in make_signed_jwt
signature = signer.sign(signing_input)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/_openssl_crypt.py", line 97, in sign
return crypto.sign(self._key, message, 'sha256')
File "/usr/local/lib/python3.9/dist-packages/cryptography/utils.py", line 68, in __getattr__
obj = getattr(self._module, attr)
AttributeError: module 'OpenSSL.crypto' has no attribute 'sign'
the day before I still had pyOpenSSL version of 24.2.1, which worked. Forcing pyopenssl==24.2.1 in my requirements.txt file fixes the issue for now, but pydrive2 should be updated to reflect changes in pyOpenSSL
- 主要言語
- Python
- スター
- 670
- フォーク
- 75
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
iterative/PyDrive2 のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 10/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 30/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
iterative/PyDrive2 の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
qgis/QGIS-Plugins-Website#459 ·
-
bug severity:medium
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 2 日以内に返信
-
bot-found bug priority: P3
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
madenvel/KalinkaPlayer#179 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ls1intum/edutelligence#1098 ·
メンテナーはふだん 1 日以内に返信