openhound-github 0.6.4__tar.gz → 0.6.5__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.6.4 → openhound_github-0.6.5}/PKG-INFO +1 -1
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/resources/organization.py +8 -1
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/source.py +28 -0
- openhound_github-0.6.5/tests/test_source_org_canonicalization.py +138 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/CODE_OF_CONDUCT.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/CONTRIBUTING.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GOVERNANCE.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GitHub-COC-Header.png +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GitHub-CONTRIB-Header.png +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GitHub-GOV-Header.png +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GitHub-Header.png +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GitHub-LIC-Header.png +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/GitHub-SEC-Header.png +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/SECURITY.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/SO-Dark.svg +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/SO-FOSS-Dark.svg +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/SO-FOSS-Light.svg +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/SO-Light.svg +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/workflows/publish.yml +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/workflows/release-on-merge.yml +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.github/workflows/validate-branch.yml +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.gitignore +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.gitmodules +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/.pre-commit-config.yaml +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/LICENSE.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/README.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_AddAssignee.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_AddCollaborator.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_AddLabel.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_AddMember.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_AdminTo.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_AssignedTo.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CallsWorkflow.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanAccess.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanCreateBranch.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanEditProtection.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanPwnRequest.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanUseRunner.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanWriteBranch.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CloseDiscussion.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CloseIssue.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ClosePullRequest.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_Contains.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateRepository.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateTag.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateTeam.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteIssue.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteTag.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DependsOn.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeploysTo.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditRepoProtections.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasBaseRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasBranch.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasEnvironment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasJob.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasMember.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasRunner.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasSecret.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasStep.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasVariable.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasWorkflow.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_InheritedFrom.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_InstalledAs.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_InviteMember.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_IsEligibleFor.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageTopics.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageWebhooks.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_MapsToUser.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_MemberOf.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_Owns.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ProtectedBy.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReadRepoContents.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_RemoveAssignee.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_RemoveLabel.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReopenIssue.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_RequestPrReview.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_RunOrgMigration.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_SetIssueType.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_SetMilestone.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_SetSocialPreview.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_SyncedTo.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_TransferRepository.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_UsesSecret.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_UsesVariable.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ValidToken.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteRepoContents.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_App.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_AppInstallation.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_Branch.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_Environment.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_OrgRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_OrgRunner.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_OrgRunnerGroup.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_OrgSecret.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_OrgVariable.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_Organization.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_RepoRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_RepoRunner.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_RepoSecret.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_RepoVariable.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_Repository.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_Team.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_TeamRole.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_User.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_Workflow.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_WorkflowJob.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/nodes/GH_WorkflowStep.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/docs/og-docs.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-organizations.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/README.md +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/active-leaked-secrets.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/all-actions-allowed.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/app-installations-all-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-self-approval.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/bypass-pr-requirements.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/dangerous-branch-perms.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/default-repository-permissions.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/environments-admin-bypass.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/expired-pats.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/external-identities-without-scim.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/github-to-azure-identity.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/global-repo-perms.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/hybrid-identities.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/members-can-create-pages.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/members-can-create-public-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/members-can-delete-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/org-owners.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/orgs-without-2fa.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/pats-all-repo-access.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/pending-pat-requests.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/public-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/push-to-protected-branches.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/repository-workflows.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/saml-configuration.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/secret-scanning-alerts.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/team-membership-admin.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/team-structure.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/unprotected-branches.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/unprotected-default-branches.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/extension/schema.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/justfile +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/pyproject.toml +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/main.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/__init__.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/auth.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/extension.yaml +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/graph.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/graphql.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/helpers.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/kinds/edges.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/kinds/nodes.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/lookup.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/main.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/__init__.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/actions_permission.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/app_installation.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/branch.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/branch_protection_rule.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/branch_push_allowance.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_admin.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_helpers.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_managed_user.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_member.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_organization.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_role.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_role_team.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_role_user.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_team.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_team_member.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_team_organization.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_team_role.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/enterprise_user.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/env_secret.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/env_variable.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/environment.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/environment_branch_policy.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/external_identity.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/org.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/org_role.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/org_role_member.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/org_role_team.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/org_secret.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/org_variable.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/personal_access_token.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/personal_access_token_access.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/personal_access_token_request.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/projected_enterprise_team.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/repo_role_assignment.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/repository.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/repository_role.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/repository_secret.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/repository_variable.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/runner.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/saml_helpers.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/saml_issuer.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/saml_provider.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/saml_service_provider.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/scim_user.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/secret_scanning_alert.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/team.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/team_member.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/team_role.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/user.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/workflow.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/workflow_job.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/models/workflow_step.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/resources/__init__.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/resources/enterprise.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/runner_ids.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/transforms.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_app_auth.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_branch_collection_gate.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_branch_protection_traversability.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/actions-permissions.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/actionsecrets.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/app.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/appinstalls.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/branch-policies.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/branch-prot-rules.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/branches.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/custom-roles.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/environments.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/org-pat-request.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/org-pat.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/org-role-teams.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/org-role-users.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/org-roles.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/org.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/pat-repositories.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/repo-collaborators.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/repo-teams.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/repositories.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/scimusers.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/secrets.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/secretscanningalert.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/selected-org-secrets.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/variables.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_data/api/workflows.json +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_enterprise_capabilities.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_enterprise_organization.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_enterprise_resources.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_environment_model.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_environment_resources.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_environment_reviewer_lookup.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_error_resilience.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_github_app_retry.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_github_rest_client.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_github_retry.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_helpers.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_lookup.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_org_scim_resources.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_org_secret_models.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_repository_rulesets.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_runner_ids.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_runner_models.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_runner_resources.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_saml_helpers.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_saml_models.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_scim_models.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_variable_models.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/tests/test_workflow_model.py +0 -0
- {openhound_github-0.6.4 → openhound_github-0.6.5}/uv.lock +0 -0
{openhound_github-0.6.4 → openhound_github-0.6.5}/src/openhound_github/resources/organization.py
RENAMED
|
@@ -101,6 +101,7 @@ class SourceContext:
|
|
|
101
101
|
github_deployment_id: str = DEFAULT_GITHUB_DEPLOYMENT_ID
|
|
102
102
|
github_web_origin: str = DEFAULT_GITHUB_WEB_ORIGIN
|
|
103
103
|
cache_lock: Lock = field(default_factory=Lock)
|
|
104
|
+
organizations_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
104
105
|
app_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
105
106
|
actions_permissions_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
106
107
|
runner_permissions_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
@@ -252,7 +253,13 @@ def organizations(ctx: SourceContext):
|
|
|
252
253
|
org_name = org.org_name
|
|
253
254
|
client = org.client
|
|
254
255
|
try:
|
|
255
|
-
org_data =
|
|
256
|
+
org_data = _cached_org_response(
|
|
257
|
+
ctx,
|
|
258
|
+
ctx.organizations_cache,
|
|
259
|
+
client,
|
|
260
|
+
org_name,
|
|
261
|
+
f"/orgs/{org_name}",
|
|
262
|
+
)
|
|
256
263
|
|
|
257
264
|
actions = _actions_permissions(ctx, client, org_name)
|
|
258
265
|
self_hosted_runners = _runner_permissions(ctx, client, org_name)
|
|
@@ -53,6 +53,7 @@ class SourceContext:
|
|
|
53
53
|
github_deployment_id: str = DEFAULT_GITHUB_DEPLOYMENT_ID
|
|
54
54
|
github_web_origin: str = DEFAULT_GITHUB_WEB_ORIGIN
|
|
55
55
|
cache_lock: Lock = field(default_factory=Lock)
|
|
56
|
+
organizations_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
56
57
|
app_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
57
58
|
actions_permissions_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
58
59
|
runner_permissions_cache: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
@@ -63,6 +64,31 @@ class SourceContext:
|
|
|
63
64
|
return [org.org_name for org in self.organizations or []]
|
|
64
65
|
|
|
65
66
|
|
|
67
|
+
def _canonicalize_org_names(ctx: SourceContext) -> None:
|
|
68
|
+
for org in ctx.organizations or []:
|
|
69
|
+
configured_name = org.org_name
|
|
70
|
+
try:
|
|
71
|
+
org_data = org.client.get(f"/orgs/{configured_name}").json()
|
|
72
|
+
except Exception as exc:
|
|
73
|
+
logger.warning(
|
|
74
|
+
"Unable to resolve canonical GitHub login for organization '%s': %s",
|
|
75
|
+
configured_name,
|
|
76
|
+
exc,
|
|
77
|
+
)
|
|
78
|
+
continue
|
|
79
|
+
|
|
80
|
+
canonical_name = org_data.get("login")
|
|
81
|
+
if not isinstance(canonical_name, str) or not canonical_name:
|
|
82
|
+
logger.warning(
|
|
83
|
+
"GitHub organization response for '%s' did not include a canonical login",
|
|
84
|
+
configured_name,
|
|
85
|
+
)
|
|
86
|
+
continue
|
|
87
|
+
|
|
88
|
+
org.org_name = canonical_name
|
|
89
|
+
ctx.organizations_cache[canonical_name] = org_data
|
|
90
|
+
|
|
91
|
+
|
|
66
92
|
@configspec
|
|
67
93
|
class GithubCredentials(CredentialsConfiguration):
|
|
68
94
|
org_name: str | None = None
|
|
@@ -228,6 +254,7 @@ def source(
|
|
|
228
254
|
)
|
|
229
255
|
)
|
|
230
256
|
|
|
257
|
+
_canonicalize_org_names(ctx)
|
|
231
258
|
return organization_resources(ctx)
|
|
232
259
|
|
|
233
260
|
else:
|
|
@@ -255,4 +282,5 @@ def source(
|
|
|
255
282
|
github_web_origin=github_web_origin,
|
|
256
283
|
)
|
|
257
284
|
)
|
|
285
|
+
_canonicalize_org_names(ctx)
|
|
258
286
|
return organization_resources(ctx)
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import importlib
|
|
2
|
+
import inspect
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from openhound_github.resources.organization import organizations
|
|
7
|
+
from openhound_github.source import (
|
|
8
|
+
GithubOrgAppCredentials,
|
|
9
|
+
GithubTokenCredentials,
|
|
10
|
+
OrgContext,
|
|
11
|
+
SourceContext,
|
|
12
|
+
_canonicalize_org_names,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class _FakeResponse:
|
|
17
|
+
def __init__(self, payload: dict):
|
|
18
|
+
self._payload = payload
|
|
19
|
+
|
|
20
|
+
def json(self) -> dict:
|
|
21
|
+
return self._payload
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class _FakeClient:
|
|
25
|
+
def __init__(self, payloads: dict[str, dict]):
|
|
26
|
+
self.payloads = payloads
|
|
27
|
+
self.get_calls: list[str] = []
|
|
28
|
+
|
|
29
|
+
def get(self, path: str) -> _FakeResponse:
|
|
30
|
+
self.get_calls.append(path)
|
|
31
|
+
return _FakeResponse(self.payloads[path])
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def test_canonicalize_org_names_rewrites_org_context_and_caches_response() -> None:
|
|
35
|
+
client = _FakeClient(
|
|
36
|
+
{
|
|
37
|
+
"/orgs/spectertst": {
|
|
38
|
+
"login": "SpecterTst",
|
|
39
|
+
"node_id": "O_kgDOCoV2OQ",
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
ctx = SourceContext(
|
|
44
|
+
organizations=[OrgContext(client=client, org_name="spectertst")]
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
_canonicalize_org_names(ctx)
|
|
48
|
+
|
|
49
|
+
assert ctx.organizations[0].org_name == "SpecterTst"
|
|
50
|
+
assert ctx.organizations_cache == {
|
|
51
|
+
"SpecterTst": {
|
|
52
|
+
"login": "SpecterTst",
|
|
53
|
+
"node_id": "O_kgDOCoV2OQ",
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_organizations_reuses_preflight_org_response() -> None:
|
|
59
|
+
client = _FakeClient(
|
|
60
|
+
{
|
|
61
|
+
"/orgs/spectertst": {
|
|
62
|
+
"login": "SpecterTst",
|
|
63
|
+
"node_id": "O_kgDOCoV2OQ",
|
|
64
|
+
},
|
|
65
|
+
"/orgs/SpecterTst/actions/permissions": {},
|
|
66
|
+
"/orgs/SpecterTst/actions/permissions/self-hosted-runners": {},
|
|
67
|
+
"/orgs/SpecterTst/actions/permissions/workflow": {},
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
ctx = SourceContext(
|
|
71
|
+
organizations=[OrgContext(client=client, org_name="spectertst")]
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
_canonicalize_org_names(ctx)
|
|
75
|
+
rows = list(inspect.unwrap(organizations._pipe.gen)(ctx))
|
|
76
|
+
|
|
77
|
+
assert rows[0]["login"] == "SpecterTst"
|
|
78
|
+
assert client.get_calls == [
|
|
79
|
+
"/orgs/spectertst",
|
|
80
|
+
"/orgs/SpecterTst/actions/permissions",
|
|
81
|
+
"/orgs/SpecterTst/actions/permissions/self-hosted-runners",
|
|
82
|
+
"/orgs/SpecterTst/actions/permissions/workflow",
|
|
83
|
+
]
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@pytest.mark.parametrize(
|
|
87
|
+
"credentials",
|
|
88
|
+
(
|
|
89
|
+
GithubTokenCredentials(token="token", org_name="spectertst"),
|
|
90
|
+
GithubOrgAppCredentials(
|
|
91
|
+
client_id="Iv1.client-id",
|
|
92
|
+
install_id="12345",
|
|
93
|
+
key_path="/tmp/github-app.pem",
|
|
94
|
+
org_name="spectertst",
|
|
95
|
+
),
|
|
96
|
+
),
|
|
97
|
+
)
|
|
98
|
+
def test_org_only_sources_canonicalize_before_resource_fanout(
|
|
99
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
100
|
+
credentials,
|
|
101
|
+
) -> None:
|
|
102
|
+
source_module = importlib.import_module("openhound_github.source")
|
|
103
|
+
captured_ctx: dict[str, SourceContext] = {}
|
|
104
|
+
|
|
105
|
+
class FakeRESTClient:
|
|
106
|
+
def __init__(self, **kwargs) -> None:
|
|
107
|
+
pass
|
|
108
|
+
|
|
109
|
+
def get(self, path: str) -> _FakeResponse:
|
|
110
|
+
assert path == "/orgs/spectertst"
|
|
111
|
+
return _FakeResponse({"login": "SpecterTst", "node_id": "O_kgDOCoV2OQ"})
|
|
112
|
+
|
|
113
|
+
monkeypatch.setattr(source_module, "RESTClient", FakeRESTClient)
|
|
114
|
+
monkeypatch.setattr(source_module, "GithubInstallation", lambda **_: object())
|
|
115
|
+
monkeypatch.setattr(
|
|
116
|
+
source_module, "GitHubAppInstallationAuth", lambda **_: object()
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
def fake_organization_resources(ctx: SourceContext):
|
|
120
|
+
captured_ctx["ctx"] = ctx
|
|
121
|
+
return ()
|
|
122
|
+
|
|
123
|
+
monkeypatch.setattr(
|
|
124
|
+
source_module, "organization_resources", fake_organization_resources
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
resources = source_module.source.__wrapped__(
|
|
128
|
+
credentials=credentials,
|
|
129
|
+
host="https://api.github.com",
|
|
130
|
+
emit_legacy_scim_correlations=False,
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
assert resources == ()
|
|
134
|
+
assert captured_ctx["ctx"].organizations[0].org_name == "SpecterTst"
|
|
135
|
+
assert (
|
|
136
|
+
captured_ctx["ctx"].organizations_cache["SpecterTst"]["node_id"]
|
|
137
|
+
== "O_kgDOCoV2OQ"
|
|
138
|
+
)
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ApprovesDeploymentTo.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_BypassBranchProtection.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanAssumeIdentity.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanCreateEnvironment.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanDeployToEnvironment.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanEditEnvironment.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CanEditProtection.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
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateDiscussionCategory.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteAlertsCodeScanning.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_DeleteDiscussionComment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditCategoryOnDiscussion.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditDiscussionCategory.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditDiscussionComment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_EditRepoProtections.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasExternalIdentity.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_HasPersonalAccessToken.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageDiscussionBadges.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSecurityProducts.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsMergeTypes.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsPages.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsProjects.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ManageSettingsWiki.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_MatchesEnvironmentPolicy.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.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_PushProtectedBranch.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
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ReopenPullRequest.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ResolveDependabotAlerts.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_RestrictionsCanPush.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_SetInteractionLimits.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ToggleDiscussionAnswer.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_TransferRepository.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ViewDependabotAlerts.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_ViewSecretScanningAlerts.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteCodeScanning.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteRepoContents.md
RENAMED
|
File without changes
|
{openhound_github-0.6.4 → openhound_github-0.6.5}/descriptions/edges/GH_WriteRepoPullRequests.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|