am d5ff09c2: am 8d50e16a: Merge "Guard against @google.com.example.com."
* commit 'd5ff09c23a954d20b0dc21750dc5c0a666c0ce56': Guard against @google.com.example.com.
This commit is contained in:
commit
a66b68c22b
@ -51,6 +51,13 @@ def get_headers(msg):
|
|||||||
return headers
|
return headers
|
||||||
|
|
||||||
|
|
||||||
|
def should_skip_message(gerrit_info):
|
||||||
|
match = re.search(r'<(\S+)>$', gerrit_info['Owner'])
|
||||||
|
if match:
|
||||||
|
return not match.group(1).endswith('@google.com')
|
||||||
|
raise RuntimeError('Gerrit info missing Gerrit-Owner info.')
|
||||||
|
|
||||||
|
|
||||||
def build_service():
|
def build_service():
|
||||||
from apiclient.discovery import build
|
from apiclient.discovery import build
|
||||||
from oauth2client.client import flow_from_clientsecrets
|
from oauth2client.client import flow_from_clientsecrets
|
||||||
@ -200,7 +207,7 @@ def build_project(gerrit_info, dry_run):
|
|||||||
|
|
||||||
|
|
||||||
def handle_change(gerrit_info, _, dry_run):
|
def handle_change(gerrit_info, _, dry_run):
|
||||||
if '@google.com' not in gerrit_info['Owner']:
|
if should_skip_message(gerrit_info):
|
||||||
return True
|
return True
|
||||||
return build_project(gerrit_info, dry_run)
|
return build_project(gerrit_info, dry_run)
|
||||||
handle_newchange = handle_change
|
handle_newchange = handle_change
|
||||||
@ -233,7 +240,7 @@ def handle_comment(gerrit_info, body, dry_run):
|
|||||||
drop_rejection(gerrit_info, dry_run)
|
drop_rejection(gerrit_info, dry_run)
|
||||||
|
|
||||||
# TODO(danalbert): Needs to be based on the account that made the comment.
|
# TODO(danalbert): Needs to be based on the account that made the comment.
|
||||||
if '@google.com' not in gerrit_info['Owner']:
|
if should_skip_message(gerrit_info):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
command_map = {
|
command_map = {
|
||||||
|
21
tools/bionicbb/test_gmail_listener.py
Normal file
21
tools/bionicbb/test_gmail_listener.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import gmail_listener
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
|
||||||
|
class TestGerritParsers(unittest.TestCase):
|
||||||
|
def test_should_skip_message(self):
|
||||||
|
info = gmail_listener.get_gerrit_info(
|
||||||
|
'Gerrit-Owner: Some Googler <somegoogler@google.com>\n')
|
||||||
|
self.assertFalse(gmail_listener.should_skip_message(info))
|
||||||
|
|
||||||
|
info = gmail_listener.get_gerrit_info(
|
||||||
|
'Gerrit-Owner: Fake Googler <fakegoogler@google.com.foo.com>\n')
|
||||||
|
self.assertTrue(gmail_listener.should_skip_message(info))
|
||||||
|
|
||||||
|
info = gmail_listener.get_gerrit_info(
|
||||||
|
'Gerrit-Owner: John Doe <johndoe@example.com>\n')
|
||||||
|
self.assertTrue(gmail_listener.should_skip_message(info))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user