1package git
2
3import (
4 "github.com/charmbracelet/soft-serve/proto"
5 "github.com/gliderlabs/ssh"
6)
7
8// Hooks is an interface that allows for custom authorization
9// implementations and post push/fetch notifications. Prior to git access,
10// AuthRepo will be called with the ssh.Session public key and the repo name.
11// Implementers return the appropriate AccessLevel.
12type Hooks interface {
13 AuthRepo(string, ssh.PublicKey) proto.AccessLevel
14 Push(string, ssh.PublicKey)
15 Fetch(string, ssh.PublicKey)
16}