openhound-github 0.7.0__tar.gz → 0.7.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. {openhound_github-0.7.0 → openhound_github-0.7.1}/PKG-INFO +1 -1
  2. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/graphql.py +18 -1
  3. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_admin.py +1 -1
  4. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/resources/enterprise.py +112 -12
  5. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_enterprise_resources.py +220 -0
  6. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/CODE_OF_CONDUCT.md +0 -0
  7. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/CONTRIBUTING.md +0 -0
  8. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GOVERNANCE.md +0 -0
  9. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GitHub-COC-Header.png +0 -0
  10. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GitHub-CONTRIB-Header.png +0 -0
  11. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GitHub-GOV-Header.png +0 -0
  12. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GitHub-Header.png +0 -0
  13. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GitHub-LIC-Header.png +0 -0
  14. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/GitHub-SEC-Header.png +0 -0
  15. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/SECURITY.md +0 -0
  16. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/SO-Dark.svg +0 -0
  17. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/SO-FOSS-Dark.svg +0 -0
  18. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/SO-FOSS-Light.svg +0 -0
  19. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/SO-Light.svg +0 -0
  20. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/workflows/publish.yml +0 -0
  21. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/workflows/release-on-merge.yml +0 -0
  22. {openhound_github-0.7.0 → openhound_github-0.7.1}/.github/workflows/validate-branch.yml +0 -0
  23. {openhound_github-0.7.0 → openhound_github-0.7.1}/.gitignore +0 -0
  24. {openhound_github-0.7.0 → openhound_github-0.7.1}/.gitmodules +0 -0
  25. {openhound_github-0.7.0 → openhound_github-0.7.1}/.pre-commit-config.yaml +0 -0
  26. {openhound_github-0.7.0 → openhound_github-0.7.1}/LICENSE.md +0 -0
  27. {openhound_github-0.7.0 → openhound_github-0.7.1}/README.md +0 -0
  28. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_AddAssignee.md +0 -0
  29. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_AddCollaborator.md +0 -0
  30. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_AddLabel.md +0 -0
  31. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_AddMember.md +0 -0
  32. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_AdminTo.md +0 -0
  33. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
  34. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_AssignedTo.md +0 -0
  35. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
  36. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
  37. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CallsWorkflow.md +0 -0
  38. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanAccess.md +0 -0
  39. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
  40. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanCreateBranch.md +0 -0
  41. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
  42. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
  43. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
  44. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
  45. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanEditProtection.md +0 -0
  46. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanPwnRequest.md +0 -0
  47. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
  48. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanUseRunner.md +0 -0
  49. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CanWriteBranch.md +0 -0
  50. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CloseDiscussion.md +0 -0
  51. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CloseIssue.md +0 -0
  52. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ClosePullRequest.md +0 -0
  53. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_Contains.md +0 -0
  54. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
  55. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
  56. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CreateRepository.md +0 -0
  57. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
  58. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CreateTag.md +0 -0
  59. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_CreateTeam.md +0 -0
  60. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
  61. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
  62. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
  63. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DeleteIssue.md +0 -0
  64. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DeleteTag.md +0 -0
  65. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DependsOn.md +0 -0
  66. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_DeploysTo.md +0 -0
  67. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
  68. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
  69. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
  70. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
  71. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
  72. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
  73. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_EditRepoProtections.md +0 -0
  74. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasBaseRole.md +0 -0
  75. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasBranch.md +0 -0
  76. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasEnvironment.md +0 -0
  77. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
  78. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasJob.md +0 -0
  79. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasMember.md +0 -0
  80. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
  81. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
  82. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasRole.md +0 -0
  83. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasRunner.md +0 -0
  84. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
  85. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasSecret.md +0 -0
  86. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasStep.md +0 -0
  87. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasVariable.md +0 -0
  88. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_HasWorkflow.md +0 -0
  89. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_InheritedFrom.md +0 -0
  90. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_InstalledAs.md +0 -0
  91. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_InviteMember.md +0 -0
  92. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_IsEligibleFor.md +0 -0
  93. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
  94. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
  95. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
  96. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
  97. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
  98. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
  99. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
  100. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
  101. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
  102. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
  103. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageTopics.md +0 -0
  104. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ManageWebhooks.md +0 -0
  105. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_MapsToUser.md +0 -0
  106. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
  107. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
  108. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_MemberOf.md +0 -0
  109. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
  110. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
  111. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
  112. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
  113. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_Owns.md +0 -0
  114. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ProtectedBy.md +0 -0
  115. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
  116. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
  117. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
  118. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
  119. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
  120. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReadRepoContents.md +0 -0
  121. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_RemoveAssignee.md +0 -0
  122. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_RemoveLabel.md +0 -0
  123. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
  124. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReopenIssue.md +0 -0
  125. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
  126. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_RequestPrReview.md +0 -0
  127. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
  128. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
  129. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
  130. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_RunOrgMigration.md +0 -0
  131. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
  132. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_SetIssueType.md +0 -0
  133. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_SetMilestone.md +0 -0
  134. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_SetSocialPreview.md +0 -0
  135. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_SyncedTo.md +0 -0
  136. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
  137. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
  138. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_TransferRepository.md +0 -0
  139. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_UsesSecret.md +0 -0
  140. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_UsesVariable.md +0 -0
  141. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ValidToken.md +0 -0
  142. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
  143. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
  144. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
  145. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
  146. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
  147. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
  148. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
  149. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
  150. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
  151. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteRepoContents.md +0 -0
  152. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
  153. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_App.md +0 -0
  154. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_AppInstallation.md +0 -0
  155. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_Branch.md +0 -0
  156. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
  157. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
  158. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
  159. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_Environment.md +0 -0
  160. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
  161. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
  162. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
  163. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
  164. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_OrgRole.md +0 -0
  165. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_OrgRunner.md +0 -0
  166. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_OrgRunnerGroup.md +0 -0
  167. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_OrgSecret.md +0 -0
  168. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_OrgVariable.md +0 -0
  169. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_Organization.md +0 -0
  170. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
  171. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
  172. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_RepoRole.md +0 -0
  173. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_RepoRunner.md +0 -0
  174. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_RepoSecret.md +0 -0
  175. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_RepoVariable.md +0 -0
  176. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_Repository.md +0 -0
  177. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
  178. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
  179. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_Team.md +0 -0
  180. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_TeamRole.md +0 -0
  181. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_User.md +0 -0
  182. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_Workflow.md +0 -0
  183. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_WorkflowJob.md +0 -0
  184. {openhound_github-0.7.0 → openhound_github-0.7.1}/descriptions/nodes/GH_WorkflowStep.md +0 -0
  185. {openhound_github-0.7.0 → openhound_github-0.7.1}/docs/og-docs.json +0 -0
  186. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
  187. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
  188. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
  189. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
  190. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-organizations.json +0 -0
  191. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
  192. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
  193. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
  194. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
  195. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
  196. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
  197. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/README.md +0 -0
  198. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
  199. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/active-leaked-secrets.json +0 -0
  200. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
  201. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/all-actions-allowed.json +0 -0
  202. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/app-installations-all-repos.json +0 -0
  203. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
  204. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
  205. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
  206. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
  207. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
  208. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
  209. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-self-approval.json +0 -0
  210. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
  211. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/bypass-pr-requirements.json +0 -0
  212. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/dangerous-branch-perms.json +0 -0
  213. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/default-repository-permissions.json +0 -0
  214. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
  215. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
  216. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
  217. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
  218. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/environments-admin-bypass.json +0 -0
  219. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/expired-pats.json +0 -0
  220. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/external-identities-without-scim.json +0 -0
  221. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/github-to-azure-identity.json +0 -0
  222. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/global-repo-perms.json +0 -0
  223. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/hybrid-identities.json +0 -0
  224. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
  225. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/members-can-create-pages.json +0 -0
  226. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/members-can-create-public-repos.json +0 -0
  227. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/members-can-delete-repos.json +0 -0
  228. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
  229. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
  230. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/org-owners.json +0 -0
  231. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/orgs-without-2fa.json +0 -0
  232. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/pats-all-repo-access.json +0 -0
  233. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/pending-pat-requests.json +0 -0
  234. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
  235. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
  236. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
  237. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/public-repos.json +0 -0
  238. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
  239. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/push-to-protected-branches.json +0 -0
  240. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
  241. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
  242. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/repository-workflows.json +0 -0
  243. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/saml-configuration.json +0 -0
  244. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/secret-scanning-alerts.json +0 -0
  245. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
  246. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
  247. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/team-membership-admin.json +0 -0
  248. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/team-structure.json +0 -0
  249. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/unprotected-branches.json +0 -0
  250. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
  251. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/unprotected-default-branches.json +0 -0
  252. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
  253. {openhound_github-0.7.0 → openhound_github-0.7.1}/extension/schema.json +0 -0
  254. {openhound_github-0.7.0 → openhound_github-0.7.1}/justfile +0 -0
  255. {openhound_github-0.7.0 → openhound_github-0.7.1}/pyproject.toml +0 -0
  256. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/main.py +0 -0
  257. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/__init__.py +0 -0
  258. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/auth.py +0 -0
  259. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/extension.yaml +0 -0
  260. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/github_rest_client.py +0 -0
  261. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/github_retry.py +0 -0
  262. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/graph.py +0 -0
  263. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/helpers.py +0 -0
  264. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/kinds/edges.py +0 -0
  265. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/kinds/nodes.py +0 -0
  266. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/lookup.py +0 -0
  267. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/main.py +0 -0
  268. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/__init__.py +0 -0
  269. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/actions_permission.py +0 -0
  270. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/app_installation.py +0 -0
  271. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/branch.py +0 -0
  272. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
  273. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/branch_protection_rule.py +0 -0
  274. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/branch_push_allowance.py +0 -0
  275. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise.py +0 -0
  276. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_helpers.py +0 -0
  277. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_managed_user.py +0 -0
  278. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_member.py +0 -0
  279. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_organization.py +0 -0
  280. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_role.py +0 -0
  281. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_role_team.py +0 -0
  282. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_role_user.py +0 -0
  283. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_team.py +0 -0
  284. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_team_member.py +0 -0
  285. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_team_organization.py +0 -0
  286. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_team_role.py +0 -0
  287. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/enterprise_user.py +0 -0
  288. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/env_secret.py +0 -0
  289. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/env_variable.py +0 -0
  290. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/environment.py +0 -0
  291. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/environment_branch_policy.py +0 -0
  292. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/external_identity.py +0 -0
  293. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/org.py +0 -0
  294. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/org_role.py +0 -0
  295. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/org_role_member.py +0 -0
  296. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/org_role_team.py +0 -0
  297. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/org_secret.py +0 -0
  298. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/org_variable.py +0 -0
  299. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/personal_access_token.py +0 -0
  300. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/personal_access_token_access.py +0 -0
  301. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/personal_access_token_request.py +0 -0
  302. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/projected_enterprise_team.py +0 -0
  303. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/repo_role_assignment.py +0 -0
  304. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/repository.py +0 -0
  305. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/repository_role.py +0 -0
  306. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/repository_secret.py +0 -0
  307. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/repository_variable.py +0 -0
  308. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/runner.py +0 -0
  309. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
  310. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/saml_helpers.py +0 -0
  311. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/saml_issuer.py +0 -0
  312. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/saml_provider.py +0 -0
  313. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/saml_service_provider.py +0 -0
  314. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/scim_user.py +0 -0
  315. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/secret_scanning_alert.py +0 -0
  316. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/team.py +0 -0
  317. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/team_member.py +0 -0
  318. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/team_role.py +0 -0
  319. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/user.py +0 -0
  320. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/workflow.py +0 -0
  321. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/workflow_job.py +0 -0
  322. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/models/workflow_step.py +0 -0
  323. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/resources/__init__.py +0 -0
  324. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/resources/organization.py +0 -0
  325. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/runner_ids.py +0 -0
  326. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/source.py +0 -0
  327. {openhound_github-0.7.0 → openhound_github-0.7.1}/src/openhound_github/transforms.py +0 -0
  328. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_app_auth.py +0 -0
  329. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_branch_collection_gate.py +0 -0
  330. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_branch_protection_traversability.py +0 -0
  331. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/actions-permissions.json +0 -0
  332. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/actionsecrets.json +0 -0
  333. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/app.json +0 -0
  334. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/appinstalls.json +0 -0
  335. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/branch-policies.json +0 -0
  336. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/branch-prot-rules.json +0 -0
  337. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/branches.json +0 -0
  338. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/custom-roles.json +0 -0
  339. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/environments.json +0 -0
  340. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/org-pat-request.json +0 -0
  341. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/org-pat.json +0 -0
  342. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/org-role-teams.json +0 -0
  343. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/org-role-users.json +0 -0
  344. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/org-roles.json +0 -0
  345. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/org.json +0 -0
  346. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/pat-repositories.json +0 -0
  347. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/repo-collaborators.json +0 -0
  348. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/repo-teams.json +0 -0
  349. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/repositories.json +0 -0
  350. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/scimusers.json +0 -0
  351. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/secrets.json +0 -0
  352. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/secretscanningalert.json +0 -0
  353. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/selected-org-secrets.json +0 -0
  354. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/variables.json +0 -0
  355. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_data/api/workflows.json +0 -0
  356. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_enterprise_capabilities.py +0 -0
  357. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_enterprise_organization.py +0 -0
  358. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_environment_model.py +0 -0
  359. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_environment_resources.py +0 -0
  360. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_environment_reviewer_lookup.py +0 -0
  361. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_error_resilience.py +0 -0
  362. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_github_app_retry.py +0 -0
  363. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_github_rest_client.py +0 -0
  364. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_github_retry.py +0 -0
  365. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_helpers.py +0 -0
  366. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_lookup.py +0 -0
  367. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_org_scim_resources.py +0 -0
  368. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_org_secret_models.py +0 -0
  369. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_repository_rulesets.py +0 -0
  370. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_runner_ids.py +0 -0
  371. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_runner_models.py +0 -0
  372. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_runner_resources.py +0 -0
  373. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_saml_helpers.py +0 -0
  374. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_saml_models.py +0 -0
  375. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_scim_models.py +0 -0
  376. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_source_endpoints.py +0 -0
  377. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_source_org_canonicalization.py +0 -0
  378. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_team_external_groups.py +0 -0
  379. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_variable_models.py +0 -0
  380. {openhound_github-0.7.0 → openhound_github-0.7.1}/tests/test_workflow_model.py +0 -0
  381. {openhound_github-0.7.0 → openhound_github-0.7.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: openhound-github
3
- Version: 0.7.0
3
+ Version: 0.7.1
4
4
  Summary: Github collector for OpenHound
5
5
  Author-email: "jdreijer@specterops.io" <jdreijer@specterops.io>, Jared Atkinson <jatkinson@specterops.io>
6
6
  License-File: LICENSE.md
@@ -98,7 +98,7 @@ ENTERPRISE_ADMINS_QUERY = """
98
98
  query EnterpriseAdmins($slug: String!, $count: Int = 100, $after: String = null) {
99
99
  enterprise(slug: $slug) {
100
100
  ownerInfo {
101
- admins(first: $count, after: $after) {
101
+ admins(first: $count, after: $after, role: OWNER) {
102
102
  edges {
103
103
  node {
104
104
  id
@@ -115,6 +115,23 @@ query EnterpriseAdmins($slug: String!, $count: Int = 100, $after: String = null)
115
115
  }
116
116
  """
117
117
 
118
+ ORGANIZATION_ENTERPRISE_OWNERS_QUERY = """
119
+ query OrganizationEnterpriseOwners($login: String!, $count: Int = 100, $after: String = null) {
120
+ organization(login: $login) {
121
+ enterpriseOwners(first: $count, after: $after) {
122
+ nodes {
123
+ id
124
+ login
125
+ }
126
+ pageInfo {
127
+ endCursor
128
+ hasNextPage
129
+ }
130
+ }
131
+ }
132
+ }
133
+ """
134
+
118
135
  ENTERPRISE_SAML_QUERY = """
119
136
  query EnterpriseSAML($slug: String!, $count: Int = 100, $after: String = null) {
120
137
  enterprise(slug: $slug) {
@@ -18,4 +18,4 @@ from openhound_github.models.enterprise_role_user import EnterpriseRoleUser
18
18
  ],
19
19
  )
20
20
  class EnterpriseAdmin(EnterpriseRoleUser):
21
- pass
21
+ role_id: str
@@ -1,5 +1,6 @@
1
1
  import logging
2
- from dataclasses import dataclass
2
+ from dataclasses import dataclass, field
3
+ from typing import Any
3
4
 
4
5
  from dlt.sources.helpers.rest_client.client import RESTClient
5
6
  from dlt.sources.helpers.rest_client.paginators import OffsetPaginator
@@ -7,6 +8,7 @@ from dlt.sources.helpers.rest_client.paginators import OffsetPaginator
7
8
  from openhound_github.graphql import (
8
9
  ENTERPRISE_ADMINS_QUERY,
9
10
  ENTERPRISE_MEMBERS_QUERY,
11
+ ORGANIZATION_ENTERPRISE_OWNERS_QUERY,
10
12
  ENTERPRISE_SAML_PROVIDER_QUERY,
11
13
  ENTERPRISE_QUERY,
12
14
  ENTERPRISE_SAML_QUERY,
@@ -65,6 +67,7 @@ class SourceContext:
65
67
  emit_legacy_scim_correlations: bool = False
66
68
  github_deployment_id: str = DEFAULT_GITHUB_DEPLOYMENT_ID
67
69
  github_web_origin: str = DEFAULT_GITHUB_WEB_ORIGIN
70
+ organizations: list[Any] = field(default_factory=list)
68
71
 
69
72
 
70
73
  def _graphql_client(ctx: SourceContext) -> tuple[RESTClient, str]:
@@ -641,6 +644,60 @@ def enterprise_role_users(role: EnterpriseRole, ctx: SourceContext):
641
644
 
642
645
  @app.transformer(name="enterprise_admins", columns=EnterpriseAdmin, parallelized=True)
643
646
  def enterprise_admins(enterprise_data: Enterprise, ctx: SourceContext):
647
+ seen_node_ids: set[str] = set()
648
+ owner_info_completed = False
649
+ client, graphql_path = _sso_graphql_client(ctx)
650
+ if not client:
651
+ client, graphql_path = _graphql_client(ctx)
652
+
653
+ try:
654
+ for row in _enterprise_admins_from_owner_info(
655
+ enterprise_data, ctx, client, graphql_path
656
+ ):
657
+ seen_node_ids.add(row["node_id"])
658
+ yield row
659
+ owner_info_completed = True
660
+ except Exception as e:
661
+ logger.warning(
662
+ "Unable to collect enterprise owners from ownerInfo.admins for "
663
+ "enterprise '%s'; trying organization.enterpriseOwners fallback: %s",
664
+ ctx.enterprise_name,
665
+ e,
666
+ extra={"resource": "enterprise_admins", "phase": "resource_iteration"},
667
+ )
668
+
669
+ if owner_info_completed and seen_node_ids:
670
+ return
671
+
672
+ for row in _enterprise_admins_from_organizations(enterprise_data, ctx):
673
+ if row["node_id"] in seen_node_ids:
674
+ continue
675
+ seen_node_ids.add(row["node_id"])
676
+ yield row
677
+
678
+
679
+ def _enterprise_admin_row(
680
+ node: dict[str, Any], enterprise_data: Enterprise, ctx: SourceContext
681
+ ) -> dict[str, Any] | None:
682
+ node_id = node.get("id")
683
+ if not node_id:
684
+ return None
685
+ return {
686
+ "node_id": node_id,
687
+ "login": node.get("login"),
688
+ "assignment": "direct",
689
+ "role_id": "owners",
690
+ "enterprise_node_id": enterprise_data.id,
691
+ "enterprise_slug": ctx.enterprise_name,
692
+ }
693
+
694
+
695
+ def _enterprise_admins_from_owner_info(
696
+ enterprise_data: Enterprise,
697
+ ctx: SourceContext,
698
+ client: RESTClient,
699
+ graphql_path: str,
700
+ ):
644
701
  paginator = GraphQLCursorPaginator(
645
702
  page_info_path="data.enterprise.ownerInfo.admins.pageInfo",
646
703
  cursor_variable="after",
@@ -652,7 +709,6 @@ def enterprise_admins(enterprise_data: Enterprise, ctx: SourceContext):
652
709
  "query": ENTERPRISE_ADMINS_QUERY,
653
710
  "variables": {"slug": ctx.enterprise_name, "count": 100, "after": None},
654
711
  }
655
- client, graphql_path = _graphql_client(ctx)
656
712
  for page_data in client.paginate(
657
713
  graphql_path,
658
714
  method="POST",
@@ -664,16 +720,60 @@ def enterprise_admins(enterprise_data: Enterprise, ctx: SourceContext):
664
720
  es_data = enterprise_object.get("enterprise", {})
665
721
  owner_info = es_data.get("ownerInfo") or {}
666
722
  for edge in (owner_info.get("admins") or {}).get("edges") or []:
667
- node = edge.get("node")
668
- if node and node.get("id"):
669
- yield {
670
- "node_id": node["id"],
671
- "login": node.get("login"),
672
- "assignment": "direct",
673
- "role_id": "owners",
674
- "enterprise_node_id": enterprise_data.id,
675
- "enterprise_slug": ctx.enterprise_name,
676
- }
723
+ row = _enterprise_admin_row(edge.get("node") or {}, enterprise_data, ctx)
724
+ if row:
725
+ yield row
726
+
727
+
728
+ def _enterprise_admins_from_organizations(
729
+ enterprise_data: Enterprise, ctx: SourceContext
730
+ ):
731
+ for org in getattr(ctx, "organizations", None) or []:
732
+ paginator = GraphQLCursorPaginator(
733
+ page_info_path="data.organization.enterpriseOwners.pageInfo",
734
+ cursor_variable="after",
735
+ cursor_field="endCursor",
736
+ has_next_field="hasNextPage",
737
+ allow_missing_page_info=True,
738
+ )
739
+ data = {
740
+ "query": ORGANIZATION_ENTERPRISE_OWNERS_QUERY,
741
+ "variables": {"login": org.org_name, "count": 100, "after": None},
742
+ }
743
+ client, graphql_path = graphql_client_and_path(
744
+ org.client, getattr(org, "graphql_client", None)
745
+ )
746
+ found_owner = False
747
+ try:
748
+ for page_data in client.paginate(
749
+ graphql_path,
750
+ method="POST",
751
+ json=data,
752
+ paginator=paginator,
753
+ data_selector="data",
754
+ ):
755
+ for organization_object in page_data:
756
+ organization = organization_object.get("organization", {})
757
+ for node in (organization.get("enterpriseOwners") or {}).get(
758
+ "nodes"
759
+ ) or []:
760
+ row = _enterprise_admin_row(node, enterprise_data, ctx)
761
+ if row:
762
+ found_owner = True
763
+ yield row
764
+ except Exception as e:
765
+ logger.warning(
766
+ "Unable to collect enterprise owners through organization '%s' "
767
+ "for enterprise '%s': %s",
768
+ org.org_name,
769
+ ctx.enterprise_name,
770
+ e,
771
+ extra={"resource": "enterprise_admins", "phase": "resource_iteration"},
772
+ )
773
+ continue
774
+
775
+ if found_owner:
776
+ return
677
777
 
678
778
 
679
779
  @app.transformer(
@@ -7,6 +7,7 @@ from openhound_github.models import EnterpriseScimOrganization, EnterpriseScimUs
7
7
  from openhound_github.resources.enterprise import (
8
8
  SourceContext,
9
9
  enterprise,
10
+ enterprise_admins,
10
11
  enterprise_external_identity,
11
12
  enterprise_organizations,
12
13
  enterprise_runner_group_memberships,
@@ -50,6 +51,13 @@ class _FailingPaginateClient(_FakeClient):
50
51
  raise ConnectionError("GraphQL endpoint unreachable")
51
52
 
52
53
 
54
+ class _PartiallyFailingPaginateClient(_FakeClient):
55
+ def paginate(self, path: str, **kwargs):
56
+ self.paginate_calls.append((path, kwargs))
57
+ yield from self.pages
58
+ raise ConnectionError("GraphQL endpoint unreachable")
59
+
60
+
53
61
  class _FailingPostClient(_FakeClient):
54
62
  def post(self, path: str, json: dict):
55
63
  self.post_calls.append((path, json))
@@ -220,6 +228,218 @@ def test_enterprise_saml_provider_logs_and_returns_when_provider_is_missing(
220
228
  )
221
229
 
222
230
 
231
+ def test_enterprise_admins_use_pat_backed_owner_info_graphql_client() -> None:
232
+ assert enterprise_admins._hints["columns"]["role_id"]["data_type"] == "text"
233
+
234
+ app_client = _FakeClient(payload={}, pages=[])
235
+ app_graphql_client = _FakeClient(payload={}, pages=[])
236
+ pat_client = _FakeClient(payload={}, pages=[])
237
+ pat_graphql_client = _FakeClient(
238
+ payload={},
239
+ pages=[
240
+ [
241
+ {
242
+ "enterprise": {
243
+ "ownerInfo": {
244
+ "admins": {
245
+ "edges": [
246
+ {"node": {"id": "U_1", "login": "alice"}},
247
+ {"node": {"id": "U_2", "login": "bob"}},
248
+ ]
249
+ }
250
+ }
251
+ }
252
+ }
253
+ ]
254
+ ],
255
+ )
256
+ ctx = SourceContext(
257
+ client=app_client,
258
+ graphql_client=app_graphql_client,
259
+ sso_client=pat_client,
260
+ sso_graphql_client=pat_graphql_client,
261
+ enterprise_name="acme",
262
+ )
263
+
264
+ rows = list(enterprise_admins.__wrapped__(SimpleNamespace(id="E_1"), ctx))
265
+
266
+ assert rows == [
267
+ {
268
+ "node_id": "U_1",
269
+ "login": "alice",
270
+ "assignment": "direct",
271
+ "role_id": "owners",
272
+ "enterprise_node_id": "E_1",
273
+ "enterprise_slug": "acme",
274
+ },
275
+ {
276
+ "node_id": "U_2",
277
+ "login": "bob",
278
+ "assignment": "direct",
279
+ "role_id": "owners",
280
+ "enterprise_node_id": "E_1",
281
+ "enterprise_slug": "acme",
282
+ },
283
+ ]
284
+ assert pat_graphql_client.paginate_calls[0][0] == ""
285
+ assert "role: OWNER" in pat_graphql_client.paginate_calls[0][1]["json"]["query"]
286
+ assert app_client.paginate_calls == []
287
+ assert app_graphql_client.paginate_calls == []
288
+
289
+
290
+ def test_enterprise_admins_fall_back_to_org_enterprise_owners_without_pat() -> None:
291
+ enterprise_client = _FakeClient(payload={}, pages=[])
292
+ enterprise_graphql_client = _FakeClient(
293
+ payload={},
294
+ pages=[[{"enterprise": {"ownerInfo": None}}]],
295
+ )
296
+ org_client = _FakeClient(payload={}, pages=[])
297
+ org_graphql_client = _FakeClient(
298
+ payload={},
299
+ pages=[
300
+ [
301
+ {
302
+ "organization": {
303
+ "enterpriseOwners": {
304
+ "nodes": [{"id": "U_1", "login": "alice"}]
305
+ }
306
+ }
307
+ }
308
+ ]
309
+ ],
310
+ )
311
+ ctx = SourceContext(
312
+ client=enterprise_client,
313
+ graphql_client=enterprise_graphql_client,
314
+ enterprise_name="acme",
315
+ organizations=[
316
+ SimpleNamespace(
317
+ org_name="acme-org",
318
+ client=org_client,
319
+ graphql_client=org_graphql_client,
320
+ )
321
+ ],
322
+ )
323
+
324
+ rows = list(enterprise_admins.__wrapped__(SimpleNamespace(id="E_1"), ctx))
325
+
326
+ assert rows == [
327
+ {
328
+ "node_id": "U_1",
329
+ "login": "alice",
330
+ "assignment": "direct",
331
+ "role_id": "owners",
332
+ "enterprise_node_id": "E_1",
333
+ "enterprise_slug": "acme",
334
+ }
335
+ ]
336
+ assert enterprise_graphql_client.paginate_calls[0][0] == ""
337
+ assert org_graphql_client.paginate_calls[0][0] == ""
338
+ assert (
339
+ org_graphql_client.paginate_calls[0][1]["json"]["variables"]["login"]
340
+ == "acme-org"
341
+ )
342
+
343
+
344
+ def test_enterprise_admins_fall_back_after_owner_info_request_failure(caplog) -> None:
345
+ enterprise_graphql_client = _FailingPaginateClient(payload={})
346
+ org_graphql_client = _FakeClient(
347
+ payload={},
348
+ pages=[
349
+ [
350
+ {
351
+ "organization": {
352
+ "enterpriseOwners": {
353
+ "nodes": [{"id": "U_1", "login": "alice"}]
354
+ }
355
+ }
356
+ }
357
+ ]
358
+ ],
359
+ )
360
+ ctx = SourceContext(
361
+ client=_FakeClient(payload={}),
362
+ graphql_client=enterprise_graphql_client,
363
+ enterprise_name="acme",
364
+ organizations=[
365
+ SimpleNamespace(
366
+ org_name="acme-org",
367
+ client=_FakeClient(payload={}),
368
+ graphql_client=org_graphql_client,
369
+ )
370
+ ],
371
+ )
372
+
373
+ with caplog.at_level(logging.WARNING, logger="openhound_github.resources.enterprise"):
374
+ rows = list(enterprise_admins.__wrapped__(SimpleNamespace(id="E_1"), ctx))
375
+
376
+ assert rows[0]["node_id"] == "U_1"
377
+ assert any(
378
+ "trying organization.enterpriseOwners fallback" in message
379
+ for message in caplog.messages
380
+ )
381
+
382
+
383
+ def test_enterprise_admins_fall_back_after_partial_owner_info_pagination_failure(
384
+ caplog,
385
+ ) -> None:
386
+ enterprise_graphql_client = _PartiallyFailingPaginateClient(
387
+ payload={},
388
+ pages=[
389
+ [
390
+ {
391
+ "enterprise": {
392
+ "ownerInfo": {
393
+ "admins": {
394
+ "edges": [{"node": {"id": "U_1", "login": "alice"}}]
395
+ }
396
+ }
397
+ }
398
+ }
399
+ ]
400
+ ],
401
+ )
402
+ org_graphql_client = _FakeClient(
403
+ payload={},
404
+ pages=[
405
+ [
406
+ {
407
+ "organization": {
408
+ "enterpriseOwners": {
409
+ "nodes": [
410
+ {"id": "U_1", "login": "alice"},
411
+ {"id": "U_2", "login": "bob"},
412
+ ]
413
+ }
414
+ }
415
+ }
416
+ ]
417
+ ],
418
+ )
419
+ ctx = SourceContext(
420
+ client=_FakeClient(payload={}),
421
+ graphql_client=enterprise_graphql_client,
422
+ enterprise_name="acme",
423
+ organizations=[
424
+ SimpleNamespace(
425
+ org_name="acme-org",
426
+ client=_FakeClient(payload={}),
427
+ graphql_client=org_graphql_client,
428
+ )
429
+ ],
430
+ )
431
+
432
+ with caplog.at_level(logging.WARNING, logger="openhound_github.resources.enterprise"):
433
+ rows = list(enterprise_admins.__wrapped__(SimpleNamespace(id="E_1"), ctx))
434
+
435
+ assert [row["node_id"] for row in rows] == ["U_1", "U_2"]
436
+ assert len(org_graphql_client.paginate_calls) == 1
437
+ assert any(
438
+ "trying organization.enterpriseOwners fallback" in message
439
+ for message in caplog.messages
440
+ )
441
+
442
+
223
443
  def test_enterprise_external_identity_logs_and_returns_on_pagination_failure(
224
444
  caplog,
225
445
  ) -> None: