From 16d980404b01ddf4dee5289fb882bf9077eaac99 Mon Sep 17 00:00:00 2001 From: Sivaselvan32 Date: Tue, 28 Jul 2026 17:38:34 +0530 Subject: [PATCH 1/3] docs: update CHANGELOG.md for v1.3.1 release --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57c9904..22126f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,20 @@ # Unreleased # Released +# v1.3.1 + +## Security Fixes + +### Transport +* Fixed clear-text URL logging in HTTP transport retry and exception paths. Request URLs (which can contain workspace IDs, organization names, and resource paths) were previously emitted at `DEBUG`/`INFO` level during retries and transport exceptions. These are now replaced with `` to prevent sensitive path segments from appearing in debug logs or CI output by @isivaselvan [#193](https://github.com/hashicorp/python-tfe/pull/193) + +### Examples +* Fixed `examples/oauth_client.py` printing raw OAuth token IDs during the `read_with_options` test. The print statement now outputs `[REDACTED]` instead of the token ID to prevent credential-adjacent values appearing in example run output by @isivaselvan [#193](https://github.com/hashicorp/python-tfe/pull/193) + +## Build / Tooling + +* Excluded `.bob/` directory and `*.md` files from ruff's formatter to prevent ruff 0.16.0's new Markdown code-block formatter from flagging documentation and skill files. Fixes `lint` CI failure on Python 3.11 introduced by the ruff 0.16.0 release by @isivaselvan [#194](https://github.com/hashicorp/python-tfe/pull/194) + # v1.3.0 ## Enhancements From c86afa19f616d54b852a664535b5651e45d0e0fb Mon Sep 17 00:00:00 2001 From: Sivaselvan32 Date: Wed, 29 Jul 2026 13:16:24 +0530 Subject: [PATCH 2/3] updated changelog --- CHANGELOG.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22126f1..978887c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,16 +4,7 @@ # v1.3.1 ## Security Fixes - -### Transport -* Fixed clear-text URL logging in HTTP transport retry and exception paths. Request URLs (which can contain workspace IDs, organization names, and resource paths) were previously emitted at `DEBUG`/`INFO` level during retries and transport exceptions. These are now replaced with `` to prevent sensitive path segments from appearing in debug logs or CI output by @isivaselvan [#193](https://github.com/hashicorp/python-tfe/pull/193) - -### Examples -* Fixed `examples/oauth_client.py` printing raw OAuth token IDs during the `read_with_options` test. The print statement now outputs `[REDACTED]` instead of the token ID to prevent credential-adjacent values appearing in example run output by @isivaselvan [#193](https://github.com/hashicorp/python-tfe/pull/193) - -## Build / Tooling - -* Excluded `.bob/` directory and `*.md` files from ruff's formatter to prevent ruff 0.16.0's new Markdown code-block formatter from flagging documentation and skill files. Fixes `lint` CI failure on Python 3.11 introduced by the ruff 0.16.0 release by @isivaselvan [#194](https://github.com/hashicorp/python-tfe/pull/194) +* Fixed security and quality issues at clear-text URL logging in HTTP transport retry/exception paths and `examples/oauth_client.py` [#193](https://github.com/hashicorp/python-tfe/pull/193) # v1.3.0 From 3dfd605e9958e9db39e1e60e00a7802fc8d5d20a Mon Sep 17 00:00:00 2001 From: Sivaselvan32 Date: Wed, 29 Jul 2026 20:06:26 +0530 Subject: [PATCH 3/3] fix(sec-vul): Removed the placeholder value at the logger --- src/pytfe/_http.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pytfe/_http.py b/src/pytfe/_http.py index 0bfa105..ce891be 100644 --- a/src/pytfe/_http.py +++ b/src/pytfe/_http.py @@ -102,9 +102,8 @@ def request( ) except httpx.HTTPError as e: transport_logger.debug( - "transport exception on %s %s (attempt %d): %s", + "transport exception on %s (attempt %d): %s", method, - "", attempt, e, ) @@ -123,9 +122,8 @@ def request( if resp.status_code in _RETRY_STATUSES and attempt < self.max_retries: retry_after = _parse_retry_after(resp) transport_logger.info( - "retrying %s %s after %s (status=%d, attempt=%d)", + "retrying %s after %s (status=%d, attempt=%d)", method, - "", f"{retry_after:.2f}s" if retry_after else "backoff", resp.status_code, attempt,