feat: add many things

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2026-03-08 23:00:03 +01:00
parent 45353089c2
commit 5a5f9a3003
104 changed files with 23417 additions and 2027 deletions

View File

@@ -1,65 +1,26 @@
{% extends "base.html.jinja" %}
{% block content %}
<section class="max-w-4xl mx-auto px-4 pt-12">
<div class="flex items-center justify-between mb-8">
<div>
<a href="/orgs/{{ org_name }}/projects" class="text-sm text-gray-500 hover:text-gray-700">&larr; {{ org_name }}</a>
<h1 class="text-2xl font-bold mt-1">{{ project_name }}</h1>
<section class="px-4 pt-12">
<div class="max-w-5xl mx-auto flex items-center justify-between mb-8">
<h1 class="text-2xl font-bold">Continuous deployment</h1>
<div class="flex items-center gap-4">
<a href="/orgs/{{ org_name }}/projects/{{ project_name }}/pipelines" class="text-sm text-gray-500 hover:text-gray-900 flex items-center gap-1">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h8m-8 6h16"/></svg>
Pipelines
</a>
<a href="/orgs/{{ org_name }}/projects/{{ project_name }}/triggers" class="text-sm text-gray-500 hover:text-gray-900 flex items-center gap-1">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/></svg>
Triggers
</a>
<a href="/orgs/{{ org_name }}/projects/{{ project_name }}/policies" class="text-sm text-gray-500 hover:text-gray-900 flex items-center gap-1">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg>
Policies
</a>
</div>
</div>
<h2 class="font-bold text-lg mb-4">Recent releases</h2>
{% if artifacts %}
<div class="space-y-4">
{% for artifact in artifacts %}
<div class="p-4 border border-gray-200 rounded-lg">
<div class="flex items-center justify-between">
<div class="min-w-0 flex-1">
<div class="flex items-center gap-2">
<a href="/orgs/{{ org_name }}/projects/{{ project_name }}/releases/{{ artifact.slug }}" class="font-medium text-gray-900 hover:text-blue-600">{{ artifact.title }}</a>
{% if artifact.version %}
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-green-100 text-green-800">{{ artifact.version }}</span>
{% endif %}
</div>
{% if artifact.description %}
<p class="text-sm text-gray-600 mt-1">{{ artifact.description }}</p>
{% endif %}
{% if artifact.branch or artifact.commit_sha %}
<div class="flex items-center gap-2 mt-2 text-xs text-gray-500">
{% if artifact.branch %}
<span class="inline-flex items-center px-1.5 py-0.5 rounded bg-blue-50 text-blue-700 font-mono">{{ artifact.branch }}</span>
{% endif %}
{% if artifact.commit_sha %}
<span class="font-mono">{{ artifact.commit_sha[:8] }}</span>
{% endif %}
</div>
{% endif %}
{% if artifact.source_user %}
<p class="text-xs text-gray-400 mt-1">by {{ artifact.source_user }}{% if artifact.source_type %} via {{ artifact.source_type }}{% endif %}</p>
{% endif %}
{% if artifact.destinations %}
<div class="flex gap-1.5 mt-2">
{% for dest in artifact.destinations %}
<span class="inline-flex items-center px-1.5 py-0.5 rounded text-xs bg-gray-100 text-gray-600">{{ dest.name }} ({{ dest.environment }})</span>
{% endfor %}
</div>
{% endif %}
</div>
<div class="text-right text-sm text-gray-500 shrink-0 ml-4">
<p class="font-mono">{{ artifact.slug }}</p>
<p>{{ artifact.created_at }}</p>
</div>
</div>
</div>
{% endfor %}
</div>
{% else %}
<div class="p-6 border border-gray-200 rounded-lg text-center">
<p class="text-gray-600">No releases yet.</p>
<p class="text-sm text-gray-400 mt-2">Create a release with <code class="bg-gray-100 px-1 rounded">forest release create</code></p>
</div>
{% endif %}
<release-timeline org="{{ org_name }}" project="{{ project_name }}"></release-timeline>
</section>
<script src="/static/js/components/forage-components.js"></script>
{% endblock %}