Skip to content
This repository was archived by the owner on Mar 20, 2024. It is now read-only.

Commit fea6702

Browse files
author
bors-servo
authored
Auto merge of #151 - alexrs:fix-auth, r=jdm
Fix auth in parse_commands As discussed in #150, the auth shouldn't' be done at the beginning of `parse_commands`, but when some action is going to be executed. This PR reintroduces `functools.partial` to fix the issue. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/homu/151) <!-- Reviewable:end -->
2 parents 2467053 + e5a9d90 commit fea6702

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

homu/main.py

+21-18
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import toml
44
import json
55
import re
6+
import functools
67
from . import utils
78
from .utils import lazy_debug
89
import logging
@@ -448,22 +449,24 @@ def parse_commands(body, username, repo_cfg, state, my_username, db, states,
448449
global global_cfg
449450
state_changed = False
450451

451-
_reviewer_auth_verified = verify_auth(
452+
_reviewer_auth_verified = functools.partial(
453+
verify_auth,
452454
username,
453455
repo_cfg,
454456
state,
455457
AuthState.REVIEWER,
456458
realtime,
457-
my_username
459+
my_username,
458460
)
459461

460-
_try_auth_verified = verify_auth(
462+
_try_auth_verified = functools.partial(
463+
verify_auth,
461464
username,
462465
repo_cfg,
463466
state,
464467
AuthState.TRY,
465468
realtime,
466-
my_username
469+
my_username,
467470
)
468471

469472
words = get_words(body, my_username)
@@ -475,7 +478,7 @@ def parse_commands(body, username, repo_cfg, state, my_username, db, states,
475478
for i, word in reversed(list(enumerate(words))):
476479
found = True
477480
if word == 'r+' or word.startswith('r='):
478-
if not _reviewer_auth_verified:
481+
if not _reviewer_auth_verified():
479482
continue
480483

481484
if not sha and i + 1 < len(words):
@@ -489,29 +492,29 @@ def parse_commands(body, username, repo_cfg, state, my_username, db, states,
489492
continue
490493

491494
elif word == 'r-':
492-
if not _reviewer_auth_verified:
495+
if not _reviewer_auth_verified():
493496
continue
494497
review_rejected(state, realtime)
495498

496499
elif word.startswith('p='):
497-
if not _try_auth_verified:
500+
if not _try_auth_verified():
498501
continue
499-
if not set_priority(state, word[len('p='):], global_cfg):
502+
if not set_priority(state, realtime, word[len('p='):], global_cfg):
500503
continue
501504

502505
elif word.startswith('delegate='):
503-
if not _reviewer_auth_verified:
506+
if not _reviewer_auth_verified():
504507
continue
505508
delegate_to(state, realtime, word[len('delegate='):])
506509

507510
elif word == 'delegate-':
508511
# TODO: why is this a TRY?
509-
if not _try_auth_verified:
512+
if not _try_auth_verified():
510513
continue
511514
delegate_negative(state)
512515

513516
elif word == 'delegate+':
514-
if not _reviewer_auth_verified:
517+
if not _reviewer_auth_verified():
515518
continue
516519
delegate_positive(state,
517520
state.get_repo().
@@ -525,35 +528,35 @@ def parse_commands(body, username, repo_cfg, state, my_username, db, states,
525528
retry(state)
526529

527530
elif word in ['try', 'try-'] and realtime:
528-
if not _try_auth_verified:
531+
if not _try_auth_verified():
529532
continue
530-
_try(state, word, realtime)
533+
_try(state, word)
531534

532535
elif word in ['rollup', 'rollup-']:
533-
if not _try_auth_verified:
536+
if not _try_auth_verified():
534537
continue
535538
rollup(state, word)
536539

537540
elif word == 'force' and realtime:
538-
if not _try_auth_verified:
541+
if not _try_auth_verified():
539542
continue
540543
force(repo_cfg, state)
541544

542545
elif word == 'clean' and realtime:
543-
if not _try_auth_verified:
546+
if not _try_auth_verified():
544547
continue
545548
clean(state)
546549

547550
elif (word == 'hello?' or word == 'ping') and realtime:
548551
hello_or_ping(state)
549552

550553
elif word.startswith('treeclosed='):
551-
if not _reviewer_auth_verified:
554+
if not _reviewer_auth_verified():
552555
continue
553556
set_treeclosed(state, word)
554557

555558
elif word == 'treeclosed-':
556-
if not _reviewer_auth_verified:
559+
if not _reviewer_auth_verified():
557560
continue
558561
treeclosed_negative(state)
559562

0 commit comments

Comments
 (0)