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
 | 
					NO_REPLY_ADDRESS = noreply.example.org
 | 
				
			||||||
; Show Registration button
 | 
					; Show Registration button
 | 
				
			||||||
SHOW_REGISTRATION_BUTTON = true
 | 
					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]
 | 
					[webhook]
 | 
				
			||||||
; Hook task queue length, increase if webhook shooting starts hanging
 | 
					; 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
 | 
					- `EMAIL_DOMAIN_WHITELIST`: **\<empty\>**: If non-empty, list of domain names that can only be used to register
 | 
				
			||||||
  on this instance.
 | 
					  on this instance.
 | 
				
			||||||
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: Show Registration Button
 | 
					- `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`)
 | 
					## Webhook (`webhook`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,8 @@ import (
 | 
				
			|||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/modules/log"
 | 
						"code.gitea.io/gitea/modules/log"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/modules/setting"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/go-xorm/xorm"
 | 
						"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)
 | 
							return fmt.Errorf("recalculateAccesses: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err = t.getMembers(e); err != nil {
 | 
						// Make all team members watch this repo if enabled in global settings
 | 
				
			||||||
		return fmt.Errorf("getMembers: %v", err)
 | 
						if setting.Service.AutoWatchNewRepos {
 | 
				
			||||||
	}
 | 
							if err = t.getMembers(e); err != nil {
 | 
				
			||||||
	for _, u := range t.Members {
 | 
								return fmt.Errorf("getMembers: %v", err)
 | 
				
			||||||
		if err = watchRepo(e, u.ID, repo.ID, true); err != nil {
 | 
							}
 | 
				
			||||||
			return fmt.Errorf("watchRepo: %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
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -618,9 +624,10 @@ func AddTeamMember(team *Team, userID int64) error {
 | 
				
			|||||||
		if err := repo.recalculateTeamAccesses(sess, 0); err != nil {
 | 
							if err := repo.recalculateTeamAccesses(sess, 0); err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							if setting.Service.AutoWatchNewRepos {
 | 
				
			||||||
		if err = watchRepo(sess, userID, repo.ID, true); err != nil {
 | 
								if err = watchRepo(sess, userID, repo.ID, true); err != nil {
 | 
				
			||||||
			return err
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,8 +34,8 @@ import (
 | 
				
			|||||||
	"github.com/Unknwon/com"
 | 
						"github.com/Unknwon/com"
 | 
				
			||||||
	"github.com/go-xorm/builder"
 | 
						"github.com/go-xorm/builder"
 | 
				
			||||||
	"github.com/go-xorm/xorm"
 | 
						"github.com/go-xorm/xorm"
 | 
				
			||||||
	"github.com/mcuadros/go-version"
 | 
						version "github.com/mcuadros/go-version"
 | 
				
			||||||
	"gopkg.in/ini.v1"
 | 
						ini "gopkg.in/ini.v1"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var repoWorkingPool = sync.NewExclusivePool()
 | 
					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 {
 | 
						if setting.Service.AutoWatchNewRepos {
 | 
				
			||||||
		return fmt.Errorf("watchRepo: %v", err)
 | 
							if err = watchRepo(e, doer.ID, repo.ID, true); err != nil {
 | 
				
			||||||
	} else if err = newRepoAction(e, u, repo); err != nil {
 | 
								return fmt.Errorf("watchRepo: %v", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err = newRepoAction(e, u, repo); err != nil {
 | 
				
			||||||
		return fmt.Errorf("newRepoAction: %v", err)
 | 
							return fmt.Errorf("newRepoAction: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1247,6 +1247,7 @@ var Service struct {
 | 
				
			|||||||
	DefaultAllowOnlyContributorsToTrackTime bool
 | 
						DefaultAllowOnlyContributorsToTrackTime bool
 | 
				
			||||||
	NoReplyAddress                          string
 | 
						NoReplyAddress                          string
 | 
				
			||||||
	EnableUserHeatmap                       bool
 | 
						EnableUserHeatmap                       bool
 | 
				
			||||||
 | 
						AutoWatchNewRepos                       bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// OpenID settings
 | 
						// OpenID settings
 | 
				
			||||||
	EnableOpenIDSignIn bool
 | 
						EnableOpenIDSignIn bool
 | 
				
			||||||
@@ -1281,6 +1282,7 @@ func newService() {
 | 
				
			|||||||
	Service.DefaultAllowOnlyContributorsToTrackTime = sec.Key("DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME").MustBool(true)
 | 
						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.NoReplyAddress = sec.Key("NO_REPLY_ADDRESS").MustString("noreply.example.org")
 | 
				
			||||||
	Service.EnableUserHeatmap = sec.Key("ENABLE_USER_HEATMAP").MustBool(true)
 | 
						Service.EnableUserHeatmap = sec.Key("ENABLE_USER_HEATMAP").MustBool(true)
 | 
				
			||||||
 | 
						Service.AutoWatchNewRepos = sec.Key("AUTO_WATCH_NEW_REPOS").MustBool(true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sec = Cfg.Section("openid")
 | 
						sec = Cfg.Section("openid")
 | 
				
			||||||
	Service.EnableOpenIDSignIn = sec.Key("ENABLE_OPENID_SIGNIN").MustBool(!InstallLock)
 | 
						Service.EnableOpenIDSignIn = sec.Key("ENABLE_OPENID_SIGNIN").MustBool(!InstallLock)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user