Browse Source

Upon merging a pull-request, call the post-receive hook

Pierre-Yves Chibon 7 years ago
parent
commit
5a8c6a1431
1 changed files with 11 additions and 3 deletions
  1. 11 3
      pagure/lib/git.py

+ 11 - 3
pagure/lib/git.py

@@ -1044,20 +1044,21 @@ def merge_pull_request(
              mergecode & pygit2.GIT_MERGE_ANALYSIS_FASTFORWARD)):
 
         if domerge:
+            head = new_repo.lookup_reference('HEAD').get_object()
             if not request.project.settings.get('always_merge', False):
                 if merge is not None:
                     # This is depending on the pygit2 version
                     branch_ref.target = merge.fastforward_oid
                 elif merge is None and mergecode is not None:
                     branch_ref.set_target(repo_commit.oid.hex)
+                commit = repo_commit.oid.hex
             else:
                 tree = new_repo.index.write_tree()
-                head = new_repo.lookup_reference('HEAD').get_object()
                 user_obj = pagure.lib.__get_user(session, username)
                 author = pygit2.Signature(
                     user_obj.fullname.encode('utf-8'),
                     user_obj.default_email.encode('utf-8'))
-                new_repo.create_commit(
+                commit = new_repo.create_commit(
                     'refs/heads/%s' % request.branch,
                     author,
                     author,
@@ -1066,6 +1067,9 @@ def merge_pull_request(
                     [head.hex, repo_commit.oid.hex])
 
             PagureRepo.push(ori_remote, refname)
+            fork_obj.run_hook(
+                head.hex, commit, 'refs/heads/%s' % request.branch,
+                username)
         else:
             request.merge_status = 'FFORWARD'
             session.commit()
@@ -1091,14 +1095,18 @@ def merge_pull_request(
             author = pygit2.Signature(
                 user_obj.fullname.encode('utf-8'),
                 user_obj.default_email.encode('utf-8'))
-            new_repo.create_commit(
+            commit = new_repo.create_commit(
                 'refs/heads/%s' % request.branch,
                 author,
                 author,
                 'Merge #%s `%s`' % (request.id, request.title),
                 tree,
                 [head.hex, repo_commit.oid.hex])
+
             PagureRepo.push(ori_remote, refname)
+            fork_obj.run_hook(
+                head.hex, commit, 'refs/heads/%s' % request.branch,
+                username)
 
         else:
             request.merge_status = 'MERGE'