openhound-github 0.12.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.12.0 → openhound_github-0.13.0}/PKG-INFO +2 -1
- {openhound_github-0.12.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.12.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.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Repository.md +92 -87
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_User.md +16 -14
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/schema.json +14 -1
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/graphql.py +3 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/kinds/edges.py +1 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/kinds/nodes.py +1 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/lookup.py +33 -3
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/main.py +1 -0
- {openhound_github-0.12.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.12.0 → openhound_github-0.13.0}/src/openhound_github/models/repository.py +10 -1
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/resources/organization.py +31 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/transforms.py +28 -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.12.0 → openhound_github-0.13.0}/tests/test_lookup.py +51 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_repository_rulesets.py +13 -7
- openhound_github-0.12.0/descriptions/edges/GH_CanAccess.md +0 -26
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/CONTRIBUTING.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GOVERNANCE.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GitHub-COC-Header.png +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GitHub-CONTRIB-Header.png +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GitHub-GOV-Header.png +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GitHub-Header.png +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GitHub-LIC-Header.png +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/GitHub-SEC-Header.png +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/SECURITY.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/SO-Dark.svg +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/SO-FOSS-Dark.svg +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/SO-FOSS-Light.svg +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/SO-Light.svg +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/workflows/publish.yml +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/workflows/release-on-merge.yml +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.github/workflows/validate-branch.yml +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.gitignore +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.gitmodules +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/.pre-commit-config.yaml +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/LICENSE.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddAssignee.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddCollaborator.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddLabel.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_AddMember.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_AdminTo.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_AssignedTo.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CallsWorkflow.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanAccessSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateBranch.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateInternalRepositories.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreatePrivateRepositories.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreatePublicRepositories.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateRepositories.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanEditProtection.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanInterceptJob.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanPwnRequest.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanReadSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanRequestOIDCTokenFor.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanUseRunner.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CanWriteBranch.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CloseDiscussion.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CloseIssue.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ClosePullRequest.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateEnterpriseOrganizations.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateRepository.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateTag.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_CreateTeam.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteIssue.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeleteTag.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DependsOn.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_DeploysTo.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditEnterpriseCustomPropertiesForOrganizations.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_EditRepoProtections.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasBaseRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasMember.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasRunner.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_HasVariable.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_InheritedFrom.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_InstalledAs.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_InviteMember.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_IsEligibleFor.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseAdmins.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseIdentityProvider.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseMembers.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseOrganizationAdmins.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseOrganizations.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseReferrals.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageEnterpriseTeams.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageTopics.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ManageWebhooks.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_MapsToUser.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_MemberOf.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_Owns.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ProtectedBy.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseAuditLog.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseDomainVerification.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseMembers.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseOrgProjects.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadEnterpriseOrganizationAdmin.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReadRepoContents.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_RemoveAssignee.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_RemoveLabel.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReopenIssue.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_RequestPrReview.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_RunOrgMigration.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_RunsOn.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetEnterpriseInteractionLimits.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetIssueType.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetMilestone.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_SetSocialPreview.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_SyncedTo.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_TransferRepository.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_UsesSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_UsesVariable.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ValidToken.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewEnterpriseActionsUsageMetrics.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewEnterpriseBilling.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewEnterpriseSecretScanningAlerts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseActionsPolicies.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseBilling.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterprisePersonalAccessTokenPolicies.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseSso.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteEnterpriseTeamMembers.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteRepoContents.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_App.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_AppInstallation.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Branch.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Enterprise.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseManagedUser.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnterpriseTeam.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Environment.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgRunner.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgRunnerGroup.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_OrgVariable.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Organization.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoRunner.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoSecret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RepoVariable.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Runner.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_RunnerGroup.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Secret.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Team.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_TeamRole.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Variable.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_Workflow.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_WorkflowJob.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/descriptions/nodes/GH_WorkflowStep.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/docs/og-docs.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-enterprise-owners-role.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-organizations.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/README.md +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/active-leaked-secrets.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/all-actions-allowed.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/app-installations-all-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-self-approval.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/bypass-pr-requirements.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/dangerous-branch-perms.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/default-repository-permissions.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/environments-admin-bypass.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/expired-pats.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/external-identities-without-scim.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/github-to-azure-identity.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/global-repo-perms.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/hybrid-identities.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-create-pages.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-create-public-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-delete-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/org-owners.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/orgs-without-2fa.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/pats-all-repo-access.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/pending-pat-requests.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/public-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/push-to-protected-branches.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/repository-workflows.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/saml-configuration.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/secret-scanning-alerts.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/self-hosted-runners-can-intercept-broad-token-jobs.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/shared-self-hosted-runners-can-intercept-secret-bearing-jobs.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/team-membership-admin.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/team-structure.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/unprotected-branches.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/unprotected-default-branches.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-interceptable-by-self-hosted-runners.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-broad-token-write-permissions.json +0 -0
- {openhound_github-0.12.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.12.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-id-token-write.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/extension/saved_searches/workflow-jobs-with-observed-oidc-auth-steps.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/justfile +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/pyproject.toml +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/scripts/generate_gh_description_docs.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/main.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/__init__.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/auth.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/extension.yaml +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/github_rest_client.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/github_retry.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/graph.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/helpers.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/actions_permission.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/app_installation.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/branch.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/branch_protection_rule.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/branch_push_allowance.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_admin.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_helpers.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_managed_user.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_member.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_organization.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_role.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_role_team.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_role_user.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team_member.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team_organization.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_team_role.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/enterprise_user.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/env_secret.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/env_variable.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/environment.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/environment_branch_policy.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/external_identity.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/org.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/org_role.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/org_role_member.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/org_role_team.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/org_secret.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/org_variable.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/permissions.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/personal_access_token.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/personal_access_token_access.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/personal_access_token_request.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/projected_enterprise_team.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/repo_role_assignment.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/repository_role.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/repository_secret.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/repository_variable.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/runner.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_helpers.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_issuer.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_provider.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/saml_service_provider.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/scim_user.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/secret_scanning_alert.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/team.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/team_member.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/team_role.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/user.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow_job.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow_reference.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/models/workflow_step.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/resources/__init__.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/resources/enterprise.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/runner_ids.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/src/openhound_github/source.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_app_auth.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_branch_collection_gate.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_branch_protection_traversability.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_credential_permission_models.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/actions-permissions.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/actionsecrets.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/app.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/appinstalls.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/branch-policies.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/branch-prot-rules.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/branches.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/custom-roles.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/environments.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/org-pat-request.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/org-pat.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/org-role-teams.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/org-role-users.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/org-roles.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/org.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/pat-repositories.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/repo-collaborators.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/repo-teams.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/repositories.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/scimusers.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/secrets.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/secretscanningalert.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/selected-org-secrets.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/variables.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_data/api/workflows.json +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_description_docs.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_enterprise_capabilities.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_enterprise_organization.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_enterprise_resources.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_environment_model.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_environment_resources.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_environment_reviewer_lookup.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_error_resilience.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_github_app_retry.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_github_rest_client.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_github_retry.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_helpers.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_org_scim_resources.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_org_secret_models.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_runner_ids.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_runner_models.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_runner_resources.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_saml_helpers.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_saml_models.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_scim_models.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_source_endpoints.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_source_org_canonicalization.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_team_external_groups.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_variable_models.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_workflow_interception_path.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_workflow_model.py +0 -0
- {openhound_github-0.12.0 → openhound_github-0.13.0}/tests/test_workflow_resources.py +0 -0
- {openhound_github-0.12.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
|
+
```
|
|
@@ -48,6 +48,7 @@ The `branch_count` and `environment_count` properties preserve GitHub-reported t
|
|
|
48
48
|
| `has_branch_rulesets` | `boolean` | Whether at least one branch-targeted ruleset applies to this repository. |
|
|
49
49
|
| `branch_count` | `integer` | Number of branch refs reported by GitHub for this repository. |
|
|
50
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. |
|
|
51
52
|
| `query_branches` | `string` | Query for branches. |
|
|
52
53
|
| `query_protected_branches` | `string` | Query for protected branches. |
|
|
53
54
|
| `query_branch_protection_rules` | `string` | Query for branch protection rules. |
|
|
@@ -58,6 +59,7 @@ The `branch_count` and `environment_count` properties preserve GitHub-reported t
|
|
|
58
59
|
| `query_environments` | `string` | Query for environments. |
|
|
59
60
|
| `query_secrets` | `string` | Query for secrets. |
|
|
60
61
|
| `query_variables` | `string` | Query for variables. |
|
|
62
|
+
| `query_deploy_keys` | `string` | Query for deploy keys. |
|
|
61
63
|
| `query_secret_scanning_alerts` | `string` | Query for secret scanning alerts. |
|
|
62
64
|
| `query_explicit_readers` | `string` | Query for explicit readers. |
|
|
63
65
|
| `query_unrolled_readers` | `string` | Query for unrolled readers. |
|
|
@@ -70,98 +72,101 @@ The `branch_count` and `environment_count` properties preserve GitHub-reported t
|
|
|
70
72
|
graph LR
|
|
71
73
|
n0["GH_AppInstallation"]
|
|
72
74
|
n1["GH_Repository"]
|
|
73
|
-
n2["
|
|
74
|
-
n3["
|
|
75
|
-
n4["
|
|
76
|
-
n5["
|
|
77
|
-
n6["
|
|
78
|
-
n7["
|
|
79
|
-
n8["
|
|
80
|
-
n9["
|
|
81
|
-
n10["
|
|
82
|
-
n11["
|
|
83
|
-
n12["
|
|
84
|
-
n13["
|
|
85
|
-
n14["
|
|
86
|
-
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"]
|
|
87
90
|
n0 -.->|GH_CanAccess| n1
|
|
88
|
-
n2
|
|
89
|
-
n3
|
|
90
|
-
n4 -.->|
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
|
152
155
|
n1 -.->|GH_Contains| n6
|
|
153
|
-
n1 -->|GH_CanDeployToEnvironment| n7
|
|
154
156
|
n1 -.->|GH_Contains| n7
|
|
155
|
-
n1
|
|
156
|
-
n1
|
|
157
|
-
n1
|
|
158
|
-
n1 -->|
|
|
159
|
-
n1 -.->|
|
|
160
|
-
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
|
|
161
165
|
n1 -.->|GH_Contains| n12
|
|
162
|
-
n1 -->|GH_HasSecret| n12
|
|
163
166
|
n1 -.->|GH_Contains| n13
|
|
164
|
-
n1 -->|
|
|
167
|
+
n1 -->|GH_HasSecret| n13
|
|
165
168
|
n1 -.->|GH_Contains| n14
|
|
169
|
+
n1 -->|GH_HasVariable| n14
|
|
166
170
|
n1 -.->|GH_Contains| n15
|
|
171
|
+
n1 -.->|GH_Contains| n16
|
|
167
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
|
{
|
|
@@ -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(
|
|
@@ -605,20 +634,21 @@ class GithubLookup(LookupManager):
|
|
|
605
634
|
@lru_cache
|
|
606
635
|
def repository_graphql_counts(
|
|
607
636
|
self, repository_node_id: str
|
|
608
|
-
) -> tuple[int | None, int | None]:
|
|
637
|
+
) -> tuple[int | None, int | None, int | None]:
|
|
609
638
|
row = self._find_single_row(
|
|
610
639
|
f"""
|
|
611
|
-
SELECT branch_count, environment_count
|
|
640
|
+
SELECT branch_count, environment_count, deploy_key_count
|
|
612
641
|
FROM {self.schema}.repositories_graphql
|
|
613
642
|
WHERE id = ?
|
|
614
643
|
""",
|
|
615
644
|
[repository_node_id],
|
|
616
645
|
)
|
|
617
646
|
if row is None:
|
|
618
|
-
return None, None
|
|
647
|
+
return None, None, None
|
|
619
648
|
return (
|
|
620
649
|
None if row[0] is None else int(row[0]),
|
|
621
650
|
None if row[1] is None else int(row[1]),
|
|
651
|
+
None if row[2] is None else int(row[2]),
|
|
622
652
|
)
|
|
623
653
|
|
|
624
654
|
@lru_cache
|
|
@@ -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",
|