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>tags/v1.9.0-dev
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 |
- `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`) | ||||
"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" | ||||
) | ) | ||||
return fmt.Errorf("recalculateAccesses: %v", err) | 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 | return nil | ||||
} | } | ||||
if err := repo.recalculateTeamAccesses(sess, 0); err != nil { | if err := repo.recalculateTeamAccesses(sess, 0); err != nil { | ||||
return err | 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 | |||||
} | |||||
} | } | ||||
} | } | ||||
"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" | |||||
"gopkg.in/ini.v1" | |||||
version "github.com/mcuadros/go-version" | |||||
ini "gopkg.in/ini.v1" | |||||
) | ) | ||||
var repoWorkingPool = sync.NewExclusivePool() | var repoWorkingPool = sync.NewExclusivePool() | ||||
} | } | ||||
} | } | ||||
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) | return fmt.Errorf("newRepoAction: %v", err) | ||||
} | } | ||||
DefaultAllowOnlyContributorsToTrackTime bool | DefaultAllowOnlyContributorsToTrackTime bool | ||||
NoReplyAddress string | NoReplyAddress string | ||||
EnableUserHeatmap bool | EnableUserHeatmap bool | ||||
AutoWatchNewRepos bool | |||||
// OpenID settings | // OpenID settings | ||||
EnableOpenIDSignIn bool | EnableOpenIDSignIn bool | ||||
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) |