Skip to content

DRAFT: Add enterprise + multi-org collection support#6

Draft
d3vzer0 wants to merge 68 commits into
mainfrom
feature/gh-enterprise2
Draft

DRAFT: Add enterprise + multi-org collection support#6
d3vzer0 wants to merge 68 commits into
mainfrom
feature/gh-enterprise2

Conversation

@d3vzer0
Copy link
Copy Markdown
Collaborator

@d3vzer0 d3vzer0 commented May 14, 2026

Add GitHub Enterprise ingestion with multi-organization support. Additionally, adds new nodes/edges for Github Workflows.

Changes:

  • Add enterprise resource collector for enterprise orgs, members, teams etc.
  • Add org_login/environment id for lookups to support multi-org collection via enterprise credentials
  • Adds a parser for Github workflows with matching against existing repo/org/environment variables and secrets.
  • Additionally fixes an issue when the GraphQL helper returns no pagination metadata while this is required by the Pydantic model
  • Simplifies doc-generation descriptions for node properties via docstrings instead of dataclass field metadata

d3vzer0 added 30 commits May 4, 2026 12:30
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 65 out of 66 changed files in this pull request and generated 9 comments.

Comments suppressed due to low confidence (2)

src/openhound_github/models/workflow_job.py:246

  • self.org_node_id is str | None, but this code unconditionally calls .upper() when building org-variable property matchers. If lookup returns None, this will raise at runtime. Guard on self.org_node_id before calling .upper() (and skip emitting the edge if it’s missing).
    src/openhound_github/models/workflow_step.py:237
  • self.org_node_id is str | None, but this code unconditionally calls .upper() when building org-variable property matchers. If lookup returns None, this will raise. Guard on self.org_node_id before calling .upper() (and skip emitting the org-variable edge when it’s missing).

Comment thread src/openhound_github/resources/enterprise.py
Comment thread src/openhound_github/models/workflow_job.py
Comment thread src/openhound_github/models/workflow_step.py
Comment thread src/openhound_github/models/__init__.py
Comment thread src/openhound_github/models/workflow.py
Comment thread src/openhound_github/resources/enterprise.py Outdated
Comment thread src/openhound_github/auth.py Outdated
Comment on lines +199 to +203
if installation_id is None:
org_login = org_name or self.org_name
if org_login:
installation_id = self.installation_id_for_org(org_login)
else:
Comment thread src/openhound_github/helpers.py
Comment thread src/openhound_github/main.py
@d3vzer0 d3vzer0 changed the title DRAFT: Add enterprise support Add enterprise + multi-org collection support May 15, 2026
@d3vzer0 d3vzer0 changed the title Add enterprise + multi-org collection support DRAFT: Add enterprise + multi-org collection support May 18, 2026
@d3vzer0 d3vzer0 marked this pull request as draft May 18, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants