RemoveProjectView.as_view(), name='sentry-remove-project'), url(r'^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/tags/$', ProjectTagsView.as_view(), name='sentry-manage-project-tags'), url(r'^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/alerts/rules/new/$', ProjectRuleEditView.as_view(), name='sentry-new-project-rule'), url(r'^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/alerts/rules/(?P<rule_id>\d+)/$', ProjectRuleEditView.as_view(), name='sentry-edit-project-rule'), url(r'^avatar/(?P<avatar_id>[^\/]+)/$', UserAvatarPhotoView.as_view(), name='sentry-user-avatar-url'), # Generic url(r'^$', HomeView.as_view(), name='sentry'), url(r'^robots\.txt$', api.robots_txt, name='sentry-api-robots-txt'), # Force a 404 of favicon.ico. # This url is commonly requested by browsers, and without # blocking this, it was treated as a 200 OK for a react page view. # A side effect of this is it may cause a bad redirect when logging in # since this gets stored in session as the last viewed page. # See: https://github.com/getsentry/sentry/issues/2195
] ), ), # Settings - Projects url( r"^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/$", RedirectView.as_view(pattern_name="sentry-manage-project", permanent=False), ), url( r"^settings/(?P<organization_slug>[\w_-]+)/projects/(?P<project_slug>[\w_-]+)/$", react_page_view, name="sentry-manage-project", ), url( r"^avatar/(?P<avatar_id>[^\/]+)/$", UserAvatarPhotoView.as_view(), name="sentry-user-avatar-url", ), url( r"^organization-avatar/(?P<avatar_id>[^\/]+)/$", OrganizationAvatarPhotoView.as_view(), name="sentry-organization-avatar-url", ), url( r"^project-avatar/(?P<avatar_id>[^\/]+)/$", ProjectAvatarPhotoView.as_view(), name="sentry-project-avatar-url", ), url( r"^team-avatar/(?P<avatar_id>[^\/]+)/$", TeamAvatarPhotoView.as_view(),
url( r"^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/rules/(?P<rule_id>\d+)/edit/$", ProjectRuleEditView.as_view(), name="sentry-edit-project-rule", ), url( r"^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/rules/(?P<rule_id>\d+)/remove/$", ProjectRuleRemoveView.as_view(), name="sentry-remove-project-rule", ), url( r"^(?P<organization_slug>[\w_-]+)/(?P<project_slug>[\w_-]+)/settings/rules/new/$", ProjectRuleEditView.as_view(), name="sentry-new-project-rule", ), url(r"^avatar/(?P<avatar_id>[^\/]+)/$", UserAvatarPhotoView.as_view(), name="sentry-user-avatar-url"), # Generic url(r"^$", HomeView.as_view(), name="sentry"), url(r"^robots\.txt$", api.robots_txt, name="sentry-api-robots-txt"), # Force a 404 of favicon.ico. # This url is commonly requested by browsers, and without # blocking this, it was treated as a 200 OK for a react page view. # A side effect of this is it may cause a bad redirect when logging in # since this gets stored in session as the last viewed page. # See: https://github.com/getsentry/sentry/issues/2195 url(r"favicon\.ico$", lambda r: HttpResponse(status=404)), # crossdomain.xml url(r"^crossdomain\.xml$", api.crossdomain_xml_index, name="sentry-api-crossdomain-xml-index"), url(r"^api/(?P<project_id>[\w_-]+)/crossdomain\.xml$", api.crossdomain_xml, name="sentry-api-crossdomain-xml"), # plugins url(r"^plugins/", include("sentry.plugins.base.urls")),