mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-25 17:44:32 +02:00 
			
		
		
		
	* remove ReplaceLeft * remove GetRepositoryByOwnerAndName chainload to models.GetRepositoryByOwnerAndName * remove CheckUnitUser chainload to models.CheckUnitUser * remove MakeAssigneeList * remove DownloadDiff & DownloadPatch -> DownloadDiffOrPatch * remove GetRandomBytesAsBase64 * remove PushUpdateDeleteTags * remove GetUserByKeyID (you still can resolve user by "k, err := GetPublicKeyByID; userID := k.OwnerID") * remove BasicAuthEncode from struct package -> same function in modules/base/tools ! * remove UserID from api.utils * remove unused func from structs package
		
			
				
	
	
		
			97 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2014 The Gogs Authors. All rights reserved.
 | |
| // Use of this source code is governed by a MIT-style
 | |
| // license that can be found in the LICENSE file.
 | |
| 
 | |
| package models
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"strings"
 | |
| )
 | |
| 
 | |
| // PushUpdateDeleteTagsContext updates a number of delete tags with context
 | |
| func PushUpdateDeleteTagsContext(ctx DBContext, repo *Repository, tags []string) error {
 | |
| 	return pushUpdateDeleteTags(ctx.e, repo, tags)
 | |
| }
 | |
| 
 | |
| func pushUpdateDeleteTags(e Engine, repo *Repository, tags []string) error {
 | |
| 	if len(tags) == 0 {
 | |
| 		return nil
 | |
| 	}
 | |
| 	lowerTags := make([]string, 0, len(tags))
 | |
| 	for _, tag := range tags {
 | |
| 		lowerTags = append(lowerTags, strings.ToLower(tag))
 | |
| 	}
 | |
| 
 | |
| 	if _, err := e.
 | |
| 		Where("repo_id = ? AND is_tag = ?", repo.ID, true).
 | |
| 		In("lower_tag_name", lowerTags).
 | |
| 		Delete(new(Release)); err != nil {
 | |
| 		return fmt.Errorf("Delete: %v", err)
 | |
| 	}
 | |
| 
 | |
| 	if _, err := e.
 | |
| 		Where("repo_id = ? AND is_tag = ?", repo.ID, false).
 | |
| 		In("lower_tag_name", lowerTags).
 | |
| 		Cols("is_draft", "num_commits", "sha1").
 | |
| 		Update(&Release{
 | |
| 			IsDraft: true,
 | |
| 		}); err != nil {
 | |
| 		return fmt.Errorf("Update: %v", err)
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // PushUpdateDeleteTag must be called for any push actions to delete tag
 | |
| func PushUpdateDeleteTag(repo *Repository, tagName string) error {
 | |
| 	rel, err := GetRelease(repo.ID, tagName)
 | |
| 	if err != nil {
 | |
| 		if IsErrReleaseNotExist(err) {
 | |
| 			return nil
 | |
| 		}
 | |
| 		return fmt.Errorf("GetRelease: %v", err)
 | |
| 	}
 | |
| 	if rel.IsTag {
 | |
| 		if _, err = x.ID(rel.ID).Delete(new(Release)); err != nil {
 | |
| 			return fmt.Errorf("Delete: %v", err)
 | |
| 		}
 | |
| 	} else {
 | |
| 		rel.IsDraft = true
 | |
| 		rel.NumCommits = 0
 | |
| 		rel.Sha1 = ""
 | |
| 		if _, err = x.ID(rel.ID).AllCols().Update(rel); err != nil {
 | |
| 			return fmt.Errorf("Update: %v", err)
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // SaveOrUpdateTag must be called for any push actions to add tag
 | |
| func SaveOrUpdateTag(repo *Repository, newRel *Release) error {
 | |
| 	rel, err := GetRelease(repo.ID, newRel.TagName)
 | |
| 	if err != nil && !IsErrReleaseNotExist(err) {
 | |
| 		return fmt.Errorf("GetRelease: %v", err)
 | |
| 	}
 | |
| 
 | |
| 	if rel == nil {
 | |
| 		rel = newRel
 | |
| 		if _, err = x.Insert(rel); err != nil {
 | |
| 			return fmt.Errorf("InsertOne: %v", err)
 | |
| 		}
 | |
| 	} else {
 | |
| 		rel.Sha1 = newRel.Sha1
 | |
| 		rel.CreatedUnix = newRel.CreatedUnix
 | |
| 		rel.NumCommits = newRel.NumCommits
 | |
| 		rel.IsDraft = false
 | |
| 		if rel.IsTag && newRel.PublisherID > 0 {
 | |
| 			rel.PublisherID = newRel.PublisherID
 | |
| 		}
 | |
| 		if _, err = x.ID(rel.ID).AllCols().Update(rel); err != nil {
 | |
| 			return fmt.Errorf("Update: %v", err)
 | |
| 		}
 | |
| 	}
 | |
| 	return nil
 | |
| }
 |