mirror of https://github.com/go-gitea/gitea
Add Feed for Releases and Tags (#21696)
Fixes #19091 Add Feed for Releases and Tags, can be accessed through `reponame/releases.rss`, `reponame/releases.atom`, `reponame/tags.rss`, and `reponame/tags.atom` Signed-off-by: Reo <reo_999@proton.me>pull/22150/head^2
parent
9914b21493
commit
48d71b7d6b
@ -0,0 +1,50 @@ |
||||
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package feed |
||||
|
||||
import ( |
||||
"time" |
||||
|
||||
repo_model "code.gitea.io/gitea/models/repo" |
||||
"code.gitea.io/gitea/modules/context" |
||||
|
||||
"github.com/gorilla/feeds" |
||||
) |
||||
|
||||
// shows tags and/or releases on the repo as RSS / Atom feed
|
||||
func ShowReleaseFeed(ctx *context.Context, repo *repo_model.Repository, isReleasesOnly bool, formatType string) { |
||||
releases, err := repo_model.GetReleasesByRepoID(ctx, ctx.Repo.Repository.ID, repo_model.FindReleasesOptions{ |
||||
IncludeTags: !isReleasesOnly, |
||||
}) |
||||
if err != nil { |
||||
ctx.ServerError("GetReleasesByRepoID", err) |
||||
return |
||||
} |
||||
|
||||
var title string |
||||
var link *feeds.Link |
||||
|
||||
if isReleasesOnly { |
||||
title = ctx.Tr("repo.release.releases_for", repo.FullName()) |
||||
link = &feeds.Link{Href: repo.HTMLURL() + "/release"} |
||||
} else { |
||||
title = ctx.Tr("repo.release.tags_for", repo.FullName()) |
||||
link = &feeds.Link{Href: repo.HTMLURL() + "/tags"} |
||||
} |
||||
|
||||
feed := &feeds.Feed{ |
||||
Title: title, |
||||
Link: link, |
||||
Description: repo.Description, |
||||
Created: time.Now(), |
||||
} |
||||
|
||||
feed.Items, err = releasesToFeedItems(ctx, releases, isReleasesOnly) |
||||
if err != nil { |
||||
ctx.ServerError("releasesToFeedItems", err) |
||||
return |
||||
} |
||||
|
||||
writeFeed(ctx, feed, formatType) |
||||
} |
Loading…
Reference in new issue