Skip to content

Commit 650a184

Browse files
committed
Fix 'git-obs staging remove' to check if the specified pull requests are part of the project pull request
1 parent 48fc219 commit 650a184

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

osc/commands_git/staging_remove.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,20 @@ def run(self, args):
4040
with TemporaryDirectory(prefix="git-obs-staging_", dir=".", delete=not args.keep_temp_dir) as temp_dir:
4141
# get pull request data from gitea
4242
target = gitea_api.StagingPullRequestWrapper(self.gitea_conn, target_owner, target_repo, target_number, topdir=temp_dir)
43-
pr_map = {} # {(owner, repo, number):.
43+
44+
# check if the specified references match actual references in the project pull request
45+
refs = target.pr_obj.parse_pr_references()
46+
refs = [(owner.lower(), repo.lower(), number) for owner, repo, number in refs]
47+
missing_refs = []
48+
for owner, repo, number in args.pr_list:
49+
if (owner, repo, number) not in refs:
50+
missing_refs.append(f"{owner}/{repo}#{number}")
51+
if missing_refs:
52+
msg = f"The following pull requests are not referenced in the project pull request: {', '.join(missing_refs)}"
53+
raise gitea_api.GitObsRuntimeError(msg)
54+
55+
# get pull request data from gitea
56+
pr_map = {}
4457
for owner, repo, number in args.pr_list:
4558
pr = gitea_api.StagingPullRequestWrapper(self.gitea_conn, owner, repo, number, topdir=temp_dir)
4659
pr_map[(owner.lower(), repo.lower(), number)] = pr

0 commit comments

Comments
 (0)