Diff
Modified: trunk/Tools/ChangeLog (291012 => 291013)
--- trunk/Tools/ChangeLog 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/ChangeLog 2022-03-08 22:18:01 UTC (rev 291013)
@@ -1,5 +1,29 @@
2022-03-08 Jonathan Bedard <jbed...@apple.com>
+ [git-webkit] Prompt user when GitHub credentials are likely incorrect
+ https://bugs.webkit.org/show_bug.cgi?id=237450
+ <rdar://problem/89781069>
+
+ Reviewed by Dewei Zhu.
+
+ GitHub doesn't make it obvious when credentials are invalid, but our scripts
+ can make an educated guess when invalid credentials are the root cause.
+
+ * Scripts/libraries/webkitbugspy/setup.py: Bump version.
+ * Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py: Ditto.
+ * Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
+ (Tracker): Add REFRESH_TOKEN_PROMPT.
+ * Scripts/libraries/webkitscmpy/setup.py: Bump version.
+ * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
+ * Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
+ (GitHub.PRGenerator.create):
+ (GitHub.PRGenerator.update):
+ (GitHub.request):
+ * Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
+ (TestCheckout.test_no_pr_github):
+
+2022-03-08 Jonathan Bedard <jbed...@apple.com>
+
[git-webkit] Set bug tracker usernames from contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237608
<rdar://problem/89971547>
Modified: trunk/Tools/Scripts/libraries/webkitbugspy/setup.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitbugspy/setup.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitbugspy/setup.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -30,7 +30,7 @@
setup(
name='webkitbugspy',
- version='0.4.0',
+ version='0.4.1',
description='Library containing a shared API for various bug trackers.',
long_description=readme(),
classifiers=[
Modified: trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -46,7 +46,7 @@
"Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
)
-version = Version(0, 4, 0)
+version = Version(0, 4, 1)
from .user import User
from .issue import Issue
Modified: trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -45,6 +45,7 @@
r'\Ahttps?://api.github.{}/repos/{}/{}/issues/(?P<id>\d+)\Z',
r'\Aapi.github.{}/repos/{}/{}/issues/(?P<id>\d+)\Z',
]
+ REFRESH_TOKEN_PROMPT = "Is your API token out of date? Run 'git-webkit setup' to refresh credentials\n"
class Encoder(GenericTracker.Encoder):
@webkitcorepy.decorators.hybridmethod
@@ -151,6 +152,8 @@
message = response.json().get('message')
if message:
sys.stderr.write('Message: {}\n'.format(message))
+ if auth:
+ sys.stderr.write(self.REFRESH_TOKEN_PROMPT)
return None
result = response.json()
@@ -170,14 +173,14 @@
if not username:
raise RuntimeError("Failed to find username for '{}'".format(name or email))
+ url = ''.format(api_url=self.api_url, username=username)
response = requests.get(
- '{api_url}/users/{username}'.format(
- api_url=self.api_url,
- username=username,
- ), auth=HTTPBasicAuth(*self.credentials(required=True)),
+ url, auth=HTTPBasicAuth(*self.credentials(required=True)),
headers=dict(Accept='application/vnd.github.v3+json'),
)
if response.status_code // 100 != 2:
+ sys.stderr.write("Request to '{}' returned status code '{}'\n".format(url, response.status_code))
+ sys.stderr.write(self.REFRESH_TOKEN_PROMPT)
return None
data = ""
@@ -320,6 +323,7 @@
if opened is not None:
issue._opened = None
sys.stderr.write("Failed to modify '{}'\n".format(issue))
+ sys.stderr.write(self.REFRESH_TOKEN_PROMPT)
return None
return self.add_comment(issue, why) if why else issue
@@ -338,6 +342,7 @@
)
if response.status_code // 100 != 2:
sys.stderr.write("Failed to add comment to '{}'\n".format(issue))
+ sys.stderr.write(self.REFRESH_TOKEN_PROMPT)
return None
data = ""
Modified: trunk/Tools/Scripts/libraries/webkitscmpy/setup.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitscmpy/setup.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/setup.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -29,7 +29,7 @@
setup(
name='webkitscmpy',
- version='4.3.11',
+ version='4.3.12',
description='Library designed to interact with git and svn repositories.',
long_description=readme(),
classifiers=[
Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -46,7 +46,7 @@
"Please install webkitcorepy with `pip install webkitcorepy --extra-index-url <package index URL>`"
)
-version = Version(4, 3, 11)
+version = Version(4, 3, 12)
AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
AutoInstall.register(Package('jinja2', Version(2, 11, 3)))
Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -96,12 +96,13 @@
raise ValueError("Must define '{}' when creating pull-request".format(key))
user, _ = self.repository.credentials(required=True)
+ url = ''.format(
+ api_url=self.repository.api_url,
+ owner=self.repository.owner,
+ name=self.repository.name,
+ )
response = requests.post(
- '{api_url}/repos/{owner}/{name}/pulls'.format(
- api_url=self.repository.api_url,
- owner=self.repository.owner,
- name=self.repository.name,
- ), auth=HTTPBasicAuth(*self.repository.credentials(required=True)),
+ url, auth=HTTPBasicAuth(*self.repository.credentials(required=True)),
headers=dict(Accept='application/vnd.github.v3+json'),
json=dict(
title=title,
@@ -112,6 +113,8 @@
),
)
if response.status_code // 100 != 2:
+ sys.stderr.write("Request to '{}' returned status code '{}'\n".format(url, response.status_code))
+ sys.stderr.write(Tracker.REFRESH_TOKEN_PROMPT)
return None
result = self.PullRequest(response.json())
@@ -139,13 +142,14 @@
updates['body'] = PullRequest.create_body(body, commits)
if opened is not None:
updates['state'] = 'open' if opened else 'closed'
+ url = ''.format(
+ api_url=self.repository.api_url,
+ owner=self.repository.owner,
+ name=self.repository.name,
+ number=pull_request.number,
+ )
response = requests.post(
- '{api_url}/repos/{owner}/{name}/pulls/{number}'.format(
- api_url=self.repository.api_url,
- owner=self.repository.owner,
- name=self.repository.name,
- number=pull_request.number,
- ), auth=HTTPBasicAuth(*self.repository.credentials(required=True)),
+ url, auth=HTTPBasicAuth(*self.repository.credentials(required=True)),
headers=dict(Accept='application/vnd.github.v3+json'),
json=updates,
)
@@ -153,6 +157,8 @@
pull_request._opened = False
return pull_request
if response.status_code // 100 != 2:
+ sys.stderr.write("Request to '{}' returned status code '{}'\n".format(url, response.status_code))
+ sys.stderr.write(Tracker.REFRESH_TOKEN_PROMPT)
return None
data = ""
@@ -315,6 +321,8 @@
message = response.json().get('message')
if message:
sys.stderr.write('Message: {}\n'.format(message))
+ if auth:
+ sys.stderr.write(Tracker.REFRESH_TOKEN_PROMPT)
return None
result = response.json()
Modified: trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py (291012 => 291013)
--- trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py 2022-03-08 22:06:42 UTC (rev 291012)
+++ trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py 2022-03-08 22:18:01 UTC (rev 291013)
@@ -69,6 +69,7 @@
self.assertEqual(
"Request to 'https://api.github.example.com/repos/WebKit/WebKit/pulls/1' returned status code '404'\n"
"Message: Not found\n"
+ "Is your API token out of date? Run 'git-webkit setup' to refresh credentials\n"
"Failed to find 'PR-1' associated with this repository\n",
captured.stderr.getvalue(),
)