Skip to content

Commit 72fa627

Browse files
authored
PullRequest.delete_branch: fix the remaining pull requests check (PyGithub#3063)
### Problem `delete_branch(force=False)` raises a `RuntimeError` if the repository has any open pull requests because the current check used for remaining open pull requests returns all open pull requests for the repository instead of only the open pull requests associated with the pull request's branch. ### Fix Updating this to use the format of `user:ref-name` or `organization:ref-name` appropriately gets open pull requests for the pull request's branch. ``` remaining_pulls = self.head.repo.get_pulls(head=f"{self.head.repo.owner.login}:{self.head.ref}") ``` > [!NOTE] > See: PyGithub#3031 > From docs: https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#list-pull-requests ![Screenshot 2024-10-17 at 3 13 20 PM](https://github.com/user-attachments/assets/d0fbe8e9-09f3-42cc-8dd9-716418de2387)
1 parent 352c55a commit 72fa627

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

github/PullRequest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ def delete_branch(self, force: bool = False) -> None:
777777
Convenience function that calls :meth:`GitRef.delete` :rtype: bool.
778778
"""
779779
if not force:
780-
remaining_pulls = self.head.repo.get_pulls(head=self.head.ref)
780+
remaining_pulls = self.head.repo.get_pulls(head=f"{self.head.repo.owner.login}:{self.head.ref}")
781781
if remaining_pulls.totalCount > 0:
782782
raise RuntimeError(
783783
"This branch is referenced by open pull requests, set force=True to delete this branch."

tests/ReplayData/PullRequest.testDeleteBranch.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ https
1313
GET
1414
api.github.com
1515
None
16-
/repos/austinsasko/PyGithub/pulls?head=revert-20-revert-19-revert-18-revert-16-revert-15-revert-14-revert-13-revert-12-revert-11-revert-10-revert-9-revert-8-revert-7-revert-6-revert-5-revert-4-revert-3-revert-2-revert-1-testing&per_page=1
16+
/repos/austinsasko/PyGithub/pulls?head=austinsasko%3Arevert-20-revert-19-revert-18-revert-16-revert-15-revert-14-revert-13-revert-12-revert-11-revert-10-revert-9-revert-8-revert-7-revert-6-revert-5-revert-4-revert-3-revert-2-revert-1-testing&per_page=1
1717
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
1818
None
1919
200

tests/ReplayData/PullRequest.testDeleteOnMerge.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ https
3535
GET
3636
api.github.com
3737
None
38-
/repos/austinsasko/PyGithub/pulls?head=revert-20-revert-19-revert-18-revert-16-revert-15-revert-14-revert-13-revert-12-revert-11-revert-10-revert-9-revert-8-revert-7-revert-6-revert-5-revert-4-revert-3-revert-2-revert-1-testing&per_page=1
38+
/repos/austinsasko/PyGithub/pulls?head=austinsasko%3Arevert-20-revert-19-revert-18-revert-16-revert-15-revert-14-revert-13-revert-12-revert-11-revert-10-revert-9-revert-8-revert-7-revert-6-revert-5-revert-4-revert-3-revert-2-revert-1-testing&per_page=1
3939
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
4040
None
4141
200

0 commit comments

Comments
 (0)