diff --git a/.gitignore b/.gitignore index 8f6acb6..0864b5b 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ fabric.properties # Built Visual Studio Code Extensions *.vsix +config-local.yaml \ No newline at end of file diff --git a/config.go b/config.go new file mode 100644 index 0000000..10955a0 --- /dev/null +++ b/config.go @@ -0,0 +1,26 @@ +package main + +import ( + "time" +) + +type Config struct { + Bind string `yaml:"bind"` // HTTP 绑定 + Domain string `yaml:"domain"` // 基础域名 + + Auth ConfigAuth `yaml:"auth"` // Gitea 认证配置 + + Cache string `yaml:"cache"` // + + Storage string `yaml:"storage"` // 持久化配置 +} + +type ConfigAuth struct { + Server string `yaml:"server"` + Token string `yaml:"token"` +} + +type ConfigCache struct { + ttl time.Duration `yaml:"ttl"` // 缓存时间 + length int `yaml:"length"` // 最大文件大小 +} diff --git a/go.mod b/go.mod index cf6f47c..de522c9 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,13 @@ module code.d7z.net/d7z-project/gitea-pages go 1.23.2 + +require ( + code.gitea.io/sdk/gitea v0.19.0 // indirect + github.com/davidmz/go-pageant v1.0.2 // indirect + github.com/go-fed/httpsig v1.1.0 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect + github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + golang.org/x/crypto v0.22.0 // indirect + golang.org/x/sys v0.19.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..0ad26c9 --- /dev/null +++ b/go.sum @@ -0,0 +1,26 @@ +code.gitea.io/sdk/gitea v0.19.0 h1:8I6s1s4RHgzxiPHhOQdgim1RWIRcr0LVMbHBjBFXq4Y= +code.gitea.io/sdk/gitea v0.19.0/go.mod h1:IG9xZJoltDNeDSW0qiF2Vqx5orMWa7OhVWrjvrd5NpI= +github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= +github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= +github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= +github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= +github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/providers/backend.go b/pkg/providers/backend.go new file mode 100644 index 0000000..e7060aa --- /dev/null +++ b/pkg/providers/backend.go @@ -0,0 +1,15 @@ +package providers + +import "io" + +type Blob struct { + MediaType string + io.ReadCloser +} + +type Backend interface { + Owners() ([]string, error) + Repos(owner string) ([]string, error) + Branches(owner, repo string) ([]string, error) + Open(owner, repo, branch, path string) (Blob, error) +} diff --git a/pkg/providers/gitea.go b/pkg/providers/gitea.go new file mode 100644 index 0000000..799ecaa --- /dev/null +++ b/pkg/providers/gitea.go @@ -0,0 +1,24 @@ +package providers + +type ProviderGitea struct { +} + +func (g *ProviderGitea) Owners() ([]string, error) { + //TODO implement me + panic("implement me") +} + +func (g *ProviderGitea) Repos(owner string) ([]string, error) { + //TODO implement me + panic("implement me") +} + +func (g *ProviderGitea) Branches(owner, repo string) ([]string, error) { + //TODO implement me + panic("implement me") +} + +func (g *ProviderGitea) Open(owner, repo, branch, path string) (Blob, error) { + //TODO implement me + panic("implement me") +}