mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Config option to disable automatic repo watching (#5852)
Add a new config option to enable / disable the automatic watching of repos for new repositories and if a user is added to a team. Fixes #653 Signed-off-by: Sebastian Sauer <sauer.sebastian@gmail.com>
This commit is contained in:
		
				
					committed by
					
						
						zeripath
					
				
			
			
				
	
			
			
			
						parent
						
							b8a81cb1b8
						
					
				
				
					commit
					84076211b3
				
			@@ -368,6 +368,10 @@ DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME = true
 | 
			
		||||
NO_REPLY_ADDRESS = noreply.example.org
 | 
			
		||||
; Show Registration button
 | 
			
		||||
SHOW_REGISTRATION_BUTTON = true
 | 
			
		||||
; Default value for AutoWatchNewRepos
 | 
			
		||||
; When adding a repo to a team or creating a new repo all team members will watch the 
 | 
			
		||||
; repo automatically if enabled 
 | 
			
		||||
AUTO_WATCH_NEW_REPOS = true
 | 
			
		||||
 | 
			
		||||
[webhook]
 | 
			
		||||
; Hook task queue length, increase if webhook shooting starts hanging
 | 
			
		||||
 
 | 
			
		||||
@@ -207,6 +207,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
 | 
			
		||||
- `EMAIL_DOMAIN_WHITELIST`: **\<empty\>**: If non-empty, list of domain names that can only be used to register
 | 
			
		||||
  on this instance.
 | 
			
		||||
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: Show Registration Button
 | 
			
		||||
- `AUTO_WATCH_NEW_REPOS`: **true** Enable this to let all organisation users watch new repos when they are created
 | 
			
		||||
 | 
			
		||||
## Webhook (`webhook`)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,8 @@ import (
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-xorm/xorm"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -123,14 +125,18 @@ func (t *Team) addRepository(e Engine, repo *Repository) (err error) {
 | 
			
		||||
		return fmt.Errorf("recalculateAccesses: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = t.getMembers(e); err != nil {
 | 
			
		||||
		return fmt.Errorf("getMembers: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	for _, u := range t.Members {
 | 
			
		||||
		if err = watchRepo(e, u.ID, repo.ID, true); err != nil {
 | 
			
		||||
			return fmt.Errorf("watchRepo: %v", err)
 | 
			
		||||
	// Make all team members watch this repo if enabled in global settings
 | 
			
		||||
	if setting.Service.AutoWatchNewRepos {
 | 
			
		||||
		if err = t.getMembers(e); err != nil {
 | 
			
		||||
			return fmt.Errorf("getMembers: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
		for _, u := range t.Members {
 | 
			
		||||
			if err = watchRepo(e, u.ID, repo.ID, true); err != nil {
 | 
			
		||||
				return fmt.Errorf("watchRepo: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -618,9 +624,10 @@ func AddTeamMember(team *Team, userID int64) error {
 | 
			
		||||
		if err := repo.recalculateTeamAccesses(sess, 0); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if err = watchRepo(sess, userID, repo.ID, true); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		if setting.Service.AutoWatchNewRepos {
 | 
			
		||||
			if err = watchRepo(sess, userID, repo.ID, true); err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -34,8 +34,8 @@ import (
 | 
			
		||||
	"github.com/Unknwon/com"
 | 
			
		||||
	"github.com/go-xorm/builder"
 | 
			
		||||
	"github.com/go-xorm/xorm"
 | 
			
		||||
	"github.com/mcuadros/go-version"
 | 
			
		||||
	"gopkg.in/ini.v1"
 | 
			
		||||
	version "github.com/mcuadros/go-version"
 | 
			
		||||
	ini "gopkg.in/ini.v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var repoWorkingPool = sync.NewExclusivePool()
 | 
			
		||||
@@ -1353,9 +1353,12 @@ func createRepository(e *xorm.Session, doer, u *User, repo *Repository) (err err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = watchRepo(e, doer.ID, repo.ID, true); err != nil {
 | 
			
		||||
		return fmt.Errorf("watchRepo: %v", err)
 | 
			
		||||
	} else if err = newRepoAction(e, u, repo); err != nil {
 | 
			
		||||
	if setting.Service.AutoWatchNewRepos {
 | 
			
		||||
		if err = watchRepo(e, doer.ID, repo.ID, true); err != nil {
 | 
			
		||||
			return fmt.Errorf("watchRepo: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if err = newRepoAction(e, u, repo); err != nil {
 | 
			
		||||
		return fmt.Errorf("newRepoAction: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1247,6 +1247,7 @@ var Service struct {
 | 
			
		||||
	DefaultAllowOnlyContributorsToTrackTime bool
 | 
			
		||||
	NoReplyAddress                          string
 | 
			
		||||
	EnableUserHeatmap                       bool
 | 
			
		||||
	AutoWatchNewRepos                       bool
 | 
			
		||||
 | 
			
		||||
	// OpenID settings
 | 
			
		||||
	EnableOpenIDSignIn bool
 | 
			
		||||
@@ -1281,6 +1282,7 @@ func newService() {
 | 
			
		||||
	Service.DefaultAllowOnlyContributorsToTrackTime = sec.Key("DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME").MustBool(true)
 | 
			
		||||
	Service.NoReplyAddress = sec.Key("NO_REPLY_ADDRESS").MustString("noreply.example.org")
 | 
			
		||||
	Service.EnableUserHeatmap = sec.Key("ENABLE_USER_HEATMAP").MustBool(true)
 | 
			
		||||
	Service.AutoWatchNewRepos = sec.Key("AUTO_WATCH_NEW_REPOS").MustBool(true)
 | 
			
		||||
 | 
			
		||||
	sec = Cfg.Section("openid")
 | 
			
		||||
	Service.EnableOpenIDSignIn = sec.Key("ENABLE_OPENID_SIGNIN").MustBool(!InstallLock)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user