openhound-github 0.11.0__tar.gz → 0.13.0__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.11.0 → openhound_github-0.13.0}/PKG-INFO +2 -1
- {openhound_github-0.11.0 → openhound_github-0.13.0}/README.md +1 -0
- openhound_github-0.13.0/descriptions/edges/GH_AddedDeployKey.md +20 -0
- openhound_github-0.13.0/descriptions/edges/GH_CanAccess.md +29 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_Contains.md +12 -9
- openhound_github-0.13.0/descriptions/nodes/GH_DeployKey.md +43 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Environment.md +0 -1
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Repository.md +96 -87
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_User.md +16 -14
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/schema.json +14 -1
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/graphql.py +7 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/kinds/edges.py +1 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/kinds/nodes.py +1 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/lookup.py +49 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/main.py +1 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/__init__.py +2 -0
- openhound_github-0.13.0/src/openhound_github/models/deploy_key.py +186 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/repository.py +19 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/resources/organization.py +43 -5
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/transforms.py +34 -1
- openhound_github-0.13.0/tests/test_deploy_key_models.py +81 -0
- openhound_github-0.13.0/tests/test_deploy_key_resources.py +66 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_environment_resources.py +36 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_lookup.py +51 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_repository_rulesets.py +49 -2
- openhound_github-0.11.0/descriptions/edges/GH_CanAccess.md +0 -26
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/CONTRIBUTING.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GOVERNANCE.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GitHub-COC-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GitHub-CONTRIB-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GitHub-GOV-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GitHub-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GitHub-LIC-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/GitHub-SEC-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/SECURITY.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/SO-Dark.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/SO-FOSS-Dark.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/SO-FOSS-Light.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/SO-Light.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/workflows/publish.yml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/workflows/release-on-merge.yml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.github/workflows/validate-branch.yml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.gitignore +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.gitmodules +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/.pre-commit-config.yaml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/LICENSE.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddAssignee.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddCollaborator.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddLabel.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddMember.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_AdminTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_AssignedTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CallsWorkflow.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanAccessSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateBranch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateInternalRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreatePrivateRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreatePublicRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanEditProtection.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanInterceptJob.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanPwnRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanReadSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanRequestOIDCTokenFor.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanUseRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanWriteBranch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CloseDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CloseIssue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ClosePullRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateEnterpriseOrganizations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateRepository.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateTag.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateTeam.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteIssue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteTag.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DependsOn.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeploysTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditEnterpriseCustomPropertiesForOrganizations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoProtections.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasBaseRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasMember.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_InheritedFrom.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_InstalledAs.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_InviteMember.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_IsEligibleFor.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseAdmins.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseIdentityProvider.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseMembers.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseOrganizationAdmins.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseOrganizations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseReferrals.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseTeams.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageTopics.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageWebhooks.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_MapsToUser.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_MemberOf.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_Owns.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ProtectedBy.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseAuditLog.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseDomainVerification.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseMembers.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseOrgProjects.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseOrganizationAdmin.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadRepoContents.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_RemoveAssignee.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_RemoveLabel.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReopenIssue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_RequestPrReview.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_RunOrgMigration.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_RunsOn.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetEnterpriseInteractionLimits.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetIssueType.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetMilestone.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetSocialPreview.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_SyncedTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_TransferRepository.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_UsesSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_UsesVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ValidToken.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewEnterpriseActionsUsageMetrics.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewEnterpriseBilling.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewEnterpriseSecretScanningAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseActionsPolicies.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseBilling.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterprisePersonalAccessTokenPolicies.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseSso.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseTeamMembers.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteRepoContents.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_App.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_AppInstallation.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Branch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Enterprise.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseManagedUser.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseTeam.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgRunnerGroup.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Organization.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Runner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RunnerGroup.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Secret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Team.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_TeamRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Variable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Workflow.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_WorkflowJob.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/descriptions/nodes/GH_WorkflowStep.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/docs/og-docs.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-enterprise-owners-role.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-organizations.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/README.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/active-leaked-secrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/all-actions-allowed.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/app-installations-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-self-approval.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/bypass-pr-requirements.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/dangerous-branch-perms.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/default-repository-permissions.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/environments-admin-bypass.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/expired-pats.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/external-identities-without-scim.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/github-to-azure-identity.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/global-repo-perms.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/hybrid-identities.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-create-pages.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-create-public-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-delete-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/org-owners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/orgs-without-2fa.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/pats-all-repo-access.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/pending-pat-requests.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/public-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/push-to-protected-branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/repository-workflows.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/saml-configuration.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/secret-scanning-alerts.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/self-hosted-runners-can-intercept-broad-token-jobs.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/shared-self-hosted-runners-can-intercept-secret-bearing-jobs.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/team-membership-admin.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/team-structure.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/unprotected-branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/unprotected-default-branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-interceptable-by-self-hosted-runners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-broad-token-write-permissions.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-id-token-write-on-self-hosted-runners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-id-token-write.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-observed-oidc-auth-steps.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/justfile +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/pyproject.toml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/scripts/generate_gh_description_docs.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/main.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/__init__.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/auth.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/extension.yaml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/github_rest_client.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/github_retry.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/graph.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/actions_permission.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/app_installation.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/branch.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/branch_protection_rule.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/branch_push_allowance.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_admin.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_managed_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_organization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_role_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_role_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team_organization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/env_secret.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/env_variable.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/environment.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/environment_branch_policy.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/external_identity.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/org.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/org_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/org_role_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/org_role_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/org_secret.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/org_variable.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/permissions.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/personal_access_token.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/personal_access_token_access.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/personal_access_token_request.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/projected_enterprise_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/repo_role_assignment.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/repository_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/repository_secret.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/repository_variable.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/runner.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_issuer.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_provider.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_service_provider.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/scim_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/secret_scanning_alert.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/team_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/team_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow_job.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow_reference.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow_step.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/resources/__init__.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/resources/enterprise.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/runner_ids.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/src/openhound_github/source.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_app_auth.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_branch_collection_gate.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_branch_protection_traversability.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_credential_permission_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/actions-permissions.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/actionsecrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/app.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/appinstalls.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/branch-policies.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/branch-prot-rules.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/custom-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/environments.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/org-pat-request.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/org-pat.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/org-role-teams.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/org-role-users.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/org-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/org.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/pat-repositories.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/repo-collaborators.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/repo-teams.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/repositories.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/scimusers.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/secrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/secretscanningalert.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/selected-org-secrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/variables.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_data/api/workflows.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_description_docs.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_enterprise_capabilities.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_enterprise_organization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_enterprise_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_environment_model.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_environment_reviewer_lookup.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_error_resilience.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_github_app_retry.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_github_rest_client.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_github_retry.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_org_scim_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_org_secret_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_runner_ids.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_runner_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_runner_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_saml_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_saml_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_scim_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_source_endpoints.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_source_org_canonicalization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_team_external_groups.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_variable_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_workflow_interception_path.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_workflow_model.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/tests/test_workflow_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.13.0}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: openhound-github
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
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
|
|
@@ -80,6 +80,7 @@ The collector runs successfully with the documented read-only permission set. So
|
|
|
80
80
|
|
|
81
81
|
- Organization `Members: write` enables external group mapping collection for IdP-synced teams, which allows the converter to emit `SCIM_Provisioned` edges from `SCIM_Group` to `GH_Team`. This is useful when the organization uses team synchronization with an external identity provider; if no GitHub teams are linked to external groups, this permission does not add graph data.
|
|
82
82
|
- Classic PAT scope `manage_runners:enterprise` enables enterprise self-hosted runner group and runner collection. This is useful when the enterprise has enterprise-scoped runner groups or runners, especially runner groups shared into organizations; if all runners are organization- or repository-scoped, this scope does not add graph data.
|
|
83
|
+
- Repository `Administration: read` enables deploy key collection. GitHub exposes repository deploy keys through an administration-scoped read endpoint, and the collector emits `GH_DeployKey` nodes only when that endpoint is accessible.
|
|
83
84
|
|
|
84
85
|
If these optional permissions are not granted, OpenHound skips the affected resources and continues collecting the rest of the GitHub environment.
|
|
85
86
|
|
|
@@ -69,6 +69,7 @@ The collector runs successfully with the documented read-only permission set. So
|
|
|
69
69
|
|
|
70
70
|
- Organization `Members: write` enables external group mapping collection for IdP-synced teams, which allows the converter to emit `SCIM_Provisioned` edges from `SCIM_Group` to `GH_Team`. This is useful when the organization uses team synchronization with an external identity provider; if no GitHub teams are linked to external groups, this permission does not add graph data.
|
|
71
71
|
- Classic PAT scope `manage_runners:enterprise` enables enterprise self-hosted runner group and runner collection. This is useful when the enterprise has enterprise-scoped runner groups or runners, especially runner groups shared into organizations; if all runners are organization- or repository-scoped, this scope does not add graph data.
|
|
72
|
+
- Repository `Administration: read` enables deploy key collection. GitHub exposes repository deploy keys through an administration-scoped read endpoint, and the collector emits `GH_DeployKey` nodes only when that endpoint is accessible.
|
|
72
73
|
|
|
73
74
|
If these optional permissions are not granted, OpenHound skips the affected resources and continues collecting the rest of the GitHub environment.
|
|
74
75
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# GH_AddedDeployKey
|
|
2
|
+
|
|
3
|
+
## General Information
|
|
4
|
+
|
|
5
|
+
User added this repository deploy key.
|
|
6
|
+
|
|
7
|
+
## Edge Schema
|
|
8
|
+
|
|
9
|
+
| Source | Destination | Traversable |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `GH_User` | `GH_DeployKey` | `false` |
|
|
12
|
+
|
|
13
|
+
## Diagram
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
graph LR
|
|
17
|
+
n0["GH_User"]
|
|
18
|
+
n1["GH_DeployKey"]
|
|
19
|
+
n0 -.->|GH_AddedDeployKey| n1
|
|
20
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# GH_CanAccess
|
|
2
|
+
|
|
3
|
+
## General Information
|
|
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. This edge represents the scope of access granted to a non-human credential rather than a direct attack path, providing visibility into which repositories are reachable through that credential. It is non-traversable because credential access does not transitively extend to other principals.
|
|
6
|
+
|
|
7
|
+
## Edge Schema
|
|
8
|
+
|
|
9
|
+
| Source | Destination | Traversable |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `GH_AppInstallation` | `GH_Repository` | `false` |
|
|
12
|
+
| `GH_DeployKey` | `GH_Repository` | `false` |
|
|
13
|
+
| `GH_PersonalAccessToken` | `GH_Organization` | `false` |
|
|
14
|
+
| `GH_PersonalAccessToken` | `GH_Repository` | `false` |
|
|
15
|
+
|
|
16
|
+
## Diagram
|
|
17
|
+
|
|
18
|
+
```mermaid
|
|
19
|
+
graph LR
|
|
20
|
+
n0["GH_AppInstallation"]
|
|
21
|
+
n1["GH_Repository"]
|
|
22
|
+
n2["GH_DeployKey"]
|
|
23
|
+
n3["GH_PersonalAccessToken"]
|
|
24
|
+
n4["GH_Organization"]
|
|
25
|
+
n0 -.->|GH_CanAccess| n1
|
|
26
|
+
n2 -.->|GH_CanAccess| n1
|
|
27
|
+
n3 -.->|GH_CanAccess| n4
|
|
28
|
+
n3 -.->|GH_CanAccess| n1
|
|
29
|
+
```
|
|
@@ -27,6 +27,7 @@ The non-traversable GH_Contains edge represents structural containment within th
|
|
|
27
27
|
| `GH_Organization` | `GH_SecretScanningAlert` | `false` |
|
|
28
28
|
| `GH_Repository` | `GH_Branch` | `false` |
|
|
29
29
|
| `GH_Repository` | `GH_BranchProtectionRule` | `false` |
|
|
30
|
+
| `GH_Repository` | `GH_DeployKey` | `false` |
|
|
30
31
|
| `GH_Repository` | `GH_Environment` | `false` |
|
|
31
32
|
| `GH_Repository` | `GH_RepoRunner` | `false` |
|
|
32
33
|
| `GH_Repository` | `GH_RepoSecret` | `false` |
|
|
@@ -62,12 +63,13 @@ graph LR
|
|
|
62
63
|
n19["GH_Repository"]
|
|
63
64
|
n20["GH_Branch"]
|
|
64
65
|
n21["GH_BranchProtectionRule"]
|
|
65
|
-
n22["
|
|
66
|
-
n23["
|
|
67
|
-
n24["
|
|
68
|
-
n25["
|
|
69
|
-
n26["
|
|
70
|
-
n27["
|
|
66
|
+
n22["GH_DeployKey"]
|
|
67
|
+
n23["GH_RepoRunner"]
|
|
68
|
+
n24["GH_RepoSecret"]
|
|
69
|
+
n25["GH_RepoVariable"]
|
|
70
|
+
n26["GH_Workflow"]
|
|
71
|
+
n27["GH_WorkflowJob"]
|
|
72
|
+
n28["GH_WorkflowStep"]
|
|
71
73
|
n0 -.->|GH_Contains| n1
|
|
72
74
|
n0 -.->|GH_Contains| n2
|
|
73
75
|
n0 -.->|GH_Contains| n3
|
|
@@ -87,12 +89,13 @@ graph LR
|
|
|
87
89
|
n4 -.->|GH_Contains| n18
|
|
88
90
|
n19 -.->|GH_Contains| n20
|
|
89
91
|
n19 -.->|GH_Contains| n21
|
|
90
|
-
n19 -.->|GH_Contains| n6
|
|
91
92
|
n19 -.->|GH_Contains| n22
|
|
93
|
+
n19 -.->|GH_Contains| n6
|
|
92
94
|
n19 -.->|GH_Contains| n23
|
|
93
95
|
n19 -.->|GH_Contains| n24
|
|
94
|
-
n19 -.->|GH_Contains| n18
|
|
95
96
|
n19 -.->|GH_Contains| n25
|
|
96
|
-
|
|
97
|
+
n19 -.->|GH_Contains| n18
|
|
98
|
+
n19 -.->|GH_Contains| n26
|
|
97
99
|
n26 -.->|GH_Contains| n27
|
|
100
|
+
n27 -.->|GH_Contains| n28
|
|
98
101
|
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# GH_DeployKey
|
|
2
|
+
|
|
3
|
+
## General Information
|
|
4
|
+
|
|
5
|
+
A repository-scoped SSH deploy key that grants read-only or read-write access to repository contents.
|
|
6
|
+
|
|
7
|
+
## Properties
|
|
8
|
+
|
|
9
|
+
| Property | Type | Description |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `name` | `string` | The node name used for matching and display. |
|
|
12
|
+
| `displayname` | `string` | The human-readable display name. |
|
|
13
|
+
| `environmentid` | `string` | The identifier of the GitHub environment where this node was collected. |
|
|
14
|
+
| `last_seen` | `datetime` | The timestamp when this node was last observed during collection. |
|
|
15
|
+
| `node_id` | `string` | The stable identifier used as the OpenGraph node ID; this is the native GitHub node ID where available. |
|
|
16
|
+
| `github_id` | `integer` | The numeric GitHub deploy key ID. |
|
|
17
|
+
| `title` | `string` | The user-assigned deploy key title. |
|
|
18
|
+
| `key` | `string` | The public SSH key material. |
|
|
19
|
+
| `verified` | `boolean` | Whether GitHub has verified the deploy key. |
|
|
20
|
+
| `enabled` | `boolean` | Whether the deploy key is currently enabled. |
|
|
21
|
+
| `read_only` | `boolean` | Whether the deploy key is restricted to read-only repository access. |
|
|
22
|
+
| `repository_permissions` | `list[string]` | Repository-scoped permissions in `scope:access` form. |
|
|
23
|
+
| `created_at` | `string` | When the deploy key was created. |
|
|
24
|
+
| `last_used` | `string` | When the deploy key was last used. |
|
|
25
|
+
| `added_by_login` | `string` | The login of the user who added the deploy key. |
|
|
26
|
+
| `added_by_id` | `string` | The node ID of the user who added the deploy key. |
|
|
27
|
+
| `repository_name` | `string` | The full name of the containing repository. |
|
|
28
|
+
| `repository_id` | `string` | The node_id of the containing repository. |
|
|
29
|
+
| `environment_name` | `string` | The name of the environment (GitHub organization). |
|
|
30
|
+
| `query_repository` | `string` | Query for the containing repository. |
|
|
31
|
+
| `query_added_by` | `string` | Query for the user who added the deploy key. |
|
|
32
|
+
|
|
33
|
+
## Diagram
|
|
34
|
+
|
|
35
|
+
```mermaid
|
|
36
|
+
graph LR
|
|
37
|
+
n0["GH_DeployKey"]
|
|
38
|
+
n1["GH_Repository"]
|
|
39
|
+
n2["GH_User"]
|
|
40
|
+
n0 -.->|GH_CanAccess| n1
|
|
41
|
+
n1 -.->|GH_Contains| n0
|
|
42
|
+
n2 -.->|GH_AddedDeployKey| n0
|
|
43
|
+
```
|
|
@@ -6,6 +6,8 @@ Represents a GitHub repository within the organization. Repository nodes capture
|
|
|
6
6
|
|
|
7
7
|
For repositories with active workflows, the collector records the applicable default workflow permissions and whether workflows may approve pull request reviews. These properties preserve the repository-level policy input later used to derive effective GITHUB_TOKEN permissions for GH_WorkflowJob nodes.
|
|
8
8
|
|
|
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
|
+
|
|
9
11
|
## Properties
|
|
10
12
|
|
|
11
13
|
| Property | Type | Description |
|
|
@@ -44,6 +46,9 @@ For repositories with active workflows, the collector records the applicable def
|
|
|
44
46
|
| `secret_scanning` | `string` | Status of secret scanning (e.g., `enabled`, `disabled`). |
|
|
45
47
|
| `branch_ruleset_count` | `integer` | Number of branch-targeted rulesets that apply to this repository. |
|
|
46
48
|
| `has_branch_rulesets` | `boolean` | Whether at least one branch-targeted ruleset applies to this repository. |
|
|
49
|
+
| `branch_count` | `integer` | Number of branch refs reported by GitHub for this repository. |
|
|
50
|
+
| `environment_count` | `integer` | Number of deployment environments reported by GitHub for this repository. |
|
|
51
|
+
| `deploy_key_count` | `integer` | Number of deploy keys reported by GitHub for this repository. |
|
|
47
52
|
| `query_branches` | `string` | Query for branches. |
|
|
48
53
|
| `query_protected_branches` | `string` | Query for protected branches. |
|
|
49
54
|
| `query_branch_protection_rules` | `string` | Query for branch protection rules. |
|
|
@@ -54,6 +59,7 @@ For repositories with active workflows, the collector records the applicable def
|
|
|
54
59
|
| `query_environments` | `string` | Query for environments. |
|
|
55
60
|
| `query_secrets` | `string` | Query for secrets. |
|
|
56
61
|
| `query_variables` | `string` | Query for variables. |
|
|
62
|
+
| `query_deploy_keys` | `string` | Query for deploy keys. |
|
|
57
63
|
| `query_secret_scanning_alerts` | `string` | Query for secret scanning alerts. |
|
|
58
64
|
| `query_explicit_readers` | `string` | Query for explicit readers. |
|
|
59
65
|
| `query_unrolled_readers` | `string` | Query for unrolled readers. |
|
|
@@ -66,98 +72,101 @@ For repositories with active workflows, the collector records the applicable def
|
|
|
66
72
|
graph LR
|
|
67
73
|
n0["GH_AppInstallation"]
|
|
68
74
|
n1["GH_Repository"]
|
|
69
|
-
n2["
|
|
70
|
-
n3["
|
|
71
|
-
n4["
|
|
72
|
-
n5["
|
|
73
|
-
n6["
|
|
74
|
-
n7["
|
|
75
|
-
n8["
|
|
76
|
-
n9["
|
|
77
|
-
n10["
|
|
78
|
-
n11["
|
|
79
|
-
n12["
|
|
80
|
-
n13["
|
|
81
|
-
n14["
|
|
82
|
-
n15["
|
|
75
|
+
n2["GH_DeployKey"]
|
|
76
|
+
n3["GH_Organization"]
|
|
77
|
+
n4["GH_PersonalAccessToken"]
|
|
78
|
+
n5["GH_RepoRole"]
|
|
79
|
+
n6["GH_Branch"]
|
|
80
|
+
n7["GH_BranchProtectionRule"]
|
|
81
|
+
n8["GH_Environment"]
|
|
82
|
+
n9["GH_OrgRunnerGroup"]
|
|
83
|
+
n10["GH_OrgSecret"]
|
|
84
|
+
n11["GH_OrgVariable"]
|
|
85
|
+
n12["GH_RepoRunner"]
|
|
86
|
+
n13["GH_RepoSecret"]
|
|
87
|
+
n14["GH_RepoVariable"]
|
|
88
|
+
n15["GH_SecretScanningAlert"]
|
|
89
|
+
n16["GH_Workflow"]
|
|
83
90
|
n0 -.->|GH_CanAccess| n1
|
|
84
|
-
n2
|
|
85
|
-
n3
|
|
86
|
-
n4 -.->|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
91
|
+
n2 -.->|GH_CanAccess| n1
|
|
92
|
+
n3 -->|GH_Owns| n1
|
|
93
|
+
n4 -.->|GH_CanAccess| n1
|
|
94
|
+
n5 -.->|GH_AddAssignee| n1
|
|
95
|
+
n5 -.->|GH_AddLabel| n1
|
|
96
|
+
n5 -->|GH_AdminTo| n1
|
|
97
|
+
n5 -.->|GH_BypassBranchProtection| n1
|
|
98
|
+
n5 -.->|GH_CanCreateBranch| n1
|
|
99
|
+
n5 -->|GH_CanCreateEnvironment| n1
|
|
100
|
+
n5 -->|GH_CanPwnRequest| n1
|
|
101
|
+
n5 -.->|GH_CloseDiscussion| n1
|
|
102
|
+
n5 -.->|GH_CloseIssue| n1
|
|
103
|
+
n5 -.->|GH_ClosePullRequest| n1
|
|
104
|
+
n5 -.->|GH_ConvertIssuesToDiscussions| n1
|
|
105
|
+
n5 -.->|GH_CreateDiscussionCategory| n1
|
|
106
|
+
n5 -.->|GH_CreateSoloMergeQueueEntry| n1
|
|
107
|
+
n5 -.->|GH_CreateTag| n1
|
|
108
|
+
n5 -.->|GH_DeleteAlertsCodeScanning| n1
|
|
109
|
+
n5 -.->|GH_DeleteDiscussion| n1
|
|
110
|
+
n5 -.->|GH_DeleteDiscussionComment| n1
|
|
111
|
+
n5 -.->|GH_DeleteIssue| n1
|
|
112
|
+
n5 -.->|GH_DeleteTag| n1
|
|
113
|
+
n5 -.->|GH_EditCategoryOnDiscussion| n1
|
|
114
|
+
n5 -.->|GH_EditDiscussionCategory| n1
|
|
115
|
+
n5 -.->|GH_EditDiscussionComment| n1
|
|
116
|
+
n5 -.->|GH_EditRepoAnnouncementBanners| n1
|
|
117
|
+
n5 -.->|GH_EditRepoCustomPropertiesValues| n1
|
|
118
|
+
n5 -.->|GH_EditRepoMetadata| n1
|
|
119
|
+
n5 -.->|GH_EditRepoProtections| n1
|
|
120
|
+
n5 -.->|GH_JumpMergeQueue| n1
|
|
121
|
+
n5 -.->|GH_ManageDeployKeys| n1
|
|
122
|
+
n5 -.->|GH_ManageDiscussionBadges| n1
|
|
123
|
+
n5 -.->|GH_ManageRepoSecurityProducts| n1
|
|
124
|
+
n5 -.->|GH_ManageSecurityProducts| n1
|
|
125
|
+
n5 -.->|GH_ManageSettingsMergeTypes| n1
|
|
126
|
+
n5 -.->|GH_ManageSettingsPages| n1
|
|
127
|
+
n5 -.->|GH_ManageSettingsProjects| n1
|
|
128
|
+
n5 -.->|GH_ManageSettingsWiki| n1
|
|
129
|
+
n5 -.->|GH_ManageTopics| n1
|
|
130
|
+
n5 -.->|GH_ManageWebhooks| n1
|
|
131
|
+
n5 -.->|GH_MarkAsDuplicate| n1
|
|
132
|
+
n5 -.->|GH_PushProtectedBranch| n1
|
|
133
|
+
n5 -.->|GH_ReadCodeScanning| n1
|
|
134
|
+
n5 -.->|GH_ReadRepoContents| n1
|
|
135
|
+
n5 -.->|GH_RemoveAssignee| n1
|
|
136
|
+
n5 -.->|GH_RemoveLabel| n1
|
|
137
|
+
n5 -.->|GH_ReopenDiscussion| n1
|
|
138
|
+
n5 -.->|GH_ReopenIssue| n1
|
|
139
|
+
n5 -.->|GH_ReopenPullRequest| n1
|
|
140
|
+
n5 -.->|GH_RequestPrReview| n1
|
|
141
|
+
n5 -.->|GH_ResolveDependabotAlerts| n1
|
|
142
|
+
n5 -.->|GH_ResolveSecretScanningAlerts| n1
|
|
143
|
+
n5 -.->|GH_RunOrgMigration| n1
|
|
144
|
+
n5 -.->|GH_SetInteractionLimits| n1
|
|
145
|
+
n5 -.->|GH_SetIssueType| n1
|
|
146
|
+
n5 -.->|GH_SetMilestone| n1
|
|
147
|
+
n5 -.->|GH_SetSocialPreview| n1
|
|
148
|
+
n5 -.->|GH_ToggleDiscussionAnswer| n1
|
|
149
|
+
n5 -.->|GH_ToggleDiscussionCommentMinimize| n1
|
|
150
|
+
n5 -.->|GH_ViewDependabotAlerts| n1
|
|
151
|
+
n5 -.->|GH_ViewSecretScanningAlerts| n1
|
|
152
|
+
n5 -.->|GH_WriteCodeScanning| n1
|
|
153
|
+
n5 -.->|GH_WriteRepoContents| n1
|
|
154
|
+
n5 -.->|GH_WriteRepoPullRequests| n1
|
|
148
155
|
n1 -.->|GH_Contains| n6
|
|
149
|
-
n1 -->|GH_CanDeployToEnvironment| n7
|
|
150
156
|
n1 -.->|GH_Contains| n7
|
|
151
|
-
n1
|
|
152
|
-
n1
|
|
153
|
-
n1
|
|
154
|
-
n1 -->|
|
|
155
|
-
n1 -.->|
|
|
156
|
-
n1
|
|
157
|
+
n1 -.->|GH_Contains| n2
|
|
158
|
+
n1 -->|GH_CanDeployToEnvironment| n8
|
|
159
|
+
n1 -.->|GH_Contains| n8
|
|
160
|
+
n1 -->|GH_CanUseRunner| n9
|
|
161
|
+
n1 -.->|GH_IsEligibleFor| n9
|
|
162
|
+
n1 -->|GH_HasSecret| n10
|
|
163
|
+
n1 -->|GH_HasVariable| n11
|
|
164
|
+
n1 -.->|GH_CanUseRunner| n12
|
|
157
165
|
n1 -.->|GH_Contains| n12
|
|
158
|
-
n1 -->|GH_HasSecret| n12
|
|
159
166
|
n1 -.->|GH_Contains| n13
|
|
160
|
-
n1 -->|
|
|
167
|
+
n1 -->|GH_HasSecret| n13
|
|
161
168
|
n1 -.->|GH_Contains| n14
|
|
169
|
+
n1 -->|GH_HasVariable| n14
|
|
162
170
|
n1 -.->|GH_Contains| n15
|
|
171
|
+
n1 -.->|GH_Contains| n16
|
|
163
172
|
```
|
|
@@ -36,13 +36,14 @@ graph LR
|
|
|
36
36
|
n4["GH_SecretScanningAlert"]
|
|
37
37
|
n5["GH_Branch"]
|
|
38
38
|
n6["GH_BranchProtectionRule"]
|
|
39
|
-
n7["
|
|
40
|
-
n8["
|
|
41
|
-
n9["
|
|
42
|
-
n10["
|
|
43
|
-
n11["
|
|
44
|
-
n12["
|
|
45
|
-
n13["
|
|
39
|
+
n7["GH_DeployKey"]
|
|
40
|
+
n8["GH_EnterpriseRole"]
|
|
41
|
+
n9["GH_Environment"]
|
|
42
|
+
n10["GH_OrgRole"]
|
|
43
|
+
n11["GH_PersonalAccessToken"]
|
|
44
|
+
n12["GH_PersonalAccessTokenRequest"]
|
|
45
|
+
n13["GH_RepoRole"]
|
|
46
|
+
n14["GH_TeamRole"]
|
|
46
47
|
n0 -.->|GH_HasMember| n1
|
|
47
48
|
n2 -.->|GH_MapsToUser| n1
|
|
48
49
|
n3 -.->|GH_MapsToUser| n1
|
|
@@ -50,12 +51,13 @@ graph LR
|
|
|
50
51
|
n1 -.->|GH_CanWriteBranch| n5
|
|
51
52
|
n1 -.->|GH_BypassPullRequestAllowances| n6
|
|
52
53
|
n1 -.->|GH_RestrictionsCanPush| n6
|
|
53
|
-
n1
|
|
54
|
-
n1
|
|
55
|
-
n1
|
|
56
|
-
n1 -->|
|
|
57
|
-
n1
|
|
58
|
-
n1 -.->|
|
|
59
|
-
n1
|
|
54
|
+
n1 -.->|GH_AddedDeployKey| n7
|
|
55
|
+
n1 -->|GH_HasRole| n8
|
|
56
|
+
n1 -.->|GH_ApprovesDeploymentTo| n9
|
|
57
|
+
n1 -->|GH_CanDeployToEnvironment| n9
|
|
58
|
+
n1 -->|GH_HasRole| n10
|
|
59
|
+
n1 -.->|GH_HasPersonalAccessToken| n11
|
|
60
|
+
n1 -.->|GH_HasPersonalAccessTokenRequest| n12
|
|
60
61
|
n1 -->|GH_HasRole| n13
|
|
62
|
+
n1 -->|GH_HasRole| n14
|
|
61
63
|
```
|
|
@@ -190,6 +190,14 @@
|
|
|
190
190
|
"icon": "lock-open",
|
|
191
191
|
"color": "#66C7E8"
|
|
192
192
|
},
|
|
193
|
+
{
|
|
194
|
+
"name": "GH_DeployKey",
|
|
195
|
+
"display_name": "GitHub Deploy Key",
|
|
196
|
+
"description": "A repository-scoped SSH deploy key that grants read-only or read-write access to repository contents",
|
|
197
|
+
"is_display_kind": true,
|
|
198
|
+
"icon": "key",
|
|
199
|
+
"color": "#F9C74F"
|
|
200
|
+
},
|
|
193
201
|
{
|
|
194
202
|
"name": "GH_Secret",
|
|
195
203
|
"display_name": "GitHub Secret",
|
|
@@ -325,6 +333,11 @@
|
|
|
325
333
|
"description": "Container relationship for organizational hierarchy (org contains secrets/variables, repo contains secrets/variables, environment contains secrets/variables)",
|
|
326
334
|
"is_traversable": false
|
|
327
335
|
},
|
|
336
|
+
{
|
|
337
|
+
"name": "GH_AddedDeployKey",
|
|
338
|
+
"description": "User added this repository deploy key",
|
|
339
|
+
"is_traversable": false
|
|
340
|
+
},
|
|
328
341
|
{
|
|
329
342
|
"name": "GH_CreateEnterpriseOrganizations",
|
|
330
343
|
"description": "[Enterprise] Enterprise role can create organizations",
|
|
@@ -962,7 +975,7 @@
|
|
|
962
975
|
},
|
|
963
976
|
{
|
|
964
977
|
"name": "GH_CanAccess",
|
|
965
|
-
"description": "Personal access token
|
|
978
|
+
"description": "Personal access token, app installation, or deploy key can access this repository or organization",
|
|
966
979
|
"is_traversable": false
|
|
967
980
|
},
|
|
968
981
|
{
|
|
@@ -271,6 +271,7 @@ query RepoRefs($login: String!, $count: Int!, $after: String) {
|
|
|
271
271
|
totalCount
|
|
272
272
|
}
|
|
273
273
|
refs(first: 100, refPrefix: "refs/heads/") {
|
|
274
|
+
totalCount
|
|
274
275
|
nodes {
|
|
275
276
|
id
|
|
276
277
|
name
|
|
@@ -279,6 +280,12 @@ query RepoRefs($login: String!, $count: Int!, $after: String) {
|
|
|
279
280
|
}
|
|
280
281
|
pageInfo { endCursor hasNextPage }
|
|
281
282
|
}
|
|
283
|
+
environments(first: 1) {
|
|
284
|
+
totalCount
|
|
285
|
+
}
|
|
286
|
+
deployKeys(first: 1) {
|
|
287
|
+
totalCount
|
|
288
|
+
}
|
|
282
289
|
}
|
|
283
290
|
pageInfo { endCursor hasNextPage }
|
|
284
291
|
}
|
|
@@ -87,6 +87,7 @@ HAS_PERSONAL_ACCESS_TOKEN_REQUEST = "GH_HasPersonalAccessTokenRequest"
|
|
|
87
87
|
# Secret and variable edges
|
|
88
88
|
HAS_SECRET = "GH_HasSecret"
|
|
89
89
|
HAS_VARIABLE = "GH_HasVariable"
|
|
90
|
+
ADDED_DEPLOY_KEY = "GH_AddedDeployKey"
|
|
90
91
|
|
|
91
92
|
# App installation edges
|
|
92
93
|
INSTALLED_AS = "GH_InstalledAs"
|
|
@@ -54,6 +54,35 @@ class GithubLookup(LookupManager):
|
|
|
54
54
|
[org_login],
|
|
55
55
|
)
|
|
56
56
|
|
|
57
|
+
@lru_cache
|
|
58
|
+
def user_node_id_for_login(self, org_login: str, user_login: str) -> str | None:
|
|
59
|
+
return self._find_single_object(
|
|
60
|
+
f"""
|
|
61
|
+
WITH candidate_users AS (
|
|
62
|
+
SELECT 0 AS priority, u.id
|
|
63
|
+
FROM {self.schema}.users u
|
|
64
|
+
WHERE lower(u.org_login) = lower(?)
|
|
65
|
+
AND lower(u.login) = lower(?)
|
|
66
|
+
|
|
67
|
+
UNION ALL
|
|
68
|
+
|
|
69
|
+
SELECT 1 AS priority, eu.id
|
|
70
|
+
FROM {self.schema}.enterprise_users eu
|
|
71
|
+
JOIN {self.schema}.enterprise e
|
|
72
|
+
ON lower(e.slug) = lower(eu.enterprise_slug)
|
|
73
|
+
JOIN {self.schema}.enterprise_organizations eo
|
|
74
|
+
ON eo.enterprise_node_id = e.id
|
|
75
|
+
WHERE lower(eo.login) = lower(?)
|
|
76
|
+
AND lower(eu.login) = lower(?)
|
|
77
|
+
)
|
|
78
|
+
SELECT id
|
|
79
|
+
FROM candidate_users
|
|
80
|
+
ORDER BY priority
|
|
81
|
+
LIMIT 1
|
|
82
|
+
""",
|
|
83
|
+
[org_login, user_login, org_login, user_login],
|
|
84
|
+
)
|
|
85
|
+
|
|
57
86
|
@lru_cache
|
|
58
87
|
def org_login(self) -> str | None:
|
|
59
88
|
res = self._find_single_object(
|
|
@@ -602,6 +631,26 @@ class GithubLookup(LookupManager):
|
|
|
602
631
|
return None
|
|
603
632
|
return int(row[0])
|
|
604
633
|
|
|
634
|
+
@lru_cache
|
|
635
|
+
def repository_graphql_counts(
|
|
636
|
+
self, repository_node_id: str
|
|
637
|
+
) -> tuple[int | None, int | None, int | None]:
|
|
638
|
+
row = self._find_single_row(
|
|
639
|
+
f"""
|
|
640
|
+
SELECT branch_count, environment_count, deploy_key_count
|
|
641
|
+
FROM {self.schema}.repositories_graphql
|
|
642
|
+
WHERE id = ?
|
|
643
|
+
""",
|
|
644
|
+
[repository_node_id],
|
|
645
|
+
)
|
|
646
|
+
if row is None:
|
|
647
|
+
return None, None, None
|
|
648
|
+
return (
|
|
649
|
+
None if row[0] is None else int(row[0]),
|
|
650
|
+
None if row[1] is None else int(row[1]),
|
|
651
|
+
None if row[2] is None else int(row[2]),
|
|
652
|
+
)
|
|
653
|
+
|
|
605
654
|
@lru_cache
|
|
606
655
|
def repository_workflow_permissions(
|
|
607
656
|
self, repository_node_id: str
|
|
@@ -67,6 +67,7 @@ def preproc(ctx: PreProcContext):
|
|
|
67
67
|
"external_identities": "external_identities",
|
|
68
68
|
"applications": "applications",
|
|
69
69
|
"enterprise": "enterprise",
|
|
70
|
+
"enterprise_users": "enterprise_users",
|
|
70
71
|
"enterprise_organizations": "enterprise_organizations",
|
|
71
72
|
"enterprise_scim_groups": "enterprise_scim_groups",
|
|
72
73
|
"enterprise_runner_groups": "enterprise_runner_groups",
|
|
@@ -22,6 +22,7 @@ from .env_secret import EnvironmentSecret
|
|
|
22
22
|
from .env_variable import EnvironmentVariable
|
|
23
23
|
from .environment import Environment
|
|
24
24
|
from .environment_branch_policy import EnvironmentBranchPolicy
|
|
25
|
+
from .deploy_key import DeployKey
|
|
25
26
|
from .external_identity import ExternalIdentity
|
|
26
27
|
from .org import Organization
|
|
27
28
|
from .org_role import OrgRole
|
|
@@ -132,6 +133,7 @@ __all__ = [
|
|
|
132
133
|
"EnvironmentSecret",
|
|
133
134
|
"EnvironmentVariable",
|
|
134
135
|
"EnvironmentBranchPolicy",
|
|
136
|
+
"DeployKey",
|
|
135
137
|
"Enterprise",
|
|
136
138
|
"EnterpriseAdmin",
|
|
137
139
|
"EnterpriseManagedUser",
|