`gitTally` is the name of another product in the git space, so the rename is a precaution; nothing about what the build system does changes. The name follows one rule: `Werkator` where it is prose, capitalized where it is a Kotlin type and its file, lowercase everywhere a machine reads it — the command, packages, paths, configuration keys and values, the Gitea check context. Environment variables keep their convention and are uppercase throughout. Every configuration file is still found under its pre-rename name (`ConfigFiles`): `.gittally.yml` at the repository root, in a build worktree and as committed on a branch, `.git/gittally/.gittally.yml` for the machine layer. The current name wins where both exist, and the old file is then ignored rather than merged — two files side by side are a half-done rename, not a layering. Without the fallback an installation that updated without renaming would not fail: a configuration that is not found leaves every setting at its default, so it would come up looking healthy while having forgotten its credentials and its builds. `docs/werkator-migrationsplan.md` lists what the fallback does not cover and has to be moved by hand — above all the state directory `.git/werkator/`, which holds the build history, the control token and the worktrees, and has no fallback of its own. `docs/migration-from-legacy.md` is deleted with this: it mapped the legacy script's environment variables, and every host it addressed has long since moved to the YAML configuration. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
52 lines
2.5 KiB
HTML
52 lines
2.5 KiB
HTML
<!doctype html>
|
|
<html xmlns:th="http://www.thymeleaf.org" lang="en">
|
|
<head th:fragment="head(title)">
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title th:text="${#strings.isEmpty(repoName)} ? ${title} + ' — Werkator' : ${title} + ' — ' + ${repoName} + ' — Werkator'">Werkator</title>
|
|
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
<link rel="stylesheet" href="/werkator.css">
|
|
<meta name="werkator-gitea-repo-url" th:content="${giteaRepoUrl}">
|
|
</head>
|
|
<body>
|
|
|
|
<h1 th:fragment="header(title)">
|
|
<a class="title-home" href="/" aria-label="Open latest builds"><img src="/favicon.svg" alt=""></a>
|
|
<span class="title-text" th:text="${title}">Latest Builds</span>
|
|
<span class="repo-name" th:unless="${#strings.isEmpty(repoName)}" th:text="${repoName}">owner/repo</span>
|
|
</h1>
|
|
|
|
<th:block th:fragment="nav(view)">
|
|
<div class="view-row">
|
|
<nav class="view-toggle">
|
|
<span th:if="${view == 'latest'}">Latest</span>
|
|
<a th:unless="${view == 'latest'}" href="/">Latest</a>
|
|
<span th:if="${view == 'branches'}">Branches</span>
|
|
<a th:unless="${view == 'branches'}" href="/branches">Branches</a>
|
|
<span th:if="${view == 'history'}">History</span>
|
|
<a th:unless="${view == 'history'}" href="/history">History</a>
|
|
<span th:if="${view == 'current'}">Current</span>
|
|
<span th:if="${view == 'system'}">System</span>
|
|
<a th:unless="${view == 'system'}" href="/system">System</a>
|
|
</nav>
|
|
<span class="view-row-actions">
|
|
<span id="live-indicator" class="status status-unknown" title="live-update state">static</span>
|
|
<button id="reload-button" class="reload-button" type="button" title="Reload view" aria-label="Reload view">⟳</button>
|
|
</span>
|
|
</div>
|
|
<!-- Filled by werkator.js from /api/watcher: while the watcher cannot reach origin, every
|
|
row below is as old as its last successful poll, and a calm list would imply otherwise. -->
|
|
<div id="watcher-banner" class="watcher-banner" role="status" hidden></div>
|
|
</th:block>
|
|
|
|
<footer th:fragment="footer" class="site-footer">
|
|
<strong><a href="/releases" title="Release notes"><em th:text="'Werkator v' + ${version}">Werkator</em></a></strong>
|
|
— © <a href="https://michael.hoennig.de" target="_blank" rel="noopener noreferrer">Michael Hönnig</a>, 2026
|
|
<th:block th:unless="${#strings.isEmpty(impressumUrl)}">
|
|
— <a th:href="${impressumUrl}" target="_blank" rel="noopener noreferrer">Impressum (Legal Disclosure)</a>
|
|
</th:block>
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|