コード例 #1
0
ファイル: repo.py プロジェクト: ercpe/gitbrowser
    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())
コード例 #2
0
ファイル: middlewares.py プロジェクト: dziadu/gitbrowser
	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
コード例 #3
0
ファイル: middlewares.py プロジェクト: ercpe/gitbrowser
    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