From afec65a4de6cecdeb005c6a2757e0aad7bccf98d Mon Sep 17 00:00:00 2001 From: Gavin Lee Date: Fri, 16 May 2014 18:07:57 +0100 Subject: Short-circuiting hooks if repository is accessed directly Signed-off-by: Vanush "Misha" Paturyan --- bin/gitano-post-receive-hook.in | 6 ++++++ bin/gitano-pre-receive-hook.in | 6 ++++++ bin/gitano-update-hook.in | 6 ++++++ lib/gitano/auth.lua | 1 + 4 files changed, 19 insertions(+) diff --git a/bin/gitano-post-receive-hook.in b/bin/gitano-post-receive-hook.in index 3dccfee..df42ffc 100644 --- a/bin/gitano-post-receive-hook.in +++ b/bin/gitano-post-receive-hook.in @@ -31,6 +31,12 @@ local username = luxio.getenv("GITANO_USER") or "gitano/anonymous" local keytag = luxio.getenv("GITANO_KEYTAG") or "unknown" local project = luxio.getenv("GITANO_PROJECT") or "" local source = luxio.getenv("GITANO_SOURCE") or "ssh" +local running = luxio.getenv("GITANO_RUNNING") + +-- Check whether we are called through gitano-auth +if not running then + return 0 +end -- Now load the administration data gitano.config.repo_path(repo_root) diff --git a/bin/gitano-pre-receive-hook.in b/bin/gitano-pre-receive-hook.in index 182554b..2d9ef7e 100644 --- a/bin/gitano-pre-receive-hook.in +++ b/bin/gitano-pre-receive-hook.in @@ -31,6 +31,12 @@ local username = luxio.getenv("GITANO_USER") or "gitano/anonymous" local keytag = luxio.getenv("GITANO_KEYTAG") or "unknown" local project = luxio.getenv("GITANO_PROJECT") or "" local source = luxio.getenv("GITANO_SOURCE") or "ssh" +local running = luxio.getenv("GITANO_RUNNING") + +-- Check whether we are called through gitano-auth +if not running then + return 0 +end -- Now load the administration data gitano.config.repo_path(repo_root) diff --git a/bin/gitano-update-hook.in b/bin/gitano-update-hook.in index bb7d8fe..15da2a9 100644 --- a/bin/gitano-update-hook.in +++ b/bin/gitano-update-hook.in @@ -35,6 +35,12 @@ local username = luxio.getenv("GITANO_USER") or "gitano/anonymous" local keytag = luxio.getenv("GITANO_KEYTAG") or "unknown" local project = luxio.getenv("GITANO_PROJECT") or "" local source = luxio.getenv("GITANO_SOURCE") or "ssh" +local running = luxio.getenv("GITANO_RUNNING") + +-- Check whether we are called through gitano-auth +if not running then + return 0 +end -- Now load the administration data gitano.config.repo_path(repo_root) diff --git a/lib/gitano/auth.lua b/lib/gitano/auth.lua index 2e275dd..fa30da2 100644 --- a/lib/gitano/auth.lua +++ b/lib/gitano/auth.lua @@ -40,6 +40,7 @@ local function set_environment(repo_root, repo, context, transactionid) ["GITANO_PROJECT"] = (repo or {}).name or "", ["GITANO_SOURCE"] = context.source, ["GITANO_TRANSACTION_ID"] = transactionid, + ["GITANO_RUNNING"] = "yes", } for k, v in pairs(env) do -- cgit v1.2.1