main • app/views/repos/show.php
<?php require __DIR__ . '/../layout/header.php'; ?>
<div class="d-flex justify-content-between align-items-start">
<div>
<h3 class="m-0"><?= e($repo['owner_username']) ?>/<?= e($repo['name']) ?></h3>
<div class="text-muted"><?= e($repo['description'] ?? '') ?></div>
</div>
<span class="badge bg-secondary"><?= e($repo['visibility']) ?></span>
</div>
<div class="mt-3 d-flex gap-2 flex-wrap">
<a class="btn btn-outline-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/browse?branch=<?= e($branch) ?>">Browse</a>
<a class="btn btn-outline-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/pulls">Pull Requests</a>
<a class="btn btn-outline-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/issues">Issues</a>
<a class="btn btn-outline-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/branches">Branches</a>
<?php if ($canWrite): ?>
<a class="btn btn-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/commit-zip?branch=<?= e($branch) ?>">Commit ZIP</a>
<a class="btn btn-outline-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/pulls/new">New PR</a>
<?php endif; ?>
<?php if ($isOwner): ?>
<a class="btn btn-outline-dark btn-sm" href="/r/<?= (int)$repo['id'] ?>/collaborators">Collaborators</a>
<?php endif; ?>
</div>
<hr>
<div class="row g-3">
<div class="col-md-4">
<div class="card p-3">
<div class="fw-bold mb-2">Branch</div>
<form method="get" action="/r/<?= (int)$repo['id'] ?>">
<select class="form-select" name="branch" onchange="this.form.submit()">
<?php foreach ($branches as $b): ?>
<option value="<?= e($b['name']) ?>" <?= $b['name']===$branch?'selected':'' ?>>
<?= e($b['name']) ?>
</option>
<?php endforeach; ?>
</select>
</form>
<div class="small text-muted mt-2">Switch branches to view commits/files.</div>
</div>
</div>
<div class="col-md-8">
<div class="card p-3">
<div class="fw-bold mb-2">Recent commits (<?= e($branch) ?>)</div>
<?php if (!$commits): ?>
<div class="text-muted">No commits yet.</div>
<?php else: ?>
<div class="list-group">
<?php foreach ($commits as $c): ?>
<div class="list-group-item">
<div class="d-flex justify-content-between">
<div class="fw-bold"><?= e($c['message']) ?></div>
<span class="small text-muted">#<?= (int)$c['id'] ?></span>
</div>
<div class="small text-muted"><?= e($c['author_name']) ?> • <?= e($c['created_at']) ?></div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php require __DIR__ . '/../layout/footer.php'; ?>