From 40d2e3e026ee6b016bb7f961c0ea38bd77e31db2 Mon Sep 17 00:00:00 2001 From: Clement Verna Date: Feb 19 2018 12:51:21 +0000 Subject: [PATCH 1/2] Fix the rtd hook by creating the database relation Signed-off-by: Clement Verna --- diff --git a/pagure/hooks/files/rtd_hook.py b/pagure/hooks/files/rtd_hook.py index 3addc3a..af56541 100755 --- a/pagure/hooks/files/rtd_hook.py +++ b/pagure/hooks/files/rtd_hook.py @@ -22,10 +22,10 @@ import pagure.exceptions # noqa: E402 import pagure.lib.link # noqa: E402 import pagure.lib.plugins # noqa: E402 - -_config = pagure.config.config.reload_config() +_config = pagure.config.config abspath = os.path.abspath(os.environ['GIT_DIR']) +SESSION = pagure.lib.create_session(_config['DB_URL']) def run_as_post_receive_hook(): reponame = pagure.lib.git.get_repo_name(abspath) @@ -37,12 +37,14 @@ def run_as_post_receive_hook(): print('namespace:', namespace) repo = pagure.lib.get_authorized_project( - pagure.SESSION, reponame, user=username, namespace=namespace) + SESSION, reponame, user=username, namespace=namespace) if not repo: print('Unknown repo %s of username: %s' % (reponame, username)) sys.exit(1) - pagure.lib.plugins.get_plugin('Read the Doc') + hook = pagure.lib.plugins.get_plugin('Read the Doc') + hook.db_object() + # Get the list of branches branches = [ branch.strip() From 202f52dca5a22e3d7720eabc1a7eea78d297860d Mon Sep 17 00:00:00 2001 From: Clement Verna Date: Feb 19 2018 12:51:21 +0000 Subject: [PATCH 2/2] Make it possible for the webapp to write in the repos This is needed when one wants to enable a hook. Signed-off-by: Clement Verna --- diff --git a/dev/docker-compose.yml b/dev/docker-compose.yml index 90806ab..44c3a0f 100644 --- a/dev/docker-compose.yml +++ b/dev/docker-compose.yml @@ -16,7 +16,7 @@ services: - type: volume source: ../lcl/repos target: /repos - read_only: true + read_only: false - type: volume source: ../lcl/attachments target: /attachments diff --git a/pagure/hooks/files/rtd_hook.py b/pagure/hooks/files/rtd_hook.py index af56541..c2514cd 100755 --- a/pagure/hooks/files/rtd_hook.py +++ b/pagure/hooks/files/rtd_hook.py @@ -25,21 +25,22 @@ import pagure.lib.plugins # noqa: E402 _config = pagure.config.config abspath = os.path.abspath(os.environ['GIT_DIR']) -SESSION = pagure.lib.create_session(_config['DB_URL']) 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) + session = pagure.lib.create_session(_config['DB_URL']) if _config.get('HOOK_DEBUG', False): print('repo: ', reponame) print('user: ', username) print('namespace:', namespace) repo = pagure.lib.get_authorized_project( - SESSION, reponame, user=username, namespace=namespace) + session, reponame, user=username, namespace=namespace) if not repo: print('Unknown repo %s of username: %s' % (reponame, username)) + session.close() sys.exit(1) hook = pagure.lib.plugins.get_plugin('Read the Doc') @@ -77,6 +78,8 @@ def run_as_post_receive_hook(): repo.rtd_hook.project_name.strip())) requests.post(url) + session.close() + def main(args): run_as_post_receive_hook()