mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-02-20 21:26:18 +00:00
introduce limiter for planned refactoring
This commit is contained in:
parent
902523911e
commit
25c9b8050a
6 changed files with 21 additions and 0 deletions
|
@ -619,6 +619,7 @@ func setupEvilGlobals(c *cli.Context, v store.Store, r remote.Remote) {
|
|||
droneserver.Config.Services.Secrets = setupSecretService(c, v)
|
||||
droneserver.Config.Services.Senders = sender.New(v, v)
|
||||
droneserver.Config.Services.Environ = setupEnvironService(c, v)
|
||||
droneserver.Config.Services.Limiter = setupLimiter(c, v)
|
||||
|
||||
if endpoint := c.String("gating-service"); endpoint != "" {
|
||||
droneserver.Config.Services.Senders = sender.NewRemote(endpoint)
|
||||
|
|
|
@ -46,6 +46,10 @@ func setupEnvironService(c *cli.Context, s store.Store) model.EnvironService {
|
|||
return nil
|
||||
}
|
||||
|
||||
func setupLimiter(c *cli.Context, s store.Store) model.Limiter {
|
||||
return new(model.NoLimit)
|
||||
}
|
||||
|
||||
func setupPubsub(c *cli.Context) {}
|
||||
func setupStream(c *cli.Context) {}
|
||||
func setupGatingService(c *cli.Context) {}
|
||||
|
|
|
@ -197,6 +197,11 @@ func PostHook(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
if err = Config.Services.Limiter.LimitBuild(user, repo, build); err != nil {
|
||||
c.String(403, "Build blocked by limiter")
|
||||
return
|
||||
}
|
||||
|
||||
build.Trim()
|
||||
err = store.CreateBuild(c, build, build.Procs...)
|
||||
if err != nil {
|
||||
|
|
|
@ -81,6 +81,11 @@ func HandleAuth(c *gin.Context) {
|
|||
),
|
||||
}
|
||||
|
||||
if err = Config.Services.Limiter.LimitUser(u); err != nil {
|
||||
c.String(403, "User activation blocked by limiter")
|
||||
return
|
||||
}
|
||||
|
||||
// insert the user into the database
|
||||
if err := store.CreateUser(c, u); err != nil {
|
||||
logrus.Errorf("cannot insert %s. %s", u.Login, err)
|
||||
|
|
|
@ -27,6 +27,11 @@ func PostRepo(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
if err := Config.Services.Limiter.LimitRepo(user, repo); err != nil {
|
||||
c.String(403, "Repository activation blocked by limiter")
|
||||
return
|
||||
}
|
||||
|
||||
repo.IsActive = true
|
||||
repo.UserID = user.ID
|
||||
if !repo.AllowPush && !repo.AllowPull && !repo.AllowDeploy && !repo.AllowTag {
|
||||
|
|
|
@ -41,6 +41,7 @@ var Config = struct {
|
|||
Secrets model.SecretService
|
||||
Registries model.RegistryService
|
||||
Environ model.EnvironService
|
||||
Limiter model.Limiter
|
||||
}
|
||||
Storage struct {
|
||||
// Users model.UserStore
|
||||
|
|
Loading…
Reference in a new issue