{% extends "base.html" %} {% block title %}Repository · {{ workspace.name }}{% endblock %} {% block content %} {% set wbase = '/workspaces/' ~ workspace.id %} {% set weekdays = ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'] %} {% set q = '?source=' ~ source.name|urlencode %}

Repository

{% if age is not none %}Stand vor {{ (age // 60)|int }} Min.{% endif %}

{{ source.config.url }} · Ziel-Branch {{ source.config.branch }}{% if head %} · Stand {{ head[:10] }}{% endif %}

{% if sources|length > 1 %} {% endif %}
{% include "_flash.html" %} {% if tab == 'new' and head %}
{% if news.since is none %}

Dein erster Besuch hier. Ab jetzt zeigt Bifröst oben, was seit deinem letzten Besuch neu ist.

{% elif news.commits %}

Seit deinem letzten Besuch ({{ news.since.astimezone().strftime('%d.%m.%Y %H:%M') }}): {{ news.commits }} Commit{{ 's' if news.commits != 1 }}, {{ news.files }} Datei{{ 'en' if news.files != 1 }} geändert.

{% else %}

Nichts Neues seit deinem letzten Besuch ({{ news.since.astimezone().strftime('%d.%m.%Y %H:%M') }}).

{% endif %}
{% if filtered %}Zurücksetzen{% endif %}

Commits auf {{ source.config.branch }}{% if count %} {{ count }}{% endif %}

{% if range_start %}
{% endif %}
{% for d in days %}

{{ weekdays[d.day.weekday()] }}, {{ d.day.strftime('%d.%m.%Y') }}

    {% for c in d.commits %}
  • {% if c.new %}neu {% endif %}{{ c.subject }} {{ c.author }} · {{ c.date.astimezone().strftime('%H:%M') }} · {{ c.short }}{% if c.files %} · {{ c.files }} Datei{{ 'en' if c.files != 1 }} +{{ c.insertions }} −{{ c.deletions }}{% endif %}
  • {% endfor %}
{% else %}

Keine Commits {% if filtered %}für diesen Filter{% else %}in diesem Zeitraum{% endif %}.

{% endfor %}
{% endif %} {% if tab == 'branches' and head %}

Alle Branches auf dem Git-Server, zuletzt geänderte zuerst. Vorsprung und Rückstand beziehen sich auf {{ source.config.branch }}. Chat auf diesem Branch startet einen Chat, der den Branch liest; Änderungen der KI landen auf einem eigenen Branch ai/…, der davon abzweigt, und ein Pull Request geht zurück in diesen Branch.

{% if branches %}
{% for b in branches %} {% endfor %}
BranchLetzter Commit↑ / ↓
{{ b.name }}{% if b.target %} Ziel-Branch{% endif %} {% if b.chat_id %}

Chat: {{ b.chat_title }}{% if b.pr_state %} · {% if b.pr_url %}PR {{ b.pr_state|lower }}{% else %}PR {{ b.pr_state|lower }}{% endif %}{% endif %}

{% elif b.name.startswith('ai/') %}

Chat-Branch ohne Chat in diesem Workspace

{% endif %}
{{ b.subject }}

{{ b.author }} · {{ b.date.astimezone().strftime('%d.%m.%Y %H:%M') }} · {{ b.sha[:10] }}

{% if b.target %}–{% else %}↑{{ b.ahead }} ↓{{ b.behind }}{% endif %} {% if not b.target and b.ahead %}Diff{% endif %}
{% elif not error %}

Keine Branches gefunden.

{% endif %}
{% endif %} {% if tab == 'prs' and head %}
{% if prs is none and not error %}

Für diese Quelle ist kein Pull-Request-Anbieter eingerichtet. Workspace-Admins wählen ihn unter Daten → Quelle bearbeiten (Pull Requests: Bitbucket Data Center).

{% elif prs %}

Offene Pull Requests im Git-Server, zuletzt geänderte zuerst. Diff zeigt die Änderungen wie im Pull Request; Im Chat reviewen startet einen Chat, der den Branch liest und ein Review schreibt, ohne etwas zu ändern.

{% elif not error %}

Keine offenen Pull Requests.

{% endif %}
{% endif %} {% if tab == 'files' and head %} {% set fq = q ~ '&tab=files&ref=' ~ (ref|default(''))|urlencode %}
{% if refs %}
{% endif %}
{% if is_file and file %}

{{ file.size|filesizeformat }}{% if file.lines %} · {{ file.lines|length }}{% if file.truncated %}+{% endif %} Zeilen{% endif %} · Branch {{ ref }}

{% if file.binary %}

Binärdatei; keine Vorschau.

{% elif file.too_large %}

{{ file.too_large }}

{% else %}
    {% for line in file.lines %}
  1. {{ line }}
  2. {% endfor %}
{% if file.truncated %}

Nur die ersten {{ file.lines|length }} Zeilen.

{% endif %} {% endif %} {% if file.history %}

Verlauf

{% endif %} {% else %} {% endif %}
{% endif %} {% endblock %}