mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +00:00 
			
		
		
		
	close #27801 --------- Co-authored-by: silverwind <me@silverwind.io> (cherry picked from commit 62b073e6f31645e446c7e8d6b5a506f61b47924e) Conflicts: - modules/util/util.go Trivial resolution, only picking the newly introduced function - routers/api/v1/swagger/options.go Trivial resolution. We don't have UserBadges, don't pick that part. - templates/swagger/v1_json.tmpl Regenerated.
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2022 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package secrets
 | |
| 
 | |
| import (
 | |
| 	"code.gitea.io/gitea/models/db"
 | |
| 	secret_model "code.gitea.io/gitea/models/secret"
 | |
| 	"code.gitea.io/gitea/modules/log"
 | |
| 	"code.gitea.io/gitea/modules/util"
 | |
| 	"code.gitea.io/gitea/modules/web"
 | |
| 	"code.gitea.io/gitea/services/context"
 | |
| 	"code.gitea.io/gitea/services/forms"
 | |
| 	secret_service "code.gitea.io/gitea/services/secrets"
 | |
| )
 | |
| 
 | |
| func SetSecretsContext(ctx *context.Context, ownerID, repoID int64) {
 | |
| 	secrets, err := db.Find[secret_model.Secret](ctx, secret_model.FindSecretsOptions{OwnerID: ownerID, RepoID: repoID})
 | |
| 	if err != nil {
 | |
| 		ctx.ServerError("FindSecrets", err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	ctx.Data["Secrets"] = secrets
 | |
| }
 | |
| 
 | |
| func PerformSecretsPost(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
 | |
| 	form := web.GetForm(ctx).(*forms.AddSecretForm)
 | |
| 
 | |
| 	s, _, err := secret_service.CreateOrUpdateSecret(ctx, ownerID, repoID, form.Name, util.ReserveLineBreakForTextarea(form.Data))
 | |
| 	if err != nil {
 | |
| 		log.Error("CreateOrUpdateSecret failed: %v", err)
 | |
| 		ctx.JSONError(ctx.Tr("secrets.creation.failed"))
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	ctx.Flash.Success(ctx.Tr("secrets.creation.success", s.Name))
 | |
| 	ctx.JSONRedirect(redirectURL)
 | |
| }
 | |
| 
 | |
| func PerformSecretsDelete(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
 | |
| 	id := ctx.FormInt64("id")
 | |
| 
 | |
| 	err := secret_service.DeleteSecretByID(ctx, ownerID, repoID, id)
 | |
| 	if err != nil {
 | |
| 		log.Error("DeleteSecretByID(%d) failed: %v", id, err)
 | |
| 		ctx.JSONError(ctx.Tr("secrets.deletion.failed"))
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	ctx.Flash.Success(ctx.Tr("secrets.deletion.success"))
 | |
| 	ctx.JSONRedirect(redirectURL)
 | |
| }
 |