aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api/v1/api.go
diff options
context:
space:
mode:
authortechknowlogick <techknowlogick@gitea.io>2021-09-27 19:38:06 -0400
committerGitHub <noreply@github.com>2021-09-28 01:38:06 +0200
commitbabab0bf5e1b6afc1bccf26e5ef0aec69972599e (patch)
treebc1ca1c5f8487d61df43efc4ffd0843f5848363e /routers/api/v1/api.go
parentf48dce3176649916c262ab080d5f38a0433f38c0 (diff)
downloadgitea-babab0bf5e1b6afc1bccf26e5ef0aec69972599e.tar.gz
gitea-babab0bf5e1b6afc1bccf26e5ef0aec69972599e.zip
Add nodeinfo endpoint for federation purposes (#16953)
Nodeinfo is a way to expose certain metadata about a server for use of discovery regarding functionality of its federation capabilities. Two endpoints are required: 1. `/.well-known/nodeinfo` which informs client where it can find the location of the location of its metadata (including which version of the schema is used) 2. the endpoint which exposes the metadata in json format according to schema. Notes: * `openRegistrations` is a required field, but I propose to set to false as default in case someone writes a crawler to discover "open" gitea instances * to limit data leakage I also propose to not include the `usage` field (note it is required so it should be included, but left as empty). More info: https://github.com/jhass/nodeinfo https://github.com/jhass/nodeinfo/tree/main/schemas/2.1 http://nodeinfo.diaspora.software/protocol.html
Diffstat (limited to 'routers/api/v1/api.go')
-rw-r--r--routers/api/v1/api.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index 082381d31c..0a967e3c5a 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -580,6 +580,9 @@ func Routes(sessioner func(http.Handler) http.Handler) *web.Route {
})
}
m.Get("/version", misc.Version)
+ if setting.Federation.Enabled {
+ m.Get("/nodeinfo", misc.NodeInfo)
+ }
m.Get("/signing-key.gpg", misc.SigningKey)
m.Post("/markdown", bind(api.MarkdownOption{}), misc.Markdown)
m.Post("/markdown/raw", misc.MarkdownRaw)