Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion bedevere/stage.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"Awaiting review" -> "Awaiting core review" [label="New review", color=blue]
"Awaiting core review" -> "Awaiting core review" [label="New review", color=blue]
"Awaiting core review" -> "Awaiting changes" [label="New review requests changes", color=green]
"Awaiting changes" -> "Awaiting change review" [label="Comments changes are done", color=orange]
"Awaiting changes" -> "Awaiting change review" [label="Comments changes are done\nBedevere requests review from core-dev", color=orange]
"Awaiting change review" -> "Awaiting changes" [label="New review requests changes", color=green]
"Awaiting change review" -> "Awaiting merge" [label="New review approves", color=green]

Expand Down Expand Up @@ -222,6 +222,10 @@ async def new_comment(event, gh, *args, **kwargs):
thanks = BORING_THANKS
comment = ACK.format(greeting=thanks, core_devs=core_devs)
await gh.post(issue["comments_url"], data={"body": comment})
# Re-request reviews from core developers based on the new state of the PR.
reviewers_url = pr_url + '/requested_reviewers'
reviewers = [core_dev async for core_dev in core_dev_reviewers(gh, pr_url)]
await gh.post(reviewers_url, data={"reviewers": reviewers})


@router.register("pull_request", action="closed")
Expand Down
18 changes: 14 additions & 4 deletions tests/test_stage.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,15 +401,20 @@ async def test_new_comment():
}
gh = FakeGH(getitem=items, getiter=iterators)
await awaiting.router.dispatch(event, gh)
assert len(gh.post_) == 2
labeling, comment = gh.post_
assert len(gh.post_) == 3
labeling, comment, review_request = gh.post_
assert labeling[0] == "https://api.github.com/labels/42"
assert labeling[1] == [awaiting.Blocker.change_review.value]
assert comment[0] == "https://api.github.com/comments/42"
comment_body = comment[1]["body"]
assert "@brettcannon" in comment_body
assert "@gvanrossum" in comment_body
assert "not-core-dev" not in comment_body
assert review_request[0] == "https://api.github.com/pr/42/requested_reviewers"
requested_reviewers = review_request[1]["reviewers"]
assert "brettcannon" in requested_reviewers
assert "gvanrossum" in requested_reviewers
assert "not-core-dev" not in requested_reviewers

# All is right with the Monty Python world.
data = {
Expand All @@ -430,15 +435,20 @@ async def test_new_comment():
event = sansio.Event(data, event="issue_comment", delivery_id="12345")
gh = FakeGH(getitem=items, getiter=iterators)
await awaiting.router.dispatch(event, gh)
assert len(gh.post_) == 2
labeling, comment = gh.post_
assert len(gh.post_) == 3
labeling, comment, review_request = gh.post_
assert labeling[0] == "https://api.github.com/labels/42"
assert labeling[1] == [awaiting.Blocker.change_review.value]
assert comment[0] == "https://api.github.com/comments/42"
comment_body = comment[1]["body"]
assert "@brettcannon" in comment_body
assert "@gvanrossum" in comment_body
assert "not-core-dev" not in comment_body
assert review_request[0] == "https://api.github.com/pr/42/requested_reviewers"
requested_reviewers = review_request[1]["reviewers"]
assert "brettcannon" in requested_reviewers
assert "gvanrossum" in requested_reviewers
assert "not-core-dev" not in requested_reviewers


async def test_change_requested_for_core_dev():
Expand Down