We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
RSS/Atom Feed: Don't show Changes headline if Changelog is empty
Needs a check if item.changelog is empty https://github.com/nextcloud/appstore/blob/master/nextcloudappstore/core/feeds.py#L36

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `nextcloudappstore/core/feeds.py`
Content:
```
1 from django.conf import settings
2 from django.contrib.syndication.views import Feed
3 from django.urls import reverse
4 from django.urls import reverse_lazy
5 from django.utils.feedgenerator import Atom1Feed
6 from django.utils.translation import ugettext_lazy as _  # type: ignore
7 from parler.models import TranslationDoesNotExist
8 
9 from nextcloudappstore.core.models import AppRelease
10 from markdown import markdown
11 from bleach import clean
12 
13 
14 class AppReleaseRssFeed(Feed):
15     title = _('Newest app releases')
16     description = _('Get the newest app release updates')
17     link = reverse_lazy('home')
18 
19     def __call__(self, request, *args, **kwargs):
20         self.request = request
21         return super().__call__(request, *args, **kwargs)
22 
23     def items(self):
24         queryset = AppRelease.objects.order_by('-last_modified')
25         if 'nightly' not in self.request.GET:
26             queryset = queryset.filter(is_nightly=False)
27         if 'prerelease' not in self.request.GET:
28             queryset = queryset.exclude(version__contains='-')
29         return queryset[:10]
30 
31     def item_title(self, item):
32         return '%s (%s)' % (item.app.name, item.version)
33 
34     def item_description(self, item):
35         try:
36             content = ('%s\n\n# %s\n\n%s' % (
37                 item.app.description, _('Changes'), item.changelog))
38         except TranslationDoesNotExist:
39             content = item.app.description
40         content += '\n\n [%s](%s)' % (_('Download'), item.download)
41         return clean(markdown(content),
42                      attributes=settings.MARKDOWN_ALLOWED_ATTRIBUTES,
43                      tags=settings.MARKDOWN_ALLOWED_TAGS)
44 
45     def item_guid(self, obj):
46         if obj.is_nightly:
47             nightly = '-nightly'
48         else:
49             nightly = ''
50         return '%s-%s%s' % (obj.app.id, obj.version, nightly)
51 
52     def item_link(self, item):
53         return reverse('app-detail', kwargs={'id': item.app.id})
54 
55     def item_author_name(self, item):
56         return '%s %s' % (item.app.owner.first_name, item.app.owner.last_name)
57 
58     def item_pubdate(self, item):
59         return item.last_modified
60 
61     def item_updateddate(self, item):
62         return item.last_modified
63 
64 
65 class AppReleaseAtomFeed(AppReleaseRssFeed):
66     feed_type = Atom1Feed
67     subtitle = AppReleaseRssFeed.description
68
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/nextcloudappstore/core/feeds.py b/nextcloudappstore/core/feeds.py
--- a/nextcloudappstore/core/feeds.py
+++ b/nextcloudappstore/core/feeds.py
@@ -33,8 +33,11 @@
 
     def item_description(self, item):
         try:
-            content = ('%s\n\n# %s\n\n%s' % (
-                item.app.description, _('Changes'), item.changelog))
+            if item.changelog:
+                changelog = '\n\n# %s\n\n%s' % (_('Changes'), item.changelog)
+            else:
+                changelog = ''
+            content = '%s%s' % (item.app.description, changelog)
         except TranslationDoesNotExist:
             content = item.app.description
         content += '\n\n [%s](%s)' % (_('Download'), item.download)

{"golden_diff": "diff --git a/nextcloudappstore/core/feeds.py b/nextcloudappstore/core/feeds.py\n--- a/nextcloudappstore/core/feeds.py\n+++ b/nextcloudappstore/core/feeds.py\n@@ -33,8 +33,11 @@\n \n     def item_description(self, item):\n         try:\n-            content = ('%s\\n\\n# %s\\n\\n%s' % (\n-                item.app.description, _('Changes'), item.changelog))\n+            if item.changelog:\n+                changelog = '\\n\\n# %s\\n\\n%s' % (_('Changes'), item.changelog)\n+            else:\n+                changelog = ''\n+            content = '%s%s' % (item.app.description, changelog)\n         except TranslationDoesNotExist:\n             content = item.app.description\n         content += '\\n\\n [%s](%s)' % (_('Download'), item.download)\n", "issue": "RSS/Atom Feed: Don't show Changes headline if Changelog is empty\nNeeds a check if item.changelog is empty https://github.com/nextcloud/appstore/blob/master/nextcloudappstore/core/feeds.py#L36\n", "before_files": [{"content": "from django.conf import settings\nfrom django.contrib.syndication.views import Feed\nfrom django.urls import reverse\nfrom django.urls import reverse_lazy\nfrom django.utils.feedgenerator import Atom1Feed\nfrom django.utils.translation import ugettext_lazy as _  # type: ignore\nfrom parler.models import TranslationDoesNotExist\n\nfrom nextcloudappstore.core.models import AppRelease\nfrom markdown import markdown\nfrom bleach import clean\n\n\nclass AppReleaseRssFeed(Feed):\n    title = _('Newest app releases')\n    description = _('Get the newest app release updates')\n    link = reverse_lazy('home')\n\n    def __call__(self, request, *args, **kwargs):\n        self.request = request\n        return super().__call__(request, *args, **kwargs)\n\n    def items(self):\n        queryset = AppRelease.objects.order_by('-last_modified')\n        if 'nightly' not in self.request.GET:\n            queryset = queryset.filter(is_nightly=False)\n        if 'prerelease' not in self.request.GET:\n            queryset = queryset.exclude(version__contains='-')\n        return queryset[:10]\n\n    def item_title(self, item):\n        return '%s (%s)' % (item.app.name, item.version)\n\n    def item_description(self, item):\n        try:\n            content = ('%s\\n\\n# %s\\n\\n%s' % (\n                item.app.description, _('Changes'), item.changelog))\n        except TranslationDoesNotExist:\n            content = item.app.description\n        content += '\\n\\n [%s](%s)' % (_('Download'), item.download)\n        return clean(markdown(content),\n                     attributes=settings.MARKDOWN_ALLOWED_ATTRIBUTES,\n                     tags=settings.MARKDOWN_ALLOWED_TAGS)\n\n    def item_guid(self, obj):\n        if obj.is_nightly:\n            nightly = '-nightly'\n        else:\n            nightly = ''\n        return '%s-%s%s' % (obj.app.id, obj.version, nightly)\n\n    def item_link(self, item):\n        return reverse('app-detail', kwargs={'id': item.app.id})\n\n    def item_author_name(self, item):\n        return '%s %s' % (item.app.owner.first_name, item.app.owner.last_name)\n\n    def item_pubdate(self, item):\n        return item.last_modified\n\n    def item_updateddate(self, item):\n        return item.last_modified\n\n\nclass AppReleaseAtomFeed(AppReleaseRssFeed):\n    feed_type = Atom1Feed\n    subtitle = AppReleaseRssFeed.description\n", "path": "nextcloudappstore/core/feeds.py"}], "after_files": [{"content": "from django.conf import settings\nfrom django.contrib.syndication.views import Feed\nfrom django.urls import reverse\nfrom django.urls import reverse_lazy\nfrom django.utils.feedgenerator import Atom1Feed\nfrom django.utils.translation import ugettext_lazy as _  # type: ignore\nfrom parler.models import TranslationDoesNotExist\n\nfrom nextcloudappstore.core.models import AppRelease\nfrom markdown import markdown\nfrom bleach import clean\n\n\nclass AppReleaseRssFeed(Feed):\n    title = _('Newest app releases')\n    description = _('Get the newest app release updates')\n    link = reverse_lazy('home')\n\n    def __call__(self, request, *args, **kwargs):\n        self.request = request\n        return super().__call__(request, *args, **kwargs)\n\n    def items(self):\n        queryset = AppRelease.objects.order_by('-last_modified')\n        if 'nightly' not in self.request.GET:\n            queryset = queryset.filter(is_nightly=False)\n        if 'prerelease' not in self.request.GET:\n            queryset = queryset.exclude(version__contains='-')\n        return queryset[:10]\n\n    def item_title(self, item):\n        return '%s (%s)' % (item.app.name, item.version)\n\n    def item_description(self, item):\n        try:\n            if item.changelog:\n                changelog = '\\n\\n# %s\\n\\n%s' % (_('Changes'), item.changelog)\n            else:\n                changelog = ''\n            content = '%s%s' % (item.app.description, changelog)\n        except TranslationDoesNotExist:\n            content = item.app.description\n        content += '\\n\\n [%s](%s)' % (_('Download'), item.download)\n        return clean(markdown(content),\n                     attributes=settings.MARKDOWN_ALLOWED_ATTRIBUTES,\n                     tags=settings.MARKDOWN_ALLOWED_TAGS)\n\n    def item_guid(self, obj):\n        if obj.is_nightly:\n            nightly = '-nightly'\n        else:\n            nightly = ''\n        return '%s-%s%s' % (obj.app.id, obj.version, nightly)\n\n    def item_link(self, item):\n        return reverse('app-detail', kwargs={'id': item.app.id})\n\n    def item_author_name(self, item):\n        return '%s %s' % (item.app.owner.first_name, item.app.owner.last_name)\n\n    def item_pubdate(self, item):\n        return item.last_modified\n\n    def item_updateddate(self, item):\n        return item.last_modified\n\n\nclass AppReleaseAtomFeed(AppReleaseRssFeed):\n    feed_type = Atom1Feed\n    subtitle = AppReleaseRssFeed.description\n", "path": "nextcloudappstore/core/feeds.py"}]}