You've already forked woodpecker
							
							
				mirror of
				https://github.com/woodpecker-ci/woodpecker.git
				synced 2025-10-30 23:27:39 +02:00 
			
		
		
		
	introduce limiter for planned refactoring
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user