chore: обновить правила коммитов и улучшить форматирование релизных заметок
Docker images / prepare-release (push) Successful in 5s
Docker images / backend-image (push) Successful in 1m33s
Docker images / frontend-image (push) Successful in 1m39s
Docker images / updater-image (push) Successful in 37s
Docker images / notify-webhook (push) Has been skipped
Docker images / publish-release (push) Successful in 6s
Docker images / prepare-release (push) Successful in 5s
Docker images / backend-image (push) Successful in 1m33s
Docker images / frontend-image (push) Successful in 1m39s
Docker images / updater-image (push) Successful in 37s
Docker images / notify-webhook (push) Has been skipped
Docker images / publish-release (push) Successful in 6s
- Уточнены правила формирования сообщений коммитов, включая использование русского языка и уточнение типов изменений (fix/chore/feat). - Добавлена функция для форматирования заголовков коммитов в компоненте модалки релизов, улучшая читаемость. - Обновлены ссылки на правила коммитов в документации для большей ясности.
This commit is contained in:
@@ -16,6 +16,13 @@ import { formatAppVersionLabel, getAppVersion } from "@/lib/app-version"
|
||||
import type { ReleaseManifest } from "@/lib/release-manifest"
|
||||
import { hasSeenReleaseModal, markReleaseModalSeen } from "@/lib/release-modal-storage"
|
||||
|
||||
function formatCommitSubject(subject: string): string {
|
||||
return subject.replace(
|
||||
/^(feat|fix|chore|docs|refactor|style|test|build|ci)(\([^)]+\))?!?:\s*/i,
|
||||
"",
|
||||
)
|
||||
}
|
||||
|
||||
export function ReleaseNotesModal() {
|
||||
const [open, setOpen] = React.useState(false)
|
||||
const [manifest, setManifest] = React.useState<ReleaseManifest | null>(null)
|
||||
@@ -56,37 +63,41 @@ export function ReleaseNotesModal() {
|
||||
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={handleOpenChange}>
|
||||
<DialogContent className="flex max-h-[min(85vh,720px)] flex-col gap-0 overflow-hidden p-0 sm:max-w-[560px]">
|
||||
<DialogHeader className="gap-1 border-b px-6 py-4">
|
||||
<DialogTitle>Что нового в {versionLabel}</DialogTitle>
|
||||
<DialogDescription>
|
||||
<DialogContent className="flex max-h-[min(85vh,720px)] w-full max-w-[calc(100%-2rem)] flex-col gap-0 overflow-hidden p-0 sm:max-w-lg">
|
||||
<DialogHeader className="gap-1.5 border-b px-6 py-5 pr-12 text-left">
|
||||
<DialogTitle className="text-base leading-snug">
|
||||
Что нового в {versionLabel}
|
||||
</DialogTitle>
|
||||
<DialogDescription className="text-sm leading-relaxed">
|
||||
Краткая сводка изменений текущего релиза MikrotikManager.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
<div className="flex-1 overflow-y-auto px-6 py-4">
|
||||
<div className="min-h-0 flex-1 overflow-y-auto px-6 py-4">
|
||||
{manifest?.commits.length ? (
|
||||
<ul className="flex flex-col gap-3">
|
||||
<ul className="flex flex-col gap-2">
|
||||
{manifest.commits.map((commit) => (
|
||||
<li
|
||||
key={commit.sha}
|
||||
className="flex flex-col gap-2 rounded-lg border bg-card px-3 py-2.5"
|
||||
className="rounded-lg border bg-card/80 p-3"
|
||||
>
|
||||
<div className="flex flex-wrap items-center gap-2">
|
||||
<div className="flex flex-wrap items-center gap-x-2 gap-y-1">
|
||||
<Badge variant="secondary" className="font-mono uppercase">
|
||||
{commit.type}
|
||||
</Badge>
|
||||
<span className="font-mono text-xs text-muted-foreground">{commit.shortSha}</span>
|
||||
<span className="text-xs text-muted-foreground">{commit.author}</span>
|
||||
</div>
|
||||
<p className="text-sm leading-relaxed">{commit.subject}</p>
|
||||
<p className="mt-2 text-sm leading-relaxed text-foreground">
|
||||
{formatCommitSubject(commit.subject)}
|
||||
</p>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
<DialogFooter className="border-t bg-muted/30 px-6 py-4 sm:justify-between">
|
||||
<DialogFooter className="mx-0 mb-0 shrink-0 gap-3 border-t bg-muted/30 px-6 py-4 sm:flex-row sm:items-center sm:justify-between">
|
||||
<Button
|
||||
variant="outline"
|
||||
render={<Link href="/releases" />}
|
||||
|
||||
Reference in New Issue
Block a user