Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
ee75652
Added enterprise resources
d3vzer0 May 4, 2026
d3d4c02
Fixed conditions for collecting external identities and runners
d3vzer0 May 4, 2026
e7e2d7b
Generic try/except is already handled by openhound for resources and …
d3vzer0 May 4, 2026
621b4f2
Added enterprise nodes and edges
d3vzer0 May 4, 2026
82577c9
Split org/enterprise resource collection
d3vzer0 May 4, 2026
ff95e73
Restructured enterprise + es org collection to use dlt resources and …
d3vzer0 May 4, 2026
0f4abc5
Added BaseUser model and removed _flatten_members method in favor of …
d3vzer0 May 4, 2026
d100305
enterprise_teams should be a transformer, not a resource
d3vzer0 May 4, 2026
76f2b68
Improved and added enterprise_role_users + enterprise_role_teams
d3vzer0 May 4, 2026
dbafa76
Improved and added enterprise_external_identities + enterprise_saml_p…
d3vzer0 May 4, 2026
eb58821
Iterate org-specific collection for each org_name in ctx
d3vzer0 May 4, 2026
d588d94
Refer to org_name instead of ctx.org_name
d3vzer0 May 4, 2026
6333a6c
Add org-specific lookup logic
d3vzer0 May 4, 2026
e65ef57
Updated org collection to use new per-org clients
d3vzer0 May 4, 2026
62001b3
Updated auth to get per-install token
d3vzer0 May 4, 2026
43d61a3
Else raise error if enterprise_name org org_name are not specified
d3vzer0 May 4, 2026
02acef4
Remove unused imports
d3vzer0 May 4, 2026
fc06796
Split enterprise models
d3vzer0 May 4, 2026
5ae2fc4
Split enterprise models
d3vzer0 May 4, 2026
2bb0c7e
Replaced dataclass field descriptions with attribute descriptions
d3vzer0 May 4, 2026
712ae10
Fixed enterprise lookups/edge generation
d3vzer0 May 4, 2026
263507f
Fixed EnterpriseRoleUser slug/id
d3vzer0 May 4, 2026
34b1670
Split role and EnterpriseAdmin
d3vzer0 May 4, 2026
5aecdde
Updated justfile for running collect/preproc/convert
d3vzer0 May 6, 2026
7462e25
Updated lock/deps
d3vzer0 May 6, 2026
3ea773f
Updated schema with missing nodes
d3vzer0 May 6, 2026
c625e0c
Add GH_WorkflowJob and GH_WorkflowStep nodes and related edges
d3vzer0 May 11, 2026
5e51741
Add GH_WorkflowJob and GH_WorkflowStep models
d3vzer0 May 11, 2026
37716c2
Dont allow extra data
d3vzer0 May 12, 2026
53aab47
Collect workflow content + generate jobs/steps
d3vzer0 May 12, 2026
675415a
Modified helper to deal with GraphQL errors
d3vzer0 May 14, 2026
358d8ab
WIP: Workflows
d3vzer0 May 14, 2026
ec7a734
Fixed workflow content parsing
d3vzer0 May 14, 2026
653e5d1
Change allowed values for repository_none
d3vzer0 May 14, 2026
1b58452
Dump workflow step content as raw json
d3vzer0 May 14, 2026
6650429
Flatten workflow job permissions
d3vzer0 May 14, 2026
25aa773
Match with uppercase environmentid
d3vzer0 May 14, 2026
e53d8d9
Match with uppercase environmentid
d3vzer0 May 14, 2026
feb1e46
Add conditions when to create secret edges
d3vzer0 May 15, 2026
39db913
allow_missing_page_info=True
d3vzer0 May 15, 2026
aead4a0
Add conditions for variable matching
d3vzer0 May 15, 2026
03f7899
Handle no orgs when GraphQL returns None
d3vzer0 May 15, 2026
6bd1b32
Fixed matching against org logins
d3vzer0 May 15, 2026
59d790f
Broaden exception handling for workflow decoding/parsing
d3vzer0 May 15, 2026
c5805fa
Remove duplicates
d3vzer0 May 15, 2026
edb5dc7
Secret scanning alert should have an edge with the repo as GH_Contains
d3vzer0 May 18, 2026
2312f22
Add environment and workflow lookup to check for missing environments…
d3vzer0 May 18, 2026
5f30ab3
WIP: Auth rewrite
d3vzer0 May 19, 2026
962b4e9
WIP: Auth rewrite
d3vzer0 May 19, 2026
b19864e
WIP: Auth rewrite
d3vzer0 May 19, 2026
3143f72
Remove dummy resource generator
d3vzer0 May 19, 2026
1c5de34
Additional logging for auth module
d3vzer0 May 19, 2026
27f7635
WIP: Auth rewrite
d3vzer0 May 19, 2026
d6172e0
Add workflows to lookup
d3vzer0 May 19, 2026
ba1cc18
Add workflows to lookup
d3vzer0 May 19, 2026
114bd28
Decode workflow content
d3vzer0 May 19, 2026
03840b4
Check if workflows/environments exist via lookup
d3vzer0 May 19, 2026
d9d6116
Add joserfc as dependency
d3vzer0 May 19, 2026
684a095
Fixed source context bug
d3vzer0 May 19, 2026
488377c
Add a token lock
d3vzer0 May 19, 2026
c825565
Remove headers from init
d3vzer0 May 19, 2026
b7c58a9
Return RunnerGroup as Pydantic model
d3vzer0 May 19, 2026
9c6d91d
Transform fix for the role_can_create_branch table
d3vzer0 May 19, 2026
014d5bf
Handle GraphQL rate limits, these can also return a 200 status code
d3vzer0 May 19, 2026
d33286a
Add runner edges to public/private/internal repos based on lookup
d3vzer0 May 19, 2026
5e61cde
Cache shared resources
d3vzer0 May 19, 2026
61fb090
Remove runner_group_repo_cache
d3vzer0 May 19, 2026
0b1a44b
Split api handlers from the source.py file
d3vzer0 May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions extension/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,38 @@
"namespace": "GH"
},
"node_kinds": [
{
"name": "GH_Enterprise",
"display_name": "GitHub Enterprise",
"description": "A GitHub Enterprise account that contains organizations, enterprise teams, roles, and managed users",
"is_display_kind": true,
"icon": "globe",
"color": "#6EA8FE"
},
{
"name": "GH_EnterpriseTeam",
"display_name": "GitHub Enterprise Team",
"description": "A team managed at the GitHub Enterprise level and assignable across organizations",
"is_display_kind": true,
"icon": "users-between-lines",
"color": "#9B8CFF"
},
{
"name": "GH_EnterpriseRole",
"display_name": "GitHub Enterprise Role",
"description": "The role a user or team has at the GitHub Enterprise level",
"is_display_kind": true,
"icon": "user-tie",
"color": "#B8D7FF"
},
{
"name": "GH_EnterpriseManagedUser",
"display_name": "GitHub Enterprise Managed User",
"description": "A GitHub Enterprise managed user account linked to an enterprise identity provider",
"is_display_kind": true,
"icon": "user-lock",
"color": "#7DD3FC"
},
{
"name": "GH_Organization",
"display_name": "GitHub Organization",
Expand Down Expand Up @@ -150,6 +182,30 @@
"icon": "lock-open",
"color": "#E89B5C"
},
{
"name": "GH_RunnerGroup",
"display_name": "GitHub Runner Group",
"description": "A GitHub self-hosted runner group that controls runner access and visibility",
"is_display_kind": true,
"icon": "server",
"color": "#94A3B8"
},
{
"name": "GH_OrgRunner",
"display_name": "GitHub Org Runner",
"description": "An organization-scoped GitHub self-hosted runner available to selected repositories or workflows",
"is_display_kind": true,
"icon": "microchip",
"color": "#22C55E"
},
{
"name": "GH_RepoRunner",
"display_name": "GitHub Repo Runner",
"description": "A repository-scoped GitHub self-hosted runner available to jobs in a single repository",
"is_display_kind": true,
"icon": "microchip",
"color": "#38BDF8"
},
{
"name": "GH_EnvironmentVariable",
"display_name": "GitHub Environment Variable",
Expand Down
14 changes: 7 additions & 7 deletions justfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
set dotenv-load := true

collect +args:
collect +args='github /tmp/output/raw/':
@echo "Collecting data"
uv run src/main.py collect github {{args}}
uv run src/main.py collect {{args}}

preprocess +args:
@echo "Collecting data"
uv run src/main.py preprocess github {{args}}
preprocess +args='github /tmp/output/raw/github':
@echo "Preprocessing data"
uv run openhound preprocess {{args}}

convert +args:
convert +args='github /tmp/output/raw/github /tmp/output/graph/github':
@echo "Converting data"
uv run src/main.py convert github {{args}}
uv run openhound convert {{args}}

sync:
@echo "Syncing dependencies"
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description = "Github collector for OpenHound"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"cryptography>=46.0.6",
"joserfc>=1.6.5",
"requests>=2.33.0",
]
authors = [
Expand All @@ -28,7 +28,7 @@ local_scheme = "no-local-version"

[dependency-groups]
dev = [
"openhound",
"openhound==0.1.4",
"pre-commit>=4.5.1",
"pytest>=9.0.1",
"ruff>=0.15.5",
Expand Down
Loading