krz/hutch-stats

Server-side utility for calculating contributions for sourcehut users.

clone: git clone https://gitbay.org/krz/hutch-stats.git

9edd38e9619d5e4a2d2e046b6d8e0e0861ee21e8

verified · cmc

author: Christian Cleberg <hello@cleberg.net> · 2026-04-12T01:32:09Z

feat: filter discovered repositories to PUBLIC visibility only
 src/srht_contrib/services/git.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/srht_contrib/services/git.py b/src/srht_contrib/services/git.py
index 9bd9848..7d5360b 100644
--- a/src/srht_contrib/services/git.py
+++ b/src/srht_contrib/services/git.py
@@ -55,6 +55,7 @@ query UserRepositories($username: String!, $cursor: Cursor) {
     repositories(cursor: $cursor) {
       results {
         name
+        visibility
         owner {
           canonicalName
         }
@@ -173,6 +174,8 @@ class GitIngestionService:
             for repository in results:
                 if not isinstance(repository, dict):
                     continue
+                if repository.get("visibility") != "PUBLIC":
+                    continue
                 name = repository.get("name")
                 repository_owner = ((repository.get("owner") or {}).get("canonicalName") or actor).strip()
                 if not name or not repository_owner:
@@ -259,6 +262,8 @@ class GitIngestionService:
             for repository in results:
                 if not isinstance(repository, dict):
                     continue
+                if repository.get("visibility") != "PUBLIC":
+                    continue
                 name = repository.get("name")
                 repository_owner = ((repository.get("owner") or {}).get("canonicalName") or actor).strip()
                 if not name or not repository_owner: