From 7cc7c3e449ae37355196695ba6a7ae2bb1cc9b27 Mon Sep 17 00:00:00 2001
From: JonRB <4564448+eeyrjmr@users.noreply.github.com>
Date: Thu, 4 Aug 2022 08:28:32 +0100
Subject: [PATCH] Executable check always returns true for windows (#20637)

* Executable check always returns true for windows

Windows doesn't have the concept of "executable" POSIX bits so for now always return true to minimise doctor and logging noise. Addresses #20636

* gofmt tweak

* Update modules/repository/hooks.go

Co-authored-by: silverwind <me@silverwind.io>

* gofmt comment line

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
---
 modules/repository/hooks.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/modules/repository/hooks.go b/modules/repository/hooks.go
index c2eb3a7c75..7bc77552bd 100644
--- a/modules/repository/hooks.go
+++ b/modules/repository/hooks.go
@@ -8,6 +8,7 @@ import (
 	"fmt"
 	"os"
 	"path/filepath"
+	"runtime"
 
 	"code.gitea.io/gitea/modules/git"
 	"code.gitea.io/gitea/modules/setting"
@@ -153,6 +154,10 @@ func createDelegateHooks(repoPath string) (err error) {
 }
 
 func checkExecutable(filename string) bool {
+	// windows has no concept of a executable bit
+	if runtime.GOOS == "windows" {
+		return true
+	}
 	fileInfo, err := os.Stat(filename)
 	if err != nil {
 		return false