Я пытаюсь написать конечную точку webhook для использования с Gogs. Мне нужно иметь возможность проверить секретный ключ, но я не могу понять, как он рассчитывается Гогсом. У меня есть следующая реализация, которую я почти извлек из их исходного кода , но полученная подпись и моя расчетная подпись никогда не совпадают.
var body []byte
request.Body.Read(body)
sig := hmac.New(sha256.New, []byte("my_secret"))
sig.Write(body)
calculatedSignature := hex.EncodeToString(sig.Sum(nil))
fmt.Println("Calculated sig:", calculatedSignature)
fmt.Println("Received sig: ", receivedSignature)
Дает:
Calculated sig: 3c980c81acef21e0356767cca9ab9d6a62a4e09677bb07107e4524c381b17309
Received sig: 5599460d54ae909c3228ccd08230526313074f8f2b967d201e3a113be53e6f07
Я не могу зарегистрироваться на форуме Gogs, чтобы спросить там. Любые предложения о том, как правильно рассчитать подпись, чтобы я мог сравнить и проверить секрет веб-крючка?