~edwargix/git.sr.ht

658a6b7baa494fe238921f2dc91a8a690b2c1a9f — наб 4 years ago 043820b
Use Repository.readme, if any, for display. Add repository.readme via migration

Ref: ~sircmpwn/git.sr.ht#205
M gitsrht/alembic/versions/01412986a44d_create_git_daemon_export_ok_files_again.py => gitsrht/alembic/versions/01412986a44d_create_git_daemon_export_ok_files_again.py +0 -0
A gitsrht/alembic/versions/8fbeb080c434_add_repository_readme.py => gitsrht/alembic/versions/8fbeb080c434_add_repository_readme.py +22 -0
@@ 0,0 1,22 @@
"""Add repository.readme

Revision ID: 8fbeb080c434
Revises: d42e577c5dcd
Create Date: 2020-08-22 02:16:15.516120

"""

# revision identifiers, used by Alembic.
revision = '8fbeb080c434'
down_revision = 'd42e577c5dcd'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.add_column('repository', sa.Column('readme', sa.Unicode))


def downgrade():
    op.drop_column('repository', 'readme')

M gitsrht/blueprints/repo.py => gitsrht/blueprints/repo.py +7 -4
@@ 22,12 22,15 @@ from scmsrht.access import get_repo, get_repo_or_redir
from scmsrht.formatting import get_formatted_readme, get_highlighted_file
from scmsrht.urls import get_clone_urls
from srht.config import cfg, get_origin
from srht.markdown import markdown
from srht.markdown import markdown, sanitize
from urllib.parse import urlparse

repo = Blueprint('repo', __name__)

def get_readme(repo, tip, link_prefix=None):
def get_readme(repo, git_repo, tip, link_prefix=None):
    if repo.readme is not None:
        return Markup(sanitize(repo.readme))

    if not tip:
        return None



@@ 45,7 48,7 @@ def get_readme(repo, tip, link_prefix=None):
        return None, None

    def content_getter(blob):
        return repo.get(blob.id).data.decode()
        return git_repo.get(blob.id).data.decode()

    return get_formatted_readme("git.sr.ht:git", file_finder, content_getter,
            link_prefix=link_prefix)


@@ 87,7 90,7 @@ def summary(owner, repo):
        blob_prefix = url_for(
            'repo.raw_blob', owner=repo.owner, repo=repo.name,
            ref=f"{default_branch.name}/", path="")  # Trailing slash needed
        readme = get_readme(git_repo, tip,
        readme = get_readme(repo, git_repo, tip,
            link_prefix=[link_prefix, blob_prefix])
        tags = [(ref, git_repo.get(git_repo.references[ref].target))
            for ref in git_repo.listall_references()