def readme(self): if not config.feature_enabled('render_readme'): return for filename, renderer_name in README_CHOICES: try: items = list(self.items(filename)) except KeyError: continue if len(items or []) == 1 and isinstance(items[0], Blob): logging.info("Found readme %s" % filename) try: renderer = get_renderer_by_name(renderer_name) return renderer.render(items[0].content()) except Exception as ex: logging.error("Could not render readme %s - %s" % (filename, ex)) logging.error(traceback.format_exc())
def process_request(self, request): if not config.feature_enabled('intercept_gitweb_links'): return action = request.GET.get('a', None) project = request.GET.get('p', None) file_or_folder = request.GET.get('f', '') head_base = request.GET.get('hb', 'master') commit = request.GET.get('h', None) if not (project and action): return redirect_url = None if action == "summary": redirect_url = reverse('gitbrowser:overview', args=(project, )) elif action == 'tree': redirect_url = reverse('gitbrowser:browse_ref', args=(project, head_base, file_or_folder)) elif action == 'blob': redirect_url = reverse('gitbrowser:browse_blob', args=(project, head_base, file_or_folder)) elif action == 'shortlog': redirect_url = reverse('gitbrowser:commits', args=(project, head_base)) elif action in ('commit', 'commitdiff', ): redirect_url = reverse('gitbrowser:commit', args=(project, commit)) elif action == 'blob_plain': redirect_url = reverse('gitbrowser:raw', args=(project, head_base, file_or_folder)) elif action == "history": redirect_url = reverse('gitbrowser:history', args=(project, head_base, file_or_folder)) elif action == "atom" or action == "rss": redirect_url = reverse('gitbrowser:feed', args=(project, )) if redirect_url: logging.info("Intercepted gitweb url. Redirecting to %s" % redirect_url) return HttpResponsePermanentRedirect(redirect_url) logging.warning("Could not find a redirect url for p=%s and a=%s" % (project, action)) raise Http404
def process_request(self, request): if not config.feature_enabled("intercept_gitweb_links"): return action = request.GET.get("a", None) project = request.GET.get("p", None) file_or_folder = request.GET.get("f", "") head_base = request.GET.get("hb", "master") commit = request.GET.get("h", None) if not (project and action): return redirect_url = None if action == "summary": redirect_url = reverse("gitbrowser:overview", args=(project,)) elif action == "tree": redirect_url = reverse("gitbrowser:browse_ref", args=(project, head_base, file_or_folder)) elif action == "blob": redirect_url = reverse("gitbrowser:browse_blob", args=(project, head_base, file_or_folder)) elif action == "shortlog": redirect_url = reverse("gitbrowser:commits", args=(project, head_base)) elif action in ("commit", "commitdiff"): redirect_url = reverse("gitbrowser:commit", args=(project, commit)) elif action == "blob_plain": redirect_url = reverse("gitbrowser:raw", args=(project, head_base, file_or_folder)) elif action == "history": redirect_url = reverse("gitbrowser:history", args=(project, head_base, file_or_folder)) elif action == "atom" or action == "rss": redirect_url = reverse("gitbrowser:feed", args=(project,)) if redirect_url: logging.info("Intercepted gitweb url. Redirecting to %s" % redirect_url) return HttpResponsePermanentRedirect(redirect_url) logging.warning("Could not find a redirect url for p=%s and a=%s" % (project, action)) raise Http404