- Update to 5.11.2
+ Allow having a dedicated logging configuration for the git hooks + Increase logging to the pagure_auth logger + Make work pagure-admin ensure-project-hooks when the target link exists but is broken + Change the project icon when the project is mirrored from an external source + Allow a theme or a blueprint to inject custom buttons in the navigation bar. + Add API endpoint to get a pull-request comment + Omit breaking original comment format in reply on pull-requests + Let the milter announce when it reject an email based on its address + Don't Let the milter process the email we send. + Add a collaborator level to projects + Allow setting the default git branch when creating projects via the API + Allow creating mirrored project from the API + Add the possibility to set the default branch at project creation + Add API endpoint to set the default git branch and expose it in an existing endpoint + Adjust the example configuration for logging to a file + Allow project-less API token with the "modify_project" ACL to update watchers + Add a new API endpoint to retrieve a commit's metadata/info + Add a new API endpoint allowing to delete a project + Add support for customizing the new issue page + Introducing the boards feature + Add an API endpoint to view the content of a git repo + Port pagure's markdown extension to the new API + Multiple small fixes for the vagrant-based development environment + Use WhiteNoise to serve static assets for the Pagure web + Fix the title of the graph showing the evolution of the number of open tickets on a project + Do not assume there is a SMTP_STARTTLS configuration key set + Bring back JS library used for the heatmap + Show the ACL name in addition to the description when creating API tokens + Allow editing the URL a project is mirrored from + Add comments to the mirror service files for clarifying their purpose. + Add a dedicated logger for everything that is auth related + api: fix apidoc format on api_view_issues_history_detailed_stats Fixes web api doc view template issues + doc: Add a page documenting known Pagure instances + starttls support via SMTP_STARTTLS: provide additional documentation. + Add support for smtp server requiring starttls to work + Make the stats page use the new stats API endpoint - Drop patches included in this release + Patch: 0001-Make-the-stats-page-use-the-new-stats-API-endpoint.patch + Patch: 0001-Add-support-for-smtp-server-requiring-starttls-to-wo.patch + Patch: 0002-starttls-support-via-SMTP_STARTTLS-provide-additiona.patch + Patch: 0001-Do-not-assume-there-is-a-SMTP_STARTTLS-configuration.patch + Patch: 0001-Fix-repotype-spelling.patch + Patch: 0001-api-fix-apidoc-format-on-api_view_issues_history_det.patch + Patch: 0001-Allow-editing-the-URL-a-project-is-mirrored-from.patch + Patch: 0001-Show-the-ACL-name-in-addition-to-the-description-whe.patch + Patch: 0001-Bring-back-JS-library-used-for-the-heatmap.patch + Patch: 0001-Ensure-the-title-name-of-the-headers-are-strings.patch + Patch: 0001-Fix-the-title-of-the-graph-showing-the-evolution-of-.patch + Patch: 0001-Make-sure-authorized_keys-file-has-mode-600.patch + Patch: 0101-Use-WhiteNoise-to-serve-static-assets-for-the-Pagure.patch OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/pagure?expand=0&rev=41
This commit is contained in:
parent
524e667a5f
commit
b06857bdfb
@ -1,77 +0,0 @@
|
|||||||
From 4196a3772693a79f1e5db12fa937bcee8280e248 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Mon, 18 May 2020 15:57:05 +0200
|
|
||||||
Subject: [PATCH 1/2] Add support for smtp server requiring starttls to work
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
doc/configuration.rst | 27 +++++++++++++++++++++++++++
|
|
||||||
pagure/lib/notify.py | 14 ++++++++++++++
|
|
||||||
2 files changed, 41 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/configuration.rst b/doc/configuration.rst
|
|
||||||
index 41f29b96..25dee387 100644
|
|
||||||
--- a/doc/configuration.rst
|
|
||||||
+++ b/doc/configuration.rst
|
|
||||||
@@ -961,6 +961,33 @@ should be secured over SSL.
|
|
||||||
Defaults to: ``False``
|
|
||||||
|
|
||||||
|
|
||||||
+SMTP_STARTTLS
|
|
||||||
+^^^^^^^^^^^^^
|
|
||||||
+
|
|
||||||
+This configuration key specifies instructs pagure to starts connecting to
|
|
||||||
+the SMTP server via a `starttls` command.
|
|
||||||
+
|
|
||||||
+Defaults to: ``False``
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+SMTP_KEYFILE
|
|
||||||
+^^^^^^^^^^^^
|
|
||||||
+
|
|
||||||
+This configuration key allows to specify a key file to be used in the
|
|
||||||
+`starttls` command when connecting to the smtp server.
|
|
||||||
+
|
|
||||||
+Defaults to: ``None``
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+SMTP_CERTFILE
|
|
||||||
+^^^^^^^^^^^^
|
|
||||||
+
|
|
||||||
+This configuration key allows to specify a certificate file to be used in
|
|
||||||
+the `starttls` command when connecting to the smtp server.
|
|
||||||
+
|
|
||||||
+Defaults to: ``None``
|
|
||||||
+
|
|
||||||
+
|
|
||||||
SMTP_USERNAME
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
diff --git a/pagure/lib/notify.py b/pagure/lib/notify.py
|
|
||||||
index 7670ad15..2c4ee30f 100644
|
|
||||||
--- a/pagure/lib/notify.py
|
|
||||||
+++ b/pagure/lib/notify.py
|
|
||||||
@@ -505,6 +505,20 @@ def send_email(
|
|
||||||
pagure_config["SMTP_SERVER"],
|
|
||||||
pagure_config["SMTP_PORT"],
|
|
||||||
)
|
|
||||||
+
|
|
||||||
+ if pagure_config["SMTP_STARTTLS"]:
|
|
||||||
+ context = ssl.create_default_context()
|
|
||||||
+ keyfile = pagure_config.get("SMTP_KEYFILE") or None
|
|
||||||
+ certfile = pagure_config.get("SMTP_CERTFILE") or None
|
|
||||||
+ respcode, _ = smtp.starttls(
|
|
||||||
+ keyfile=keyfile, certfile=certfile, context=context,
|
|
||||||
+ )
|
|
||||||
+ if respcode != 220:
|
|
||||||
+ _log.warning(
|
|
||||||
+ "The starttls command did not return the 220 "
|
|
||||||
+ "response code expected."
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
if (
|
|
||||||
pagure_config["SMTP_USERNAME"]
|
|
||||||
and pagure_config["SMTP_PASSWORD"]
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
@ -1,206 +0,0 @@
|
|||||||
From c78ea50ecfb6cb9c2be7aa9eabedf1f5c6292e84 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Sat, 30 May 2020 22:30:54 +0200
|
|
||||||
Subject: [PATCH] Allow editing the URL a project is mirrored from
|
|
||||||
|
|
||||||
When a project is mirrored from a remote location to a local pagure
|
|
||||||
instance, we so far had no way to edit this url, for example for
|
|
||||||
when the upstream project changes location.
|
|
||||||
With this commit we're able to fix this.
|
|
||||||
|
|
||||||
Fixes https://pagure.io/pagure/issue/4647
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
pagure/forms.py | 4 +
|
|
||||||
pagure/templates/settings.html | 9 ++
|
|
||||||
pagure/ui/repo.py | 2 +
|
|
||||||
...test_pagure_flask_ui_repo_mirrored_from.py | 128 ++++++++++++++++++
|
|
||||||
4 files changed, 143 insertions(+)
|
|
||||||
create mode 100644 tests/test_pagure_flask_ui_repo_mirrored_from.py
|
|
||||||
|
|
||||||
diff --git a/pagure/forms.py b/pagure/forms.py
|
|
||||||
index 228a0206..6daa8a81 100644
|
|
||||||
--- a/pagure/forms.py
|
|
||||||
+++ b/pagure/forms.py
|
|
||||||
@@ -159,6 +159,10 @@ class ProjectFormSimplified(PagureForm):
|
|
||||||
private = wtforms.BooleanField(
|
|
||||||
"Private", [wtforms.validators.Optional()], false_values=FALSE_VALUES
|
|
||||||
)
|
|
||||||
+ mirrored_from = wtforms.StringField(
|
|
||||||
+ "Mirrored from",
|
|
||||||
+ [wtforms.validators.optional(), wtforms.validators.Length(max=255)],
|
|
||||||
+ )
|
|
||||||
|
|
||||||
|
|
||||||
class ProjectForm(ProjectFormSimplified):
|
|
||||||
diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html
|
|
||||||
index a09d722d..55df03a0 100644
|
|
||||||
--- a/pagure/templates/settings.html
|
|
||||||
+++ b/pagure/templates/settings.html
|
|
||||||
@@ -160,6 +160,15 @@
|
|
||||||
<span class="c-indicator"></span>
|
|
||||||
</fieldset>
|
|
||||||
{% endif %}
|
|
||||||
+ {% if repo.mirrored_from %}
|
|
||||||
+ <fieldset class="form-group">
|
|
||||||
+ <label for="tags">Mirrored from</label>
|
|
||||||
+ <input class="form-control" name="mirrored_from" value="{{ repo.mirrored_from }}" />
|
|
||||||
+ <small class="text-muted">
|
|
||||||
+ The (public) url from which this repository is mirrored.
|
|
||||||
+ </small>
|
|
||||||
+ </fieldset>
|
|
||||||
+ {% endif %}
|
|
||||||
<button class="btn btn-primary" type="submit" title="Update description">
|
|
||||||
Update
|
|
||||||
</button>
|
|
||||||
diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py
|
|
||||||
index 5b522b5a..040b2bc5 100644
|
|
||||||
--- a/pagure/ui/repo.py
|
|
||||||
+++ b/pagure/ui/repo.py
|
|
||||||
@@ -1421,6 +1421,8 @@ def update_project(repo, username=None, namespace=None):
|
|
||||||
repo.url = form.url.data.strip()
|
|
||||||
if repo.private:
|
|
||||||
repo.private = form.private.data
|
|
||||||
+ if repo.mirrored_from:
|
|
||||||
+ repo.mirrored_from = form.mirrored_from.data
|
|
||||||
pagure.lib.query.update_tags(
|
|
||||||
flask.g.session,
|
|
||||||
repo,
|
|
||||||
diff --git a/tests/test_pagure_flask_ui_repo_mirrored_from.py b/tests/test_pagure_flask_ui_repo_mirrored_from.py
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..2c33053a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/test_pagure_flask_ui_repo_mirrored_from.py
|
|
||||||
@@ -0,0 +1,128 @@
|
|
||||||
+# -*- coding: utf-8 -*-
|
|
||||||
+
|
|
||||||
+"""
|
|
||||||
+ (c) 2020 - Copyright Red Hat Inc
|
|
||||||
+
|
|
||||||
+ Authors:
|
|
||||||
+ Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
+
|
|
||||||
+"""
|
|
||||||
+
|
|
||||||
+from __future__ import unicode_literals, absolute_import
|
|
||||||
+
|
|
||||||
+import datetime
|
|
||||||
+import os
|
|
||||||
+import shutil
|
|
||||||
+import sys
|
|
||||||
+import tempfile
|
|
||||||
+import time
|
|
||||||
+import unittest
|
|
||||||
+
|
|
||||||
+import pygit2
|
|
||||||
+import six
|
|
||||||
+from mock import patch, MagicMock, ANY, call
|
|
||||||
+
|
|
||||||
+sys.path.insert(
|
|
||||||
+ 0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
+import pagure.lib.git
|
|
||||||
+import tests
|
|
||||||
+
|
|
||||||
+from pagure.lib.repo import PagureRepo
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+class PagureUiRepoMirroredFromTests(tests.Modeltests):
|
|
||||||
+ """ Tests for pagure project that are mirrored from a remote location
|
|
||||||
+ """
|
|
||||||
+
|
|
||||||
+ maxDiff = None
|
|
||||||
+
|
|
||||||
+ def setUp(self):
|
|
||||||
+ """ Set up the environnment, ran before every tests. """
|
|
||||||
+ super(PagureUiRepoMirroredFromTests, self).setUp()
|
|
||||||
+
|
|
||||||
+ tests.create_projects(self.session)
|
|
||||||
+ tests.create_projects_git(os.path.join(self.path, "repos"), bare=True)
|
|
||||||
+
|
|
||||||
+ # Make the test project mirrored from elsewhere
|
|
||||||
+ self.project = pagure.lib.query.get_authorized_project(
|
|
||||||
+ self.session, "test"
|
|
||||||
+ )
|
|
||||||
+ self.project.mirrored_from = "https://example.com/foo/bar.git"
|
|
||||||
+ self.session.add(self.project)
|
|
||||||
+ self.session.commit()
|
|
||||||
+
|
|
||||||
+ def test_settings_shows(self):
|
|
||||||
+ """ Ensure that the box to edit the mirrored from value shows up
|
|
||||||
+ in the settings.
|
|
||||||
+ """
|
|
||||||
+ user = tests.FakeUser(username="pingou")
|
|
||||||
+ with tests.user_set(self.app.application, user):
|
|
||||||
+ output = self.app.get("/test/settings")
|
|
||||||
+ self.assertEqual(output.status_code, 200)
|
|
||||||
+ output_text = output.get_data(as_text=True)
|
|
||||||
+ self.assertIn(
|
|
||||||
+ '<input class="form-control" name="mirrored_from" '
|
|
||||||
+ 'value="https://example.com/foo/bar.git" />',
|
|
||||||
+ output_text,
|
|
||||||
+ )
|
|
||||||
+ self.assertIn(
|
|
||||||
+ "The (public) url from which this repository is mirrored.",
|
|
||||||
+ output_text,
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ def test_settings_not_show(self):
|
|
||||||
+ """ Ensure that the box to edit the mirrored from value does not
|
|
||||||
+ show up in the settings when it shouldn't.
|
|
||||||
+ """
|
|
||||||
+ user = tests.FakeUser(username="pingou")
|
|
||||||
+ with tests.user_set(self.app.application, user):
|
|
||||||
+ output = self.app.get("/test2/settings")
|
|
||||||
+ self.assertEqual(output.status_code, 200)
|
|
||||||
+ output_text = output.get_data(as_text=True)
|
|
||||||
+ self.assertNotIn(
|
|
||||||
+ '<input class="form-control" name="mirrored_from" ',
|
|
||||||
+ output_text,
|
|
||||||
+ )
|
|
||||||
+ self.assertNotIn(
|
|
||||||
+ "The (public) url from which this repository is mirrored.",
|
|
||||||
+ output_text,
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ def test_edit_mirrored_from(self):
|
|
||||||
+ """ Ensure that we can successfully edit the content of the
|
|
||||||
+ mirrored_from field.
|
|
||||||
+ """
|
|
||||||
+ user = tests.FakeUser(username="pingou")
|
|
||||||
+ with tests.user_set(self.app.application, user):
|
|
||||||
+ output = self.app.get("/test/settings")
|
|
||||||
+ self.assertEqual(output.status_code, 200)
|
|
||||||
+ output_text = output.get_data(as_text=True)
|
|
||||||
+ self.assertIn(
|
|
||||||
+ '<input class="form-control" name="mirrored_from" '
|
|
||||||
+ 'value="https://example.com/foo/bar.git" />',
|
|
||||||
+ output_text,
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ csrf_token = self.get_csrf(output=output)
|
|
||||||
+
|
|
||||||
+ data = {
|
|
||||||
+ "csrf_token": csrf_token,
|
|
||||||
+ "description": "test repo",
|
|
||||||
+ "mirrored_from": "https://example2.com/bar.git",
|
|
||||||
+ }
|
|
||||||
+ output = self.app.post(
|
|
||||||
+ "/test/update", data=data, follow_redirects=True
|
|
||||||
+ )
|
|
||||||
+ self.assertEqual(output.status_code, 200)
|
|
||||||
+ output_text = output.get_data(as_text=True)
|
|
||||||
+ self.assertIn(
|
|
||||||
+ '<input class="form-control" name="mirrored_from" '
|
|
||||||
+ 'value="https://example2.com/bar.git" />',
|
|
||||||
+ output_text,
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+if __name__ == "__main__":
|
|
||||||
+ unittest.main(verbosity=2)
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
@ -1,30 +0,0 @@
|
|||||||
From a5a0e792e8491f416d3188c42861ba0c62e94a79 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Wed, 3 Jun 2020 20:19:48 +0200
|
|
||||||
Subject: [PATCH] Do not assume there is a SMTP_STARTTLS configuration key set
|
|
||||||
|
|
||||||
This is a new key that was introduced in 5.10.0 and that isn't set
|
|
||||||
in the default_config. So we cannot assume it is defined and thus
|
|
||||||
the code needs to not make this assumption either.
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
pagure/lib/notify.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pagure/lib/notify.py b/pagure/lib/notify.py
|
|
||||||
index 2c4ee30f..0c124db9 100644
|
|
||||||
--- a/pagure/lib/notify.py
|
|
||||||
+++ b/pagure/lib/notify.py
|
|
||||||
@@ -506,7 +506,7 @@ def send_email(
|
|
||||||
pagure_config["SMTP_PORT"],
|
|
||||||
)
|
|
||||||
|
|
||||||
- if pagure_config["SMTP_STARTTLS"]:
|
|
||||||
+ if pagure_config.get("SMTP_STARTTLS"):
|
|
||||||
context = ssl.create_default_context()
|
|
||||||
keyfile = pagure_config.get("SMTP_KEYFILE") or None
|
|
||||||
certfile = pagure_config.get("SMTP_CERTFILE") or None
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From 8f8e201bf25e5ee1fd359ecf97eb41d09320bcb2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Wed, 3 Jun 2020 20:21:31 +0200
|
|
||||||
Subject: [PATCH] Ensure the title/name of the headers are strings
|
|
||||||
|
|
||||||
Whether this is running py2 or py3, the headers should be strings.
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
pagure/ui/clone.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pagure/ui/clone.py b/pagure/ui/clone.py
|
|
||||||
index 61615cc8..33732a41 100644
|
|
||||||
--- a/pagure/ui/clone.py
|
|
||||||
+++ b/pagure/ui/clone.py
|
|
||||||
@@ -205,7 +205,7 @@ def proxy_raw_git(project):
|
|
||||||
break
|
|
||||||
header = line.split(b": ", 1)
|
|
||||||
header[0] = header[0].decode("utf-8")
|
|
||||||
- headers[header[0].lower()] = header[1]
|
|
||||||
+ headers[str(header[0].lower())] = header[1]
|
|
||||||
|
|
||||||
if len(headers) == 0:
|
|
||||||
raise Exception("No response at all received")
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 86c9a6f729968432b9f0dd785548fbe8065f6f4b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
|
|
||||||
Date: Fri, 22 May 2020 11:49:10 +0200
|
|
||||||
Subject: [PATCH] Fix repotype spelling
|
|
||||||
|
|
||||||
---
|
|
||||||
pagure/internal/__init__.py | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pagure/internal/__init__.py b/pagure/internal/__init__.py
|
|
||||||
index 4f106e8b..3fa7edfa 100644
|
|
||||||
--- a/pagure/internal/__init__.py
|
|
||||||
+++ b/pagure/internal/__init__.py
|
|
||||||
@@ -157,11 +157,11 @@ def check_ssh_access():
|
|
||||||
return flask.jsonify({"access": False})
|
|
||||||
_log.info("Checking ACLs on project: %s" % project.fullname)
|
|
||||||
|
|
||||||
- if repotype not in ["main", "doc"] and not pagure.utils.is_repo_user(
|
|
||||||
+ if repotype not in ["main", "docs"] and not pagure.utils.is_repo_user(
|
|
||||||
project, remoteuser
|
|
||||||
):
|
|
||||||
# Deploy keys are not allowed on ticket and PR repos but they are
|
|
||||||
- # allowed for main and doc repos.
|
|
||||||
+ # allowed for main and docs repos.
|
|
||||||
_log.info("%s is not a contributor to this project" % remoteuser)
|
|
||||||
return flask.jsonify({"access": False})
|
|
||||||
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
From 907ba17242490b767c21cec877dd3ad322526ef6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Wed, 3 Jun 2020 20:23:45 +0200
|
|
||||||
Subject: [PATCH] Fix the title of the graph showing the evolution of the
|
|
||||||
number of open tickets on a project
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
pagure/static/issues_stats.js | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pagure/static/issues_stats.js b/pagure/static/issues_stats.js
|
|
||||||
index 32b4c2a9..5e81a3ab 100644
|
|
||||||
--- a/pagure/static/issues_stats.js
|
|
||||||
+++ b/pagure/static/issues_stats.js
|
|
||||||
@@ -70,7 +70,7 @@ function issues_history_stats_plot(data) {
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
display: true,
|
|
||||||
- text: 'Evolution of the number of commits over the last year'
|
|
||||||
+ text: 'Evolution of the number of open tickets over the last year'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 2691e9d47d45be9a72798bd84166d09b5c3c8d82 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sergio Durigan Junior <sergiodj@sergiodj.net>
|
|
||||||
Date: Sun, 7 Jun 2020 17:16:15 -0400
|
|
||||||
Subject: [PATCH] Make sure authorized_keys file has mode 600.
|
|
||||||
|
|
||||||
Only the pagure user needs to be able to read and write the file.
|
|
||||||
---
|
|
||||||
pagure/lib/tasks.py | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/pagure/lib/tasks.py b/pagure/lib/tasks.py
|
|
||||||
index eaef5cdb..73323ef7 100644
|
|
||||||
--- a/pagure/lib/tasks.py
|
|
||||||
+++ b/pagure/lib/tasks.py
|
|
||||||
@@ -1270,6 +1270,7 @@ def add_key_to_authorized_keys(self, session, ssh_folder, username, sshkey):
|
|
||||||
sshkey.strip(),
|
|
||||||
)
|
|
||||||
)
|
|
||||||
+ os.chmod(fullpath, 0o600)
|
|
||||||
|
|
||||||
|
|
||||||
@conn.task(queue=pagure_config.get("AUTHORIZED_KEYS_QUEUE", None), bind=True)
|
|
||||||
@@ -1294,3 +1295,4 @@ def remove_key_from_authorized_keys(self, session, ssh_folder, sshkey):
|
|
||||||
|
|
||||||
with open(fullpath, "w") as stream:
|
|
||||||
stream.write("\n".join(output))
|
|
||||||
+ os.chmod(fullpath, 0o600)
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
From 990a357f8edb2a25b791be249dd10c889422b353 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Fri, 15 May 2020 14:19:30 +0200
|
|
||||||
Subject: [PATCH] Make the stats page use the new stats API endpoint
|
|
||||||
|
|
||||||
We originally designed this code to use the existing API endpoint
|
|
||||||
with an argument to say that it wants the detailed version of the
|
|
||||||
stats. We later changed our mind and move the details to a new
|
|
||||||
API endpoint, but apparently we forgot to update the UI to point
|
|
||||||
to the new API endpoint (while all the JS code is compatible/expected
|
|
||||||
this data).
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
pagure/templates/repo_stats.html | 5 ++---
|
|
||||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pagure/templates/repo_stats.html b/pagure/templates/repo_stats.html
|
|
||||||
index 0e92b674..1f67477c 100644
|
|
||||||
--- a/pagure/templates/repo_stats.html
|
|
||||||
+++ b/pagure/templates/repo_stats.html
|
|
||||||
@@ -64,11 +64,10 @@ issues_history_stats_plot_call = function() {
|
|
||||||
$("#commiter_list").hide();
|
|
||||||
$(".commit_trend").hide();
|
|
||||||
var _stats_url = "{{ url_for(
|
|
||||||
- 'api_ns.api_view_issues_history_stats',
|
|
||||||
+ 'api_ns.api_view_issues_history_detailed_stats',
|
|
||||||
repo=g.repo.name,
|
|
||||||
username=username,
|
|
||||||
- namespace=g.repo.namespace,
|
|
||||||
- detailed=True) }}";
|
|
||||||
+ namespace=g.repo.namespace) }}";
|
|
||||||
var _s = $("#data_stats_spinner");
|
|
||||||
_s.html(
|
|
||||||
"<img id='spinnergif' src='{{ url_for('static', filename='images/spinner.gif') }}?version={{ g.version}}'>"
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From 98d320cad34ed2defadeb4828a9d5d7690a06ffd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
Date: Sun, 31 May 2020 21:16:36 +0200
|
|
||||||
Subject: [PATCH] Show the ACL name in addition to the description when
|
|
||||||
creating API tokens
|
|
||||||
|
|
||||||
So in addition to the description of the ACL, we will now show the
|
|
||||||
actual name of the ACL, which hopefully will help people when they
|
|
||||||
meet documentation that says: create a token with the update_issue ACL.
|
|
||||||
|
|
||||||
Relates to https://pagure.io/pagure/issue/4765
|
|
||||||
|
|
||||||
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
|
||||||
---
|
|
||||||
pagure/templates/add_token.html | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pagure/templates/add_token.html b/pagure/templates/add_token.html
|
|
||||||
index 02f5a80a..bf8a571b 100644
|
|
||||||
--- a/pagure/templates/add_token.html
|
|
||||||
+++ b/pagure/templates/add_token.html
|
|
||||||
@@ -44,7 +44,7 @@
|
|
||||||
<label class="c-input c-checkbox">
|
|
||||||
<input type="checkbox" name="acls" value="{{ acl.name }}">
|
|
||||||
<span class="c-indicator"></span>
|
|
||||||
- {{ acl.description }}
|
|
||||||
+ {{ acl.description }} <span class="small">({{ acl.name }})</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 656ef585dce90201f6e5e13f527284672a5fd7ee Mon Sep 17 00:00:00 2001
|
|
||||||
From: Julen Landa Alustiza <jlanda@fedoraproject.org>
|
|
||||||
Date: Wed, 27 May 2020 13:18:17 +0200
|
|
||||||
Subject: [PATCH] api: fix apidoc format on
|
|
||||||
api_view_issues_history_detailed_stats Fixes web api doc view template issues
|
|
||||||
|
|
||||||
---
|
|
||||||
pagure/api/issue.py | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/pagure/api/issue.py b/pagure/api/issue.py
|
|
||||||
index 99e3c7e6..3f9af2a6 100644
|
|
||||||
--- a/pagure/api/issue.py
|
|
||||||
+++ b/pagure/api/issue.py
|
|
||||||
@@ -1568,6 +1568,7 @@ def api_view_issues_history_detailed_stats(
|
|
||||||
^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
::
|
|
||||||
+
|
|
||||||
{
|
|
||||||
"stats": {
|
|
||||||
"2020-03-26T19:21:51.348451": {
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
From 27ab4efb3bfad27e036602e88c7d5de666c3d80b Mon Sep 17 00:00:00 2001
|
|
||||||
From: midipix <writeonce@midipix.org>
|
|
||||||
Date: Thu, 21 May 2020 15:09:30 +0000
|
|
||||||
Subject: [PATCH 2/2] starttls support via SMTP_STARTTLS: provide additional
|
|
||||||
documentation.
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/configuration.rst | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/configuration.rst b/doc/configuration.rst
|
|
||||||
index 25dee387..942aeb83 100644
|
|
||||||
--- a/doc/configuration.rst
|
|
||||||
+++ b/doc/configuration.rst
|
|
||||||
@@ -938,6 +938,8 @@ sending emails.
|
|
||||||
|
|
||||||
Defaults to: ``localhost``.
|
|
||||||
|
|
||||||
+See also the SMTP_STARTTLS section.
|
|
||||||
+
|
|
||||||
|
|
||||||
SMTP_PORT
|
|
||||||
^^^^^^^^^
|
|
||||||
@@ -967,6 +969,13 @@ SMTP_STARTTLS
|
|
||||||
This configuration key specifies instructs pagure to starts connecting to
|
|
||||||
the SMTP server via a `starttls` command.
|
|
||||||
|
|
||||||
+When enabling STARTTLS in conjunction with a local smtp server, you should
|
|
||||||
+replace ``localhost`` with a host name that is included in the server's
|
|
||||||
+certificate. If the server only relays messages originating from ``localhost``,
|
|
||||||
+then you should also ensure that the above host name resolves to the same
|
|
||||||
+tcp address as ``localhost``, for instance by adding an appropriate record
|
|
||||||
+to */etc/hosts*.
|
|
||||||
+
|
|
||||||
Defaults to: ``False``
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
2.26.1
|
|
||||||
|
|
@ -1,179 +0,0 @@
|
|||||||
From 89f18ee38de1e6cb3ac482f865e6352ed340d763 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neal Gompa <ngompa13@gmail.com>
|
|
||||||
Date: Sun, 31 May 2020 11:56:38 -0400
|
|
||||||
Subject: [PATCH] Use WhiteNoise to serve static assets for the Pagure web
|
|
||||||
interface
|
|
||||||
|
|
||||||
In order to make it easier to run Pagure in a containerized environment,
|
|
||||||
the web frontend needs to be capable of serving all of the frontend static
|
|
||||||
files. This change introduces WhiteNoise as a dependency that would enable
|
|
||||||
the Flask application itself to serve the static assets correctly.
|
|
||||||
|
|
||||||
This makes it possible to run a Pagure server without Apache or Nginx at all
|
|
||||||
in a containerized environment for all of the main functions.
|
|
||||||
|
|
||||||
Note that the releases folder is still not served through WhiteNoise, and
|
|
||||||
deployments that have uploading releases enabled will need something to
|
|
||||||
serve them.
|
|
||||||
|
|
||||||
Signed-off-by: Neal Gompa <ngompa13@gmail.com>
|
|
||||||
---
|
|
||||||
files/pagure-apache-httpd.conf | 3 ---
|
|
||||||
files/pagure-nginx.conf | 9 ---------
|
|
||||||
files/pagure.spec | 13 ++-----------
|
|
||||||
pagure/docs_server.py | 9 +++++++++
|
|
||||||
pagure/flask_app.py | 7 +++++++
|
|
||||||
requirements.txt | 1 +
|
|
||||||
6 files changed, 19 insertions(+), 23 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/files/pagure-apache-httpd.conf b/files/pagure-apache-httpd.conf
|
|
||||||
index cf61e7f4..5724deb4 100644
|
|
||||||
--- a/files/pagure-apache-httpd.conf
|
|
||||||
+++ b/files/pagure-apache-httpd.conf
|
|
||||||
@@ -33,8 +33,6 @@
|
|
||||||
#SSLCertificateChainFile /etc/pki/tls/....intermediate.crt
|
|
||||||
#SSLCertificateKeyFile /etc/pki/tls/....key
|
|
||||||
|
|
||||||
- #Alias /static /usr/lib/pythonX.Y/site-packages/pagure/static/
|
|
||||||
-
|
|
||||||
#<Location />
|
|
||||||
#WSGIProcessGroup paguredocs
|
|
||||||
#<IfModule mod_authz_core.c>
|
|
||||||
@@ -64,7 +62,6 @@
|
|
||||||
#SSLCertificateChainFile /etc/pki/tls/....intermediate.crt
|
|
||||||
#SSLCertificateKeyFile /etc/pki/tls/....key
|
|
||||||
|
|
||||||
- #Alias /static /usr/lib/pythonX.Y/site-packages/pagure/static/
|
|
||||||
#Alias /releases /var/www/releases
|
|
||||||
|
|
||||||
## Section used to support cloning git repo over http (https in this case)
|
|
||||||
diff --git a/files/pagure-nginx.conf b/files/pagure-nginx.conf
|
|
||||||
index fe3ff832..a5d196a6 100644
|
|
||||||
--- a/files/pagure-nginx.conf
|
|
||||||
+++ b/files/pagure-nginx.conf
|
|
||||||
@@ -27,11 +27,6 @@
|
|
||||||
#try_files $uri @pagure_docs;
|
|
||||||
#}
|
|
||||||
|
|
||||||
- #location /static {
|
|
||||||
- #alias /usr/lib/pythonX.Y/site-packages/pagure/static/;
|
|
||||||
- #try_files $uri $uri/;
|
|
||||||
- #}
|
|
||||||
-
|
|
||||||
#}
|
|
||||||
|
|
||||||
#server {
|
|
||||||
@@ -63,10 +58,6 @@
|
|
||||||
#try_files $uri @pagure;
|
|
||||||
#}
|
|
||||||
|
|
||||||
- #location /static {
|
|
||||||
- #alias /usr/lib/pythonX.Y/site-packages/pagure/static/;
|
|
||||||
- #}
|
|
||||||
-
|
|
||||||
#location /releases {
|
|
||||||
#alias /var/www/releases/;
|
|
||||||
#autoindex on;
|
|
||||||
diff --git a/files/pagure.spec b/files/pagure.spec
|
|
||||||
index 5c084436..24fd5b37 100644
|
|
||||||
--- a/files/pagure.spec
|
|
||||||
+++ b/files/pagure.spec
|
|
||||||
@@ -75,6 +75,7 @@ Requires: python%{python_pkgversion}-requests
|
|
||||||
Requires: python%{python_pkgversion}-six
|
|
||||||
Requires: python%{python_pkgversion}-sqlalchemy >= 0.8
|
|
||||||
Requires: python%{python_pkgversion}-straight-plugin
|
|
||||||
+Requires: python%{python_pkgversion}-whitenoise
|
|
||||||
Requires: python%{python_pkgversion}-wtforms
|
|
||||||
%endif
|
|
||||||
|
|
||||||
@@ -365,22 +366,12 @@ sed -e "s|#!/usr/bin/env python|#!%{__python}|" -i \
|
|
||||||
# Switch interpreter for systemd units
|
|
||||||
sed -e "s|/usr/bin/python|%{__python}|g" -i $RPM_BUILD_ROOT/%{_unitdir}/*.service
|
|
||||||
|
|
||||||
-%if 0%{?rhel} && 0%{?rhel} < 8
|
|
||||||
-# Change to correct static file path for apache httpd and nginx
|
|
||||||
-sed -e "s/pythonX.Y/python%{python2_version}/g" -i \
|
|
||||||
- $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/pagure.conf \
|
|
||||||
- $RPM_BUILD_ROOT/%{_sysconfdir}/nginx/conf.d/pagure.conf
|
|
||||||
-%else
|
|
||||||
+%if ! (0%{?rhel} && 0%{?rhel} < 8)
|
|
||||||
# Switch all systemd units to use the correct celery
|
|
||||||
sed -e "s|/usr/bin/celery|/usr/bin/celery-3|g" -i $RPM_BUILD_ROOT/%{_unitdir}/*.service
|
|
||||||
|
|
||||||
# Switch all systemd units to use the correct gunicorn
|
|
||||||
sed -e "s|/usr/bin/gunicorn|/usr/bin/gunicorn-3|g" -i $RPM_BUILD_ROOT/%{_unitdir}/*.service
|
|
||||||
-
|
|
||||||
-# Change to correct static file path for apache httpd and nginx
|
|
||||||
-sed -e "s/pythonX.Y/python%{python3_version}/g" -i \
|
|
||||||
- $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/pagure.conf \
|
|
||||||
- $RPM_BUILD_ROOT/%{_sysconfdir}/nginx/conf.d/pagure.conf
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Make log directories
|
|
||||||
diff --git a/pagure/docs_server.py b/pagure/docs_server.py
|
|
||||||
index fd7b2778..dc5e297b 100644
|
|
||||||
--- a/pagure/docs_server.py
|
|
||||||
+++ b/pagure/docs_server.py
|
|
||||||
@@ -17,6 +17,7 @@ import flask
|
|
||||||
import pygit2
|
|
||||||
|
|
||||||
from binaryornot.helpers import is_binary_string
|
|
||||||
+from whitenoise import WhiteNoise
|
|
||||||
|
|
||||||
import pagure.config
|
|
||||||
import pagure.doc_utils
|
|
||||||
@@ -29,6 +30,14 @@ import pagure.forms
|
|
||||||
# Create the application.
|
|
||||||
APP = flask.Flask(__name__)
|
|
||||||
|
|
||||||
+# Setup WhiteNoise for serving static files
|
|
||||||
+here = os.path.abspath(
|
|
||||||
+ os.path.join(os.path.dirname(os.path.abspath(__file__)))
|
|
||||||
+)
|
|
||||||
+APP.wsgi_app = WhiteNoise(
|
|
||||||
+ APP.wsgi_app, root=os.path.join(here, "static"), prefix="/static"
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
# set up FAS
|
|
||||||
APP.config = pagure.config.reload_config()
|
|
||||||
|
|
||||||
diff --git a/pagure/flask_app.py b/pagure/flask_app.py
|
|
||||||
index 7d533b63..34eb4783 100644
|
|
||||||
--- a/pagure/flask_app.py
|
|
||||||
+++ b/pagure/flask_app.py
|
|
||||||
@@ -21,6 +21,8 @@ import warnings
|
|
||||||
import flask
|
|
||||||
import pygit2
|
|
||||||
|
|
||||||
+from whitenoise import WhiteNoise
|
|
||||||
+
|
|
||||||
import pagure.doc_utils
|
|
||||||
import pagure.exceptions
|
|
||||||
import pagure.forms
|
|
||||||
@@ -188,6 +190,11 @@ def create_app(config=None):
|
|
||||||
app.jinja_loader = jinja2.ChoiceLoader(templ_loaders)
|
|
||||||
app.register_blueprint(themeblueprint)
|
|
||||||
|
|
||||||
+ # Setup WhiteNoise for serving static files
|
|
||||||
+ app.wsgi_app = WhiteNoise(
|
|
||||||
+ app.wsgi_app, root=os.path.join(here, "static"), prefix="/static"
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
app.before_request(set_request)
|
|
||||||
app.after_request(after_request)
|
|
||||||
app.teardown_request(end_request)
|
|
||||||
diff --git a/requirements.txt b/requirements.txt
|
|
||||||
index dcde36ce..fa538676 100644
|
|
||||||
--- a/requirements.txt
|
|
||||||
+++ b/requirements.txt
|
|
||||||
@@ -33,6 +33,7 @@ sqlalchemy >= 0.8
|
|
||||||
# 1.4.0 is broken, 1.4.0-post-1 works but gives odd results on newer setuptools
|
|
||||||
# the latest version 1.5.0 is also known to work
|
|
||||||
straight.plugin
|
|
||||||
+whitenoise
|
|
||||||
wtforms
|
|
||||||
|
|
||||||
# Required only for the `oidc` authentication backend
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2a2b60e85e35f19a4260aa049aa7508059604de40a07acc1bdb7a421e882542c
|
|
||||||
size 21610760
|
|
3
pagure-5.11.2.tar.gz
Normal file
3
pagure-5.11.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:7a53d0abb3467fbd087bff0908baf23b2fed8dd65954e8fa14a7c355ba83eac3
|
||||||
|
size 21878079
|
@ -1,3 +1,62 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 4 13:00:36 UTC 2020 - Neal Gompa <ngompa13@gmail.com>
|
||||||
|
|
||||||
|
- Update to 5.11.2
|
||||||
|
+ Allow having a dedicated logging configuration for the git hooks
|
||||||
|
+ Increase logging to the pagure_auth logger
|
||||||
|
+ Make work pagure-admin ensure-project-hooks when the target link exists but is
|
||||||
|
broken
|
||||||
|
+ Change the project icon when the project is mirrored from an external source
|
||||||
|
+ Allow a theme or a blueprint to inject custom buttons in the navigation bar.
|
||||||
|
+ Add API endpoint to get a pull-request comment
|
||||||
|
+ Omit breaking original comment format in reply on pull-requests
|
||||||
|
+ Let the milter announce when it reject an email based on its address
|
||||||
|
+ Don't Let the milter process the email we send.
|
||||||
|
+ Add a collaborator level to projects
|
||||||
|
+ Allow setting the default git branch when creating projects via the API
|
||||||
|
+ Allow creating mirrored project from the API
|
||||||
|
+ Add the possibility to set the default branch at project creation
|
||||||
|
+ Add API endpoint to set the default git branch and expose it in an existing
|
||||||
|
endpoint
|
||||||
|
+ Adjust the example configuration for logging to a file
|
||||||
|
+ Allow project-less API token with the "modify_project" ACL to update watchers
|
||||||
|
+ Add a new API endpoint to retrieve a commit's metadata/info
|
||||||
|
+ Add a new API endpoint allowing to delete a project
|
||||||
|
+ Add support for customizing the new issue page
|
||||||
|
+ Introducing the boards feature
|
||||||
|
+ Add an API endpoint to view the content of a git repo
|
||||||
|
+ Port pagure's markdown extension to the new API
|
||||||
|
+ Multiple small fixes for the vagrant-based development environment
|
||||||
|
+ Use WhiteNoise to serve static assets for the Pagure web
|
||||||
|
+ Fix the title of the graph showing the evolution of the number of open tickets
|
||||||
|
on a project
|
||||||
|
+ Do not assume there is a SMTP_STARTTLS configuration key set
|
||||||
|
+ Bring back JS library used for the heatmap
|
||||||
|
+ Show the ACL name in addition to the description when creating API tokens
|
||||||
|
+ Allow editing the URL a project is mirrored from
|
||||||
|
+ Add comments to the mirror service files for clarifying their purpose.
|
||||||
|
+ Add a dedicated logger for everything that is auth related
|
||||||
|
+ api: fix apidoc format on api_view_issues_history_detailed_stats Fixes web
|
||||||
|
api doc view template issues
|
||||||
|
+ doc: Add a page documenting known Pagure instances
|
||||||
|
+ starttls support via SMTP_STARTTLS: provide additional documentation.
|
||||||
|
+ Add support for smtp server requiring starttls to work
|
||||||
|
+ Make the stats page use the new stats API endpoint
|
||||||
|
- Drop patches included in this release
|
||||||
|
+ Patch: 0001-Make-the-stats-page-use-the-new-stats-API-endpoint.patch
|
||||||
|
+ Patch: 0001-Add-support-for-smtp-server-requiring-starttls-to-wo.patch
|
||||||
|
+ Patch: 0002-starttls-support-via-SMTP_STARTTLS-provide-additiona.patch
|
||||||
|
+ Patch: 0001-Do-not-assume-there-is-a-SMTP_STARTTLS-configuration.patch
|
||||||
|
+ Patch: 0001-Fix-repotype-spelling.patch
|
||||||
|
+ Patch: 0001-api-fix-apidoc-format-on-api_view_issues_history_det.patch
|
||||||
|
+ Patch: 0001-Allow-editing-the-URL-a-project-is-mirrored-from.patch
|
||||||
|
+ Patch: 0001-Show-the-ACL-name-in-addition-to-the-description-whe.patch
|
||||||
|
+ Patch: 0001-Bring-back-JS-library-used-for-the-heatmap.patch
|
||||||
|
+ Patch: 0001-Ensure-the-title-name-of-the-headers-are-strings.patch
|
||||||
|
+ Patch: 0001-Fix-the-title-of-the-graph-showing-the-evolution-of-.patch
|
||||||
|
+ Patch: 0001-Make-sure-authorized_keys-file-has-mode-600.patch
|
||||||
|
+ Patch: 0101-Use-WhiteNoise-to-serve-static-assets-for-the-Pagure.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Jun 21 12:57:17 UTC 2020 - Neal Gompa <ngompa13@gmail.com>
|
Sun Jun 21 12:57:17 UTC 2020 - Neal Gompa <ngompa13@gmail.com>
|
||||||
|
|
||||||
|
31
pagure.spec
31
pagure.spec
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: pagure
|
Name: pagure
|
||||||
Version: 5.10.0
|
Version: 5.11.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A git-centered forge
|
Summary: A git-centered forge
|
||||||
Group: Development/Tools/Version Control
|
Group: Development/Tools/Version Control
|
||||||
@ -41,35 +41,6 @@ Source1: https://raw.githubusercontent.com/fedora-infra/python-fedora
|
|||||||
Source10: pagure-README.SUSE
|
Source10: pagure-README.SUSE
|
||||||
|
|
||||||
|
|
||||||
# Backports from upstream
|
|
||||||
## Backport fix to make stats page work
|
|
||||||
Patch0001: 0001-Make-the-stats-page-use-the-new-stats-API-endpoint.patch
|
|
||||||
## Backport support for STARTTLS support for SMTP servers
|
|
||||||
Patch0002: 0001-Add-support-for-smtp-server-requiring-starttls-to-wo.patch
|
|
||||||
Patch0003: 0002-starttls-support-via-SMTP_STARTTLS-provide-additiona.patch
|
|
||||||
Patch0004: 0001-Do-not-assume-there-is-a-SMTP_STARTTLS-configuration.patch
|
|
||||||
## Fix access grants for docs repo
|
|
||||||
Patch0005: 0001-Fix-repotype-spelling.patch
|
|
||||||
## Fix visual bug on api documentation formatting
|
|
||||||
Patch0006: 0001-api-fix-apidoc-format-on-api_view_issues_history_det.patch
|
|
||||||
## Add setting for changing pull mirror source for projects
|
|
||||||
Patch0007: 0001-Allow-editing-the-URL-a-project-is-mirrored-from.patch
|
|
||||||
## Add descriptions to API scopes listed at API token creation page
|
|
||||||
Patch0008: 0001-Show-the-ACL-name-in-addition-to-the-description-whe.patch
|
|
||||||
## Restore heatmap JS library
|
|
||||||
Patch0009: 0001-Bring-back-JS-library-used-for-the-heatmap.patch
|
|
||||||
## Ensure header keys are rendered as strings
|
|
||||||
Patch0010: 0001-Ensure-the-title-name-of-the-headers-are-strings.patch
|
|
||||||
## Fix title of burndown graph
|
|
||||||
Patch0011: 0001-Fix-the-title-of-the-graph-showing-the-evolution-of-.patch
|
|
||||||
## Fix permissions for generated authorized_keys file
|
|
||||||
Patch0012: 0001-Make-sure-authorized_keys-file-has-mode-600.patch
|
|
||||||
|
|
||||||
# Changes proposed upstream
|
|
||||||
## Use whitenoise to render static assets
|
|
||||||
## From: https://pagure.io/pagure/pull-request/4885
|
|
||||||
Patch0101: 0101-Use-WhiteNoise-to-serve-static-assets-for-the-Pagure.patch
|
|
||||||
|
|
||||||
# SUSE-specific fixes
|
# SUSE-specific fixes
|
||||||
## Change the defaults in the example config to match packaging
|
## Change the defaults in the example config to match packaging
|
||||||
Patch1000: pagure-5.0-default-example-cfg.patch
|
Patch1000: pagure-5.0-default-example-cfg.patch
|
||||||
|
Loading…
x
Reference in New Issue
Block a user