Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
168261964e | ||
|
|
2f129c3f23 |
+9
-1
@@ -6,7 +6,7 @@ Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
|
||||
et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
> **En cours de développement** : les changements à venir sont listés dans la section
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.3.0**.
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.3.2**.
|
||||
|
||||
---
|
||||
|
||||
@@ -14,6 +14,14 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
---
|
||||
|
||||
## [2.3.2] — 2026-09-16
|
||||
|
||||
---
|
||||
|
||||
## [2.3.1] — 2026-09-16
|
||||
|
||||
---
|
||||
|
||||
## [2.3.0] — 2026-09-16
|
||||
|
||||
### Ajouté
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@
|
||||
|
||||
**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.
|
||||
|
||||
[]()
|
||||
[]()
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.docker.com/)
|
||||
[](https://www.python.org/)
|
||||
@@ -916,8 +916,8 @@ Ce projet est sous licence **MIT** — voir le fichier [LICENSE](LICENSE) pour l
|
||||
|
||||
## 📝 Changelog
|
||||
|
||||
Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.3.0).
|
||||
Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.3.2).
|
||||
|
||||
---
|
||||
|
||||
*Projet : ObsiGate | Version : 2.3.0 | Dernière mise à jour : Juin 2026*
|
||||
*Projet : ObsiGate | Version : 2.3.2 | Dernière mise à jour : Juin 2026*
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
**Ultra-light web gateway for your Obsidian vaults** — Access, browse, and search all your Obsidian notes from any device via a modern, responsive web interface.
|
||||
|
||||
[]()
|
||||
[]()
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.docker.com/)
|
||||
[](https://www.python.org/)
|
||||
@@ -1085,8 +1085,8 @@ This project is licensed under the **MIT License** - see the [LICENSE](LICENSE)
|
||||
|
||||
## 📝 Changelog
|
||||
|
||||
See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.3.0).
|
||||
See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.3.2).
|
||||
|
||||
---
|
||||
|
||||
*Project: ObsiGate | Version: 2.3.0 | Last updated: May 2026*
|
||||
*Project: ObsiGate | Version: 2.3.2 | Last updated: May 2026*
|
||||
|
||||
Generated
+1
-1
@@ -2626,7 +2626,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "obsigate-desktop"
|
||||
version = "2.3.0"
|
||||
version = "2.3.2"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"env_logger",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "obsigate-desktop"
|
||||
version = "2.3.0"
|
||||
version = "2.3.2"
|
||||
description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian"
|
||||
authors = ["Bruno Charest"]
|
||||
edition = "2021"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json",
|
||||
"productName": "ObsiGate",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.2",
|
||||
"identifier": "com.obsigate.desktop",
|
||||
"build": {
|
||||
"frontendDist": "../frontend",
|
||||
|
||||
@@ -134,6 +134,9 @@ npx playwright test
|
||||
diverge de `VERSION` (numéro codé en dur, CHANGELOG sans section, README non resynchronisé).
|
||||
- Bump manuel si besoin : `scripts/bump_version.py --dry-run|--minor|--set X.Y.Z|--push`.
|
||||
Commit sans incrément (cas exceptionnel) : `SKIP_VERSION_BUMP=1 git commit …`.
|
||||
Le rattachement des fichiers au commit se fait par un `--amend` immédiat (commit non encore
|
||||
poussé) : le SHA affiché par `git commit` est donc remplacé par celui de l'amend — `git log`,
|
||||
`HEAD` et le tag `vX.Y.Z` restent, eux, alignés sur la version livrée.
|
||||
- **Ne jamais** réécrire une version déjà publiée dans le CHANGELOG.
|
||||
|
||||
---
|
||||
|
||||
@@ -210,6 +210,11 @@ git push origin main # → branche + tag publiés
|
||||
|
||||
Contournement ponctuel (commit sans incrément) : `SKIP_VERSION_BUMP=1 git commit …`.
|
||||
|
||||
> **SHA affiché vs SHA réel** : l'incrément et les fichiers dérivés sont rattachés au
|
||||
> commit par un `--amend` immédiat (le commit n'est pas encore poussé), donc le SHA
|
||||
> affiché par `git commit` est remplacé par celui de l'amend — `git log`, `HEAD` et le
|
||||
> tag `vX.Y.Z` sont, eux, alignés sur ce dernier. `git push` envoie bien la version finale.
|
||||
|
||||
### Bump manuel / outillage
|
||||
|
||||
```bash
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# ObsiGate — Roadmap
|
||||
|
||||
> **Version :** 2.3.0 | **Dernière mise à jour :** 2026-09-16
|
||||
> **Version :** 2.3.2 | **Dernière mise à jour :** 2026-09-16
|
||||
> **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact
|
||||
> vers les fonctionnalités livrées.
|
||||
> - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)**
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "obsigate",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.2",
|
||||
"description": "**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.",
|
||||
"main": "patch.js",
|
||||
"directories": {
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
"""Vérifie l'état du dernier run CI Gitea d'ObsiGate (lecture seule)."""
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
import urllib.request
|
||||
|
||||
REPO = "Projets/ObsiGate"
|
||||
BASE = f"https://git.dracodev.net/api/v1/repos/{REPO}"
|
||||
UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36"
|
||||
|
||||
cred = subprocess.run(
|
||||
["git", "credential", "fill"],
|
||||
input="protocol=https\nhost=git.dracodev.net\n\n",
|
||||
capture_output=True,
|
||||
text=True,
|
||||
cwd=r"C:\dev\git\python\ObsiGate",
|
||||
)
|
||||
token = ""
|
||||
for line in cred.stdout.splitlines():
|
||||
if line.startswith("password"):
|
||||
token = line.split("=", 1)[1]
|
||||
if not token:
|
||||
raise SystemExit("pas de jeton git disponible")
|
||||
|
||||
sha = subprocess.run(
|
||||
["git", "rev-parse", "HEAD"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
cwd=r"C:\dev\git\python\ObsiGate",
|
||||
).stdout.strip()
|
||||
|
||||
|
||||
def get(path: str):
|
||||
req = urllib.request.Request(
|
||||
f"{BASE}{path}",
|
||||
headers={
|
||||
"Authorization": f"token {token}",
|
||||
"Accept": "application/json",
|
||||
"User-Agent": UA,
|
||||
},
|
||||
)
|
||||
with urllib.request.urlopen(req, timeout=25) as resp:
|
||||
return json.load(resp)
|
||||
|
||||
|
||||
runs = get("/actions/runs?limit=10").get("workflow_runs", [])
|
||||
print(f"HEAD local : {sha[:8]} — {len(runs)} run(s) récent(s)")
|
||||
target = None
|
||||
for run in runs:
|
||||
head = str(run.get("head_sha") or "")
|
||||
title = run.get("display_title") or run.get("name") or "?"
|
||||
flag = " <== HEAD" if head.startswith(sha[:8]) else ""
|
||||
print(f" #{run.get('id')} {title[:60]} | {run.get('status')}/{run.get('conclusion')} | {head[:8]}{flag}")
|
||||
if head.startswith(sha[:8]) and target is None:
|
||||
target = run
|
||||
|
||||
if target is None:
|
||||
print("Aucun run pour le HEAD courant (encore en file d'attente ?)")
|
||||
sys.exit(0)
|
||||
|
||||
jobs_resp = get(f"/actions/runs/{target['id']}/jobs")
|
||||
print(f"run #{target['id']} : status={target.get('status')} conclusion={target.get('conclusion')} "
|
||||
f"started={target.get('run_started_at')} updated={target.get('updated_at')}")
|
||||
print(f"clés jobs: {list(jobs_resp)[:6]}")
|
||||
for job in jobs_resp.get("workflow_jobs", jobs_resp.get("jobs", [])) or []:
|
||||
print(f" - {job.get('name')}: {job.get('status')}/{job.get('conclusion')}")
|
||||
if job.get("status") != "completed":
|
||||
for step in job.get("steps", []) or []:
|
||||
print(f" · {step.get('name')}: {step.get('status')}/{step.get('conclusion')}")
|
||||
|
||||
try:
|
||||
runners = get("/actions/runners")
|
||||
entries = runners.get("runners", runners) if isinstance(runners, dict) else runners
|
||||
print(f"runners: {len(entries) if isinstance(entries, list) else entries}")
|
||||
if isinstance(entries, list):
|
||||
for runner in entries:
|
||||
print(f" - {runner.get('name')} status={runner.get('status')} labels={runner.get('labels')}")
|
||||
except Exception as exc: # noqa: BLE001
|
||||
print(f"runners indisponibles: {exc}")
|
||||
Reference in New Issue
Block a user