SIGN IN SIGN UP

script/ptl-tool: fail fast and cleanly on invalid Redmine/GitHub credentials

Invalid credentials were handled inconsistently:

- A missing GitHub/Redmine token was caught with a clear error at
  startup, but an invalid or expired one was not: the Redmine
  client is constructed lazily by python-redmine, so a bad
  ~/.redmine_key was never actually exercised until
  manage_qa_tracker() called R.project.get() -- which runs *after*
  PRs have been merged and the integration branch/tag has already
  been pushed to ceph-ci. The result was an unhandled traceback
  well after real side effects had already happened, with no
  actionable message.

- post_consolidated_review() posted the consolidated audit review
  to GitHub without checking the response status at all, so a bad
  or under-scoped token would fail silently there while every other
  GitHub write call in the file already checks status_code.

Fix both:

- Immediately after constructing the Redmine client, make a cheap
  R.user.get('current') call and catch AuthError/ForbiddenError,
  exiting with a clear message before any merging or pushing
  happens.
- Check the response status in post_consolidated_review() and log
  an error on failure, matching the pattern already used by the
  other GitHub POST call sites in this file.

Verified with py_compile plus live --dry-run runs against
tracker.ceph.com: a deliberately invalid PTL_TOOL_REDMINE_API_KEY
now exits 1 immediately with a clear message and no git side
effects, while a valid key proceeds exactly as before.

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
Y
Yuri Weinstein committed
8bb99f9aeea175d43e997054095d991797bac07f
Parent: 04cea03