security-ownership-map
Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in git history (for example: orphaned sensitive code, security maintainers, CODEOWNERS reality checks for risk, sensitive hotspots, or ownership clusters). Do not trigger for general maintainer lists or non-security ownership questions.
How to use
Zainstaluj wymagane zależności: upewnij się, że masz Python 3 oraz bibliotekę networkx. Uruchom polecenie pip install networkx, aby dodać obsługę grafów i detekcji społeczności w kodzie.
Przygotuj repozytorium git, które chcesz analizować. Opcjonalnie określ okno czasowe za pomocą flag --since i --until, aby ograniczyć analizę do konkretnego okresu.
Skonfiguruj reguły wrażliwości — możesz użyć domyślnych ustawień lub dostarczyć własny plik CSV z definicjami wrażliwych plików i ścieżek.
Uruchom skrypt run_ownership_map.py, który zbuduje mapę właścicielstwa oraz graf współzmian plików (co-change graph). Domyślnie narzędzie ignoruje pliki "glue" takie jak lockfiles czy konfiguracja edytorów, aby wyniki odzwierciedlały rzeczywisty ruch kodu. Użyj flagi --graphml, jeśli chcesz eksportować wyniki w formacie GraphML.
Zapytaj o wyniki za pomocą skryptu query_ownership.py, który zwróci dane w formacie JSON. Możesz filtrować wyniki i uzyskać ograniczone zestawy danych dotyczące konkretnych plików lub osób.
Zaimportuj wygenerowane pliki CSV/JSON do bazy grafowej (np. Neo4j) lub narzędzia wizualizacyjnego (np. Gephi), aby zwizualizować topologię właścicielstwa i zidentyfikować punkty ryzyka w zespole.