From 048b7a7bbd34b1d081cad596a19e25084519a522 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Tue, 26 Feb 2019 09:25:00 +0100 Subject: [PATCH 01/11] hooks: fixed again unicode problems with new pull-request link generator --- rhodecode/lib/hooks_base.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rhodecode/lib/hooks_base.py b/rhodecode/lib/hooks_base.py index 80a830ed..adeceae4 100644 --- a/rhodecode/lib/hooks_base.py +++ b/rhodecode/lib/hooks_base.py @@ -270,7 +270,7 @@ def post_push(extras): # make lock is a tri state False, True, None. We only release lock on False if extras.make_lock is False and not is_shadow_repo(extras): Repository.unlock(Repository.get_by_repo_name(extras.repository)) - msg = 'Released lock on repo `%s`\n' % extras.repository + msg = 'Released lock on repo `{}`\n'.format(safe_str(extras.repository)) output += msg if extras.locked_by[0]: @@ -284,8 +284,8 @@ def post_push(extras): output += _http_ret.title if extras.new_refs: - tmpl = extras.server_url + '/' + extras.repository + \ - "/pull-request/new?{ref_type}={ref_name}" + tmpl = '{}/{}/pull-request/new?{{ref_type}}={{ref_name}}'.format( + safe_str(extras.server_url), safe_str(extras.repository)) for branch_name in extras.new_refs['branches']: output += 'RhodeCode: open pull request link: {}\n'.format( From 84383cd55787e7bdbe941d22a5e76303bf489ad1 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Tue, 26 Feb 2019 09:25:26 +0100 Subject: [PATCH 02/11] pull-requests: handle non-ascii branches from short branch selector via URL --- rhodecode/model/pull_request.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/rhodecode/model/pull_request.py b/rhodecode/model/pull_request.py index c49db7bb..9fb2aa51 100644 --- a/rhodecode/model/pull_request.py +++ b/rhodecode/model/pull_request.py @@ -1420,8 +1420,8 @@ class PullRequestModel(BaseModel): _ = translator or get_current_request().translate commit_id = safe_str(commit_id) if commit_id else None - branch = safe_str(branch) if branch else None - bookmark = safe_str(bookmark) if bookmark else None + branch = safe_unicode(branch) if branch else None + bookmark = safe_unicode(bookmark) if bookmark else None selected = None @@ -1439,10 +1439,11 @@ class PullRequestModel(BaseModel): ) groups = [] + for group_key, ref_list, group_name, match in sources: group_refs = [] for ref_name, ref_id in ref_list: - ref_key = '%s:%s:%s' % (group_key, ref_name, ref_id) + ref_key = u'{}:{}:{}'.format(group_key, ref_name, ref_id) group_refs.append((ref_key, ref_name)) if not selected: @@ -1456,11 +1457,11 @@ class PullRequestModel(BaseModel): ref = commit_id or branch or bookmark if ref: raise CommitDoesNotExistError( - 'No commit refs could be found matching: %s' % ref) + u'No commit refs could be found matching: {}'.format(ref)) elif repo.DEFAULT_BRANCH_NAME in repo.branches: - selected = 'branch:%s:%s' % ( - repo.DEFAULT_BRANCH_NAME, - repo.branches[repo.DEFAULT_BRANCH_NAME] + selected = u'branch:{}:{}'.format( + safe_unicode(repo.DEFAULT_BRANCH_NAME), + safe_unicode(repo.branches[repo.DEFAULT_BRANCH_NAME]) ) elif repo.commit_ids: # make the user select in this case From cf9df9d81410d96bcca4322d656b5dbb7c98c830 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Wed, 27 Feb 2019 17:02:48 +0100 Subject: [PATCH 03/11] upgrade: fixed old style rc upgrade sometimes used with a very old installer. --- rhodecode/lib/paster_commands/upgrade_db.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rhodecode/lib/paster_commands/upgrade_db.py b/rhodecode/lib/paster_commands/upgrade_db.py index 78c5ad64..ce19a6da 100644 --- a/rhodecode/lib/paster_commands/upgrade_db.py +++ b/rhodecode/lib/paster_commands/upgrade_db.py @@ -26,7 +26,8 @@ log = logging.getLogger(__name__) class UpgradeDb(BasePasterCommand): - """Command used for paster to upgrade our database to newer version + """ + Command used for paster to upgrade our database to newer version """ max_args = 1 @@ -41,7 +42,7 @@ class UpgradeDb(BasePasterCommand): def command(self): from rhodecode.lib.rc_commands import upgrade_db upgrade_db.command( - self.path_to_ini_file, self.options.__dict__.get('force_ask')) + self.path_to_ini_file, self.options.__dict__.get('force_ask'), None) def update_parser(self): self.parser.add_option('--sql', From cbd41c407906df542c6c44aa206f1435d2c6c2be Mon Sep 17 00:00:00 2001 From: Daniel Dourvaris Date: Fri, 1 Mar 2019 10:02:46 +0100 Subject: [PATCH 04/11] markdown: fixed sanitization of checkbox extensions that removed "checked" attribute. - Fixes #5513 --- rhodecode/lib/bleach_whitelist.py | 2 +- rhodecode/lib/markdown_ext.py | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/rhodecode/lib/bleach_whitelist.py b/rhodecode/lib/bleach_whitelist.py index a661ffb4..d7f7a4d1 100644 --- a/rhodecode/lib/bleach_whitelist.py +++ b/rhodecode/lib/bleach_whitelist.py @@ -70,7 +70,7 @@ markdown_attrs = { "abbr": ["title"], "acronym": ["title"], "pre": ["lang"], - "input": ["type", "disabled"] + "input": ["type", "disabled", "checked"] } standard_styles = [ diff --git a/rhodecode/lib/markdown_ext.py b/rhodecode/lib/markdown_ext.py index 0055abea..cced2a08 100644 --- a/rhodecode/lib/markdown_ext.py +++ b/rhodecode/lib/markdown_ext.py @@ -18,26 +18,11 @@ # RhodeCode Enterprise Edition, including its added features, Support services, # and proprietary license terms, please see https://rhodecode.com/licenses/ -import re - import markdown from mdx_gfm import GithubFlavoredMarkdownExtension # pragma: no cover -class FlavoredCheckboxPostprocessor(markdown.postprocessors.Postprocessor): - """ - Adds `flavored_checkbox_list` class to list of checkboxes - """ - - pattern = re.compile(r'^([*-]) \[([ x])\]') - - def run(self, html): - before = '
    \n
  • ]*>', From b7abd4d97bfc100e0bf0b7c3405d83f628d15c64 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Tue, 5 Mar 2019 10:49:14 +0100 Subject: [PATCH 05/11] downloads: fixed archive links from file tree view --- rhodecode/templates/files/files_browser.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rhodecode/templates/files/files_browser.mako b/rhodecode/templates/files/files_browser.mako index f996027f..7ff6ed5f 100644 --- a/rhodecode/templates/files/files_browser.mako +++ b/rhodecode/templates/files/files_browser.mako @@ -30,7 +30,7 @@ % if c.enable_downloads: <% at_path = '{}.zip'.format(request.GET.get('at') or c.commit.raw_id[:6]) %> From 33fb5603474d6d1521b102e59435fc02c829ef29 Mon Sep 17 00:00:00 2001 From: Marcin Lulek Date: Mon, 11 Mar 2019 08:46:12 +0100 Subject: [PATCH 06/11] comments[security]: make an additional check to forbid solving comments from other repo scope. --- rhodecode/model/comment.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rhodecode/model/comment.py b/rhodecode/model/comment.py index 6be2938f..f682e224 100644 --- a/rhodecode/model/comment.py +++ b/rhodecode/model/comment.py @@ -259,8 +259,18 @@ class CommentsModel(BaseModel): # check if the comment actually belongs to this PR if resolved_comment and resolved_comment.pull_request and \ resolved_comment.pull_request != pull_request: + log.warning('Comment tried to resolved unrelated todo comment: %s', + resolved_comment) # comment not bound to this pull request, forbid resolved_comment = None + + elif resolved_comment and resolved_comment.repo and \ + resolved_comment.repo != repo: + log.warning('Comment tried to resolved unrelated todo comment: %s', + resolved_comment) + # comment not bound to this repo, forbid + resolved_comment = None + comment.resolved_comment = resolved_comment pull_request_id = pull_request From 20b23c353b907dc34fbfaad111bdfe4b5bdf9a52 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Thu, 7 Mar 2019 11:00:12 +0100 Subject: [PATCH 07/11] docs: added 4.16.1 release notes --- docs/release-notes/release-notes-4.16.1.rst | 47 +++++++++++++++++++++ docs/release-notes/release-notes.rst | 1 + 2 files changed, 48 insertions(+) create mode 100644 docs/release-notes/release-notes-4.16.1.rst diff --git a/docs/release-notes/release-notes-4.16.1.rst b/docs/release-notes/release-notes-4.16.1.rst new file mode 100644 index 00000000..e988b423 --- /dev/null +++ b/docs/release-notes/release-notes-4.16.1.rst @@ -0,0 +1,47 @@ +|RCE| 4.16.1 |RNS| +------------------ + +Release Date +^^^^^^^^^^^^ + +- 2019-03-07 + + +New Features +^^^^^^^^^^^^ + + + +General +^^^^^^^ + +- Docs: added missing reference for the user bookmarks feature. + + +Security +^^^^^^^^ + +- Comments: prevent from allowing to resolve TODO comments across projects. In certain + conditions users could resolve TODOs not belonging to the same project. + + +Performance +^^^^^^^^^^^ + + + +Fixes +^^^^^ + +- Downloads: fixed archive links from file tree view. +- Markdown: fixed sanitization of checkbox extensions that removed "checked" attribute. +- Upgrade: fixed upgrades from older versions of RhodeCode. +- Pull Requests: handle non-ascii branches from short branch selector via URL. +- Hooks: fixed again unicode problems with new pull request link generator. + + + +Upgrade notes +^^^^^^^^^^^^^ + +- Scheduled release addressing problems in 4.16.X releases. diff --git a/docs/release-notes/release-notes.rst b/docs/release-notes/release-notes.rst index 5c8bc90f..33c014fd 100644 --- a/docs/release-notes/release-notes.rst +++ b/docs/release-notes/release-notes.rst @@ -9,6 +9,7 @@ Release Notes .. toctree:: :maxdepth: 1 + release-notes-4.16.1.rst release-notes-4.16.0.rst release-notes-4.15.2.rst release-notes-4.15.1.rst From 5bb20445652f1d98c5d0b554d0b750b7e0eab867 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Mon, 11 Mar 2019 09:46:31 +0000 Subject: [PATCH 08/11] release: Start preparation for 4.16.1 --- .bumpversion.cfg | 2 +- .release.cfg | 14 ++++---------- rhodecode/VERSION | 2 +- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 90e20d7b..8dbe62c1 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 4.16.0 +current_version = 4.16.1 message = release: Bump version {current_version} to {new_version} [bumpversion:file:rhodecode/VERSION] diff --git a/.release.cfg b/.release.cfg index 475396fe..870a2c60 100644 --- a/.release.cfg +++ b/.release.cfg @@ -5,26 +5,20 @@ done = false done = true [task:rc_tools_pinned] -done = true [task:fixes_on_stable] -done = true [task:pip2nix_generated] -done = true [task:changelog_updated] -done = true [task:generate_api_docs] -done = true - -[task:updated_translation] -done = true [release] -state = prepared -version = 4.16.0 +state = in_progress +version = 4.16.1 + +[task:updated_translation] [task:generate_js_routes] diff --git a/rhodecode/VERSION b/rhodecode/VERSION index 2c9aebff..99463916 100644 --- a/rhodecode/VERSION +++ b/rhodecode/VERSION @@ -1 +1 @@ -4.16.0 \ No newline at end of file +4.16.1 \ No newline at end of file From 828c1b586affd6e455a89a2b5c802766c47aa2c2 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Mon, 11 Mar 2019 09:55:15 +0000 Subject: [PATCH 09/11] release: updated pip2nix output for 4.16.1 --- .release.cfg | 4 ++++ pkgs/python-packages.nix | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.release.cfg b/.release.cfg index 870a2c60..03343880 100644 --- a/.release.cfg +++ b/.release.cfg @@ -5,14 +5,18 @@ done = false done = true [task:rc_tools_pinned] +done = true [task:fixes_on_stable] +done = true [task:pip2nix_generated] [task:changelog_updated] +done = true [task:generate_api_docs] +done = true [release] state = in_progress diff --git a/pkgs/python-packages.nix b/pkgs/python-packages.nix index eb36b1c7..7161c4e5 100644 --- a/pkgs/python-packages.nix +++ b/pkgs/python-packages.nix @@ -1690,7 +1690,7 @@ self: super: { }; }; "rhodecode-enterprise-ce" = super.buildPythonPackage { - name = "rhodecode-enterprise-ce-4.16.0"; + name = "rhodecode-enterprise-ce-4.16.1"; buildInputs = [ self."pytest" self."py" From 862fea492a9ec969f221e85de11a2a52a5a10bb8 Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Mon, 11 Mar 2019 09:55:18 +0000 Subject: [PATCH 10/11] release: Finish preparation for 4.16.1 --- .release.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.release.cfg b/.release.cfg index 03343880..1e93d0fd 100644 --- a/.release.cfg +++ b/.release.cfg @@ -11,6 +11,7 @@ done = true done = true [task:pip2nix_generated] +done = true [task:changelog_updated] done = true @@ -19,7 +20,7 @@ done = true done = true [release] -state = in_progress +state = prepared version = 4.16.1 [task:updated_translation] From 0db1016a5afeaee56dc1889fbcd5ecae7cac45cd Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Mon, 11 Mar 2019 09:55:20 +0000 Subject: [PATCH 11/11] Added tag v4.16.1 for changeset 6c3452c7c25e