mirror of
https://github.com/go-gitea/gitea.git
synced 2025-08-15 00:03:42 -04:00
Compare commits
4 Commits
9bbb4d8d6d
...
40744f8976
Author | SHA1 | Date | |
---|---|---|---|
|
40744f8976 | ||
|
9d69a4758e | ||
|
53747a58a0 | ||
|
00ba826360 |
15
main.go
15
main.go
@ -47,7 +47,9 @@ func init() {
|
|||||||
// ./gitea -h
|
// ./gitea -h
|
||||||
// ./gitea web help
|
// ./gitea web help
|
||||||
// ./gitea web -h (due to cli lib limitation, this won't call our cmdHelp, so no extra info)
|
// ./gitea web -h (due to cli lib limitation, this won't call our cmdHelp, so no extra info)
|
||||||
// ./gitea admin help auth
|
// ./gitea admin
|
||||||
|
// ./gitea admin help
|
||||||
|
// ./gitea admin auth help
|
||||||
// ./gitea -c /tmp/app.ini -h
|
// ./gitea -c /tmp/app.ini -h
|
||||||
// ./gitea -c /tmp/app.ini help
|
// ./gitea -c /tmp/app.ini help
|
||||||
// ./gitea help -c /tmp/app.ini
|
// ./gitea help -c /tmp/app.ini
|
||||||
@ -156,11 +158,7 @@ func prepareSubcommands(command *cli.Command, defaultFlags []cli.Flag) {
|
|||||||
|
|
||||||
// prepareWorkPathAndCustomConf wraps the Action to prepare the work path and custom config
|
// prepareWorkPathAndCustomConf wraps the Action to prepare the work path and custom config
|
||||||
// It can't use "Before", because each level's sub-command's Before will be called one by one, so the "init" would be done multiple times
|
// It can't use "Before", because each level's sub-command's Before will be called one by one, so the "init" would be done multiple times
|
||||||
func prepareWorkPathAndCustomConf(a any) func(ctx *cli.Context) error {
|
func prepareWorkPathAndCustomConf(action any) func(ctx *cli.Context) error {
|
||||||
if a == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
action := a.(func(*cli.Context) error)
|
|
||||||
return func(ctx *cli.Context) error {
|
return func(ctx *cli.Context) error {
|
||||||
var args setting.ArgWorkPathAndCustomConf
|
var args setting.ArgWorkPathAndCustomConf
|
||||||
curCtx := ctx
|
curCtx := ctx
|
||||||
@ -177,10 +175,11 @@ func prepareWorkPathAndCustomConf(a any) func(ctx *cli.Context) error {
|
|||||||
curCtx = curCtx.Parent()
|
curCtx = curCtx.Parent()
|
||||||
}
|
}
|
||||||
setting.InitWorkPathAndCommonConfig(os.Getenv, args)
|
setting.InitWorkPathAndCommonConfig(os.Getenv, args)
|
||||||
if ctx.Bool("help") {
|
if ctx.Bool("help") || action == nil {
|
||||||
|
// the default behavior of "urfave/cli": "nil action" means "show help"
|
||||||
return cmdHelp.Action.(func(ctx *cli.Context) error)(ctx)
|
return cmdHelp.Action.(func(ctx *cli.Context) error)(ctx)
|
||||||
}
|
}
|
||||||
return action(ctx)
|
return action.(func(*cli.Context) error)(ctx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import (
|
|||||||
// Notifier defines an interface to notify receiver
|
// Notifier defines an interface to notify receiver
|
||||||
type Notifier interface {
|
type Notifier interface {
|
||||||
Run()
|
Run()
|
||||||
|
NotifyAdoptRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
||||||
NotifyCreateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
NotifyCreateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
||||||
NotifyMigrateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
NotifyMigrateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
||||||
NotifyDeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository)
|
NotifyDeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository)
|
||||||
|
@ -145,6 +145,10 @@ func (*NullNotifier) NotifyIssueChangeLabels(ctx context.Context, doer *user_mod
|
|||||||
func (*NullNotifier) NotifyCreateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
func (*NullNotifier) NotifyCreateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NotifyAdoptRepository places a place holder function
|
||||||
|
func (*NullNotifier) NotifyAdoptRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
||||||
|
}
|
||||||
|
|
||||||
// NotifyDeleteRepository places a place holder function
|
// NotifyDeleteRepository places a place holder function
|
||||||
func (*NullNotifier) NotifyDeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository) {
|
func (*NullNotifier) NotifyDeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository) {
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,10 @@ func NewNotifier() base.Notifier {
|
|||||||
return &indexerNotifier{}
|
return &indexerNotifier{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *indexerNotifier) NotifyAdoptRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
||||||
|
r.NotifyMigrateRepository(ctx, doer, u, repo)
|
||||||
|
}
|
||||||
|
|
||||||
func (r *indexerNotifier) NotifyCreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository,
|
func (r *indexerNotifier) NotifyCreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository,
|
||||||
issue *issues_model.Issue, comment *issues_model.Comment, mentions []*user_model.User,
|
issue *issues_model.Issue, comment *issues_model.Comment, mentions []*user_model.User,
|
||||||
) {
|
) {
|
||||||
|
@ -274,6 +274,13 @@ func NotifyCreateRepository(ctx context.Context, doer, u *user_model.User, repo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NotifyAdoptRepository notifies the adoption of a repository to notifiers
|
||||||
|
func NotifyAdoptRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
||||||
|
for _, notifier := range notifiers {
|
||||||
|
notifier.NotifyAdoptRepository(ctx, doer, u, repo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// NotifyMigrateRepository notifies create repository to notifiers
|
// NotifyMigrateRepository notifies create repository to notifiers
|
||||||
func NotifyMigrateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
func NotifyMigrateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository) {
|
||||||
for _, notifier := range notifiers {
|
for _, notifier := range notifiers {
|
||||||
|
@ -691,6 +691,7 @@ requires_activation = Requires activation
|
|||||||
primary_email = Make Primary
|
primary_email = Make Primary
|
||||||
activate_email = Send Activation
|
activate_email = Send Activation
|
||||||
activations_pending = Activations Pending
|
activations_pending = Activations Pending
|
||||||
|
can_not_add_email_activations_pending = There is a pending activation, try again in a few minutes if you want to add a new email.
|
||||||
delete_email = Remove
|
delete_email = Remove
|
||||||
email_deletion = Remove Email Address
|
email_deletion = Remove Email Address
|
||||||
email_deletion_desc = The email address and related information will be removed from your account. Git commits by this email address will remain unchanged. Continue?
|
email_deletion_desc = The email address and related information will be removed from your account. Git commits by this email address will remain unchanged. Continue?
|
||||||
|
@ -70,9 +70,17 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts repo_mo
|
|||||||
if err := repo_module.CreateRepositoryByExample(ctx, doer, u, repo, true, false); err != nil {
|
if err := repo_module.CreateRepositoryByExample(ctx, doer, u, repo, true, false); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := adoptRepository(ctx, repoPath, doer, repo, opts); err != nil {
|
|
||||||
|
// Re-fetch the repository from database before updating it (else it would
|
||||||
|
// override changes that were done earlier with sql)
|
||||||
|
if repo, err = repo_model.GetRepositoryByID(ctx, repo.ID); err != nil {
|
||||||
|
return fmt.Errorf("getRepositoryByID: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := adoptRepository(ctx, repoPath, doer, repo, opts.DefaultBranch); err != nil {
|
||||||
return fmt.Errorf("createDelegateHooks: %w", err)
|
return fmt.Errorf("createDelegateHooks: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := repo_module.CheckDaemonExportOK(ctx, repo); err != nil {
|
if err := repo_module.CheckDaemonExportOK(ctx, repo); err != nil {
|
||||||
return fmt.Errorf("checkDaemonExportOK: %w", err)
|
return fmt.Errorf("checkDaemonExportOK: %w", err)
|
||||||
}
|
}
|
||||||
@ -95,12 +103,12 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts repo_mo
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
notification.NotifyCreateRepository(ctx, doer, u, repo)
|
notification.NotifyAdoptRepository(ctx, doer, u, repo)
|
||||||
|
|
||||||
return repo, nil
|
return repo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func adoptRepository(ctx context.Context, repoPath string, u *user_model.User, repo *repo_model.Repository, opts repo_module.CreateRepoOptions) (err error) {
|
func adoptRepository(ctx context.Context, repoPath string, u *user_model.User, repo *repo_model.Repository, defaultBranch string) (err error) {
|
||||||
isExist, err := util.IsExist(repoPath)
|
isExist, err := util.IsExist(repoPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Unable to check if %s exists. Error: %v", repoPath, err)
|
log.Error("Unable to check if %s exists. Error: %v", repoPath, err)
|
||||||
@ -114,12 +122,6 @@ func adoptRepository(ctx context.Context, repoPath string, u *user_model.User, r
|
|||||||
return fmt.Errorf("createDelegateHooks: %w", err)
|
return fmt.Errorf("createDelegateHooks: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Re-fetch the repository from database before updating it (else it would
|
|
||||||
// override changes that were done earlier with sql)
|
|
||||||
if repo, err = repo_model.GetRepositoryByID(ctx, repo.ID); err != nil {
|
|
||||||
return fmt.Errorf("getRepositoryByID: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
repo.IsEmpty = false
|
repo.IsEmpty = false
|
||||||
|
|
||||||
// Don't bother looking this repo in the context it won't be there
|
// Don't bother looking this repo in the context it won't be there
|
||||||
@ -129,8 +131,8 @@ func adoptRepository(ctx context.Context, repoPath string, u *user_model.User, r
|
|||||||
}
|
}
|
||||||
defer gitRepo.Close()
|
defer gitRepo.Close()
|
||||||
|
|
||||||
if len(opts.DefaultBranch) > 0 {
|
if len(defaultBranch) > 0 {
|
||||||
repo.DefaultBranch = opts.DefaultBranch
|
repo.DefaultBranch = defaultBranch
|
||||||
|
|
||||||
if err = gitRepo.SetDefaultBranch(repo.DefaultBranch); err != nil {
|
if err = gitRepo.SetDefaultBranch(repo.DefaultBranch); err != nil {
|
||||||
return fmt.Errorf("setDefaultBranch: %w", err)
|
return fmt.Errorf("setDefaultBranch: %w", err)
|
||||||
|
@ -128,6 +128,10 @@
|
|||||||
{{.locale.Tr "settings.add_email"}}
|
{{.locale.Tr "settings.add_email"}}
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
{{/* if ActivationsPending is false, then CanAddEmails must be true, so if CanAddEmails is false, ActivationsPending must be true */}}
|
||||||
|
{{if not .CanAddEmails}}
|
||||||
|
<div class="ui warning message">{{.locale.Tr "settings.can_not_add_email_activations_pending"}}</div>
|
||||||
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4 class="ui top attached error header">
|
<h4 class="ui top attached error header">
|
||||||
|
@ -35,9 +35,6 @@
|
|||||||
font-weight: var(--font-weight-semibold);
|
font-weight: var(--font-weight-semibold);
|
||||||
width: 220px;
|
width: 220px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 767.98px) {
|
@media (max-width: 767.98px) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user