diff mbox series

[3/5] patchwork-bot: Allow limiting heads to single branch

Message ID 20211201001126.4106635-4-keescook@chromium.org (mailing list archive)
State New, archived
Headers show
Series patchwork-bot: Use worktrees for repos | expand

Commit Message

Kees Cook Dec. 1, 2021, 12:11 a.m. UTC
To sanely use a single git repository with multiple worktrees, it must
be possible to limit the commits by branch (otherwise all commits are
visible for all worktrees). Add an optional "branch" argument for this
limit.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 git-patchwork-bot.example.yaml | 2 ++
 git-patchwork-bot.py           | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/git-patchwork-bot.example.yaml b/git-patchwork-bot.example.yaml
index d6140ed68e53..c3f6c1ea3133 100644
--- a/git-patchwork-bot.example.yaml
+++ b/git-patchwork-bot.example.yaml
@@ -52,6 +52,8 @@  repos:
   'pub/scm/linux/kernel/git/khilman/linux-amlogic.git':
     # For the notification emails
     treename: 'khilman/linux-amlogic.git'
+    # Optional: limit checking to a single branch (instead of --heads)
+    #branch: 'origin/master'
     # For the notification emails, must include %s
     commitlink: 'https://git.kernel.org/khilman/linux-amlogic/c/%.12s'
     # Only notify for commits where committer email exactly matches one
diff --git a/git-patchwork-bot.py b/git-patchwork-bot.py
index dc10fd0effa9..fc4d9e384122 100755
--- a/git-patchwork-bot.py
+++ b/git-patchwork-bot.py
@@ -409,9 +409,9 @@  def git_run_command(gitdir, args, stdin=None):
     return output
 
 
-def git_get_repo_heads(gitdir):
+def git_get_repo_heads(gitdir, branch):
     refs = list()
-    lines = git_get_command_lines(gitdir, ['show-ref', '--heads'])
+    lines = git_get_command_lines(gitdir, ['show-ref', branch])
     if lines is not None:
         for line in lines:
             (commit_id, refname) = line.split()
@@ -1049,7 +1049,7 @@  def housekeeping(pname):
 
 
 def pwrun(repo, rsettings):
-    git_heads = git_get_repo_heads(repo)
+    git_heads = git_get_repo_heads(repo, branch=rsettings.get('branch', '--heads'))
     if not git_heads:
         logger.info('Could not get the latest ref in %s', repo)
         sys.exit(1)