def update_pull_with_comments(self, pull: PullRequest, pull_data: Dict, dry_run: bool) -> None: meta = pull_data["pull"] if dry_run: print(f"Would update pull {pull.number} with {meta}") return assert meta["head"] == pull.head.ref pull.edit( title=meta["title"], body=meta["body"], state=meta["state"], base=meta["base"], ) pull.set_labels(*meta["labels"]) pull.remove_from_assignees(*[ x.name for x in pull.assignees if x.name not in meta["assignees"] ]) pull.add_to_assignees(*meta["assignees"]) (reviewers, team_reviewers) = pull.get_review_request() pull.delete_review_request( reviewers=[u.name for u in reviewers], team_reviewers=[u.name for u in team_reviewers]) pull.create_review_request(reviewers=meta["reviewers"]) self.update_pull_comments(pull, pull_data["comments"], dry_run)
def close_pullreq_with_comment(pullreq: PullRequest, comment: str) -> None: pullreq.create_issue_comment(comment) pullreq.edit(state='closed')