= gitea2rss(1)
:doctype:       manpage
:Author:        tastytea
:Email:         tastytea@tastytea.de
:Date:          2021-04-25
:Revision:      0.0.0
:man source:    gitea2rss
:man version:   {revision}
:man manual:    General Commands Manual

== NAME

gitea2rss - Generates RSS feeds from Gitea releases or tags.

== SYNOPSIS

*gitea2rss* _URL of Gitea project_ [_releases_|_tags_|_commits_]

== DESCRIPTION

gitea2rss fetches the releases (default) or tags from the Gitea API,
converts the data into an RSS feed and dumps it to stdout. You can use it as a
CGI script to generate the feeds dynamically or simply use cron to generate the
feeds at fixed intervals.

If you want to use gitea2rss as a CGI script, you have to set
*GITEA2RSS_BASEURL* to the basis URL of your instance, without the trailing
slash. For example: _https://git.example.com_. The *QUERY_STRING* must contain
_repo=user/project_. The feed-URL for alice's project, cooltool, would be:
_https://rss.example.com/?repo=alice/cooltool_. You can select the type of the
feed by appending `&type=` at the end of the URL. For example:
_https://rss.example.com/?repo=alice/cooltool&type=tags_.

The generated RSS feed contains the *channel* elements _title_, _link_,
_description_, _generator_ and _lastBuildDate_ and the *item* elements _title_,
_link_, _guid_, _pubDate_ and _description_.

== GITEA INTEGRATION

You can let Gitea automatically insert links to your RSS feeds by editing
`${GITEA_CUSTOM}/templates/custom/header.tmpl` and putting something like
this in it:

[source,html]
----
{{if .Repository.Name}}
<link rel="alternate" type="application/rss+xml"
      title="Releases of {{.Repository.Name}}"
      href="https://rss.example.com/?repo={{.Repository.Owner.Name}}/{{.Repository.Name}}"/>
<link rel="alternate" type="application/rss+xml"
      title="Tags of {{.Repository.Name}}"
      href="https://rss.example.com/?repo={{.Repository.Owner.Name}}/{{.Repository.Name}}&amp;type=tags"/>
<link rel="alternate" type="application/rss+xml"
      title="Commits of {{.Repository.Name}}"
      href="https://rss.example.com/?repo={{.Repository.Owner.Name}}/{{.Repository.Name}}&amp;type=commits"/>
{{end}}
----

== PROXY SERVERS

Since *gitea2rss* is built on libcurl, it respects the same proxy environment
variables. See *curl*(1), section _ENVIRONMENT_.

== EXAMPLES

`gitea2rss https://git.example.com/user/project tags > repo.rss`

`ALL_PROXY="socks4a://[::1]:9050" gitea2rss https://git.example.com/user/project`

=== Example RSS feed

[source,xml]
----
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="https://rss.schlomp.space/?repo=tastytea/gitea2rss" rel="self" type="application/rss+xml"/>
    <title>gitea2rss releases</title>
    <link>https://schlomp.space/tastytea/gitea2rss</link>
    <description>List of releases of tastytea/gitea2rss</description>
    <generator>gitea2rss 0.4.4</generator>
    <lastBuildDate>Mon, 22 Apr 2019 11:46:53 +0000</lastBuildDate>
    <item>
      <title>gitea2rss: 0.1.0</title>
      <link>https://schlomp.space/tastytea/gitea2rss/releases</link>
      <guid isPermaLink="false">schlomp.space release 169</guid>
      <pubDate>Wed, 17 Apr 2019 04:37:10 +0000</pubDate>
      <description>
        <![CDATA[<p><strong>Stable</strong></p>
<pre>First release. Everything works, as far as I can tell.</pre>
        <p><a href="https://schlomp.space/tastytea/gitea2rss/archive/0.1.0.tar.gz">Download tarball</a></p>]]>
      </description>
    </item>
  </channel>
</rss>
----

== SEE ALSO

*crontab*(1), *crontab*(5), *curl*(1)

== REPORTING BUGS

Bugtracker: https://schlomp.space/tastytea/gitea2rss/issues

E-mail: tastytea@tastytea.de
