openhound-github 0.11.0__tar.gz → 0.12.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.12.0}/PKG-INFO +1 -1
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Environment.md +0 -1
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Repository.md +4 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/graphql.py +4 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/lookup.py +19 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/repository.py +10 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/resources/organization.py +12 -5
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/transforms.py +7 -1
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_environment_resources.py +36 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_repository_rulesets.py +43 -2
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/CONTRIBUTING.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GOVERNANCE.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GitHub-COC-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GitHub-CONTRIB-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GitHub-GOV-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GitHub-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GitHub-LIC-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/GitHub-SEC-Header.png +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/SECURITY.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/SO-Dark.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/SO-FOSS-Dark.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/SO-FOSS-Light.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/SO-Light.svg +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/workflows/publish.yml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/workflows/release-on-merge.yml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.github/workflows/validate-branch.yml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.gitignore +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.gitmodules +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/.pre-commit-config.yaml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/LICENSE.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/README.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AddAssignee.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AddCollaborator.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AddLabel.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AddMember.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AdminTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AssignedTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CallsWorkflow.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanAccess.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanAccessSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateBranch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateInternalRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreatePrivateRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreatePublicRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateRepositories.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanEditProtection.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanInterceptJob.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanPwnRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanReadSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanRequestOIDCTokenFor.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanUseRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanWriteBranch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CloseDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CloseIssue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ClosePullRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_Contains.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateEnterpriseOrganizations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateRepository.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateTag.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateTeam.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteIssue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteTag.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DependsOn.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeploysTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditEnterpriseCustomPropertiesForOrganizations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditRepoProtections.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasBaseRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasMember.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_InheritedFrom.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_InstalledAs.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_InviteMember.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_IsEligibleFor.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseAdmins.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseIdentityProvider.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseMembers.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseOrganizationAdmins.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseOrganizations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseReferrals.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageEnterpriseTeams.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageTopics.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageWebhooks.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_MapsToUser.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_MemberOf.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_Owns.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ProtectedBy.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadEnterpriseAuditLog.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadEnterpriseDomainVerification.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadEnterpriseMembers.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadEnterpriseOrgProjects.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadEnterpriseOrganizationAdmin.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReadRepoContents.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_RemoveAssignee.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_RemoveLabel.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReopenIssue.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_RequestPrReview.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_RunOrgMigration.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_RunsOn.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_SetEnterpriseInteractionLimits.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_SetIssueType.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_SetMilestone.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_SetSocialPreview.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_SyncedTo.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_TransferRepository.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_UsesSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_UsesVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ValidToken.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ViewEnterpriseActionsUsageMetrics.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ViewEnterpriseBilling.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ViewEnterpriseSecretScanningAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteEnterpriseActionsPolicies.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteEnterpriseBilling.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteEnterprisePersonalAccessTokenPolicies.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteEnterpriseSso.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteEnterpriseTeamMembers.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteRepoContents.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_App.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_AppInstallation.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Branch.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Enterprise.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnterpriseManagedUser.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnterpriseRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnterpriseTeam.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_OrgRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_OrgRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_OrgRunnerGroup.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_OrgSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_OrgVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Organization.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_RepoRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_RepoRunner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_RepoSecret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_RepoVariable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Runner.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_RunnerGroup.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Secret.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Team.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_TeamRole.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_User.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Variable.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_Workflow.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_WorkflowJob.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/nodes/GH_WorkflowStep.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/docs/og-docs.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-enterprise-owners-role.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-organizations.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/README.md +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/active-leaked-secrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/all-actions-allowed.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/app-installations-all-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-self-approval.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/bypass-pr-requirements.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/dangerous-branch-perms.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/default-repository-permissions.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/environments-admin-bypass.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/expired-pats.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/external-identities-without-scim.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/github-to-azure-identity.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/global-repo-perms.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/hybrid-identities.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/members-can-create-pages.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/members-can-create-public-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/members-can-delete-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/org-owners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/orgs-without-2fa.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/pats-all-repo-access.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/pending-pat-requests.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/public-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/push-to-protected-branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/repository-workflows.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/saml-configuration.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/secret-scanning-alerts.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/self-hosted-runners-can-intercept-broad-token-jobs.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/shared-self-hosted-runners-can-intercept-secret-bearing-jobs.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/team-membership-admin.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/team-structure.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/unprotected-branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/unprotected-default-branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/workflow-jobs-interceptable-by-self-hosted-runners.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/workflow-jobs-with-broad-token-write-permissions.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.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.12.0}/extension/saved_searches/workflow-jobs-with-id-token-write.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/saved_searches/workflow-jobs-with-observed-oidc-auth-steps.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/extension/schema.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/justfile +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/pyproject.toml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/scripts/generate_gh_description_docs.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/main.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/__init__.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/auth.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/extension.yaml +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/github_rest_client.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/github_retry.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/graph.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/kinds/edges.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/kinds/nodes.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/main.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/__init__.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/actions_permission.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/app_installation.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/branch.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/branch_protection_rule.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/branch_push_allowance.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_admin.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_managed_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_organization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_role_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_role_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_team_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_team_organization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_team_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/enterprise_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/env_secret.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/env_variable.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/environment.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/environment_branch_policy.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/external_identity.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/org.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/org_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/org_role_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/org_role_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/org_secret.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/org_variable.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/permissions.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/personal_access_token.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/personal_access_token_access.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/personal_access_token_request.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/projected_enterprise_team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/repo_role_assignment.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/repository_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/repository_secret.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/repository_variable.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/runner.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/saml_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/saml_issuer.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/saml_provider.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/saml_service_provider.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/scim_user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/secret_scanning_alert.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/team.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/team_member.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/team_role.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/user.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/workflow.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/workflow_job.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/workflow_reference.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/workflow_step.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/resources/__init__.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/resources/enterprise.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/runner_ids.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/source.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_app_auth.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_branch_collection_gate.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_branch_protection_traversability.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_credential_permission_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/actions-permissions.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/actionsecrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/app.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/appinstalls.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/branch-policies.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/branch-prot-rules.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/branches.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/custom-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/environments.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/org-pat-request.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/org-pat.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/org-role-teams.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/org-role-users.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/org-roles.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/org.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/pat-repositories.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/repo-collaborators.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/repo-teams.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/repositories.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/scimusers.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/secrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/secretscanningalert.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/selected-org-secrets.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/variables.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_data/api/workflows.json +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_description_docs.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_enterprise_capabilities.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_enterprise_organization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_enterprise_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_environment_model.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_environment_reviewer_lookup.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_error_resilience.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_github_app_retry.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_github_rest_client.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_github_retry.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_lookup.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_org_scim_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_org_secret_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_runner_ids.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_runner_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_runner_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_saml_helpers.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_saml_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_scim_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_source_endpoints.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_source_org_canonicalization.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_team_external_groups.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_variable_models.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_workflow_interception_path.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_workflow_model.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/tests/test_workflow_resources.py +0 -0
- {openhound_github-0.11.0 → openhound_github-0.12.0}/uv.lock +0 -0
|
@@ -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,8 @@ 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. |
|
|
47
51
|
| `query_branches` | `string` | Query for branches. |
|
|
48
52
|
| `query_protected_branches` | `string` | Query for protected branches. |
|
|
49
53
|
| `query_branch_protection_rules` | `string` | Query for branch protection rules. |
|
|
@@ -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,9 @@ query RepoRefs($login: String!, $count: Int!, $after: String) {
|
|
|
279
280
|
}
|
|
280
281
|
pageInfo { endCursor hasNextPage }
|
|
281
282
|
}
|
|
283
|
+
environments(first: 1) {
|
|
284
|
+
totalCount
|
|
285
|
+
}
|
|
282
286
|
}
|
|
283
287
|
pageInfo { endCursor hasNextPage }
|
|
284
288
|
}
|
|
@@ -602,6 +602,25 @@ class GithubLookup(LookupManager):
|
|
|
602
602
|
return None
|
|
603
603
|
return int(row[0])
|
|
604
604
|
|
|
605
|
+
@lru_cache
|
|
606
|
+
def repository_graphql_counts(
|
|
607
|
+
self, repository_node_id: str
|
|
608
|
+
) -> tuple[int | None, int | None]:
|
|
609
|
+
row = self._find_single_row(
|
|
610
|
+
f"""
|
|
611
|
+
SELECT branch_count, environment_count
|
|
612
|
+
FROM {self.schema}.repositories_graphql
|
|
613
|
+
WHERE id = ?
|
|
614
|
+
""",
|
|
615
|
+
[repository_node_id],
|
|
616
|
+
)
|
|
617
|
+
if row is None:
|
|
618
|
+
return None, None
|
|
619
|
+
return (
|
|
620
|
+
None if row[0] is None else int(row[0]),
|
|
621
|
+
None if row[1] is None else int(row[1]),
|
|
622
|
+
)
|
|
623
|
+
|
|
605
624
|
@lru_cache
|
|
606
625
|
def repository_workflow_permissions(
|
|
607
626
|
self, repository_node_id: str
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/models/repository.py
RENAMED
|
@@ -46,6 +46,8 @@ class GHRepositoryProperties(GHNodeProperties):
|
|
|
46
46
|
secret_scanning: Status of secret scanning (e.g., `enabled`, `disabled`).
|
|
47
47
|
branch_ruleset_count: Number of branch-targeted rulesets that apply to this repository.
|
|
48
48
|
has_branch_rulesets: Whether at least one branch-targeted ruleset applies to this repository.
|
|
49
|
+
branch_count: Number of branch refs reported by GitHub for this repository.
|
|
50
|
+
environment_count: Number of deployment environments reported by GitHub for this repository.
|
|
49
51
|
query_branches: Query for branches.
|
|
50
52
|
query_protected_branches: Query for protected branches.
|
|
51
53
|
query_branch_protection_rules: Query for branch protection rules.
|
|
@@ -94,6 +96,8 @@ class GHRepositoryProperties(GHNodeProperties):
|
|
|
94
96
|
secret_scanning: str | None = None
|
|
95
97
|
branch_ruleset_count: int | None = None
|
|
96
98
|
has_branch_rulesets: bool | None = None
|
|
99
|
+
branch_count: int | None = None
|
|
100
|
+
environment_count: int | None = None
|
|
97
101
|
query_branches: str | None = None
|
|
98
102
|
query_protected_branches: str | None = None
|
|
99
103
|
query_branch_protection_rules: str | None = None
|
|
@@ -149,6 +153,7 @@ class Branch(BaseModel):
|
|
|
149
153
|
class Ref(BaseModel):
|
|
150
154
|
page_info: PageInfo = Field(alias="pageInfo")
|
|
151
155
|
nodes: list[Branch]
|
|
156
|
+
total_count: int | None = Field(alias="totalCount", default=None)
|
|
152
157
|
|
|
153
158
|
|
|
154
159
|
class RepositoryQL(BaseModel):
|
|
@@ -158,6 +163,8 @@ class RepositoryQL(BaseModel):
|
|
|
158
163
|
name: str
|
|
159
164
|
refs: Ref
|
|
160
165
|
branch_ruleset_count: int | None = None
|
|
166
|
+
branch_count: int | None = None
|
|
167
|
+
environment_count: int | None = None
|
|
161
168
|
|
|
162
169
|
# Additional
|
|
163
170
|
org_login: str
|
|
@@ -230,6 +237,7 @@ class Repository(BaseAsset):
|
|
|
230
237
|
def as_node(self) -> GHNode:
|
|
231
238
|
rid = self.node_id
|
|
232
239
|
branch_ruleset_count = self._lookup.repository_branch_ruleset_count(rid)
|
|
240
|
+
branch_count, environment_count = self._lookup.repository_graphql_counts(rid)
|
|
233
241
|
workflow_permissions = self._lookup.repository_workflow_permissions(rid)
|
|
234
242
|
default_workflow_permissions, can_approve_pull_request_reviews = (
|
|
235
243
|
workflow_permissions if workflow_permissions else (None, None)
|
|
@@ -272,6 +280,8 @@ class Repository(BaseAsset):
|
|
|
272
280
|
if branch_ruleset_count is not None
|
|
273
281
|
else None
|
|
274
282
|
),
|
|
283
|
+
branch_count=branch_count,
|
|
284
|
+
environment_count=environment_count,
|
|
275
285
|
# secret_scanning=self.secret_scanning,
|
|
276
286
|
query_branches=f"MATCH p=(:GH_Repository {{node_id: '{rid}'}})-[:GH_Contains]->(:GH_Branch) RETURN p",
|
|
277
287
|
query_protected_branches=f"MATCH p=(:GH_Repository {{node_id: '{rid}'}})-[:GH_Contains]->(:GH_Branch)<-[:GH_ProtectedBy]-(:GH_BranchProtectionRule) RETURN p",
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/src/openhound_github/resources/organization.py
RENAMED
|
@@ -1224,10 +1224,14 @@ def repositories_graphql(ctx: SourceContext):
|
|
|
1224
1224
|
for repo in repos_page["nodes"]:
|
|
1225
1225
|
repo_record = {**repo}
|
|
1226
1226
|
branch_rulesets = repo_record.pop("branchRulesets", None) or {}
|
|
1227
|
+
environments = repo_record.pop("environments", None) or {}
|
|
1228
|
+
refs = repo_record.get("refs") or {}
|
|
1227
1229
|
emitted_repositories += 1
|
|
1228
1230
|
yield {
|
|
1229
1231
|
**repo_record,
|
|
1230
1232
|
"branch_ruleset_count": branch_rulesets.get("totalCount"),
|
|
1233
|
+
"branch_count": refs.get("totalCount"),
|
|
1234
|
+
"environment_count": environments.get("totalCount"),
|
|
1231
1235
|
"org_login": org_name,
|
|
1232
1236
|
}
|
|
1233
1237
|
|
|
@@ -1447,20 +1451,23 @@ def workflow_steps(workflow: Workflow):
|
|
|
1447
1451
|
|
|
1448
1452
|
|
|
1449
1453
|
@app.transformer(name="environments", columns=Environment, parallelized=True)
|
|
1450
|
-
def environments(repo:
|
|
1454
|
+
def environments(repo: RepositoryQL, ctx: SourceContext):
|
|
1451
1455
|
"""Fetch deployment environments for a repository.
|
|
1452
1456
|
|
|
1453
1457
|
Args:
|
|
1454
|
-
repo (
|
|
1458
|
+
repo (RepositoryQL): Repository metadata with the GitHub-reported environment count.
|
|
1455
1459
|
ctx (SourceContext): The shared context containing the REST client and organization name.
|
|
1456
1460
|
|
|
1457
1461
|
Yields:
|
|
1458
1462
|
Environment (Environment): Deployment environment record.
|
|
1459
1463
|
"""
|
|
1460
1464
|
|
|
1461
|
-
|
|
1465
|
+
if repo.environment_count == 0:
|
|
1466
|
+
return
|
|
1467
|
+
|
|
1468
|
+
full_name = f"{repo.org_login}/{repo.name}"
|
|
1462
1469
|
repo_name = repo.name
|
|
1463
|
-
repo_node_id = repo.
|
|
1470
|
+
repo_node_id = repo.id
|
|
1464
1471
|
client = _client_for_org(ctx, repo.org_login)
|
|
1465
1472
|
for page in client.paginate(
|
|
1466
1473
|
f"/repos/{full_name}/environments",
|
|
@@ -2334,12 +2341,12 @@ def organization_resources(ctx: SourceContext):
|
|
|
2334
2341
|
repo_roles_base = RepositoryRoleCache(ctx)
|
|
2335
2342
|
repos_resource = repositories(ctx)
|
|
2336
2343
|
workflows_resource = repos_resource | workflows(ctx)
|
|
2337
|
-
environments_resource = repos_resource | environments(ctx)
|
|
2338
2344
|
personal_access_tokens_resource = personal_access_tokens(ctx)
|
|
2339
2345
|
|
|
2340
2346
|
teams_resource = teams(ctx)
|
|
2341
2347
|
team_external_groups_resource = team_external_groups(ctx)
|
|
2342
2348
|
repositories_graphql_resource = repositories_graphql(ctx)
|
|
2349
|
+
environments_resource = repositories_graphql_resource | environments(ctx)
|
|
2343
2350
|
app_installs_resource = app_installations(ctx)
|
|
2344
2351
|
runner_groups_resource = runner_groups(ctx)
|
|
2345
2352
|
runner_group_access_resource = runner_groups_resource | org_runner_group_access(ctx)
|
|
@@ -20,7 +20,9 @@ def ensure_optional_input_tables(
|
|
|
20
20
|
);
|
|
21
21
|
CREATE TABLE IF NOT EXISTS {schema}.repositories_graphql (
|
|
22
22
|
id VARCHAR,
|
|
23
|
-
branch_ruleset_count BIGINT
|
|
23
|
+
branch_ruleset_count BIGINT,
|
|
24
|
+
branch_count BIGINT,
|
|
25
|
+
environment_count BIGINT
|
|
24
26
|
);
|
|
25
27
|
CREATE TABLE IF NOT EXISTS {schema}.branch_protection_rules (
|
|
26
28
|
id VARCHAR,
|
|
@@ -198,6 +200,10 @@ def ensure_optional_input_tables(
|
|
|
198
200
|
ADD COLUMN IF NOT EXISTS id VARCHAR;
|
|
199
201
|
ALTER TABLE {schema}.repositories_graphql
|
|
200
202
|
ADD COLUMN IF NOT EXISTS branch_ruleset_count BIGINT;
|
|
203
|
+
ALTER TABLE {schema}.repositories_graphql
|
|
204
|
+
ADD COLUMN IF NOT EXISTS branch_count BIGINT;
|
|
205
|
+
ALTER TABLE {schema}.repositories_graphql
|
|
206
|
+
ADD COLUMN IF NOT EXISTS environment_count BIGINT;
|
|
201
207
|
|
|
202
208
|
ALTER TABLE {schema}.branch_protection_rules
|
|
203
209
|
ADD COLUMN IF NOT EXISTS id VARCHAR;
|
|
@@ -5,6 +5,7 @@ import pytest
|
|
|
5
5
|
from openhound_github.resources.organization import (
|
|
6
6
|
OrgContext,
|
|
7
7
|
SourceContext,
|
|
8
|
+
environments,
|
|
8
9
|
environment_branch_policies,
|
|
9
10
|
environment_secrets,
|
|
10
11
|
environment_variables,
|
|
@@ -41,6 +42,41 @@ def _environment(name: str) -> SimpleNamespace:
|
|
|
41
42
|
)
|
|
42
43
|
|
|
43
44
|
|
|
45
|
+
def _repository(environment_count: int | None) -> SimpleNamespace:
|
|
46
|
+
return SimpleNamespace(
|
|
47
|
+
id="REPO_1",
|
|
48
|
+
name="repo",
|
|
49
|
+
org_login="acme",
|
|
50
|
+
environment_count=environment_count,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@pytest.mark.parametrize("environment_count", [1, None])
|
|
55
|
+
def test_environments_queries_when_repository_may_have_environments(
|
|
56
|
+
environment_count: int | None,
|
|
57
|
+
) -> None:
|
|
58
|
+
client = _FakeClient()
|
|
59
|
+
|
|
60
|
+
rows = list(environments.__wrapped__(_repository(environment_count), _ctx(client)))
|
|
61
|
+
|
|
62
|
+
assert rows == []
|
|
63
|
+
assert client.paginate_calls == [
|
|
64
|
+
(
|
|
65
|
+
"/repos/acme/repo/environments",
|
|
66
|
+
{"params": {"per_page": 100}, "data_selector": "environments"},
|
|
67
|
+
)
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def test_environments_skips_query_when_repository_has_no_environments() -> None:
|
|
72
|
+
client = _FakeClient()
|
|
73
|
+
|
|
74
|
+
rows = list(environments.__wrapped__(_repository(0), _ctx(client)))
|
|
75
|
+
|
|
76
|
+
assert rows == []
|
|
77
|
+
assert client.paginate_calls == []
|
|
78
|
+
|
|
79
|
+
|
|
44
80
|
@pytest.mark.parametrize(
|
|
45
81
|
("transformer", "suffix"),
|
|
46
82
|
[
|
|
@@ -38,6 +38,8 @@ def _repository_page_data(
|
|
|
38
38
|
repository_name: str,
|
|
39
39
|
*,
|
|
40
40
|
branch_ruleset_count: int | None = None,
|
|
41
|
+
branch_count: int | None = None,
|
|
42
|
+
environment_count: int | None = None,
|
|
41
43
|
repository_end_cursor: str | None = None,
|
|
42
44
|
repositories_has_next_page: bool = False,
|
|
43
45
|
) -> dict:
|
|
@@ -54,12 +56,14 @@ def _repository_page_data(
|
|
|
54
56
|
"name": repository_name,
|
|
55
57
|
"branchRulesets": {"totalCount": branch_ruleset_count},
|
|
56
58
|
"refs": {
|
|
59
|
+
"totalCount": branch_count,
|
|
57
60
|
"nodes": [],
|
|
58
61
|
"pageInfo": {
|
|
59
62
|
"endCursor": None,
|
|
60
63
|
"hasNextPage": False,
|
|
61
64
|
},
|
|
62
65
|
},
|
|
66
|
+
"environments": {"totalCount": environment_count},
|
|
63
67
|
}
|
|
64
68
|
]
|
|
65
69
|
}
|
|
@@ -122,8 +126,18 @@ def _make_repository() -> Repository:
|
|
|
122
126
|
)
|
|
123
127
|
|
|
124
128
|
|
|
125
|
-
def
|
|
126
|
-
client = _FakeClient(
|
|
129
|
+
def test_repositories_graphql_flattens_repository_counts() -> None:
|
|
130
|
+
client = _FakeClient(
|
|
131
|
+
_graphql_response(
|
|
132
|
+
_repository_page_data(
|
|
133
|
+
"R_1",
|
|
134
|
+
"repo",
|
|
135
|
+
branch_ruleset_count=2,
|
|
136
|
+
branch_count=7,
|
|
137
|
+
environment_count=3,
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
)
|
|
127
141
|
ctx = SourceContext(
|
|
128
142
|
client=client,
|
|
129
143
|
organizations=[OrgContext(client=client, org_name="org")],
|
|
@@ -136,10 +150,13 @@ def test_repositories_graphql_flattens_branch_ruleset_count() -> None:
|
|
|
136
150
|
"id": "R_1",
|
|
137
151
|
"name": "repo",
|
|
138
152
|
"refs": {
|
|
153
|
+
"totalCount": 7,
|
|
139
154
|
"nodes": [],
|
|
140
155
|
"pageInfo": {"endCursor": None, "hasNextPage": False},
|
|
141
156
|
},
|
|
142
157
|
"branch_ruleset_count": 2,
|
|
158
|
+
"branch_count": 7,
|
|
159
|
+
"environment_count": 3,
|
|
143
160
|
"org_login": "org",
|
|
144
161
|
}
|
|
145
162
|
]
|
|
@@ -390,6 +407,7 @@ def test_repository_node_surfaces_branch_ruleset_presence() -> None:
|
|
|
390
407
|
lookup = MagicMock()
|
|
391
408
|
lookup.org_id_for_login.return_value = "O_1"
|
|
392
409
|
lookup.repository_branch_ruleset_count.return_value = 2
|
|
410
|
+
lookup.repository_graphql_counts.return_value = (7, 3)
|
|
393
411
|
lookup.repository_workflow_permissions.return_value = ("read", False)
|
|
394
412
|
repo._lookup = lookup
|
|
395
413
|
|
|
@@ -397,10 +415,13 @@ def test_repository_node_surfaces_branch_ruleset_presence() -> None:
|
|
|
397
415
|
|
|
398
416
|
assert node.properties.branch_ruleset_count == 2
|
|
399
417
|
assert node.properties.has_branch_rulesets is True
|
|
418
|
+
assert node.properties.branch_count == 7
|
|
419
|
+
assert node.properties.environment_count == 3
|
|
400
420
|
assert node.properties.default_workflow_permissions == "read"
|
|
401
421
|
assert node.properties.can_approve_pull_request_reviews is False
|
|
402
422
|
assert node.properties.size == 0
|
|
403
423
|
lookup.repository_branch_ruleset_count.assert_called_once_with("R_1")
|
|
424
|
+
lookup.repository_graphql_counts.assert_called_once_with("R_1")
|
|
404
425
|
lookup.repository_workflow_permissions.assert_called_once_with("R_1")
|
|
405
426
|
|
|
406
427
|
|
|
@@ -409,6 +430,7 @@ def test_repository_node_preserves_unknown_branch_ruleset_presence() -> None:
|
|
|
409
430
|
lookup = MagicMock()
|
|
410
431
|
lookup.org_id_for_login.return_value = "O_1"
|
|
411
432
|
lookup.repository_branch_ruleset_count.return_value = None
|
|
433
|
+
lookup.repository_graphql_counts.return_value = (None, None)
|
|
412
434
|
lookup.repository_workflow_permissions.return_value = None
|
|
413
435
|
repo._lookup = lookup
|
|
414
436
|
|
|
@@ -416,6 +438,8 @@ def test_repository_node_preserves_unknown_branch_ruleset_presence() -> None:
|
|
|
416
438
|
|
|
417
439
|
assert node.properties.branch_ruleset_count is None
|
|
418
440
|
assert node.properties.has_branch_rulesets is None
|
|
441
|
+
assert node.properties.branch_count is None
|
|
442
|
+
assert node.properties.environment_count is None
|
|
419
443
|
assert node.properties.default_workflow_permissions is None
|
|
420
444
|
assert node.properties.can_approve_pull_request_reviews is None
|
|
421
445
|
|
|
@@ -436,6 +460,23 @@ def test_repository_branch_ruleset_count_lookup_returns_int() -> None:
|
|
|
436
460
|
assert lookup.repository_branch_ruleset_count("R_2") is None
|
|
437
461
|
|
|
438
462
|
|
|
463
|
+
def test_repository_graphql_counts_lookup_returns_ints() -> None:
|
|
464
|
+
connection = duckdb.connect(":memory:")
|
|
465
|
+
connection.execute("CREATE SCHEMA github")
|
|
466
|
+
connection.execute(
|
|
467
|
+
"CREATE TABLE github.repositories_graphql (id VARCHAR, branch_count BIGINT, environment_count BIGINT)"
|
|
468
|
+
)
|
|
469
|
+
connection.execute(
|
|
470
|
+
"INSERT INTO github.repositories_graphql VALUES ('R_1', 7, 3), ('R_2', NULL, NULL)"
|
|
471
|
+
)
|
|
472
|
+
|
|
473
|
+
lookup = GithubLookup(connection)
|
|
474
|
+
|
|
475
|
+
assert lookup.repository_graphql_counts("R_1") == (7, 3)
|
|
476
|
+
assert lookup.repository_graphql_counts("R_2") == (None, None)
|
|
477
|
+
assert lookup.repository_graphql_counts("R_3") == (None, None)
|
|
478
|
+
|
|
479
|
+
|
|
439
480
|
def test_repository_workflow_permissions_lookup_returns_collected_policy() -> None:
|
|
440
481
|
connection = duckdb.connect(":memory:")
|
|
441
482
|
connection.execute("CREATE SCHEMA github")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_AddCollaborator.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ApprovesDeploymentTo.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_BypassBranchProtection.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanAccessSecret.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanAssumeIdentity.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateBranch.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateEnvironment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanCreateRepositories.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanDeployToEnvironment.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanEditEnvironment.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanEditProtection.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanInterceptJob.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CanRequestOIDCTokenFor.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CloseDiscussion.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ClosePullRequest.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_CreateRepository.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteDiscussion.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_DeleteDiscussionComment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditDiscussionCategory.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditDiscussionComment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditRepoMetadata.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_EditRepoProtections.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasExternalIdentity.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasPersonalAccessToken.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_HasSamlIdentityProvider.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageDeployKeys.md
RENAMED
|
File without changes
|
{openhound_github-0.11.0 → openhound_github-0.12.0}/descriptions/edges/GH_ManageDiscussionBadges.md
RENAMED
|
File without changes
|