- Revision
- 293327
- Author
- jbed...@apple.com
- Date
- 2022-04-25 08:25:37 -0700 (Mon, 25 Apr 2022)
Log Message
[ews-build.webkit.org] Support alternative remotes
https://bugs.webkit.org/show_bug.cgi?id=239617
<rdar://problem/92115230>
Reviewed by Aakash Jain.
* Tools/CISupport/ews-build/events.py:
(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.extractProperties): Remove sensative fields from non-public
pull requests.
(GitHubEventHandlerNoEdits.handle_pull_request): Generalize label process sleep.
* Tools/CISupport/ews-build/steps.py:
(CheckOutPullRequest.run): Checkout with EWS credentials.
* Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/249949@main
Modified Paths
Diff
Modified: trunk/Tools/CISupport/ews-build/events.py (293326 => 293327)
--- trunk/Tools/CISupport/ews-build/events.py 2022-04-25 15:25:06 UTC (rev 293326)
+++ trunk/Tools/CISupport/ews-build/events.py 2022-04-25 15:25:37 UTC (rev 293327)
@@ -324,8 +324,11 @@
class GitHubEventHandlerNoEdits(GitHubEventHandler):
OPEN_STATES = ('open',)
+ PUBLIC_REPOS = ('WebKit/WebKit',)
+ SENSATIVE_FIELDS = ('github.title',)
UNSAFE_MERGE_QUEUE_LABEL = 'unsafe-merge-queue'
MERGE_QUEUE_LABEL = 'merge-queue'
+ LABEL_PROCESS_DELAY = 10
@classmethod
def file_with_status_sign(cls, info):
@@ -359,6 +362,14 @@
log.msg('Failed fetching PR files: response code {}'.format(res.code))
return []
+ def extractProperties(self, payload):
+ result = super(GitHubEventHandlerNoEdits, self).extractProperties(payload)
+ if result.get('project') not in self.PUBLIC_REPOS:
+ for field in self.SENSATIVE_FIELDS:
+ if field in result:
+ del result[field]
+ return result
+
def handle_pull_request(self, payload, event):
pr_number = payload['number']
action = ""
@@ -373,12 +384,13 @@
log.msg("PR #{} was labeled for unsafe-merge-queue".format(pr_number))
# 'labeled' is usually an ignored action, override it to force build
payload['action'] = 'synchronize'
+ time.sleep(self.LABEL_PROCESS_DELAY)
return super(GitHubEventHandlerNoEdits, self).handle_pull_request(payload, 'unsafe_merge_queue')
if action == 'labeled' and self.MERGE_QUEUE_LABEL in labels:
log.msg("PR #{} was labeled for merge-queue".format(pr_number))
# 'labeled' is usually an ignored action, override it to force build
payload['action'] = 'synchronize'
- time.sleep(10)
+ time.sleep(self.LABEL_PROCESS_DELAY)
return super(GitHubEventHandlerNoEdits, self).handle_pull_request(payload, 'merge_queue')
return super(GitHubEventHandlerNoEdits, self).handle_pull_request(payload, event)
Modified: trunk/Tools/CISupport/ews-build/steps.py (293326 => 293327)
--- trunk/Tools/CISupport/ews-build/steps.py 2022-04-25 15:25:06 UTC (rev 293326)
+++ trunk/Tools/CISupport/ews-build/steps.py 2022-04-25 15:25:37 UTC (rev 293327)
@@ -57,7 +57,7 @@
WithProperties = properties.WithProperties
Interpolate = properties.Interpolate
GITHUB_URL = 'https://github.com/'
-GITHUB_PROJECTS = ['WebKit/WebKit']
+GITHUB_PROJECTS = ['WebKit/WebKit', 'apple/WebKit']
HASH_LENGTH_TO_DISPLAY = 8
DEFAULT_BRANCH = 'main'
@@ -829,10 +829,6 @@
description = ['checking-out-pull-request']
descriptionDone = ['Checked out pull request']
haltOnFailure = True
- env = dict(
- GIT_COMMITTER_NAME='EWS',
- GIT_COMMITTER_EMAIL=FROM_EMAIL,
- )
def __init__(self, **kwargs):
super(CheckOutPullRequest, self).__init__(timeout=10 * 60, logEnviron=False, **kwargs)
@@ -868,6 +864,14 @@
for command in commands:
self.commands.append(util.ShellArg(command=command, logname='stdio', haltOnFailure=True))
+ username, access_token = GitHub.credentials()
+ self.env = dict(
+ GIT_COMMITTER_NAME='EWS',
+ GIT_COMMITTER_EMAIL=FROM_EMAIL,
+ GIT_USER=username,
+ GIT_PASSWORD=access_token,
+ )
+
return super(CheckOutPullRequest, self).run()
def getResultSummary(self):
Modified: trunk/Tools/CISupport/ews-build/steps_unittest.py (293326 => 293327)
--- trunk/Tools/CISupport/ews-build/steps_unittest.py 2022-04-25 15:25:06 UTC (rev 293326)
+++ trunk/Tools/CISupport/ews-build/steps_unittest.py 2022-04-25 15:25:37 UTC (rev 293327)
@@ -3231,6 +3231,8 @@
ENV = dict(
GIT_COMMITTER_NAME='EWS',
GIT_COMMITTER_EMAIL='e...@webkit.org',
+ GIT_USER=None,
+ GIT_PASSWORD=None,
)
def setUp(self):
Modified: trunk/Tools/ChangeLog (293326 => 293327)
--- trunk/Tools/ChangeLog 2022-04-25 15:25:06 UTC (rev 293326)
+++ trunk/Tools/ChangeLog 2022-04-25 15:25:37 UTC (rev 293327)
@@ -1,3 +1,20 @@
+2022-04-21 Jonathan Bedard <jbed...@apple.com>
+
+ [ews-build.webkit.org] Support alternative remotes
+ https://bugs.webkit.org/show_bug.cgi?id=239617
+ <rdar://problem/92115230>
+
+ Reviewed by Aakash Jain.
+
+ * CISupport/ews-build/events.py:
+ (GitHubEventHandlerNoEdits):
+ (GitHubEventHandlerNoEdits.extractProperties): Remove sensative fields from non-public
+ pull requests.
+ (GitHubEventHandlerNoEdits.handle_pull_request): Generalize label process sleep.
+ * CISupport/ews-build/steps.py:
+ (CheckOutPullRequest.run): Checkout with EWS credentials.
+ * CISupport/ews-build/steps_unittest.py:
+
2022-04-13 Jonathan Bedard <jbed...@apple.com>
[build.webkit.org] Use GitHub checkouts