mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-22 02:11:12 +00:00
Resolves forgejo/forgejo#8793 ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests - I added test coverage for Go changes... - [ ] in their respective `*_test.go` for unit tests. - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server. ### Release notes - [ ] I do not want this change to show in the release notes. - [x] I want the title to show in the release notes with a link to this pull request. - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title. <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Bug fixes - [PR](https://codeberg.org/forgejo/forgejo/pulls/8802): <!--number 8802 --><!--line 0 --><!--description Y29ycmVjdCByZWxlYXNlIGxpbmsgaW4gZmVlZA==-->correct release link in feed<!--description--> <!--end release-notes-assistant--> Co-authored-by: Gusted <postmaster@gusted.xyz> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8802 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: Earl Warren <contact@earl-warren.org> Co-committed-by: Earl Warren <contact@earl-warren.org>
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package feed
|
|
|
|
import (
|
|
"time"
|
|
|
|
"forgejo.org/models/db"
|
|
repo_model "forgejo.org/models/repo"
|
|
"forgejo.org/services/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 := db.Find[repo_model.Release](ctx, repo_model.FindReleasesOptions{
|
|
IncludeTags: !isReleasesOnly,
|
|
RepoID: ctx.Repo.Repository.ID,
|
|
})
|
|
if err != nil {
|
|
ctx.ServerError("GetReleasesByRepoID", err)
|
|
return
|
|
}
|
|
|
|
var title string
|
|
var link *feeds.Link
|
|
|
|
if isReleasesOnly {
|
|
title = ctx.Locale.TrString("repo.release.releases_for", repo.FullName())
|
|
link = &feeds.Link{Href: repo.HTMLURL() + "/releases"}
|
|
} else {
|
|
title = ctx.Locale.TrString("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)
|
|
if err != nil {
|
|
ctx.ServerError("releasesToFeedItems", err)
|
|
return
|
|
}
|
|
|
|
writeFeed(ctx, feed, formatType)
|
|
}
|