code.gitea.io/gitea@v1.21.7/routers/web/feed/release.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package feed 5 6 import ( 7 "time" 8 9 repo_model "code.gitea.io/gitea/models/repo" 10 "code.gitea.io/gitea/modules/context" 11 12 "github.com/gorilla/feeds" 13 ) 14 15 // shows tags and/or releases on the repo as RSS / Atom feed 16 func ShowReleaseFeed(ctx *context.Context, repo *repo_model.Repository, isReleasesOnly bool, formatType string) { 17 releases, err := repo_model.GetReleasesByRepoID(ctx, ctx.Repo.Repository.ID, repo_model.FindReleasesOptions{ 18 IncludeTags: !isReleasesOnly, 19 }) 20 if err != nil { 21 ctx.ServerError("GetReleasesByRepoID", err) 22 return 23 } 24 25 var title string 26 var link *feeds.Link 27 28 if isReleasesOnly { 29 title = ctx.Tr("repo.release.releases_for", repo.FullName()) 30 link = &feeds.Link{Href: repo.HTMLURL() + "/release"} 31 } else { 32 title = ctx.Tr("repo.release.tags_for", repo.FullName()) 33 link = &feeds.Link{Href: repo.HTMLURL() + "/tags"} 34 } 35 36 feed := &feeds.Feed{ 37 Title: title, 38 Link: link, 39 Description: repo.Description, 40 Created: time.Now(), 41 } 42 43 feed.Items, err = releasesToFeedItems(ctx, releases, isReleasesOnly) 44 if err != nil { 45 ctx.ServerError("releasesToFeedItems", err) 46 return 47 } 48 49 writeFeed(ctx, feed, formatType) 50 }