summaryrefslogtreecommitdiffstats
path: root/modules/repository
diff options
context:
space:
mode:
authorJakobDev <jakobdev@gmx.de>2024-01-24 04:02:04 +0100
committerGitHub <noreply@github.com>2024-01-24 03:02:04 +0000
commit4567a3a1ad0490d9077102e0e7b5de35790e5803 (patch)
tree7b3b37b3b142ea2221a86596bd96d7df0e63a320 /modules/repository
parentf3ba3e922dde7d12999a90d6cee15805a56cc7ff (diff)
downloadgitea-4567a3a1ad0490d9077102e0e7b5de35790e5803.tar.gz
gitea-4567a3a1ad0490d9077102e0e7b5de35790e5803.zip
Allow to sync tags from admin dashboard (#28045)
Inspired by #28043 This PR adds a option to the Admin Dashboard to sync all tags to the database. ![grafik](https://github.com/go-gitea/gitea/assets/15185051/26ac51ef-82a4-4fd9-a6a6-5aefec612ff6)
Diffstat (limited to 'modules/repository')
-rw-r--r--modules/repository/repo.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/repository/repo.go b/modules/repository/repo.go
index 33363e4689..5af69763d1 100644
--- a/modules/repository/repo.go
+++ b/modules/repository/repo.go
@@ -284,6 +284,22 @@ func CleanUpMigrateInfo(ctx context.Context, repo *repo_model.Repository) (*repo
return repo, UpdateRepository(ctx, repo, false)
}
+// SyncRepoTags synchronizes releases table with repository tags
+func SyncRepoTags(ctx context.Context, repoID int64) error {
+ repo, err := repo_model.GetRepositoryByID(ctx, repoID)
+ if err != nil {
+ return err
+ }
+
+ gitRepo, err := git.OpenRepository(ctx, repo.RepoPath())
+ if err != nil {
+ return err
+ }
+ defer gitRepo.Close()
+
+ return SyncReleasesWithTags(ctx, repo, gitRepo)
+}
+
// SyncReleasesWithTags synchronizes release table with repository tags
func SyncReleasesWithTags(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository) error {
log.Debug("SyncReleasesWithTags: in Repo[%d:%s/%s]", repo.ID, repo.OwnerName, repo.Name)