From f348672868b485b1cc7134f3b8079bc7d47486f7 Mon Sep 17 00:00:00 2001 From: Jonas Maurus Date: Tue, 21 May 2024 14:30:54 +0200 Subject: [PATCH 1/2] add repoproc for allow_auto_merge --- ghconf/plumbing/repositories/common_procs.py | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/ghconf/plumbing/repositories/common_procs.py b/ghconf/plumbing/repositories/common_procs.py index a07a773..0468fa4 100644 --- a/ghconf/plumbing/repositories/common_procs.py +++ b/ghconf/plumbing/repositories/common_procs.py @@ -341,6 +341,34 @@ def _set_delete_branch_on_merge(change: Change[str]) -> Change[str]: return delete_branch_on_merge +def set_allow_auto_merge(value: bool) -> repoproc_t: + def allow_auto_merge(org: Organization, repo: Repository, branches: Dict[str, Branch]) -> List[Change[str]]: + """ + Turns on a feature that allows automatic merging of PRs + """ + def _set_allow_auto_merge(change: Change[str]) -> Change[str]: + print_debug("[%s] Enabling auto merge" % highlight(repo.name)) + try: + repo.edit(allow_auto_merge=value) + except GithubException: + return change.failure() + + return change.success() + + if not repo.allow_auto_merge: + change = Change( + meta=ChangeMetadata( + executor=_set_allow_auto_merge, + ), + action=ChangeActions.REPLACE, + before="Auto merge: %s" % "Enabled" if repo.allow_auto_merge else "Disabled", + after="Auto merge: %s" % "Enabled" if value else "Disabled" + ) + return [change] + return [] + return allow_auto_merge + + GOT = TypeVar("GOT") _GithubOptional = Union[GOT, _NotSetType] From 2da1ed7fcb6bdeb155fdb00558142f5b90ff0c67 Mon Sep 17 00:00:00 2001 From: Jonas Maurus Date: Tue, 21 May 2024 23:25:41 +0200 Subject: [PATCH 2/2] fix logic to create a Change if the desired value is different --- ghconf/plumbing/repositories/common_procs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ghconf/plumbing/repositories/common_procs.py b/ghconf/plumbing/repositories/common_procs.py index 0468fa4..1bf423e 100644 --- a/ghconf/plumbing/repositories/common_procs.py +++ b/ghconf/plumbing/repositories/common_procs.py @@ -355,7 +355,7 @@ def _set_allow_auto_merge(change: Change[str]) -> Change[str]: return change.success() - if not repo.allow_auto_merge: + if repo.allow_auto_merge != value: change = Change( meta=ChangeMetadata( executor=_set_allow_auto_merge,