Skip to content

Fix: Redirect GitHub App token refresh logs to stderr to prevent invalid JSON output - #11

Open
lincai505011-ops wants to merge 1 commit into
madalynerlge2:mainfrom
lincai505011-ops:bounty-1
Open

Fix: Redirect GitHub App token refresh logs to stderr to prevent invalid JSON output#11
lincai505011-ops wants to merge 1 commit into
madalynerlge2:mainfrom
lincai505011-ops:bounty-1

Conversation

@lincai505011-ops

Copy link
Copy Markdown

/claim #1

What

Fix: Redirect GitHub App token refresh logs to stderr to prevent invalid JSON output.

Root Cause

When the GitHub App installation token expired during CLI operations, the AuthTokenRefresher wrote progress messages ("Refreshing GitHub App token...", "Token refresh complete.", "Checking token expiration...") to os.Stdout. This corrupted JSON output consumed by automation/CI pipelines, causing parse failures.

Fix

  • Added ErrOut io.Writer field to AuthTokenRefresher, defaulting to os.Stderr
  • All log/status messages now write to ErrOut instead of os.Stdout
  • HTTPClient exposes Stdout and Stderr writers for testability
  • DoJSON() helper validates that JSON output is clean (no log pollution)

Tests Added

  • TestTokenRefreshLogsGoToStderr — verifies refresh logs go to stderr, not stdout
  • TestNonExpiredTokenNoLogPollution — verifies clean stdout when no refresh needed
  • TestDoJSONReturnsCleanOutput — verifies JSON parse succeeds with stderr logging

Token refresh progress messages were written to stdout, corrupting
JSON output when consumed by automation/CI pipelines.

Fix: AuthTokenRefresher now writes all progress and log messages to
ErrOut (defaulting to os.Stderr), keeping stdout clean for
machine-readable command output such as JSON payloads.

Fixes madalynerlge2#1
@opirebot

opirebot Bot commented Aug 7, 2026

Copy link
Copy Markdown

😅 Unfortunately there are no rewards left to claim in this issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant