Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f129c3f23 |
+5
-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).
|
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
|
> **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.1**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -14,6 +14,10 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## [2.3.1] — 2026-09-16
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [2.3.0] — 2026-09-16
|
## [2.3.0] — 2026-09-16
|
||||||
|
|
||||||
### Ajouté
|
### 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.
|
**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://opensource.org/licenses/MIT)
|
||||||
[](https://www.docker.com/)
|
[](https://www.docker.com/)
|
||||||
[](https://www.python.org/)
|
[](https://www.python.org/)
|
||||||
@@ -916,8 +916,8 @@ Ce projet est sous licence **MIT** — voir le fichier [LICENSE](LICENSE) pour l
|
|||||||
|
|
||||||
## 📝 Changelog
|
## 📝 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.1).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Projet : ObsiGate | Version : 2.3.0 | Dernière mise à jour : Juin 2026*
|
*Projet : ObsiGate | Version : 2.3.1 | 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.
|
**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://opensource.org/licenses/MIT)
|
||||||
[](https://www.docker.com/)
|
[](https://www.docker.com/)
|
||||||
[](https://www.python.org/)
|
[](https://www.python.org/)
|
||||||
@@ -1085,8 +1085,8 @@ This project is licensed under the **MIT License** - see the [LICENSE](LICENSE)
|
|||||||
|
|
||||||
## 📝 Changelog
|
## 📝 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.1).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Project: ObsiGate | Version: 2.3.0 | Last updated: May 2026*
|
*Project: ObsiGate | Version: 2.3.1 | Last updated: May 2026*
|
||||||
|
|||||||
Generated
+1
-1
@@ -2626,7 +2626,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "obsigate-desktop"
|
name = "obsigate-desktop"
|
||||||
version = "2.3.0"
|
version = "2.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "obsigate-desktop"
|
name = "obsigate-desktop"
|
||||||
version = "2.3.0"
|
version = "2.3.1"
|
||||||
description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian"
|
description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian"
|
||||||
authors = ["Bruno Charest"]
|
authors = ["Bruno Charest"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json",
|
"$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json",
|
||||||
"productName": "ObsiGate",
|
"productName": "ObsiGate",
|
||||||
"version": "2.3.0",
|
"version": "2.3.1",
|
||||||
"identifier": "com.obsigate.desktop",
|
"identifier": "com.obsigate.desktop",
|
||||||
"build": {
|
"build": {
|
||||||
"frontendDist": "../frontend",
|
"frontendDist": "../frontend",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# ObsiGate — Roadmap
|
# ObsiGate — Roadmap
|
||||||
|
|
||||||
> **Version :** 2.3.0 | **Dernière mise à jour :** 2026-09-16
|
> **Version :** 2.3.1 | **Dernière mise à jour :** 2026-09-16
|
||||||
> **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact
|
> **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact
|
||||||
> vers les fonctionnalités livrées.
|
> vers les fonctionnalités livrées.
|
||||||
> - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)**
|
> - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)**
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "obsigate",
|
"name": "obsigate",
|
||||||
"version": "2.3.0",
|
"version": "2.3.1",
|
||||||
"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.",
|
"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",
|
"main": "patch.js",
|
||||||
"directories": {
|
"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