openhound-github 0.11.0__tar.gz → 0.13.0__tar.gz

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