diff --git a/pagure/hooks/files/fedmsg_hook.py b/pagure/hooks/files/fedmsg_hook.py index 9a1d73c..b5b4a3b 100755 --- a/pagure/hooks/files/fedmsg_hook.py +++ b/pagure/hooks/files/fedmsg_hook.py @@ -50,9 +50,12 @@ for line in sys.stdin.readlines(): revs = pagure.lib.git.get_revs_between( oldrev, newrev, abspath, refname, forced=forced) + project_name = pagure.lib.git.get_repo_name(abspath) username = pagure.lib.git.get_username(abspath) - project = pagure.lib.get_project(pagure.SESSION, project_name, username) + namespace = pagure.lib.git.get_repo_namespace(abspath) + project = pagure.lib.get_project( + pagure.SESSION, project_name, username, namespace=namespace) if not project: project = project_name diff --git a/pagure/hooks/files/pagure_force_commit_hook.py b/pagure/hooks/files/pagure_force_commit_hook.py index 3b07189..7809715 100755 --- a/pagure/hooks/files/pagure_force_commit_hook.py +++ b/pagure/hooks/files/pagure_force_commit_hook.py @@ -1,8 +1,7 @@ #! /usr/bin/env python2 -"""Pagure specific hook to add comment on issues if the commits fixes or -relates to an issue. +"""Pagure specific hook to block non-fastforward pushes. """ import os @@ -27,14 +26,18 @@ abspath = os.path.abspath(os.environ['GIT_DIR']) def run_as_pre_receive_hook(): reponame = pagure.lib.git.get_repo_name(abspath) + namespace = pagure.lib.git.get_repo_namespace(abspath) username = pagure.lib.git.get_username(abspath) if pagure.APP.config.get('HOOK_DEBUG', False): - print 'repo:', reponame - print 'user:', username + print 'repo: ', reponame + print 'user: ', username + print 'namspaces:', namespace - repo = pagure.lib.get_project(pagure.SESSION, reponame, user=username) + repo = pagure.lib.get_project( + pagure.SESSION, reponame, user=username, namespace=namespace) if not repo: - print 'Unknown repo %s of username: %s' % (reponame, username) + print 'Unknown repo %s of username: %s in namespace %s' % ( + reponame, username, namespace) sys.exit(1) plugin = pagure.ui.plugins.get_plugin('Block non fast-forward pushes') diff --git a/pagure/hooks/files/pagure_hook.py b/pagure/hooks/files/pagure_hook.py index 58579e9..7cb91cc 100755 --- a/pagure/hooks/files/pagure_hook.py +++ b/pagure/hooks/files/pagure_hook.py @@ -40,6 +40,7 @@ def generate_revision_change_log(new_commits_list): for relation in pagure.lib.link.get_relation( pagure.SESSION, pagure.lib.git.get_repo_name(abspath), + pagure.lib.git.get_repo_namespace(abspath), pagure.lib.git.get_username(abspath), line, 'fixes', @@ -50,6 +51,7 @@ def generate_revision_change_log(new_commits_list): for issue in pagure.lib.link.get_relation( pagure.SESSION, pagure.lib.git.get_repo_name(abspath), + pagure.lib.git.get_repo_namespace(abspath), pagure.lib.git.get_username(abspath), line, 'relates'): diff --git a/pagure/hooks/files/pagure_hook_requests.py b/pagure/hooks/files/pagure_hook_requests.py index 10d6a3f..88c4613 100755 --- a/pagure/hooks/files/pagure_hook_requests.py +++ b/pagure/hooks/files/pagure_hook_requests.py @@ -67,7 +67,8 @@ def run_as_post_receive_hook(): reponame = pagure.lib.git.get_repo_name(abspath) username = pagure.lib.git.get_username(abspath) - print 'repo:', reponame, username + namespace = pagure.lib.git.get_repo_namespace(abspath) + print 'repo:', reponame, username, namespace for filename in file_list: print 'To load: %s' % filename @@ -84,6 +85,7 @@ def run_as_post_receive_hook(): pagure.lib.git.update_request_from_git( pagure.SESSION, reponame=reponame, + namespace=namespace, username=username, request_uid=filename, json_data=json_data, diff --git a/pagure/hooks/files/pagure_hook_tickets.py b/pagure/hooks/files/pagure_hook_tickets.py index dbe9bff..2f4cb93 100755 --- a/pagure/hooks/files/pagure_hook_tickets.py +++ b/pagure/hooks/files/pagure_hook_tickets.py @@ -72,7 +72,8 @@ def run_as_post_receive_hook(): reponame = pagure.lib.git.get_repo_name(abspath) username = pagure.lib.git.get_username(abspath) - print 'repo:', reponame, username + namespace = pagure.lib.git.get_repo_namespace(abspath) + print 'repo:', reponame, username, namespace for filename in file_list: print 'To load: %s' % filename @@ -89,6 +90,7 @@ def run_as_post_receive_hook(): pagure.lib.git.update_ticket_from_git( pagure.SESSION, reponame=reponame, + namespace=namespace, username=username, issue_uid=filename, json_data=json_data) diff --git a/pagure/hooks/files/rtd_hook.py b/pagure/hooks/files/rtd_hook.py index 3803fb1..c6aaba4 100755 --- a/pagure/hooks/files/rtd_hook.py +++ b/pagure/hooks/files/rtd_hook.py @@ -29,11 +29,14 @@ abspath = os.path.abspath(os.environ['GIT_DIR']) def run_as_post_receive_hook(): reponame = pagure.lib.git.get_repo_name(abspath) username = pagure.lib.git.get_username(abspath) + namespace = pagure.lib.git.get_repo_namespace(abspath) if pagure.APP.config.get('HOOK_DEBUG', False): - print 'repo:', reponame - print 'user:', username + print 'repo: ', reponame + print 'user: ', username + print 'namespace:', namespace - repo = pagure.lib.get_project(pagure.SESSION, reponame, user=username) + repo = pagure.lib.get_project( + pagure.SESSION, reponame, user=username, namespace=namespace) if not repo: print 'Unknown repo %s of username: %s' % (reponame, username) sys.exit(1) diff --git a/pagure/lib/git.py b/pagure/lib/git.py index 741e475..34bdfcd 100644 --- a/pagure/lib/git.py +++ b/pagure/lib/git.py @@ -414,7 +414,7 @@ def get_project_from_json( def update_ticket_from_git( - session, reponame, username, issue_uid, json_data): + session, reponame,namespace, username, issue_uid, json_data): """ Update the specified issue (identified by its unique identifier) with the data present in the json blob provided. @@ -426,10 +426,12 @@ def update_ticket_from_git( """ - repo = pagure.lib.get_project(session, reponame, user=username) + repo = pagure.lib.get_project( + session, reponame, user=username, namespace=namespace) if not repo: raise pagure.exceptions.PagureException( - 'Unknown repo %s of username: %s' % (reponame, username)) + 'Unknown repo %s of username: %s in namespace: ' % ( + reponame, username, namespace)) user = get_user_from_json(session, json_data) @@ -511,7 +513,7 @@ def update_ticket_from_git( def update_request_from_git( - session, reponame, username, request_uid, json_data, + session, reponame, namespace, username, request_uid, json_data, gitfolder, docfolder, ticketfolder, requestfolder): """ Update the specified request (identified by its unique identifier) with the data present in the json blob provided. @@ -526,10 +528,12 @@ def update_request_from_git( """ - repo = pagure.lib.get_project(session, reponame, user=username) + repo = pagure.lib.get_project( + session, reponame, user=username, namespace=namespace) if not repo: raise pagure.exceptions.PagureException( - 'Unknown repo %s of username: %s' % (reponame, username)) + 'Unknown repo %s of username: %s in namespace: %s' % ( + reponame, username, namespace)) user = get_user_from_json(session, json_data) diff --git a/pagure/lib/link.py b/pagure/lib/link.py index bb66234..c4c3b24 100644 --- a/pagure/lib/link.py +++ b/pagure/lib/link.py @@ -40,8 +40,8 @@ RELATES = [ ] -def get_relation(session, reponame, username, text, reftype='relates', - include_prs=False): +def get_relation(session, reponame, namespace, username, text, + reftype='relates', include_prs=False): ''' For a given text, searches using regex if the text contains reference to another issue in this project or another one. @@ -57,7 +57,8 @@ def get_relation(session, reponame, username, text, reftype='relates', ''' - repo = pagure.lib.get_project(session, reponame, user=username) + repo = pagure.lib.get_project( + session, reponame, user=username, namespace=namespace) if not repo: return []