mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	Backport #30224 by @Zettat123 Fix #30220 Co-authored-by: Zettat123 <zettat123@gmail.com> (cherry picked from commit 895d2795abe79cc2e87b35d39cb7d09b9234b06d)
This commit is contained in:
		
					parent
					
						
							
								94fc99c217
							
						
					
				
			
			
				commit
				
					
						b310027e55
					
				
			
		
					 4 changed files with 29 additions and 2 deletions
				
			
		| 
						 | 
					@ -11,6 +11,7 @@ import (
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						actions_model "code.gitea.io/gitea/models/actions"
 | 
				
			||||||
	activities_model "code.gitea.io/gitea/models/activities"
 | 
						activities_model "code.gitea.io/gitea/models/activities"
 | 
				
			||||||
	"code.gitea.io/gitea/models/db"
 | 
						"code.gitea.io/gitea/models/db"
 | 
				
			||||||
	"code.gitea.io/gitea/models/organization"
 | 
						"code.gitea.io/gitea/models/organization"
 | 
				
			||||||
| 
						 | 
					@ -30,6 +31,7 @@ import (
 | 
				
			||||||
	"code.gitea.io/gitea/modules/validation"
 | 
						"code.gitea.io/gitea/modules/validation"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/web"
 | 
						"code.gitea.io/gitea/modules/web"
 | 
				
			||||||
	"code.gitea.io/gitea/routers/api/v1/utils"
 | 
						"code.gitea.io/gitea/routers/api/v1/utils"
 | 
				
			||||||
 | 
						actions_service "code.gitea.io/gitea/services/actions"
 | 
				
			||||||
	"code.gitea.io/gitea/services/context"
 | 
						"code.gitea.io/gitea/services/context"
 | 
				
			||||||
	"code.gitea.io/gitea/services/convert"
 | 
						"code.gitea.io/gitea/services/convert"
 | 
				
			||||||
	"code.gitea.io/gitea/services/issue"
 | 
						"code.gitea.io/gitea/services/issue"
 | 
				
			||||||
| 
						 | 
					@ -1027,6 +1029,9 @@ func updateRepoArchivedState(ctx *context.APIContext, opts api.EditRepoOption) e
 | 
				
			||||||
				ctx.Error(http.StatusInternalServerError, "ArchiveRepoState", err)
 | 
									ctx.Error(http.StatusInternalServerError, "ArchiveRepoState", err)
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if err := actions_model.CleanRepoScheduleTasks(ctx, repo); err != nil {
 | 
				
			||||||
 | 
									log.Error("CleanRepoScheduleTasks for archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			log.Trace("Repository was archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
								log.Trace("Repository was archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			if err := repo_model.SetArchiveRepoState(ctx, repo, *opts.Archived); err != nil {
 | 
								if err := repo_model.SetArchiveRepoState(ctx, repo, *opts.Archived); err != nil {
 | 
				
			||||||
| 
						 | 
					@ -1034,6 +1039,11 @@ func updateRepoArchivedState(ctx *context.APIContext, opts api.EditRepoOption) e
 | 
				
			||||||
				ctx.Error(http.StatusInternalServerError, "ArchiveRepoState", err)
 | 
									ctx.Error(http.StatusInternalServerError, "ArchiveRepoState", err)
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if ctx.Repo.Repository.UnitEnabled(ctx, unit_model.TypeActions) {
 | 
				
			||||||
 | 
									if err := actions_service.DetectAndHandleSchedules(ctx, repo); err != nil {
 | 
				
			||||||
 | 
										log.Error("DetectAndHandleSchedules for un-archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			log.Trace("Repository was un-archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
								log.Trace("Repository was un-archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@ import (
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
 | 
						actions_model "code.gitea.io/gitea/models/actions"
 | 
				
			||||||
	"code.gitea.io/gitea/models/db"
 | 
						"code.gitea.io/gitea/models/db"
 | 
				
			||||||
	"code.gitea.io/gitea/models/organization"
 | 
						"code.gitea.io/gitea/models/organization"
 | 
				
			||||||
	repo_model "code.gitea.io/gitea/models/repo"
 | 
						repo_model "code.gitea.io/gitea/models/repo"
 | 
				
			||||||
| 
						 | 
					@ -29,6 +30,7 @@ import (
 | 
				
			||||||
	"code.gitea.io/gitea/modules/util"
 | 
						"code.gitea.io/gitea/modules/util"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/validation"
 | 
						"code.gitea.io/gitea/modules/validation"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/web"
 | 
						"code.gitea.io/gitea/modules/web"
 | 
				
			||||||
 | 
						actions_service "code.gitea.io/gitea/services/actions"
 | 
				
			||||||
	asymkey_service "code.gitea.io/gitea/services/asymkey"
 | 
						asymkey_service "code.gitea.io/gitea/services/asymkey"
 | 
				
			||||||
	"code.gitea.io/gitea/services/context"
 | 
						"code.gitea.io/gitea/services/context"
 | 
				
			||||||
	"code.gitea.io/gitea/services/forms"
 | 
						"code.gitea.io/gitea/services/forms"
 | 
				
			||||||
| 
						 | 
					@ -929,6 +931,10 @@ func SettingsPost(ctx *context.Context) {
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if err := actions_model.CleanRepoScheduleTasks(ctx, repo); err != nil {
 | 
				
			||||||
 | 
								log.Error("CleanRepoScheduleTasks for archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ctx.Flash.Success(ctx.Tr("repo.settings.archive.success"))
 | 
							ctx.Flash.Success(ctx.Tr("repo.settings.archive.success"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		log.Trace("Repository was archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
							log.Trace("Repository was archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
				
			||||||
| 
						 | 
					@ -947,6 +953,12 @@ func SettingsPost(ctx *context.Context) {
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if ctx.Repo.Repository.UnitEnabled(ctx, unit_model.TypeActions) {
 | 
				
			||||||
 | 
								if err := actions_service.DetectAndHandleSchedules(ctx, repo); err != nil {
 | 
				
			||||||
 | 
									log.Error("DetectAndHandleSchedules for un-archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ctx.Flash.Success(ctx.Tr("repo.settings.unarchive.success"))
 | 
							ctx.Flash.Success(ctx.Tr("repo.settings.unarchive.success"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		log.Trace("Repository was un-archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
							log.Trace("Repository was un-archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,7 +119,7 @@ func notify(ctx context.Context, input *notifyInput) error {
 | 
				
			||||||
		log.Debug("ignore executing %v for event %v whose doer is %v", getMethod(ctx), input.Event, input.Doer.Name)
 | 
							log.Debug("ignore executing %v for event %v whose doer is %v", getMethod(ctx), input.Event, input.Doer.Name)
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if input.Repo.IsEmpty {
 | 
						if input.Repo.IsEmpty || input.Repo.IsArchived {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if unit_model.TypeActions.UnitGlobalDisabled() {
 | 
						if unit_model.TypeActions.UnitGlobalDisabled() {
 | 
				
			||||||
| 
						 | 
					@ -536,7 +536,7 @@ func handleSchedules(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// DetectAndHandleSchedules detects the schedule workflows on the default branch and create schedule tasks
 | 
					// DetectAndHandleSchedules detects the schedule workflows on the default branch and create schedule tasks
 | 
				
			||||||
func DetectAndHandleSchedules(ctx context.Context, repo *repo_model.Repository) error {
 | 
					func DetectAndHandleSchedules(ctx context.Context, repo *repo_model.Repository) error {
 | 
				
			||||||
	if repo.IsEmpty {
 | 
						if repo.IsEmpty || repo.IsArchived {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,6 +66,11 @@ func startTasks(ctx context.Context) error {
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if row.Repo.IsArchived {
 | 
				
			||||||
 | 
									// Skip if the repo is archived
 | 
				
			||||||
 | 
									continue
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			cfg, err := row.Repo.GetUnit(ctx, unit.TypeActions)
 | 
								cfg, err := row.Repo.GetUnit(ctx, unit.TypeActions)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				if repo_model.IsErrUnitTypeNotExist(err) {
 | 
									if repo_model.IsErrUnitTypeNotExist(err) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue