From 1721c65ccd9faad803bf0e8d3afbe86040e477bf Mon Sep 17 00:00:00 2001 From: SpookyDervish Date: Thu, 5 Feb 2026 07:58:19 +1100 Subject: [PATCH] get commit info, needs to be sped up a ton tho --- screens/repo_view_screen.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/screens/repo_view_screen.py b/screens/repo_view_screen.py index bb14c21..6c047d0 100644 --- a/screens/repo_view_screen.py +++ b/screens/repo_view_screen.py @@ -5,6 +5,9 @@ from textual.containers import VerticalGroup, Vertical, HorizontalGroup, Right from widgets import Navbar +from datetime import datetime +from human_readable import time_delta + import requests @@ -120,8 +123,22 @@ class RepoViewScreen(Screen): rows = [] + commit_data = {} for file in files_response.json(): - rows.append((f"[cyan]{self.get_icon_from_name_and_type(file["name"], file["type"] != "file")}[/] {file["name"]}", "[d]todo lol", "Updated idk ago")) + + commit_sha = file["last_commit_sha"] + commit = commit_data[commit_sha] if commit_sha in commit_data else requests.get( + self.app.GITEA_HOST + f"api/v1/repos/{self.owner_name}/{self.repo_name}/git/commits/{file["last_commit_sha"]}" + ).json() + commit_data[commit_sha] = commit + + commit_created_at = datetime.fromisoformat(commit["created"]).replace(tzinfo=None) + + rows.append(( + f"[cyan]{self.get_icon_from_name_and_type(file["name"], file["type"] != "file")}[/] {file["name"]}", + f"[d]{commit["commit"]["message"]}", + f"Updated {time_delta(datetime.now() - commit_created_at)} ago" + )) files.add_rows(rows) files.display = True