diff --git a/Makefile.am b/Makefile.am
index 7a0d40d6a5741f890ace0334c3ae7b9bae1ebf5a..df30e0b59a94793b1ba82457b9d0b4851768b6cc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -224,10 +224,19 @@ test: all
 shellcheck:
         # Only use shellcheck if it is present
 	if command -v shellcheck; then \
-	        find $(top_srcdir)/scripts/ -name "*.sh" -exec shellcheck {} +; \
+                find "$(top_srcdir)" -name "*.sh" -not -path "$(top_srcdir)/src/ext/*" -exec shellcheck {} +; \
 	        if [ -d "$(top_srcdir)/scripts/test" ]; then \
                         shellcheck $(top_srcdir)/scripts/test/cov-diff $(top_srcdir)/scripts/test/coverage; \
                 fi; \
+                if [ -e "$(top_srcdir)/contrib/dirauth-tools/nagios-check-tor-authority-cert" ]; then \
+                        shellcheck "$(top_srcdir)/contrib/dirauth-tools/nagios-check-tor-authority-cert"; \
+                fi; \
+                if [ -e "$(top_srcdir)/contrib/client-tools/torify" ]; then \
+                        shellcheck "$(top_srcdir)/contrib/client-tools/torify"; \
+                fi; \
+                if [ -d "$(top_srcdir)/scripts/git" ]; then \
+                        shellcheck $(top_srcdir)/scripts/git/*.git-hook; \
+                fi; \
 	fi
 
 check-local: check-spaces check-changes check-includes check-best-practices shellcheck
diff --git a/changes/ticket29533 b/changes/ticket29533
new file mode 100644
index 0000000000000000000000000000000000000000..27ef68121830e6105504cc9c67ea5af42e28a433
--- /dev/null
+++ b/changes/ticket29533
@@ -0,0 +1,3 @@
+  o Testing:
+    - Run shellcheck for all non-third-party shell scripts that are shipped
+      with Tor. Closes ticket 29533.
diff --git a/scripts/git/pre-push.git-hook b/scripts/git/pre-push.git-hook
index 51b0c896c8de57c9b1dd29e8cb27c216c23df3c6..71abc9aa2bf0c9909ae08e63fc0dc5c14a4600f3 100755
--- a/scripts/git/pre-push.git-hook
+++ b/scripts/git/pre-push.git-hook
@@ -35,7 +35,6 @@ if [ -e scripts/maint/practracker/practracker.py ]; then
 fi
 
 remote="$1"
-remote_loc="$2"
 
 remote_name=$(git remote --verbose | grep "$2" | awk '{print $1}' | head -n 1)