openhound-github 0.19.0__tar.gz → 0.20.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/CODE_OF_CONDUCT.md +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/CONTRIBUTING.md +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/GOVERNANCE.md +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/SECURITY.md +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/PKG-INFO +2 -2
- {openhound_github-0.19.0 → openhound_github-0.20.1}/README.md +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanAccess.md +11 -6
- openhound_github-0.20.1/descriptions/edges/GH_CanReadSecret.md +25 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanUseRunner.md +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_Contains.md +25 -22
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasSecret.md +4 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasVariable.md +4 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_IsEligibleFor.md +4 -1
- openhound_github-0.20.1/descriptions/edges/GH_RequestsAccessTo.md +20 -0
- openhound_github-0.20.1/descriptions/edges/GH_ScopedTo.md +29 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_AppInstallation.md +5 -3
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Environment.md +1 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_OrgRole.md +8 -6
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_OrgRunnerGroup.md +3 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_OrgSecret.md +8 -6
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_OrgVariable.md +6 -4
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Organization.md +2 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_PersonalAccessToken.md +5 -3
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +5 -3
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Repository.md +16 -3
- openhound_github-0.20.1/descriptions/nodes/GH_Scope.md +52 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-apps-all-repos.json +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-pats-all-repos.json +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/secrets-reachable-by-user.json +1 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/schema.json +81 -19
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/kinds/edges.py +2 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/kinds/nodes.py +1 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/lookup.py +55 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/__init__.py +2 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/app_installation.py +19 -10
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/org_secret.py +47 -106
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/org_variable.py +47 -19
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/personal_access_token.py +20 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/personal_access_token_request.py +20 -1
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/repository.py +52 -2
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/runner.py +33 -2
- openhound_github-0.20.1/src/openhound_github/models/scope.py +248 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/resources/organization.py +24 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_lookup.py +44 -0
- openhound_github-0.20.1/tests/test_org_secret_models.py +181 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_repository_rulesets.py +4 -0
- openhound_github-0.20.1/tests/test_repository_scopes.py +310 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_runner_models.py +50 -13
- openhound_github-0.20.1/tests/test_variable_models.py +76 -0
- openhound_github-0.19.0/.github/GitHub-COC-Header.png +0 -0
- openhound_github-0.19.0/.github/GitHub-CONTRIB-Header.png +0 -0
- openhound_github-0.19.0/.github/GitHub-GOV-Header.png +0 -0
- openhound_github-0.19.0/.github/GitHub-Header.png +0 -0
- openhound_github-0.19.0/.github/GitHub-LIC-Header.png +0 -0
- openhound_github-0.19.0/.github/GitHub-SEC-Header.png +0 -0
- openhound_github-0.19.0/descriptions/edges/GH_CanReadSecret.md +0 -20
- openhound_github-0.19.0/tests/test_org_secret_models.py +0 -112
- openhound_github-0.19.0/tests/test_variable_models.py +0 -19
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/SO-Dark.svg +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/SO-FOSS-Dark.svg +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/SO-FOSS-Light.svg +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/SO-Light.svg +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/workflows/publish.yml +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/workflows/release-on-merge.yml +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.github/workflows/validate-branch.yml +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.gitignore +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.gitmodules +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/.pre-commit-config.yaml +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/LICENSE.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AddAssignee.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AddCollaborator.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AddLabel.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AddMember.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AddedDeployKey.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AdminTo.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AssignedTo.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_AuthorizedForOrganization.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CallsWorkflow.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanAccessSecret.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreateBranch.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreateInternalRepositories.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreatePrivateRepositories.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreatePublicRepositories.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreateRepositories.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanEditProtection.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanInterceptJob.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanPwnRequest.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanRequestOIDCTokenFor.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CanWriteBranch.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CloseDiscussion.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CloseIssue.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ClosePullRequest.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CreateEnterpriseOrganizations.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CreateRepository.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CreateTag.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_CreateTeam.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DeleteIssue.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DeleteTag.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DependsOn.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_DeploysTo.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditEnterpriseCustomPropertiesForOrganizations.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_EditRepoProtections.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasBaseRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasMember.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasRunner.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_InheritedFrom.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_InstalledAs.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_InviteMember.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseAdmins.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseIdentityProvider.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseMembers.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseOrganizationAdmins.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseOrganizations.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseReferrals.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageEnterpriseTeams.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageTopics.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ManageWebhooks.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_MapsToUser.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_MemberOf.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_Owns.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ProtectedBy.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadEnterpriseAuditLog.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadEnterpriseDomainVerification.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadEnterpriseMembers.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadEnterpriseOrgProjects.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadEnterpriseOrganizationAdmin.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReadRepoContents.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_RemoveAssignee.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_RemoveLabel.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReopenIssue.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_RequestPrReview.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_RunOrgMigration.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_RunsOn.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_SetEnterpriseInteractionLimits.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_SetIssueType.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_SetMilestone.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_SetSocialPreview.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_SyncedTo.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_TransferRepository.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_UsesSecret.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_UsesVariable.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ValidToken.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ViewEnterpriseActionsUsageMetrics.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ViewEnterpriseBilling.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ViewEnterpriseSecretScanningAlerts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteEnterpriseActionsPolicies.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteEnterpriseBilling.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteEnterprisePersonalAccessTokenPolicies.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteEnterpriseSso.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteEnterpriseTeamMembers.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteRepoContents.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_App.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Branch.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_ClassicPersonalAccessToken.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_DeployKey.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Enterprise.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnterpriseManagedUser.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnterpriseRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnterpriseTeam.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_OrgRunner.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_RepoRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_RepoRunner.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_RepoSecret.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_RepoVariable.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Runner.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_RunnerGroup.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Secret.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Team.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_TeamRole.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_User.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Variable.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_Workflow.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_WorkflowJob.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_WorkflowStep.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/docs/og-docs.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-enterprise-owners-role.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-organizations.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/README.md +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/active-leaked-secrets.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/all-actions-allowed.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/app-installations-all-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-self-approval.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/bypass-pr-requirements.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/dangerous-branch-perms.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/default-repository-permissions.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/environments-admin-bypass.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/expired-pats.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/external-identities-without-scim.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/github-to-azure-identity.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/global-repo-perms.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/hybrid-identities.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/members-can-create-pages.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/members-can-create-public-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/members-can-delete-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/org-owners.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/orgs-without-2fa.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/pats-all-repo-access.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/pending-pat-requests.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/public-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/push-to-protected-branches.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/repository-workflows.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/saml-configuration.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/secret-scanning-alerts.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/self-hosted-runners-can-intercept-broad-token-jobs.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/shared-self-hosted-runners-can-intercept-secret-bearing-jobs.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/team-membership-admin.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/team-structure.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/unprotected-branches.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/unprotected-default-branches.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/workflow-jobs-interceptable-by-self-hosted-runners.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/workflow-jobs-with-broad-token-write-permissions.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/workflow-jobs-with-id-token-write-on-self-hosted-runners.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/workflow-jobs-with-id-token-write.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/extension/saved_searches/workflow-jobs-with-observed-oidc-auth-steps.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/justfile +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/pyproject.toml +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/scripts/generate_gh_description_docs.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/main.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/__init__.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/auth.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/extension.yaml +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/github_rest_client.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/github_retry.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/graph.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/graphql.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/helpers.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/main.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/actions_permission.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/branch.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/branch_protection_rule.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/branch_push_allowance.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/classic_personal_access_token.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/deploy_key.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_admin.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_helpers.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_managed_user.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_member.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_organization.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_role.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_role_team.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_role_user.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_team.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_team_member.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_team_organization.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_team_role.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/enterprise_user.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/env_secret.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/env_variable.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/environment.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/environment_branch_policy.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/external_identity.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/org.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/org_role.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/org_role_member.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/org_role_team.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/permissions.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/personal_access_token_access.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/projected_enterprise_team.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/repo_role_assignment.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/repository_role.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/repository_secret.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/repository_variable.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/saml_helpers.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/saml_issuer.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/saml_provider.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/saml_service_provider.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/scim_user.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/secret_scanning_alert.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/team.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/team_member.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/team_role.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/user.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/workflow.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/workflow_job.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/workflow_reference.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/models/workflow_step.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/resources/__init__.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/resources/enterprise.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/runner_ids.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/source.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/src/openhound_github/transforms.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_app_auth.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_app_installation_repo_access.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_branch_collection_gate.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_branch_protection_traversability.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_classic_personal_access_tokens.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_credential_permission_models.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/actions-permissions.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/actionsecrets.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/app.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/appinstalls.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/branch-policies.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/branch-prot-rules.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/branches.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/custom-roles.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/environments.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/org-pat-request.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/org-pat.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/org-role-teams.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/org-role-users.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/org-roles.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/org.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/pat-repositories.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/repo-collaborators.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/repo-teams.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/repositories.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/scimusers.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/secrets.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/secretscanningalert.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/selected-org-secrets.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/variables.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_data/api/workflows.json +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_deploy_key_models.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_deploy_key_resources.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_description_docs.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_enterprise_capabilities.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_enterprise_organization.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_enterprise_resources.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_environment_model.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_environment_resources.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_environment_reviewer_lookup.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_error_resilience.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_github_app_retry.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_github_rest_client.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_github_retry.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_helpers.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_org_role_model.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_org_scim_resources.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_preproc.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_runner_ids.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_runner_resources.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_saml_helpers.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_saml_models.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_scim_models.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_source_endpoints.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_source_org_canonicalization.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_team_external_groups.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_workflow_interception_path.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_workflow_model.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/tests/test_workflow_resources.py +0 -0
- {openhound_github-0.19.0 → openhound_github-0.20.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://community.specterops.io/" target="_blank">
|
|
3
|
-
<img alt="Community of SpecterOps - Creators of BloodHound" src=".github/GitHub-COC-Header.png" width="100%" style="max-width: 100%;">
|
|
3
|
+
<img alt="Community of SpecterOps - Creators of BloodHound" src="https://raw.githubusercontent.com/SpecterOps/OpenHound/refs/heads/main/.github/GitHub-COC-Header.png" width="100%" style="max-width: 100%;">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://community.specterops.io/" target="_blank">
|
|
3
|
-
<img alt="Community of SpecterOps - Creators of BloodHound" src=".github/GitHub-CONTRIB-Header.png" width="100%" style="max-width: 100%;">
|
|
3
|
+
<img alt="Community of SpecterOps - Creators of BloodHound" src="https://raw.githubusercontent.com/SpecterOps/OpenHound/refs/heads/main/.github/GitHub-CONTRIB-Header.png" width="100%" style="max-width: 100%;">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://community.specterops.io/" target="_blank">
|
|
3
|
-
<img alt="Community of SpecterOps - Creators of BloodHound" src=".github/GitHub-GOV-Header.png" width="100%" style="max-width: 100%;">
|
|
3
|
+
<img alt="Community of SpecterOps - Creators of BloodHound" src="https://raw.githubusercontent.com/SpecterOps/OpenHound/refs/heads/main/.github/GitHub-GOV-Header.png" width="100%" style="max-width: 100%;">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://specterops.io/" target="_blank">
|
|
3
|
-
<img alt="Community of SpecterOps - Creators of BloodHound" src=".github/GitHub-SEC-Header.png" width="100%" style="max-width: 100%;">
|
|
3
|
+
<img alt="Community of SpecterOps - Creators of BloodHound" src="https://raw.githubusercontent.com/SpecterOps/OpenHound/refs/heads/main/.github/GitHub-SEC-Header.png" width="100%" style="max-width: 100%;">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: openhound-github
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.1
|
|
4
4
|
Summary: Github collector for OpenHound
|
|
5
5
|
Author-email: "jdreijer@specterops.io" <jdreijer@specterops.io>, Jared Atkinson <jatkinson@specterops.io>
|
|
6
6
|
License-File: LICENSE.md
|
|
@@ -11,7 +11,7 @@ Description-Content-Type: text/markdown
|
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="https://specterops.io" target="_blank">
|
|
14
|
-
<img alt="A project powered by SpecterOps - Creators of BloodHound" src=".github/GitHub-Header.png" width="100%" style="max-width: 100%;">
|
|
14
|
+
<img alt="A project powered by SpecterOps - Creators of BloodHound" src="https://raw.githubusercontent.com/SpecterOps/OpenHound/refs/heads/main/.github/GitHub-Header.png" width="100%" style="max-width: 100%;">
|
|
15
15
|
</a>
|
|
16
16
|
</p>
|
|
17
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://specterops.io" target="_blank">
|
|
3
|
-
<img alt="A project powered by SpecterOps - Creators of BloodHound" src=".github/GitHub-Header.png" width="100%" style="max-width: 100%;">
|
|
3
|
+
<img alt="A project powered by SpecterOps - Creators of BloodHound" src="https://raw.githubusercontent.com/SpecterOps/OpenHound/refs/heads/main/.github/GitHub-Header.png" width="100%" style="max-width: 100%;">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
The non-traversable GH_CanAccess edge indicates that a personal access token, app installation, or deploy key has been granted access to a repository or organization.
|
|
5
|
+
The non-traversable GH_CanAccess edge indicates that a personal access token, app installation, or deploy key has been granted access to a repository, reusable scope, or organization. All-repository app installations and PATs point to an organization-scoped GH_Scope with `scope_type=repository` instead of repeating an edge to every repository. This edge represents access scope rather than a direct attack path.
|
|
6
6
|
|
|
7
7
|
## Edge Schema
|
|
8
8
|
|
|
9
9
|
| Source | Destination | Traversable |
|
|
10
10
|
| --- | --- | --- |
|
|
11
11
|
| `GH_AppInstallation` | `GH_Repository` | `false` |
|
|
12
|
+
| `GH_AppInstallation` | `GH_Scope` | `false` |
|
|
12
13
|
| `GH_DeployKey` | `GH_Repository` | `false` |
|
|
13
14
|
| `GH_PersonalAccessToken` | `GH_Organization` | `false` |
|
|
14
15
|
| `GH_PersonalAccessToken` | `GH_Repository` | `false` |
|
|
16
|
+
| `GH_PersonalAccessToken` | `GH_Scope` | `false` |
|
|
15
17
|
|
|
16
18
|
## Diagram
|
|
17
19
|
|
|
@@ -19,11 +21,14 @@ The non-traversable GH_CanAccess edge indicates that a personal access token, ap
|
|
|
19
21
|
graph LR
|
|
20
22
|
n0["GH_AppInstallation"]
|
|
21
23
|
n1["GH_Repository"]
|
|
22
|
-
n2["
|
|
23
|
-
n3["
|
|
24
|
-
n4["
|
|
24
|
+
n2["GH_Scope"]
|
|
25
|
+
n3["GH_DeployKey"]
|
|
26
|
+
n4["GH_PersonalAccessToken"]
|
|
27
|
+
n5["GH_Organization"]
|
|
25
28
|
n0 -.->|GH_CanAccess| n1
|
|
26
|
-
|
|
27
|
-
n3 -.->|GH_CanAccess| n4
|
|
29
|
+
n0 -.->|GH_CanAccess| n2
|
|
28
30
|
n3 -.->|GH_CanAccess| n1
|
|
31
|
+
n4 -.->|GH_CanAccess| n5
|
|
32
|
+
n4 -.->|GH_CanAccess| n1
|
|
33
|
+
n4 -.->|GH_CanAccess| n2
|
|
29
34
|
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# GH_CanReadSecret
|
|
2
|
+
|
|
3
|
+
## General Information
|
|
4
|
+
|
|
5
|
+
Org role can read organization secrets by creating a repository in the matching organization-secret scope. The collector emits this relationship from the role to a reusable `GH_Scope`; `GH_ScopedTo` expands the scope to its `all` or `private_or_internal` organization secrets. Selected secrets do not receive this derived capability because creating a repository does not add that repository to an arbitrary selected set.
|
|
6
|
+
|
|
7
|
+
## Edge Schema
|
|
8
|
+
|
|
9
|
+
| Source | Destination | Traversable |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `GH_OrgRole` | `GH_OrgSecret` | `true` |
|
|
12
|
+
| `GH_OrgRole` | `GH_Scope` | `true` |
|
|
13
|
+
|
|
14
|
+
`GH_OrgRole` to `GH_OrgSecret` remains an accepted legacy schema endpoint. Current OpenHound collections emit `GH_OrgRole` to `GH_Scope` instead.
|
|
15
|
+
|
|
16
|
+
## Diagram
|
|
17
|
+
|
|
18
|
+
```mermaid
|
|
19
|
+
graph LR
|
|
20
|
+
n0["GH_OrgRole"]
|
|
21
|
+
n1["GH_Scope"]
|
|
22
|
+
n2["GH_OrgSecret"]
|
|
23
|
+
n0 -->|GH_CanReadSecret| n1
|
|
24
|
+
n1 -->|GH_ScopedTo| n2
|
|
25
|
+
```
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
For runner-group-backed access, the traversable GH_CanUseRunner edge is a computed edge representing that a repository or branch can dispatch workflows to a self-hosted runner execution surface under the modeled runner-group controls.
|
|
6
6
|
|
|
7
|
-
The collector derives this edge from
|
|
7
|
+
The collector derives this edge from the same underlying eligibility policy represented by GH_IsEligibleFor. It emits GH_CanUseRunner only when the repository is within the runner group's repository-access scope, GitHub Actions is enabled for the repository, and `restricted_to_workflows=false` on the organization-facing runner group. Inherited enterprise-backed access also requires `restricted_to_workflows=false` on the source GH_EnterpriseRunnerGroup. Every collected branch in a repository that satisfies those conditions receives the same edge so branch write paths can reach the execution surface.
|
|
8
8
|
|
|
9
9
|
Organization and inherited enterprise-backed access terminate at the organization-facing GH_OrgRunnerGroup, then continue through GH_HasRunner for native organization runners or through GH_InheritedFrom and GH_HasRunner for inherited enterprise runners. Repository-scoped runners currently receive GH_CanUseRunner directly from their containing repository and are not part of this runner-group traversability change.
|
|
10
10
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
The non-traversable GH_Contains edge represents structural containment within the GitHub resource hierarchy. The enterprise contains enterprise teams, roles, managed users, classic personal access tokens, runner groups, and enterprise runners through their groups. The organization serves as a top-level container for users, teams, repositories, roles, secrets, app installations, fine-grained personal access tokens, and organization runner groups. Native organization runner groups contain organization runners. Repositories contain branches, workflows, branch protection rules, environments, repo-level secrets and variables, and repository-scoped runners. Environments contain environment branch policies, environment-scoped secrets, and environment-scoped variables. This edge is created by the collector to establish the resource hierarchy and is not traversable because containment alone does not imply privilege escalation.
|
|
5
|
+
The non-traversable GH_Contains edge represents structural containment within the GitHub resource hierarchy. The enterprise contains enterprise teams, roles, managed users, classic personal access tokens, runner groups, and enterprise runners through their groups. The organization serves as a top-level container for users, teams, repositories, roles, scopes, secrets, app installations, fine-grained personal access tokens, and organization runner groups. Native organization runner groups contain organization runners. Repositories contain branches, workflows, branch protection rules, environments, repo-level secrets and variables, and repository-scoped runners. Environments contain environment branch policies, environment-scoped secrets, and environment-scoped variables. This edge is created by the collector to establish the resource hierarchy and is not traversable because containment alone does not imply privilege escalation.
|
|
6
6
|
|
|
7
7
|
## Edge Schema
|
|
8
8
|
|
|
@@ -25,6 +25,7 @@ The non-traversable GH_Contains edge represents structural containment within th
|
|
|
25
25
|
| `GH_Organization` | `GH_OrgVariable` | `false` |
|
|
26
26
|
| `GH_Organization` | `GH_PersonalAccessToken` | `false` |
|
|
27
27
|
| `GH_Organization` | `GH_PersonalAccessTokenRequest` | `false` |
|
|
28
|
+
| `GH_Organization` | `GH_Scope` | `false` |
|
|
28
29
|
| `GH_Organization` | `GH_SecretScanningAlert` | `false` |
|
|
29
30
|
| `GH_Repository` | `GH_Branch` | `false` |
|
|
30
31
|
| `GH_Repository` | `GH_BranchProtectionRule` | `false` |
|
|
@@ -61,17 +62,18 @@ graph LR
|
|
|
61
62
|
n16["GH_OrgVariable"]
|
|
62
63
|
n17["GH_PersonalAccessToken"]
|
|
63
64
|
n18["GH_PersonalAccessTokenRequest"]
|
|
64
|
-
n19["
|
|
65
|
-
n20["
|
|
66
|
-
n21["
|
|
67
|
-
n22["
|
|
68
|
-
n23["
|
|
69
|
-
n24["
|
|
70
|
-
n25["
|
|
71
|
-
n26["
|
|
72
|
-
n27["
|
|
73
|
-
n28["
|
|
74
|
-
n29["
|
|
65
|
+
n19["GH_Scope"]
|
|
66
|
+
n20["GH_SecretScanningAlert"]
|
|
67
|
+
n21["GH_Repository"]
|
|
68
|
+
n22["GH_Branch"]
|
|
69
|
+
n23["GH_BranchProtectionRule"]
|
|
70
|
+
n24["GH_DeployKey"]
|
|
71
|
+
n25["GH_RepoRunner"]
|
|
72
|
+
n26["GH_RepoSecret"]
|
|
73
|
+
n27["GH_RepoVariable"]
|
|
74
|
+
n28["GH_Workflow"]
|
|
75
|
+
n29["GH_WorkflowJob"]
|
|
76
|
+
n30["GH_WorkflowStep"]
|
|
75
77
|
n0 -.->|GH_Contains| n1
|
|
76
78
|
n0 -.->|GH_Contains| n2
|
|
77
79
|
n0 -.->|GH_Contains| n3
|
|
@@ -90,15 +92,16 @@ graph LR
|
|
|
90
92
|
n5 -.->|GH_Contains| n17
|
|
91
93
|
n5 -.->|GH_Contains| n18
|
|
92
94
|
n5 -.->|GH_Contains| n19
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
95
|
+
n5 -.->|GH_Contains| n20
|
|
96
|
+
n21 -.->|GH_Contains| n22
|
|
97
|
+
n21 -.->|GH_Contains| n23
|
|
98
|
+
n21 -.->|GH_Contains| n24
|
|
99
|
+
n21 -.->|GH_Contains| n7
|
|
100
|
+
n21 -.->|GH_Contains| n25
|
|
101
|
+
n21 -.->|GH_Contains| n26
|
|
102
|
+
n21 -.->|GH_Contains| n27
|
|
103
|
+
n21 -.->|GH_Contains| n20
|
|
104
|
+
n21 -.->|GH_Contains| n28
|
|
103
105
|
n28 -.->|GH_Contains| n29
|
|
106
|
+
n29 -.->|GH_Contains| n30
|
|
104
107
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
The traversable GH_HasSecret edge represents the relationship between a repository or environment and the secrets accessible within that context.
|
|
5
|
+
The traversable GH_HasSecret edge represents the relationship between a repository or environment and the secrets accessible within that context. Canonical all/private organization-secret availability is factored through a GH_Scope; selected organization secrets and repository/environment secrets remain direct. This edge is traversable because any principal that can execute a workflow in the relevant context may be able to exfiltrate secret values at runtime, making this a meaningful link in attack path analysis.
|
|
6
6
|
|
|
7
7
|
## Edge Schema
|
|
8
8
|
|
|
@@ -11,6 +11,7 @@ The traversable GH_HasSecret edge represents the relationship between a reposito
|
|
|
11
11
|
| `GH_Environment` | `GH_EnvironmentSecret` | `true` |
|
|
12
12
|
| `GH_Repository` | `GH_OrgSecret` | `true` |
|
|
13
13
|
| `GH_Repository` | `GH_RepoSecret` | `true` |
|
|
14
|
+
| `GH_Repository` | `GH_Scope` | `true` |
|
|
14
15
|
|
|
15
16
|
## Diagram
|
|
16
17
|
|
|
@@ -21,7 +22,9 @@ graph LR
|
|
|
21
22
|
n2["GH_Repository"]
|
|
22
23
|
n3["GH_OrgSecret"]
|
|
23
24
|
n4["GH_RepoSecret"]
|
|
25
|
+
n5["GH_Scope"]
|
|
24
26
|
n0 -->|GH_HasSecret| n1
|
|
25
27
|
n2 -->|GH_HasSecret| n3
|
|
26
28
|
n2 -->|GH_HasSecret| n4
|
|
29
|
+
n2 -->|GH_HasSecret| n5
|
|
27
30
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
The traversable GH_HasVariable edge represents the relationship between a repository or environment and the variables accessible within that context.
|
|
5
|
+
The traversable GH_HasVariable edge represents the relationship between a repository or environment and the variables accessible within that context. Canonical all/private organization-variable availability is factored through a GH_Scope; selected organization variables and repository/environment variables remain direct.
|
|
6
6
|
|
|
7
7
|
## Edge Schema
|
|
8
8
|
|
|
@@ -11,6 +11,7 @@ The traversable GH_HasVariable edge represents the relationship between a reposi
|
|
|
11
11
|
| `GH_Environment` | `GH_EnvironmentVariable` | `true` |
|
|
12
12
|
| `GH_Repository` | `GH_OrgVariable` | `true` |
|
|
13
13
|
| `GH_Repository` | `GH_RepoVariable` | `true` |
|
|
14
|
+
| `GH_Repository` | `GH_Scope` | `true` |
|
|
14
15
|
|
|
15
16
|
## Diagram
|
|
16
17
|
|
|
@@ -21,7 +22,9 @@ graph LR
|
|
|
21
22
|
n2["GH_Repository"]
|
|
22
23
|
n3["GH_OrgVariable"]
|
|
23
24
|
n4["GH_RepoVariable"]
|
|
25
|
+
n5["GH_Scope"]
|
|
24
26
|
n0 -->|GH_HasVariable| n1
|
|
25
27
|
n2 -->|GH_HasVariable| n3
|
|
26
28
|
n2 -->|GH_HasVariable| n4
|
|
29
|
+
n2 -->|GH_HasVariable| n5
|
|
27
30
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
The non-traversable GH_IsEligibleFor edge represents that a repository is within the repository-access
|
|
5
|
+
The non-traversable GH_IsEligibleFor edge represents that a repository is within the repository-access policy of an organization runner group. Canonical `all` and `private_or_internal` eligibility is factored through a GH_Scope; arbitrary selected eligibility remains a direct relationship.
|
|
6
6
|
|
|
7
7
|
For runner groups, this edge evaluates the group's `visibility`, selected repository assignments, and `allows_public_repositories` setting. It does not prove that workflows in the repository can dispatch to the group's runners, because GitHub Actions may be disabled for the repository or the runner group may be restricted to selected workflows.
|
|
8
8
|
|
|
@@ -11,6 +11,7 @@ For runner groups, this edge evaluates the group's `visibility`, selected reposi
|
|
|
11
11
|
| Source | Destination | Traversable |
|
|
12
12
|
| --- | --- | --- |
|
|
13
13
|
| `GH_Repository` | `GH_OrgRunnerGroup` | `false` |
|
|
14
|
+
| `GH_Repository` | `GH_Scope` | `false` |
|
|
14
15
|
|
|
15
16
|
## Diagram
|
|
16
17
|
|
|
@@ -18,5 +19,7 @@ For runner groups, this edge evaluates the group's `visibility`, selected reposi
|
|
|
18
19
|
graph LR
|
|
19
20
|
n0["GH_Repository"]
|
|
20
21
|
n1["GH_OrgRunnerGroup"]
|
|
22
|
+
n2["GH_Scope"]
|
|
21
23
|
n0 -.->|GH_IsEligibleFor| n1
|
|
24
|
+
n0 -.->|GH_IsEligibleFor| n2
|
|
22
25
|
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# GH_RequestsAccessTo
|
|
2
|
+
|
|
3
|
+
## General Information
|
|
4
|
+
|
|
5
|
+
The non-traversable GH_RequestsAccessTo edge records access sought by a pending fine-grained personal access token request. It is distinct from GH_CanAccess, which represents access GitHub has already granted. An all-repository request targets the organization's reusable repository/all GH_Scope.
|
|
6
|
+
|
|
7
|
+
## Edge Schema
|
|
8
|
+
|
|
9
|
+
| Source | Destination | Traversable |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `GH_PersonalAccessTokenRequest` | `GH_Scope` | `false` |
|
|
12
|
+
|
|
13
|
+
## Diagram
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
graph LR
|
|
17
|
+
n0["GH_PersonalAccessTokenRequest"]
|
|
18
|
+
n1["GH_Scope"]
|
|
19
|
+
n0 -.->|GH_RequestsAccessTo| n1
|
|
20
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# GH_ScopedTo
|
|
2
|
+
|
|
3
|
+
## General Information
|
|
4
|
+
|
|
5
|
+
The traversable GH_ScopedTo edge enumerates an asset included in a reusable GH_Scope. It carries an incoming capability from a target scope to each asset in the represented set. Repository scopes contain collected repositories, runner-group scopes contain organization-facing runner groups sharing repository eligibility, and organization-secret/variable scopes contain assets sharing repository availability.
|
|
6
|
+
|
|
7
|
+
## Edge Schema
|
|
8
|
+
|
|
9
|
+
| Source | Destination | Traversable |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `GH_Scope` | `GH_OrgRunnerGroup` | `true` |
|
|
12
|
+
| `GH_Scope` | `GH_OrgSecret` | `true` |
|
|
13
|
+
| `GH_Scope` | `GH_OrgVariable` | `true` |
|
|
14
|
+
| `GH_Scope` | `GH_Repository` | `true` |
|
|
15
|
+
|
|
16
|
+
## Diagram
|
|
17
|
+
|
|
18
|
+
```mermaid
|
|
19
|
+
graph LR
|
|
20
|
+
n0["GH_Scope"]
|
|
21
|
+
n1["GH_OrgRunnerGroup"]
|
|
22
|
+
n2["GH_OrgSecret"]
|
|
23
|
+
n3["GH_OrgVariable"]
|
|
24
|
+
n4["GH_Repository"]
|
|
25
|
+
n0 -->|GH_ScopedTo| n1
|
|
26
|
+
n0 -->|GH_ScopedTo| n2
|
|
27
|
+
n0 -->|GH_ScopedTo| n3
|
|
28
|
+
n0 -->|GH_ScopedTo| n4
|
|
29
|
+
```
|
{openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_AppInstallation.md
RENAMED
|
@@ -6,7 +6,7 @@ Represents a GitHub App installed on an organization. App installations have spe
|
|
|
6
6
|
|
|
7
7
|
Unlike fine-grained personal access tokens, GitHub does not expose separate organization and repository permission buckets for app installations, so this property remains a single flat permission list.
|
|
8
8
|
|
|
9
|
-
Each installation is linked to its parent GH_App via a GH_InstalledAs edge.
|
|
9
|
+
Each installation is linked to its parent GH_App via a GH_InstalledAs edge. Installations with `repository_selection` set to `all` use one GH_CanAccess edge to the organization's repository/all GH_Scope; GH_ScopedTo edges enumerate the repositories in that reusable scope. For installations with `repository_selection` set to `selected`, the collector uses the enterprise organization-installation repositories API to enumerate the granted repositories when the enterprise installation has `Enterprise organization installations: read` or `Enterprise organization installation repositories: read`. If that permission is unavailable, selected repository edges are skipped.
|
|
10
10
|
|
|
11
11
|
## Properties
|
|
12
12
|
|
|
@@ -42,8 +42,10 @@ graph LR
|
|
|
42
42
|
n0["GH_App"]
|
|
43
43
|
n1["GH_AppInstallation"]
|
|
44
44
|
n2["GH_Repository"]
|
|
45
|
-
n3["
|
|
45
|
+
n3["GH_Scope"]
|
|
46
|
+
n4["GH_Organization"]
|
|
46
47
|
n0 -->|GH_InstalledAs| n1
|
|
47
48
|
n1 -.->|GH_CanAccess| n2
|
|
48
|
-
|
|
49
|
+
n1 -.->|GH_CanAccess| n3
|
|
50
|
+
n4 -.->|GH_Contains| n1
|
|
49
51
|
```
|
|
@@ -29,12 +29,12 @@ graph LR
|
|
|
29
29
|
n1["GH_OrgRunnerGroup"]
|
|
30
30
|
n2["GH_OrgSecret"]
|
|
31
31
|
n3["GH_Organization"]
|
|
32
|
-
n4["
|
|
33
|
-
n5["
|
|
34
|
-
n6["
|
|
32
|
+
n4["GH_Scope"]
|
|
33
|
+
n5["GH_SecretScanningAlert"]
|
|
34
|
+
n6["GH_Team"]
|
|
35
|
+
n7["GH_User"]
|
|
35
36
|
n0 -->|GH_HasBaseRole| n0
|
|
36
37
|
n0 -->|GH_CanCreateRepositoryWithRunnerAccess| n1
|
|
37
|
-
n0 -->|GH_CanReadSecret| n2
|
|
38
38
|
n0 -.->|GH_AddCollaborator| n3
|
|
39
39
|
n0 -.->|GH_CanCreateInternalRepositories| n3
|
|
40
40
|
n0 -.->|GH_CanCreatePrivateRepositories| n3
|
|
@@ -45,8 +45,10 @@ graph LR
|
|
|
45
45
|
n0 -.->|GH_ResolveSecretScanningAlerts| n3
|
|
46
46
|
n0 -.->|GH_TransferRepository| n3
|
|
47
47
|
n0 -.->|GH_ViewSecretScanningAlerts| n3
|
|
48
|
-
n0 -->|
|
|
48
|
+
n0 -->|GH_CanReadSecret| n4
|
|
49
|
+
n4 -->|GH_ScopedTo| n2
|
|
50
|
+
n0 -->|GH_CanReadSecretScanningAlert| n5
|
|
49
51
|
n3 -.->|GH_Contains| n0
|
|
50
|
-
n5 -->|GH_HasRole| n0
|
|
51
52
|
n6 -->|GH_HasRole| n0
|
|
53
|
+
n7 -->|GH_HasRole| n0
|
|
52
54
|
```
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Represents a self-hosted runner group visible within a GitHub organization. Organization runner groups may either be native to the organization or inherited from an enterprise runner group.
|
|
6
6
|
|
|
7
|
-
Native organization runner groups contain GH_OrgRunner nodes directly. Direct memberships also emit GH_HasRunner to represent the traversable capability hop from the group to its runners. Inherited organization runner groups do not directly contain organization runners; instead, they link to the source GH_EnterpriseRunnerGroup through GH_InheritedFrom and gain access to the enterprise runners contained there. GH_IsEligibleFor
|
|
7
|
+
Native organization runner groups contain GH_OrgRunner nodes directly. Direct memberships also emit GH_HasRunner to represent the traversable capability hop from the group to its runners. Inherited organization runner groups do not directly contain organization runners; instead, they link to the source GH_EnterpriseRunnerGroup through GH_InheritedFrom and gain access to the enterprise runners contained there. GH_IsEligibleFor uses shared runner-group scopes for canonical policies and direct edges for selected policies, while GH_CanUseRunner identifies repositories and branches that can dispatch workflows to the group under collected Actions and workflow-restriction settings.
|
|
8
8
|
|
|
9
9
|
## Properties
|
|
10
10
|
|
|
@@ -42,6 +42,7 @@ graph LR
|
|
|
42
42
|
n4["GH_OrgRunner"]
|
|
43
43
|
n5["GH_Organization"]
|
|
44
44
|
n6["GH_Repository"]
|
|
45
|
+
n7["GH_Scope"]
|
|
45
46
|
n0 -->|GH_CanUseRunner| n1
|
|
46
47
|
n2 -->|GH_CanCreateRepositoryWithRunnerAccess| n1
|
|
47
48
|
n1 -->|GH_InheritedFrom| n3
|
|
@@ -50,4 +51,5 @@ graph LR
|
|
|
50
51
|
n5 -.->|GH_Contains| n1
|
|
51
52
|
n6 -->|GH_CanUseRunner| n1
|
|
52
53
|
n6 -.->|GH_IsEligibleFor| n1
|
|
54
|
+
n7 -->|GH_ScopedTo| n1
|
|
53
55
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
Represents an organization-level GitHub Actions secret.
|
|
5
|
+
Represents an organization-level GitHub Actions secret. All and private/internal visibility uses shared organization-secret GH_Scope nodes; arbitrary selected visibility uses direct GH_HasSecret relationships from repositories.
|
|
6
6
|
|
|
7
7
|
## Properties
|
|
8
8
|
|
|
@@ -28,12 +28,14 @@ graph LR
|
|
|
28
28
|
n1["GH_OrgSecret"]
|
|
29
29
|
n2["GH_Organization"]
|
|
30
30
|
n3["GH_Repository"]
|
|
31
|
-
n4["
|
|
32
|
-
n5["
|
|
33
|
-
|
|
31
|
+
n4["GH_Scope"]
|
|
32
|
+
n5["GH_WorkflowJob"]
|
|
33
|
+
n6["GH_WorkflowStep"]
|
|
34
34
|
n2 -.->|GH_Contains| n1
|
|
35
35
|
n3 -->|GH_HasSecret| n1
|
|
36
|
-
|
|
37
|
-
n4
|
|
36
|
+
n0 -->|GH_CanReadSecret| n4
|
|
37
|
+
n4 -->|GH_ScopedTo| n1
|
|
38
|
+
n5 -->|GH_CanAccessSecret| n1
|
|
38
39
|
n5 -.->|GH_UsesSecret| n1
|
|
40
|
+
n6 -.->|GH_UsesSecret| n1
|
|
39
41
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
Represents an organization-level GitHub Actions variable.
|
|
5
|
+
Represents an organization-level GitHub Actions variable. All and private/internal visibility uses shared organization-variable GH_Scope nodes; arbitrary selected visibility uses direct GH_HasVariable relationships from repositories. Unlike secrets, variable values are readable via the API.
|
|
6
6
|
|
|
7
7
|
## Properties
|
|
8
8
|
|
|
@@ -27,10 +27,12 @@ graph LR
|
|
|
27
27
|
n0["GH_Organization"]
|
|
28
28
|
n1["GH_OrgVariable"]
|
|
29
29
|
n2["GH_Repository"]
|
|
30
|
-
n3["
|
|
31
|
-
n4["
|
|
30
|
+
n3["GH_Scope"]
|
|
31
|
+
n4["GH_WorkflowJob"]
|
|
32
|
+
n5["GH_WorkflowStep"]
|
|
32
33
|
n0 -.->|GH_Contains| n1
|
|
33
34
|
n2 -->|GH_HasVariable| n1
|
|
34
|
-
n3
|
|
35
|
+
n3 -->|GH_ScopedTo| n1
|
|
35
36
|
n4 -.->|GH_UsesVariable| n1
|
|
37
|
+
n5 -.->|GH_UsesVariable| n1
|
|
36
38
|
```
|
|
@@ -104,6 +104,7 @@ graph LR
|
|
|
104
104
|
n11["GH_Repository"]
|
|
105
105
|
n12["GH_SamlIdentityProvider"]
|
|
106
106
|
n13["GH_SecretScanningAlert"]
|
|
107
|
+
n14["GH_Scope"]
|
|
107
108
|
n0 -.->|GH_AuthorizedForOrganization| n1
|
|
108
109
|
n2 -.->|GH_Contains| n1
|
|
109
110
|
n3 -.->|GH_AssignedTo| n1
|
|
@@ -127,5 +128,6 @@ graph LR
|
|
|
127
128
|
n1 -->|GH_Owns| n11
|
|
128
129
|
n1 -.->|GH_HasSamlIdentityProvider| n12
|
|
129
130
|
n1 -.->|GH_Contains| n13
|
|
131
|
+
n1 -.->|GH_Contains| n14
|
|
130
132
|
n9 -.->|GH_CanAccess| n1
|
|
131
133
|
```
|
{openhound_github-0.19.0 → openhound_github-0.20.1}/descriptions/nodes/GH_PersonalAccessToken.md
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
Represents a fine-grained personal access token that has been granted access to organization resources. PATs are linked to their owning user, the organization, and the repositories they can access.
|
|
5
|
+
Represents a fine-grained personal access token that has been granted access to organization resources. PATs are linked to their owning user, the organization, and the repositories they can access. PATs with `repository_selection` set to `all` use the organization's reusable repository/all GH_Scope; subset access remains represented by direct GH_CanAccess edges.
|
|
6
6
|
|
|
7
7
|
The granted permissions are stored separately as `organization_permissions` and `repository_permissions`. Each property is a list of `scope:access` values such as `members:read` or `contents:write`, matching the permission format used on GH_WorkflowJob nodes.
|
|
8
8
|
|
|
@@ -38,9 +38,11 @@ graph LR
|
|
|
38
38
|
n0["GH_Organization"]
|
|
39
39
|
n1["GH_PersonalAccessToken"]
|
|
40
40
|
n2["GH_Repository"]
|
|
41
|
-
n3["
|
|
41
|
+
n3["GH_Scope"]
|
|
42
|
+
n4["GH_User"]
|
|
42
43
|
n0 -.->|GH_Contains| n1
|
|
43
44
|
n1 -.->|GH_CanAccess| n0
|
|
44
45
|
n1 -.->|GH_CanAccess| n2
|
|
45
|
-
|
|
46
|
+
n1 -.->|GH_CanAccess| n3
|
|
47
|
+
n4 -.->|GH_HasPersonalAccessToken| n1
|
|
46
48
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## General Information
|
|
4
4
|
|
|
5
|
-
Represents a pending request from an organization member to access organization resources with a fine-grained personal access token. PAT requests are linked to their owning user and the organization.
|
|
5
|
+
Represents a pending request from an organization member to access organization resources with a fine-grained personal access token. PAT requests are linked to their owning user and the organization. An all-repository request also has a non-traversable GH_RequestsAccessTo edge to the organization's repository/all GH_Scope.
|
|
6
6
|
|
|
7
7
|
The requested permissions are stored separately as `organization_permissions` and `repository_permissions`. Each property is a list of `scope:access` values such as `members:read` or `contents:write`, matching the permission format used on GH_WorkflowJob nodes.
|
|
8
8
|
|
|
@@ -32,7 +32,9 @@ The requested permissions are stored separately as `organization_permissions` an
|
|
|
32
32
|
graph LR
|
|
33
33
|
n0["GH_Organization"]
|
|
34
34
|
n1["GH_PersonalAccessTokenRequest"]
|
|
35
|
-
n2["
|
|
35
|
+
n2["GH_Scope"]
|
|
36
|
+
n3["GH_User"]
|
|
36
37
|
n0 -.->|GH_Contains| n1
|
|
37
|
-
|
|
38
|
+
n1 -.->|GH_RequestsAccessTo| n2
|
|
39
|
+
n3 -.->|GH_HasPersonalAccessTokenRequest| n1
|
|
38
40
|
```
|
|
@@ -8,6 +8,14 @@ For repositories with active workflows, the collector records the applicable def
|
|
|
8
8
|
|
|
9
9
|
The `branch_count` and `environment_count` properties preserve GitHub-reported totals from the repository GraphQL response. These values can be compared to collected GH_Branch and GH_Environment children to identify incomplete collection before relying on branch- or environment-dependent analysis.
|
|
10
10
|
|
|
11
|
+
Every repository is linked from its organization's reusable repository/all GH_Scope. Private and internal repositories are also linked from repository/private_or_internal. This supports compact one- or two-hop access queries without repeating one GH_CanAccess edge per credential and repository.
|
|
12
|
+
|
|
13
|
+
Repositories also point to runner_group/all GH_Scope nodes through GH_IsEligibleFor; private and internal repositories additionally point to runner_group/private_or_internal. Those scopes enumerate canonical runner groups through GH_ScopedTo, while groups with arbitrary selected repository policies remain direct.
|
|
14
|
+
|
|
15
|
+
Organization secrets and variables with canonical all/private visibility are similarly reached through organization_secret and organization_variable scopes. Repository-owned, environment-owned, and arbitrarily selected organization assets remain direct targets.
|
|
16
|
+
|
|
17
|
+
Runner, secret, and variable boundary edges are emitted only when the organization has a matching canonical target, so empty scopes do not add per-repository edges.
|
|
18
|
+
|
|
11
19
|
## Properties
|
|
12
20
|
|
|
13
21
|
| Property | Type | Description |
|
|
@@ -87,8 +95,9 @@ graph LR
|
|
|
87
95
|
n12["GH_RepoRunner"]
|
|
88
96
|
n13["GH_RepoSecret"]
|
|
89
97
|
n14["GH_RepoVariable"]
|
|
90
|
-
n15["
|
|
91
|
-
n16["
|
|
98
|
+
n15["GH_Scope"]
|
|
99
|
+
n16["GH_SecretScanningAlert"]
|
|
100
|
+
n17["GH_Workflow"]
|
|
92
101
|
n0 -.->|GH_CanAccess| n1
|
|
93
102
|
n2 -.->|GH_CanAccess| n1
|
|
94
103
|
n3 -->|GH_Owns| n1
|
|
@@ -169,6 +178,10 @@ graph LR
|
|
|
169
178
|
n1 -->|GH_HasSecret| n13
|
|
170
179
|
n1 -.->|GH_Contains| n14
|
|
171
180
|
n1 -->|GH_HasVariable| n14
|
|
172
|
-
n1
|
|
181
|
+
n1 -->|GH_HasSecret| n15
|
|
182
|
+
n1 -->|GH_HasVariable| n15
|
|
183
|
+
n1 -.->|GH_IsEligibleFor| n15
|
|
173
184
|
n1 -.->|GH_Contains| n16
|
|
185
|
+
n1 -.->|GH_Contains| n17
|
|
186
|
+
n15 -->|GH_ScopedTo| n1
|
|
174
187
|
```
|