Fix: Unicode encoding and logging errors in lftools 47/73947/2 v0.35.17 v0.37.17
authorAnil Belur <abelur@linuxfoundation.org>
Fri, 5 Dec 2025 03:26:54 +0000 (13:26 +1000)
committerAnil Belur <abelur@linuxfoundation.org>
Fri, 5 Dec 2025 11:25:48 +0000 (21:25 +1000)
commitcda46e7ac67be500ecacaa365075392a0ff9f4bc
tree26da769547061fb3aeaeac0db4f918527873014c
parent99099737a82cdf63ca7392cc03f9f19123d8c01b
Fix: Unicode encoding and logging errors in lftools

1. Fix UnicodeEncodeError in Gerrit/Nexus API requests:
   - Encode JSON string data as UTF-8 in RestApi._request()
   - Change Nexus encoding from latin-1 to utf-8 (5 locations)
   - Handles Unicode characters in responses (e.g., user names with 'ลก')
   - Fixes: 'latin-1' codec can't encode character '\u0161'

2. Fix logging format errors (3 locations):
   - GitHub create-repo: Use f-string instead of comma in log.info()
   - GitHub votes: Use f-string for approval list logging
   - Gerrit vote_on_change: Use f-string with parameters
   - Fixes: TypeError: not all arguments converted during string formatting

Based on: https://github.com/modeseven-lfit/lftools-uv/pull/53
Tested with: lftools gerrit addgithubrights git.opendaylight.org gnmi

Change-Id: Ief4a4ffa9bcc1d0a31342ac49b448fd097dda879
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
lftools/api/client.py
lftools/api/endpoints/gerrit.py
lftools/cli/github_cli.py
lftools/nexus/__init__.py
releasenotes/notes/fix-unicode-encoding-logging-c891ffd99f38c7f5.yaml [new file with mode: 0644]