Allow retrieving/setting repository owner validation

Uses the `GIT_OPT_GET_OWNER_VALIDATION` and `GIT_OPT_SET_OWNER_VALIDATION` options introduced in 4161ebdd50
This commit is contained in:
calin 2022-04-20 21:16:12 -06:00
parent 7bff4ca7ad
commit 199995ee76
2 changed files with 40 additions and 0 deletions

View File

@ -134,6 +134,22 @@ func SetCacheObjectLimit(objectType ObjectType, size int) error {
return nil
}
func OwnerValidation() (enabled bool, err error) {
val, err := getSizet(C.GIT_OPT_GET_OWNER_VALIDATION)
if val == 1 {
return true, err
}
return false, err
}
func SetOwnerValidation(enabled bool) error {
if enabled {
return setSizet(C.GIT_OPT_SET_OWNER_VALIDATION, 1)
} else {
return setSizet(C.GIT_OPT_SET_OWNER_VALIDATION, 0)
}
}
func getSizet(opt C.int) (int, error) {
runtime.LockOSThread()
defer runtime.UnlockOSThread()

View File

@ -97,3 +97,27 @@ func TestSetCacheMaxSize(t *testing.T) {
err = SetCacheMaxSize(256 * 1024 * 1024)
checkFatal(t, err)
}
func TestOwnerValidation(t *testing.T) {
enabled, err := OwnerValidation()
checkFatal(t, err)
err = SetOwnerValidation(!enabled)
checkFatal(t, err)
var enabled2 bool
enabled2, err = OwnerValidation()
checkFatal(t, err)
if enabled == enabled2 {
t.Fatal("set owner validation failed")
}
}
func TestSetOwnerValidation(t *testing.T) {
err := SetOwnerValidation(false)
checkFatal(t, err)
err = SetOwnerValidation(true)
checkFatal(t, err)
}