Use forge from db (#1417)

This is the first step towards support for multiple forges (#138). It
inserts a forge using the currently existing env varaibles into db and
uses this forge from db later on in all places of the code.

closes #621

addresses #138 

# TODO
- [x] add forges table
- [x] add id of forge to repo
- [x] use forge of repo
- [x] add forge from env vars to db if not exists
- [x] migrate repo.ForgeID to the newly generated forge
- [x] support cache with forge from repo
- [x] maybe add forge loading cache? (use LRU cache for forges, I expect
users to have less than 10 forges normally)

---------

Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
This commit is contained in:
Anbraten
2024-04-16 08:04:55 +02:00
committed by GitHub
parent 0a38fb89db
commit d494b6a959
48 changed files with 1291 additions and 405 deletions

View File

@@ -39,12 +39,20 @@ func Config(c *gin.Context) {
).Sign(user.Hash)
}
// TODO: remove this and use the forge type from the corresponding repo
mainForge, err := server.Config.Services.Manager.ForgeMain()
if err != nil {
log.Error().Err(err).Msg("could not get main forge")
c.AbortWithStatus(http.StatusInternalServerError)
return
}
configData := map[string]any{
"user": user,
"csrf": csrf,
"version": version.String(),
"skip_version_check": server.Config.WebUI.SkipVersionCheck,
"forge": server.Config.Services.Forge.Name(),
"forge": mainForge.Name(),
"root_path": server.Config.Server.RootPath,
"enable_swagger": server.Config.WebUI.EnableSwagger,
}