##// END OF EJS Templates
pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits....
pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits. This is required to increase the versions on each concurrent call. Otherwise we could get into an integrity errors of commitsha+version+repo

File last commit:

r3363:f08e98b1 default
r3408:2a133f7e stable
Show More
__init__.py
483 lines | 17.3 KiB | text/x-python | PythonLexer
repositories: enabled support for maintenance commands....
r1555 # -*- coding: utf-8 -*-
release: update copyright year to 2018
r2487 # Copyright (C) 2016-2018 RhodeCode GmbH
repositories: enabled support for maintenance commands....
r1555 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
repo-summary: re-implemented summary view as pyramid....
r1785 from rhodecode.apps._base import add_route_with_slash
repositories: enabled support for maintenance commands....
r1555
def includeme(config):
repositories: ported repo_creating checks to pyramid....
r1985 # repo creating checks, special cases that aren't repo routes
config.add_route(
name='repo_creating',
pattern='/{repo_name:.*?[^/]}/repo_creating')
config.add_route(
name='repo_creating_check',
pattern='/{repo_name:.*?[^/]}/repo_creating_check')
repo-settings: moved advanced setion into pyramid views....
r1751 # Summary
repo-summary: re-implemented summary view as pyramid....
r1785 # NOTE(marcink): one additional route is defined in very bottom, catch
# all pattern
home: moved home and repo group views into pyramid....
r1774 config.add_route(
repo-settings: moved advanced setion into pyramid views....
r1751 name='repo_summary_explicit',
pattern='/{repo_name:.*?[^/]}/summary', repo_route=True)
repo-summary: re-implemented summary view as pyramid....
r1785 config.add_route(
name='repo_summary_commits',
pattern='/{repo_name:.*?[^/]}/summary-commits', repo_route=True)
compare: migrated code from pylons to pyramid views.
r1957 # Commits
events: expose permalink urls for different set of object....
r1788 config.add_route(
name='repo_commit',
pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}', repo_route=True)
repo-commits: ported changeset code into pyramid views....
r1951 config.add_route(
name='repo_commit_children',
pattern='/{repo_name:.*?[^/]}/changeset_children/{commit_id}', repo_route=True)
config.add_route(
name='repo_commit_parents',
pattern='/{repo_name:.*?[^/]}/changeset_parents/{commit_id}', repo_route=True)
config.add_route(
name='repo_commit_raw',
pattern='/{repo_name:.*?[^/]}/changeset-diff/{commit_id}', repo_route=True)
config.add_route(
name='repo_commit_patch',
pattern='/{repo_name:.*?[^/]}/changeset-patch/{commit_id}', repo_route=True)
config.add_route(
name='repo_commit_download',
pattern='/{repo_name:.*?[^/]}/changeset-download/{commit_id}', repo_route=True)
config.add_route(
name='repo_commit_data',
pattern='/{repo_name:.*?[^/]}/changeset-data/{commit_id}', repo_route=True)
config.add_route(
name='repo_commit_comment_create',
pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/create', repo_route=True)
config.add_route(
name='repo_commit_comment_preview',
pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/preview', repo_route=True)
config.add_route(
name='repo_commit_comment_delete',
pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/{comment_id}/delete', repo_route=True)
compare: migrated code from pylons to pyramid views.
r1957 # still working url for backward compat.
config.add_route(
name='repo_commit_raw_deprecated',
pattern='/{repo_name:.*?[^/]}/raw-changeset/{commit_id}', repo_route=True)
# Files
files: ported repository files controllers to pyramid views.
r1927 config.add_route(
name='repo_archivefile',
pattern='/{repo_name:.*?[^/]}/archive/{fname}', repo_route=True)
config.add_route(
name='repo_files_diff',
pattern='/{repo_name:.*?[^/]}/diff/{f_path:.*}', repo_route=True)
config.add_route( # legacy route to make old links work
name='repo_files_diff_2way_redirect',
pattern='/{repo_name:.*?[^/]}/diff-2way/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_files',
pattern='/{repo_name:.*?[^/]}/files/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_files:default_path',
pattern='/{repo_name:.*?[^/]}/files/{commit_id}/', repo_route=True)
config.add_route(
name='repo_files:default_commit',
pattern='/{repo_name:.*?[^/]}/files', repo_route=True)
config.add_route(
name='repo_files:rendered',
pattern='/{repo_name:.*?[^/]}/render/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_files:annotated',
pattern='/{repo_name:.*?[^/]}/annotate/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_files:annotated_previous',
pattern='/{repo_name:.*?[^/]}/annotate-previous/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_nodetree_full',
pattern='/{repo_name:.*?[^/]}/nodetree_full/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_nodetree_full:default_path',
pattern='/{repo_name:.*?[^/]}/nodetree_full/{commit_id}/', repo_route=True)
config.add_route(
name='repo_files_nodelist',
pattern='/{repo_name:.*?[^/]}/nodelist/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_file_raw',
pattern='/{repo_name:.*?[^/]}/raw/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_file_download',
pattern='/{repo_name:.*?[^/]}/download/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route( # backward compat to keep old links working
name='repo_file_download:legacy',
pattern='/{repo_name:.*?[^/]}/rawfile/{commit_id}/{f_path:.*}',
repo_route=True)
config.add_route(
name='repo_file_history',
pattern='/{repo_name:.*?[^/]}/history/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_file_authors',
pattern='/{repo_name:.*?[^/]}/authors/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_files_remove_file',
pattern='/{repo_name:.*?[^/]}/remove_file/{commit_id}/{f_path:.*}',
repo_route=True)
config.add_route(
name='repo_files_delete_file',
pattern='/{repo_name:.*?[^/]}/delete_file/{commit_id}/{f_path:.*}',
repo_route=True)
config.add_route(
name='repo_files_edit_file',
pattern='/{repo_name:.*?[^/]}/edit_file/{commit_id}/{f_path:.*}',
repo_route=True)
config.add_route(
name='repo_files_update_file',
pattern='/{repo_name:.*?[^/]}/update_file/{commit_id}/{f_path:.*}',
repo_route=True)
config.add_route(
name='repo_files_add_file',
pattern='/{repo_name:.*?[^/]}/add_file/{commit_id}/{f_path:.*}',
repo_route=True)
config.add_route(
name='repo_files_create_file',
pattern='/{repo_name:.*?[^/]}/create_file/{commit_id}/{f_path:.*}',
repo_route=True)
compare: migrated code from pylons to pyramid views.
r1957 # Refs data
repo-summary: re-implemented summary view as pyramid....
r1785 config.add_route(
name='repo_refs_data',
pattern='/{repo_name:.*?[^/]}/refs-data', repo_route=True)
config.add_route(
name='repo_refs_changelog_data',
pattern='/{repo_name:.*?[^/]}/refs-data-changelog', repo_route=True)
config.add_route(
name='repo_stats',
pattern='/{repo_name:.*?[^/]}/repo_stats/{commit_id}', repo_route=True)
repo-settings: moved advanced setion into pyramid views....
r1751
changelog: ported to pyramid views.
r1931 # Changelog
config.add_route(
name='repo_changelog',
pattern='/{repo_name:.*?[^/]}/changelog', repo_route=True)
config.add_route(
name='repo_changelog_file',
pattern='/{repo_name:.*?[^/]}/changelog/{commit_id}/{f_path:.*}', repo_route=True)
config.add_route(
name='repo_changelog_elements',
pattern='/{repo_name:.*?[^/]}/changelog_elements', repo_route=True)
changelog: fix and optimize loading of chunks for file history....
r2130 config.add_route(
name='repo_changelog_elements_file',
pattern='/{repo_name:.*?[^/]}/changelog_elements/{commit_id}/{f_path:.*}', repo_route=True)
changelog: ported to pyramid views.
r1931
compare: migrated code from pylons to pyramid views.
r1957 # Compare
config.add_route(
name='repo_compare_select',
pattern='/{repo_name:.*?[^/]}/compare', repo_route=True)
config.add_route(
name='repo_compare',
pattern='/{repo_name:.*?[^/]}/compare/{source_ref_type}@{source_ref:.*?}...{target_ref_type}@{target_ref:.*?}', repo_route=True)
tags/branches/bookmarks: moved views into pyramid.
r1746 # Tags
config.add_route(
name='tags_home',
pattern='/{repo_name:.*?[^/]}/tags', repo_route=True)
# Branches
config.add_route(
name='branches_home',
pattern='/{repo_name:.*?[^/]}/branches', repo_route=True)
forks: moved pylons code into pyramid.
r1988 # Bookmarks
tags/branches/bookmarks: moved views into pyramid.
r1746 config.add_route(
name='bookmarks_home',
pattern='/{repo_name:.*?[^/]}/bookmarks', repo_route=True)
forks: moved pylons code into pyramid.
r1988 # Forks
config.add_route(
name='repo_fork_new',
pattern='/{repo_name:.*?[^/]}/fork', repo_route=True,
repositories: added option to archive repositories instead of deleting them....
r3090 repo_forbid_when_archived=True,
forks: moved pylons code into pyramid.
r1988 repo_accepted_types=['hg', 'git'])
config.add_route(
name='repo_fork_create',
pattern='/{repo_name:.*?[^/]}/fork/create', repo_route=True,
repositories: added option to archive repositories instead of deleting them....
r3090 repo_forbid_when_archived=True,
forks: moved pylons code into pyramid.
r1988 repo_accepted_types=['hg', 'git'])
config.add_route(
name='repo_forks_show_all',
pattern='/{repo_name:.*?[^/]}/forks', repo_route=True,
repo_accepted_types=['hg', 'git'])
config.add_route(
name='repo_forks_data',
pattern='/{repo_name:.*?[^/]}/forks/data', repo_route=True,
repo_accepted_types=['hg', 'git'])
audit-logs: introduced new view to replace admin journal....
r1758 # Pull Requests
config.add_route(
name='pullrequest_show',
pull-requests: migrated code from pylons to pyramid
r1974 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}',
audit-logs: introduced new view to replace admin journal....
r1758 repo_route=True)
pull-requests: moved the listing of pull requests for repo into pyramid....
r1766 config.add_route(
name='pullrequest_show_all',
pattern='/{repo_name:.*?[^/]}/pull-request',
repo_route=True, repo_accepted_types=['hg', 'git'])
config.add_route(
name='pullrequest_show_all_data',
pattern='/{repo_name:.*?[^/]}/pull-request-data',
repo_route=True, repo_accepted_types=['hg', 'git'])
pull-requests: migrated code from pylons to pyramid
r1974 config.add_route(
name='pullrequest_repo_refs',
pattern='/{repo_name:.*?[^/]}/pull-request/refs/{target_repo_name:.*?[^/]}',
repo_route=True)
config.add_route(
name='pullrequest_repo_destinations',
pattern='/{repo_name:.*?[^/]}/pull-request/repo-destinations',
repo_route=True)
config.add_route(
name='pullrequest_new',
pattern='/{repo_name:.*?[^/]}/pull-request/new',
repositories: added option to archive repositories instead of deleting them....
r3090 repo_route=True, repo_accepted_types=['hg', 'git'],
repo_forbid_when_archived=True)
pull-requests: migrated code from pylons to pyramid
r1974
config.add_route(
name='pullrequest_create',
pattern='/{repo_name:.*?[^/]}/pull-request/create',
repositories: added option to archive repositories instead of deleting them....
r3090 repo_route=True, repo_accepted_types=['hg', 'git'],
repo_forbid_when_archived=True)
pull-requests: migrated code from pylons to pyramid
r1974
config.add_route(
name='pullrequest_update',
pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/update',
repositories: added option to archive repositories instead of deleting them....
r3090 repo_route=True, repo_forbid_when_archived=True)
pull-requests: migrated code from pylons to pyramid
r1974
config.add_route(
name='pullrequest_merge',
pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/merge',
repositories: added option to archive repositories instead of deleting them....
r3090 repo_route=True, repo_forbid_when_archived=True)
pull-requests: migrated code from pylons to pyramid
r1974
config.add_route(
name='pullrequest_delete',
pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/delete',
repositories: added option to archive repositories instead of deleting them....
r3090 repo_route=True, repo_forbid_when_archived=True)
pull-requests: migrated code from pylons to pyramid
r1974
config.add_route(
name='pullrequest_comment_create',
pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment',
repo_route=True)
config.add_route(
name='pullrequest_comment_delete',
pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment/{comment_id}/delete',
repo_route=True, repo_accepted_types=['hg', 'git'])
repo-settings: converted repo settings to pyramid...
r1716 # Settings
config.add_route(
name='edit_repo',
pattern='/{repo_name:.*?[^/]}/settings', repo_route=True)
repo-groups: moved to pyramid
r2175 # update is POST on edit_repo
repo-settings: converted repo settings to pyramid...
r1716
repo-settings: moved advanced setion into pyramid views....
r1751 # Settings advanced
config.add_route(
name='edit_repo_advanced',
pattern='/{repo_name:.*?[^/]}/settings/advanced', repo_route=True)
config.add_route(
repositories: added option to archive repositories instead of deleting them....
r3090 name='edit_repo_advanced_archive',
pattern='/{repo_name:.*?[^/]}/settings/advanced/archive', repo_route=True)
config.add_route(
repo-settings: moved advanced setion into pyramid views....
r1751 name='edit_repo_advanced_delete',
pattern='/{repo_name:.*?[^/]}/settings/advanced/delete', repo_route=True)
config.add_route(
name='edit_repo_advanced_locking',
pattern='/{repo_name:.*?[^/]}/settings/advanced/locking', repo_route=True)
config.add_route(
name='edit_repo_advanced_journal',
pattern='/{repo_name:.*?[^/]}/settings/advanced/journal', repo_route=True)
config.add_route(
name='edit_repo_advanced_fork',
pattern='/{repo_name:.*?[^/]}/settings/advanced/fork', repo_route=True)
repo-settings: add hidden view to force re-install hooks....
r2678 config.add_route(
name='edit_repo_advanced_hooks',
pattern='/{repo_name:.*?[^/]}/settings/advanced/hooks', repo_route=True)
repo-caches: moved view into pyramid.
r1722 # Caches
config.add_route(
name='edit_repo_caches',
pattern='/{repo_name:.*?[^/]}/settings/caches', repo_route=True)
repo-permissions: moved permissions into pyramid....
r1734 # Permissions
config.add_route(
name='edit_repo_perms',
pattern='/{repo_name:.*?[^/]}/settings/permissions', repo_route=True)
branch permissions: added logic to define in UI branch permissions....
r2975 # Permissions Branch (EE feature)
config.add_route(
name='edit_repo_perms_branch',
pattern='/{repo_name:.*?[^/]}/settings/branch_permissions', repo_route=True)
config.add_route(
name='edit_repo_perms_branch_delete',
pattern='/{repo_name:.*?[^/]}/settings/branch_permissions/{rule_id}/delete',
repo_route=True)
repositories: rewrote whole admin section to pyramid....
r2014 # Maintenance
config.add_route(
name='edit_repo_maintenance',
pattern='/{repo_name:.*?[^/]}/settings/maintenance', repo_route=True)
config.add_route(
name='edit_repo_maintenance_execute',
pattern='/{repo_name:.*?[^/]}/settings/maintenance/execute', repo_route=True)
# Fields
config.add_route(
name='edit_repo_fields',
pattern='/{repo_name:.*?[^/]}/settings/fields', repo_route=True)
config.add_route(
name='edit_repo_fields_create',
pattern='/{repo_name:.*?[^/]}/settings/fields/create', repo_route=True)
config.add_route(
name='edit_repo_fields_delete',
pattern='/{repo_name:.*?[^/]}/settings/fields/{field_id}/delete', repo_route=True)
# Locking
config.add_route(
name='repo_edit_toggle_locking',
pattern='/{repo_name:.*?[^/]}/settings/toggle_locking', repo_route=True)
# Remote
config.add_route(
name='edit_repo_remote',
pattern='/{repo_name:.*?[^/]}/settings/remote', repo_route=True)
config.add_route(
name='edit_repo_remote_pull',
pattern='/{repo_name:.*?[^/]}/settings/remote/pull', repo_route=True)
repositories: allow properly updating repository push url.
r2562 config.add_route(
name='edit_repo_remote_push',
pattern='/{repo_name:.*?[^/]}/settings/remote/push', repo_route=True)
repositories: rewrote whole admin section to pyramid....
r2014
# Statistics
config.add_route(
name='edit_repo_statistics',
pattern='/{repo_name:.*?[^/]}/settings/statistics', repo_route=True)
config.add_route(
name='edit_repo_statistics_reset',
pattern='/{repo_name:.*?[^/]}/settings/statistics/update', repo_route=True)
# Issue trackers
config.add_route(
name='edit_repo_issuetracker',
pattern='/{repo_name:.*?[^/]}/settings/issue_trackers', repo_route=True)
config.add_route(
name='edit_repo_issuetracker_test',
pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/test', repo_route=True)
config.add_route(
name='edit_repo_issuetracker_delete',
pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/delete', repo_route=True)
config.add_route(
name='edit_repo_issuetracker_update',
pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/update', repo_route=True)
# VCS Settings
config.add_route(
name='edit_repo_vcs',
pattern='/{repo_name:.*?[^/]}/settings/vcs', repo_route=True)
config.add_route(
name='edit_repo_vcs_update',
pattern='/{repo_name:.*?[^/]}/settings/vcs/update', repo_route=True)
# svn pattern
config.add_route(
name='edit_repo_vcs_svn_pattern_delete',
pattern='/{repo_name:.*?[^/]}/settings/vcs/svn_pattern/delete', repo_route=True)
# Repo Review Rules (EE feature)
repo-reviewers: expose a default placeholder on CE edition....
r1725 config.add_route(
name='repo_reviewers',
pattern='/{repo_name:.*?[^/]}/settings/review/rules', repo_route=True)
reviewers: moved the new v1 api of default reviewers into pyramid view....
r1767 config.add_route(
name='repo_default_reviewers_data',
pattern='/{repo_name:.*?[^/]}/settings/review/default-reviewers', repo_route=True)
repo-automation: added placeholder for EE feature.
r2565 # Repo Automation (EE feature)
config.add_route(
name='repo_automation',
pattern='/{repo_name:.*?[^/]}/settings/automation', repo_route=True)
Bartłomiej Wołyńczyk
strip: added functionality to stip choosen commits on repo settings
r1587 # Strip
config.add_route(
repositories: rewrote whole admin section to pyramid....
r2014 name='edit_repo_strip',
repo-settings: unify the URL schemas and always use settings/ for repo based...
r1745 pattern='/{repo_name:.*?[^/]}/settings/strip', repo_route=True)
Bartłomiej Wołyńczyk
strip: added functionality to stip choosen commits on repo settings
r1587
config.add_route(
name='strip_check',
repo-settings: unify the URL schemas and always use settings/ for repo based...
r1745 pattern='/{repo_name:.*?[^/]}/settings/strip_check', repo_route=True)
Bartłomiej Wołyńczyk
strip: added functionality to stip choosen commits on repo settings
r1587
config.add_route(
name='strip_execute',
repo-settings: unify the URL schemas and always use settings/ for repo based...
r1745 pattern='/{repo_name:.*?[^/]}/settings/strip_execute', repo_route=True)
repo-settings: moved advanced setion into pyramid views....
r1751
audit-logs: expose tailoed audit logs in repository view
r2156 # Audit logs
config.add_route(
name='edit_repo_audit_logs',
pattern='/{repo_name:.*?[^/]}/settings/audit_logs', repo_route=True)
dan
repo-feed: moved from pylons controller to pyramid views.
r1899 # ATOM/RSS Feed
config.add_route(
name='rss_feed_home',
pattern='/{repo_name:.*?[^/]}/feed/rss', repo_route=True)
config.add_route(
name='atom_feed_home',
pattern='/{repo_name:.*?[^/]}/feed/atom', repo_route=True)
repo-settings: moved advanced setion into pyramid views....
r1751 # NOTE(marcink): needs to be at the end for catch-all
repo-summary: re-implemented summary view as pyramid....
r1785 add_route_with_slash(
config,
name='repo_summary',
pattern='/{repo_name:.*?[^/]}', repo_route=True)
repo-settings: moved advanced setion into pyramid views....
r1751
repositories: enabled support for maintenance commands....
r1555 # Scan module for configuration decorators.
pyramid: use a faster scan method for faster app start.
r1991 config.scan('.views', ignore='.tests')