Title: [293327] trunk/Tools
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
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to