openhound-github 0.16.1__tar.gz → 0.17.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 (445) hide show
  1. {openhound_github-0.16.1 → openhound_github-0.17.0}/PKG-INFO +44 -1
  2. {openhound_github-0.16.1 → openhound_github-0.17.0}/README.md +43 -0
  3. openhound_github-0.17.0/descriptions/edges/GH_AuthorizedForOrganization.md +20 -0
  4. openhound_github-0.17.0/descriptions/edges/GH_Contains.md +104 -0
  5. openhound_github-0.17.0/descriptions/edges/GH_HasPersonalAccessToken.md +23 -0
  6. openhound_github-0.17.0/descriptions/nodes/GH_ClassicPersonalAccessToken.md +43 -0
  7. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Enterprise.md +36 -34
  8. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Organization.md +32 -30
  9. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_User.md +18 -16
  10. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/README.md +1 -1
  11. openhound_github-0.17.0/extension/saved_searches/expired-pats.json +5 -0
  12. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/schema.json +65 -1
  13. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/helpers.py +41 -3
  14. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/kinds/edges.py +1 -0
  15. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/kinds/nodes.py +1 -0
  16. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/lookup.py +16 -0
  17. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/__init__.py +2 -0
  18. openhound_github-0.17.0/src/openhound_github/models/classic_personal_access_token.py +169 -0
  19. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_member.py +1 -0
  20. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/org.py +6 -1
  21. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/user.py +2 -1
  22. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/resources/enterprise.py +413 -20
  23. openhound_github-0.17.0/tests/test_classic_personal_access_tokens.py +810 -0
  24. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_helpers.py +33 -0
  25. openhound_github-0.16.1/descriptions/edges/GH_Contains.md +0 -101
  26. openhound_github-0.16.1/descriptions/edges/GH_HasPersonalAccessToken.md +0 -20
  27. openhound_github-0.16.1/extension/saved_searches/expired-pats.json +0 -5
  28. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/CODE_OF_CONDUCT.md +0 -0
  29. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/CONTRIBUTING.md +0 -0
  30. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GOVERNANCE.md +0 -0
  31. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GitHub-COC-Header.png +0 -0
  32. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GitHub-CONTRIB-Header.png +0 -0
  33. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GitHub-GOV-Header.png +0 -0
  34. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GitHub-Header.png +0 -0
  35. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GitHub-LIC-Header.png +0 -0
  36. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/GitHub-SEC-Header.png +0 -0
  37. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/SECURITY.md +0 -0
  38. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/SO-Dark.svg +0 -0
  39. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/SO-FOSS-Dark.svg +0 -0
  40. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/SO-FOSS-Light.svg +0 -0
  41. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/SO-Light.svg +0 -0
  42. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/workflows/publish.yml +0 -0
  43. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/workflows/release-on-merge.yml +0 -0
  44. {openhound_github-0.16.1 → openhound_github-0.17.0}/.github/workflows/validate-branch.yml +0 -0
  45. {openhound_github-0.16.1 → openhound_github-0.17.0}/.gitignore +0 -0
  46. {openhound_github-0.16.1 → openhound_github-0.17.0}/.gitmodules +0 -0
  47. {openhound_github-0.16.1 → openhound_github-0.17.0}/.pre-commit-config.yaml +0 -0
  48. {openhound_github-0.16.1 → openhound_github-0.17.0}/LICENSE.md +0 -0
  49. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AddAssignee.md +0 -0
  50. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AddCollaborator.md +0 -0
  51. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AddLabel.md +0 -0
  52. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AddMember.md +0 -0
  53. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AddedDeployKey.md +0 -0
  54. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AdminTo.md +0 -0
  55. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ApprovesDeploymentTo.md +0 -0
  56. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_AssignedTo.md +0 -0
  57. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
  58. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
  59. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CallsWorkflow.md +0 -0
  60. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanAccess.md +0 -0
  61. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanAccessSecret.md +0 -0
  62. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
  63. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreateBranch.md +0 -0
  64. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreateEnvironment.md +0 -0
  65. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreateInternalRepositories.md +0 -0
  66. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreatePrivateRepositories.md +0 -0
  67. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreatePublicRepositories.md +0 -0
  68. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreateRepositories.md +0 -0
  69. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanCreateRepositoryWithRunnerAccess.md +0 -0
  70. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanDeployToEnvironment.md +0 -0
  71. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanEditEnvironment.md +0 -0
  72. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanEditProtection.md +0 -0
  73. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanInterceptJob.md +0 -0
  74. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanPwnRequest.md +0 -0
  75. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanReadSecret.md +0 -0
  76. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
  77. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanRequestOIDCTokenFor.md +0 -0
  78. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanUseRunner.md +0 -0
  79. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CanWriteBranch.md +0 -0
  80. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CloseDiscussion.md +0 -0
  81. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CloseIssue.md +0 -0
  82. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ClosePullRequest.md +0 -0
  83. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
  84. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
  85. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CreateEnterpriseOrganizations.md +0 -0
  86. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CreateRepository.md +0 -0
  87. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
  88. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CreateTag.md +0 -0
  89. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_CreateTeam.md +0 -0
  90. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
  91. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
  92. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
  93. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DeleteIssue.md +0 -0
  94. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DeleteTag.md +0 -0
  95. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DependsOn.md +0 -0
  96. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_DeploysTo.md +0 -0
  97. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
  98. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
  99. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
  100. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditEnterpriseCustomPropertiesForOrganizations.md +0 -0
  101. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
  102. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
  103. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
  104. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_EditRepoProtections.md +0 -0
  105. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasBaseRole.md +0 -0
  106. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
  107. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasMember.md +0 -0
  108. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
  109. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasRole.md +0 -0
  110. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasRunner.md +0 -0
  111. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
  112. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasSecret.md +0 -0
  113. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_HasVariable.md +0 -0
  114. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_InheritedFrom.md +0 -0
  115. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_InstalledAs.md +0 -0
  116. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_InviteMember.md +0 -0
  117. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_IsEligibleFor.md +0 -0
  118. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
  119. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
  120. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
  121. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseAdmins.md +0 -0
  122. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseIdentityProvider.md +0 -0
  123. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseMembers.md +0 -0
  124. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseOrganizationAdmins.md +0 -0
  125. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseOrganizations.md +0 -0
  126. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseReferrals.md +0 -0
  127. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageEnterpriseTeams.md +0 -0
  128. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
  129. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
  130. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
  131. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
  132. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
  133. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
  134. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
  135. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageTopics.md +0 -0
  136. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ManageWebhooks.md +0 -0
  137. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_MapsToUser.md +0 -0
  138. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
  139. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_MatchesEnvironmentPolicy.md +0 -0
  140. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_MemberOf.md +0 -0
  141. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
  142. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
  143. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
  144. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
  145. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_Owns.md +0 -0
  146. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ProtectedBy.md +0 -0
  147. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
  148. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
  149. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadEnterpriseAuditLog.md +0 -0
  150. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadEnterpriseDomainVerification.md +0 -0
  151. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadEnterpriseMembers.md +0 -0
  152. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadEnterpriseOrgProjects.md +0 -0
  153. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadEnterpriseOrganizationAdmin.md +0 -0
  154. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
  155. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
  156. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
  157. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReadRepoContents.md +0 -0
  158. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_RemoveAssignee.md +0 -0
  159. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_RemoveLabel.md +0 -0
  160. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
  161. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReopenIssue.md +0 -0
  162. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
  163. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_RequestPrReview.md +0 -0
  164. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
  165. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
  166. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
  167. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_RunOrgMigration.md +0 -0
  168. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_RunsOn.md +0 -0
  169. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_SetEnterpriseInteractionLimits.md +0 -0
  170. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
  171. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_SetIssueType.md +0 -0
  172. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_SetMilestone.md +0 -0
  173. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_SetSocialPreview.md +0 -0
  174. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_SyncedTo.md +0 -0
  175. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
  176. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
  177. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_TransferRepository.md +0 -0
  178. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_UsesSecret.md +0 -0
  179. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_UsesVariable.md +0 -0
  180. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ValidToken.md +0 -0
  181. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
  182. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ViewEnterpriseActionsUsageMetrics.md +0 -0
  183. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ViewEnterpriseBilling.md +0 -0
  184. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ViewEnterpriseSecretScanningAlerts.md +0 -0
  185. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
  186. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
  187. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteEnterpriseActionsPolicies.md +0 -0
  188. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteEnterpriseBilling.md +0 -0
  189. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteEnterprisePersonalAccessTokenPolicies.md +0 -0
  190. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteEnterpriseSso.md +0 -0
  191. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteEnterpriseTeamMembers.md +0 -0
  192. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
  193. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
  194. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
  195. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
  196. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
  197. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
  198. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteRepoContents.md +0 -0
  199. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
  200. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_App.md +0 -0
  201. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_AppInstallation.md +0 -0
  202. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Branch.md +0 -0
  203. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
  204. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_DeployKey.md +0 -0
  205. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnterpriseManagedUser.md +0 -0
  206. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnterpriseRole.md +0 -0
  207. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnterpriseRunner.md +0 -0
  208. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnterpriseRunnerGroup.md +0 -0
  209. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnterpriseTeam.md +0 -0
  210. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Environment.md +0 -0
  211. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnvironmentBranchPolicy.md +0 -0
  212. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
  213. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
  214. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
  215. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_OrgRole.md +0 -0
  216. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_OrgRunner.md +0 -0
  217. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_OrgRunnerGroup.md +0 -0
  218. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_OrgSecret.md +0 -0
  219. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_OrgVariable.md +0 -0
  220. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
  221. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
  222. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_RepoRole.md +0 -0
  223. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_RepoRunner.md +0 -0
  224. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_RepoSecret.md +0 -0
  225. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_RepoVariable.md +0 -0
  226. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Repository.md +0 -0
  227. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Runner.md +0 -0
  228. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_RunnerGroup.md +0 -0
  229. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
  230. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Secret.md +0 -0
  231. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
  232. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Team.md +0 -0
  233. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_TeamRole.md +0 -0
  234. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Variable.md +0 -0
  235. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_Workflow.md +0 -0
  236. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_WorkflowJob.md +0 -0
  237. {openhound_github-0.16.1 → openhound_github-0.17.0}/descriptions/nodes/GH_WorkflowStep.md +0 -0
  238. {openhound_github-0.16.1 → openhound_github-0.17.0}/docs/og-docs.json +0 -0
  239. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
  240. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
  241. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
  242. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-enterprise-owners-role.json +0 -0
  243. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
  244. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-organizations.json +0 -0
  245. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
  246. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
  247. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
  248. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
  249. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
  250. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
  251. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
  252. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/active-leaked-secrets.json +0 -0
  253. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
  254. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/all-actions-allowed.json +0 -0
  255. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/app-installations-all-repos.json +0 -0
  256. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
  257. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
  258. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
  259. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
  260. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
  261. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
  262. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-self-approval.json +0 -0
  263. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
  264. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/bypass-pr-requirements.json +0 -0
  265. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/dangerous-branch-perms.json +0 -0
  266. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/default-repository-permissions.json +0 -0
  267. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
  268. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
  269. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
  270. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
  271. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/environments-admin-bypass.json +0 -0
  272. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/external-identities-without-scim.json +0 -0
  273. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/github-to-azure-identity.json +0 -0
  274. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/global-repo-perms.json +0 -0
  275. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/hybrid-identities.json +0 -0
  276. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
  277. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/members-can-create-pages.json +0 -0
  278. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/members-can-create-public-repos.json +0 -0
  279. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/members-can-delete-repos.json +0 -0
  280. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
  281. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
  282. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/org-owners.json +0 -0
  283. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/orgs-without-2fa.json +0 -0
  284. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/pats-all-repo-access.json +0 -0
  285. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/pending-pat-requests.json +0 -0
  286. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
  287. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
  288. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
  289. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/public-repos.json +0 -0
  290. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
  291. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/push-to-protected-branches.json +0 -0
  292. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
  293. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
  294. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/repository-workflows.json +0 -0
  295. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/saml-configuration.json +0 -0
  296. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/secret-scanning-alerts.json +0 -0
  297. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
  298. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
  299. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/self-hosted-runners-can-intercept-broad-token-jobs.json +0 -0
  300. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/shared-self-hosted-runners-can-intercept-secret-bearing-jobs.json +0 -0
  301. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/team-membership-admin.json +0 -0
  302. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/team-structure.json +0 -0
  303. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/unprotected-branches.json +0 -0
  304. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
  305. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/unprotected-default-branches.json +0 -0
  306. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
  307. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/workflow-jobs-interceptable-by-self-hosted-runners.json +0 -0
  308. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/workflow-jobs-with-broad-token-write-permissions.json +0 -0
  309. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/workflow-jobs-with-id-token-write-on-self-hosted-runners.json +0 -0
  310. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/workflow-jobs-with-id-token-write.json +0 -0
  311. {openhound_github-0.16.1 → openhound_github-0.17.0}/extension/saved_searches/workflow-jobs-with-observed-oidc-auth-steps.json +0 -0
  312. {openhound_github-0.16.1 → openhound_github-0.17.0}/justfile +0 -0
  313. {openhound_github-0.16.1 → openhound_github-0.17.0}/pyproject.toml +0 -0
  314. {openhound_github-0.16.1 → openhound_github-0.17.0}/scripts/generate_gh_description_docs.py +0 -0
  315. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/main.py +0 -0
  316. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/__init__.py +0 -0
  317. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/auth.py +0 -0
  318. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/extension.yaml +0 -0
  319. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/github_rest_client.py +0 -0
  320. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/github_retry.py +0 -0
  321. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/graph.py +0 -0
  322. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/graphql.py +0 -0
  323. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/main.py +0 -0
  324. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/actions_permission.py +0 -0
  325. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/app_installation.py +0 -0
  326. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/branch.py +0 -0
  327. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
  328. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/branch_protection_rule.py +0 -0
  329. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/branch_push_allowance.py +0 -0
  330. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/deploy_key.py +0 -0
  331. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise.py +0 -0
  332. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_admin.py +0 -0
  333. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_helpers.py +0 -0
  334. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_managed_user.py +0 -0
  335. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_organization.py +0 -0
  336. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_role.py +0 -0
  337. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_role_team.py +0 -0
  338. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_role_user.py +0 -0
  339. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_team.py +0 -0
  340. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_team_member.py +0 -0
  341. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_team_organization.py +0 -0
  342. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_team_role.py +0 -0
  343. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/enterprise_user.py +0 -0
  344. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/env_secret.py +0 -0
  345. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/env_variable.py +0 -0
  346. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/environment.py +0 -0
  347. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/environment_branch_policy.py +0 -0
  348. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/external_identity.py +0 -0
  349. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/org_role.py +0 -0
  350. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/org_role_member.py +0 -0
  351. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/org_role_team.py +0 -0
  352. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/org_secret.py +0 -0
  353. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/org_variable.py +0 -0
  354. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/permissions.py +0 -0
  355. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/personal_access_token.py +0 -0
  356. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/personal_access_token_access.py +0 -0
  357. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/personal_access_token_request.py +0 -0
  358. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/projected_enterprise_team.py +0 -0
  359. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/repo_role_assignment.py +0 -0
  360. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/repository.py +0 -0
  361. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/repository_role.py +0 -0
  362. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/repository_secret.py +0 -0
  363. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/repository_variable.py +0 -0
  364. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/runner.py +0 -0
  365. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/saml_assertion_consumer_service.py +0 -0
  366. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/saml_helpers.py +0 -0
  367. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/saml_issuer.py +0 -0
  368. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/saml_provider.py +0 -0
  369. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/saml_service_provider.py +0 -0
  370. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/scim_user.py +0 -0
  371. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/secret_scanning_alert.py +0 -0
  372. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/team.py +0 -0
  373. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/team_member.py +0 -0
  374. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/team_role.py +0 -0
  375. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/workflow.py +0 -0
  376. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/workflow_job.py +0 -0
  377. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/workflow_reference.py +0 -0
  378. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/models/workflow_step.py +0 -0
  379. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/resources/__init__.py +0 -0
  380. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/resources/organization.py +0 -0
  381. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/runner_ids.py +0 -0
  382. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/source.py +0 -0
  383. {openhound_github-0.16.1 → openhound_github-0.17.0}/src/openhound_github/transforms.py +0 -0
  384. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_app_auth.py +0 -0
  385. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_branch_collection_gate.py +0 -0
  386. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_branch_protection_traversability.py +0 -0
  387. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_credential_permission_models.py +0 -0
  388. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/actions-permissions.json +0 -0
  389. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/actionsecrets.json +0 -0
  390. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/app.json +0 -0
  391. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/appinstalls.json +0 -0
  392. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/branch-policies.json +0 -0
  393. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/branch-prot-rules.json +0 -0
  394. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/branches.json +0 -0
  395. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/custom-roles.json +0 -0
  396. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/environments.json +0 -0
  397. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/org-pat-request.json +0 -0
  398. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/org-pat.json +0 -0
  399. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/org-role-teams.json +0 -0
  400. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/org-role-users.json +0 -0
  401. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/org-roles.json +0 -0
  402. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/org.json +0 -0
  403. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/pat-repositories.json +0 -0
  404. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/repo-collaborators.json +0 -0
  405. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/repo-teams.json +0 -0
  406. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/repositories.json +0 -0
  407. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/scimusers.json +0 -0
  408. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/secrets.json +0 -0
  409. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/secretscanningalert.json +0 -0
  410. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/selected-org-secrets.json +0 -0
  411. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/variables.json +0 -0
  412. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_data/api/workflows.json +0 -0
  413. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_deploy_key_models.py +0 -0
  414. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_deploy_key_resources.py +0 -0
  415. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_description_docs.py +0 -0
  416. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_enterprise_capabilities.py +0 -0
  417. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_enterprise_organization.py +0 -0
  418. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_enterprise_resources.py +0 -0
  419. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_environment_model.py +0 -0
  420. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_environment_resources.py +0 -0
  421. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_environment_reviewer_lookup.py +0 -0
  422. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_error_resilience.py +0 -0
  423. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_github_app_retry.py +0 -0
  424. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_github_rest_client.py +0 -0
  425. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_github_retry.py +0 -0
  426. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_lookup.py +0 -0
  427. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_org_role_model.py +0 -0
  428. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_org_scim_resources.py +0 -0
  429. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_org_secret_models.py +0 -0
  430. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_preproc.py +0 -0
  431. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_repository_rulesets.py +0 -0
  432. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_runner_ids.py +0 -0
  433. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_runner_models.py +0 -0
  434. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_runner_resources.py +0 -0
  435. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_saml_helpers.py +0 -0
  436. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_saml_models.py +0 -0
  437. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_scim_models.py +0 -0
  438. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_source_endpoints.py +0 -0
  439. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_source_org_canonicalization.py +0 -0
  440. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_team_external_groups.py +0 -0
  441. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_variable_models.py +0 -0
  442. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_workflow_interception_path.py +0 -0
  443. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_workflow_model.py +0 -0
  444. {openhound_github-0.16.1 → openhound_github-0.17.0}/tests/test_workflow_resources.py +0 -0
  445. {openhound_github-0.16.1 → openhound_github-0.17.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: openhound-github
3
- Version: 0.16.1
3
+ Version: 0.17.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
@@ -84,6 +84,49 @@ The collector runs successfully with the documented read-only permission set. So
84
84
 
85
85
  If these optional permissions are not granted, OpenHound skips the affected resources and continues collecting the rest of the GitHub environment.
86
86
 
87
+ ### Classic personal access token inventory
88
+
89
+ With GitHub Enterprise Cloud credentials, the collector uses the enterprise
90
+ credential inventory export to collect classic personal access tokens. It
91
+ requests the full inventory, stores every CSV row and its original field values
92
+ in the `enterprise_credential_inventory` resource, and currently models only
93
+ classic PAT rows. The export contains credential metadata, including owners,
94
+ scopes, authorization details, and token hashes used for audit correlation. It
95
+ does not contain plaintext PAT values. Limit access to the raw output to people
96
+ who need the credential inventory.
97
+
98
+ The enterprise GitHub App needs **Enterprise credentials: read** permission.
99
+ When collecting with a classic PAT instead of an app installation, that token
100
+ needs the `read:enterprise` scope. If an enterprise app also has
101
+ `credentials.pat_token` configured, the app remains the primary export
102
+ credential. The collector retries once with the PAT only when GitHub rejects
103
+ the app's export creation for authorization. It does not switch credentials
104
+ after an export starts or when GitHub reports a rate limit.
105
+
106
+ Rate-limit retry warnings identify the affected method and API path.
107
+
108
+ The CSV download is streamed, but the parsed export is held in memory as one
109
+ raw record; very large enterprises may need a chunked raw-resource design.
110
+
111
+ GitHub limits the number of exports an enterprise can start per day. When the
112
+ last successful export was downloaded within the past 24 hours, the collector
113
+ downloads it again before trying to start a new export. If GitHub reports that
114
+ the saved export is gone, the collector starts a new one and polls until its
115
+ CSV is ready. GitHub may still reject a new export when its limit is reached.
116
+ The raw record's `as_of` value and each PAT node's `inventory_as_of` value
117
+ show when that snapshot was taken. An unavailable or denied export is logged
118
+ and does not stop other resources from collecting.
119
+
120
+ Classic PAT nodes include the owner, scopes, lifecycle dates, credential
121
+ state, direct enterprise authorization, and total authorization count.
122
+ Organization edges record authorizations reported in the export. The
123
+ export does not enumerate repositories accessible to a classic PAT, so this
124
+ collection does not emit classic PAT-to-repository access edges. Potential
125
+ repository access can be derived from the token owner's repository roles and
126
+ the token's scopes, subject to organization policy and SSO authorization; it
127
+ is not a direct grant reported by the export. GitHub Enterprise Server and
128
+ organization-only configurations skip this resource.
129
+
87
130
  [![Python Version](https://img.shields.io/badge/Python-3.13-brightgreen.svg)](#about)
88
131
 
89
132
  ## Getting Started
@@ -73,6 +73,49 @@ The collector runs successfully with the documented read-only permission set. So
73
73
 
74
74
  If these optional permissions are not granted, OpenHound skips the affected resources and continues collecting the rest of the GitHub environment.
75
75
 
76
+ ### Classic personal access token inventory
77
+
78
+ With GitHub Enterprise Cloud credentials, the collector uses the enterprise
79
+ credential inventory export to collect classic personal access tokens. It
80
+ requests the full inventory, stores every CSV row and its original field values
81
+ in the `enterprise_credential_inventory` resource, and currently models only
82
+ classic PAT rows. The export contains credential metadata, including owners,
83
+ scopes, authorization details, and token hashes used for audit correlation. It
84
+ does not contain plaintext PAT values. Limit access to the raw output to people
85
+ who need the credential inventory.
86
+
87
+ The enterprise GitHub App needs **Enterprise credentials: read** permission.
88
+ When collecting with a classic PAT instead of an app installation, that token
89
+ needs the `read:enterprise` scope. If an enterprise app also has
90
+ `credentials.pat_token` configured, the app remains the primary export
91
+ credential. The collector retries once with the PAT only when GitHub rejects
92
+ the app's export creation for authorization. It does not switch credentials
93
+ after an export starts or when GitHub reports a rate limit.
94
+
95
+ Rate-limit retry warnings identify the affected method and API path.
96
+
97
+ The CSV download is streamed, but the parsed export is held in memory as one
98
+ raw record; very large enterprises may need a chunked raw-resource design.
99
+
100
+ GitHub limits the number of exports an enterprise can start per day. When the
101
+ last successful export was downloaded within the past 24 hours, the collector
102
+ downloads it again before trying to start a new export. If GitHub reports that
103
+ the saved export is gone, the collector starts a new one and polls until its
104
+ CSV is ready. GitHub may still reject a new export when its limit is reached.
105
+ The raw record's `as_of` value and each PAT node's `inventory_as_of` value
106
+ show when that snapshot was taken. An unavailable or denied export is logged
107
+ and does not stop other resources from collecting.
108
+
109
+ Classic PAT nodes include the owner, scopes, lifecycle dates, credential
110
+ state, direct enterprise authorization, and total authorization count.
111
+ Organization edges record authorizations reported in the export. The
112
+ export does not enumerate repositories accessible to a classic PAT, so this
113
+ collection does not emit classic PAT-to-repository access edges. Potential
114
+ repository access can be derived from the token owner's repository roles and
115
+ the token's scopes, subject to organization policy and SSO authorization; it
116
+ is not a direct grant reported by the export. GitHub Enterprise Server and
117
+ organization-only configurations skip this resource.
118
+
76
119
  [![Python Version](https://img.shields.io/badge/Python-3.13-brightgreen.svg)](#about)
77
120
 
78
121
  ## Getting Started
@@ -0,0 +1,20 @@
1
+ # GH_AuthorizedForOrganization
2
+
3
+ ## General Information
4
+
5
+ Classic personal access token has a recorded authorization for this organization.
6
+
7
+ ## Edge Schema
8
+
9
+ | Source | Destination | Traversable |
10
+ | --- | --- | --- |
11
+ | `GH_ClassicPersonalAccessToken` | `GH_Organization` | `false` |
12
+
13
+ ## Diagram
14
+
15
+ ```mermaid
16
+ graph LR
17
+ n0["GH_ClassicPersonalAccessToken"]
18
+ n1["GH_Organization"]
19
+ n0 -.->|GH_AuthorizedForOrganization| n1
20
+ ```
@@ -0,0 +1,104 @@
1
+ # GH_Contains
2
+
3
+ ## General Information
4
+
5
+ The non-traversable GH_Contains edge represents structural containment within the GitHub resource hierarchy. The enterprise contains enterprise teams, roles, managed users, classic personal access tokens, runner groups, and enterprise runners through their groups. The organization serves as a top-level container for users, teams, repositories, roles, secrets, app installations, fine-grained personal access tokens, and organization runner groups. Native organization runner groups contain organization runners. Repositories contain branches, workflows, branch protection rules, environments, repo-level secrets and variables, and repository-scoped runners. Environments contain environment branch policies, environment-scoped secrets, and environment-scoped variables. This edge is created by the collector to establish the resource hierarchy and is not traversable because containment alone does not imply privilege escalation.
6
+
7
+ ## Edge Schema
8
+
9
+ | Source | Destination | Traversable |
10
+ | --- | --- | --- |
11
+ | `GH_Enterprise` | `GH_ClassicPersonalAccessToken` | `false` |
12
+ | `GH_Enterprise` | `GH_EnterpriseRole` | `false` |
13
+ | `GH_Enterprise` | `GH_EnterpriseRunnerGroup` | `false` |
14
+ | `GH_Enterprise` | `GH_EnterpriseTeam` | `false` |
15
+ | `GH_Enterprise` | `GH_Organization` | `false` |
16
+ | `GH_EnterpriseRunnerGroup` | `GH_EnterpriseRunner` | `false` |
17
+ | `GH_Environment` | `GH_EnvironmentBranchPolicy` | `false` |
18
+ | `GH_Environment` | `GH_EnvironmentSecret` | `false` |
19
+ | `GH_Environment` | `GH_EnvironmentVariable` | `false` |
20
+ | `GH_OrgRunnerGroup` | `GH_OrgRunner` | `false` |
21
+ | `GH_Organization` | `GH_AppInstallation` | `false` |
22
+ | `GH_Organization` | `GH_OrgRole` | `false` |
23
+ | `GH_Organization` | `GH_OrgRunnerGroup` | `false` |
24
+ | `GH_Organization` | `GH_OrgSecret` | `false` |
25
+ | `GH_Organization` | `GH_OrgVariable` | `false` |
26
+ | `GH_Organization` | `GH_PersonalAccessToken` | `false` |
27
+ | `GH_Organization` | `GH_PersonalAccessTokenRequest` | `false` |
28
+ | `GH_Organization` | `GH_SecretScanningAlert` | `false` |
29
+ | `GH_Repository` | `GH_Branch` | `false` |
30
+ | `GH_Repository` | `GH_BranchProtectionRule` | `false` |
31
+ | `GH_Repository` | `GH_DeployKey` | `false` |
32
+ | `GH_Repository` | `GH_Environment` | `false` |
33
+ | `GH_Repository` | `GH_RepoRunner` | `false` |
34
+ | `GH_Repository` | `GH_RepoSecret` | `false` |
35
+ | `GH_Repository` | `GH_RepoVariable` | `false` |
36
+ | `GH_Repository` | `GH_SecretScanningAlert` | `false` |
37
+ | `GH_Repository` | `GH_Workflow` | `false` |
38
+ | `GH_Workflow` | `GH_WorkflowJob` | `false` |
39
+ | `GH_WorkflowJob` | `GH_WorkflowStep` | `false` |
40
+
41
+ ## Diagram
42
+
43
+ ```mermaid
44
+ graph LR
45
+ n0["GH_Enterprise"]
46
+ n1["GH_ClassicPersonalAccessToken"]
47
+ n2["GH_EnterpriseRole"]
48
+ n3["GH_EnterpriseRunnerGroup"]
49
+ n4["GH_EnterpriseTeam"]
50
+ n5["GH_Organization"]
51
+ n6["GH_EnterpriseRunner"]
52
+ n7["GH_Environment"]
53
+ n8["GH_EnvironmentBranchPolicy"]
54
+ n9["GH_EnvironmentSecret"]
55
+ n10["GH_EnvironmentVariable"]
56
+ n11["GH_OrgRunnerGroup"]
57
+ n12["GH_OrgRunner"]
58
+ n13["GH_AppInstallation"]
59
+ n14["GH_OrgRole"]
60
+ n15["GH_OrgSecret"]
61
+ n16["GH_OrgVariable"]
62
+ n17["GH_PersonalAccessToken"]
63
+ n18["GH_PersonalAccessTokenRequest"]
64
+ n19["GH_SecretScanningAlert"]
65
+ n20["GH_Repository"]
66
+ n21["GH_Branch"]
67
+ n22["GH_BranchProtectionRule"]
68
+ n23["GH_DeployKey"]
69
+ n24["GH_RepoRunner"]
70
+ n25["GH_RepoSecret"]
71
+ n26["GH_RepoVariable"]
72
+ n27["GH_Workflow"]
73
+ n28["GH_WorkflowJob"]
74
+ n29["GH_WorkflowStep"]
75
+ n0 -.->|GH_Contains| n1
76
+ n0 -.->|GH_Contains| n2
77
+ n0 -.->|GH_Contains| n3
78
+ n0 -.->|GH_Contains| n4
79
+ n0 -.->|GH_Contains| n5
80
+ n3 -.->|GH_Contains| n6
81
+ n7 -.->|GH_Contains| n8
82
+ n7 -.->|GH_Contains| n9
83
+ n7 -.->|GH_Contains| n10
84
+ n11 -.->|GH_Contains| n12
85
+ n5 -.->|GH_Contains| n13
86
+ n5 -.->|GH_Contains| n14
87
+ n5 -.->|GH_Contains| n11
88
+ n5 -.->|GH_Contains| n15
89
+ n5 -.->|GH_Contains| n16
90
+ n5 -.->|GH_Contains| n17
91
+ n5 -.->|GH_Contains| n18
92
+ n5 -.->|GH_Contains| n19
93
+ n20 -.->|GH_Contains| n21
94
+ n20 -.->|GH_Contains| n22
95
+ n20 -.->|GH_Contains| n23
96
+ n20 -.->|GH_Contains| n7
97
+ n20 -.->|GH_Contains| n24
98
+ n20 -.->|GH_Contains| n25
99
+ n20 -.->|GH_Contains| n26
100
+ n20 -.->|GH_Contains| n19
101
+ n20 -.->|GH_Contains| n27
102
+ n27 -.->|GH_Contains| n28
103
+ n28 -.->|GH_Contains| n29
104
+ ```
@@ -0,0 +1,23 @@
1
+ # GH_HasPersonalAccessToken
2
+
3
+ ## General Information
4
+
5
+ The non-traversable GH_HasPersonalAccessToken edge links a user to a personal access token they own. Fine-grained token ownership comes from organization approvals; classic token ownership comes from the enterprise credential inventory. The edge identifies the owner but does not by itself grant access to any organization or repository.
6
+
7
+ ## Edge Schema
8
+
9
+ | Source | Destination | Traversable |
10
+ | --- | --- | --- |
11
+ | `GH_User` | `GH_ClassicPersonalAccessToken` | `false` |
12
+ | `GH_User` | `GH_PersonalAccessToken` | `false` |
13
+
14
+ ## Diagram
15
+
16
+ ```mermaid
17
+ graph LR
18
+ n0["GH_User"]
19
+ n1["GH_ClassicPersonalAccessToken"]
20
+ n2["GH_PersonalAccessToken"]
21
+ n0 -.->|GH_HasPersonalAccessToken| n1
22
+ n0 -.->|GH_HasPersonalAccessToken| n2
23
+ ```
@@ -0,0 +1,43 @@
1
+ # GH_ClassicPersonalAccessToken
2
+
3
+ ## General Information
4
+
5
+ A classic personal access token found in the enterprise credential inventory.
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
+ | `credential_id` | `integer` | GitHub's ID for this classic personal access token. |
17
+ | `owner_id` | `integer` | GitHub's numeric ID for the token owner. |
18
+ | `owner_login` | `string` | Login of the token owner. |
19
+ | `scopes` | `list[string]` | OAuth scopes granted to the token. |
20
+ | `credential_state` | `string` | Whether GitHub reports the credential as active, expired, revoked, or deleted. |
21
+ | `expiry_status` | `string` | Whether expiration is scheduled, never, or unknown. |
22
+ | `enterprise_authorized` | `boolean` | Whether the credential is authorized directly for the enterprise. |
23
+ | `authorization_count` | `integer` | Total organization authorizations plus enterprise authorization. |
24
+ | `inventory_as_of` | `string` | Timestamp of the export snapshot used to observe the token. |
25
+ | `created_at` | `datetime` | Token creation time reported by GitHub. |
26
+ | `last_used_at` | `datetime` | Last use time reported by GitHub. |
27
+ | `expires_at` | `datetime` | Token expiration time reported by GitHub. |
28
+ | `authorized_organizations` | `list[string]` | Organizations with a reported credential authorization. |
29
+ | `environment_name` | `string` | Enterprise environment name. |
30
+ | `enterprise_name` | `string` | Enterprise from which the inventory was exported. |
31
+
32
+ ## Diagram
33
+
34
+ ```mermaid
35
+ graph LR
36
+ n0["GH_ClassicPersonalAccessToken"]
37
+ n1["GH_Organization"]
38
+ n2["GH_Enterprise"]
39
+ n3["GH_User"]
40
+ n0 -.->|GH_AuthorizedForOrganization| n1
41
+ n2 -.->|GH_Contains| n0
42
+ n3 -.->|GH_HasPersonalAccessToken| n0
43
+ ```
@@ -34,41 +34,43 @@ A GitHub Enterprise account that contains organizations, enterprise teams, roles
34
34
  ```mermaid
35
35
  graph LR
36
36
  n0["GH_Enterprise"]
37
- n1["GH_EnterpriseManagedUser"]
38
- n2["GH_EnterpriseRole"]
39
- n3["GH_EnterpriseRunnerGroup"]
40
- n4["GH_EnterpriseTeam"]
41
- n5["GH_Organization"]
42
- n6["GH_SamlIdentityProvider"]
43
- n7["GH_User"]
44
- n0 -.->|GH_HasMember| n1
45
- n0 -.->|GH_Contains| n2
37
+ n1["GH_ClassicPersonalAccessToken"]
38
+ n2["GH_EnterpriseManagedUser"]
39
+ n3["GH_EnterpriseRole"]
40
+ n4["GH_EnterpriseRunnerGroup"]
41
+ n5["GH_EnterpriseTeam"]
42
+ n6["GH_Organization"]
43
+ n7["GH_SamlIdentityProvider"]
44
+ n8["GH_User"]
45
+ n0 -.->|GH_Contains| n1
46
+ n0 -.->|GH_HasMember| n2
46
47
  n0 -.->|GH_Contains| n3
47
48
  n0 -.->|GH_Contains| n4
48
49
  n0 -.->|GH_Contains| n5
49
- n0 -.->|GH_HasSamlIdentityProvider| n6
50
- n0 -.->|GH_HasMember| n7
51
- n2 -.->|GH_CreateEnterpriseOrganizations| n0
52
- n2 -.->|GH_EditEnterpriseCustomPropertiesForOrganizations| n0
53
- n2 -->|GH_ManageEnterpriseAdmins| n0
54
- n2 -.->|GH_ManageEnterpriseIdentityProvider| n0
55
- n2 -->|GH_ManageEnterpriseMembers| n0
56
- n2 -->|GH_ManageEnterpriseOrganizationAdmins| n0
57
- n2 -.->|GH_ManageEnterpriseOrganizations| n0
58
- n2 -.->|GH_ManageEnterpriseReferrals| n0
59
- n2 -.->|GH_ManageEnterpriseTeams| n0
60
- n2 -.->|GH_ReadEnterpriseAuditLog| n0
61
- n2 -.->|GH_ReadEnterpriseDomainVerification| n0
62
- n2 -.->|GH_ReadEnterpriseMembers| n0
63
- n2 -.->|GH_ReadEnterpriseOrgProjects| n0
64
- n2 -.->|GH_ReadEnterpriseOrganizationAdmin| n0
65
- n2 -.->|GH_SetEnterpriseInteractionLimits| n0
66
- n2 -.->|GH_ViewEnterpriseActionsUsageMetrics| n0
67
- n2 -.->|GH_ViewEnterpriseBilling| n0
68
- n2 -.->|GH_ViewEnterpriseSecretScanningAlerts| n0
69
- n2 -.->|GH_WriteEnterpriseActionsPolicies| n0
70
- n2 -.->|GH_WriteEnterpriseBilling| n0
71
- n2 -.->|GH_WriteEnterprisePersonalAccessTokenPolicies| n0
72
- n2 -.->|GH_WriteEnterpriseSso| n0
73
- n2 -.->|GH_WriteEnterpriseTeamMembers| n0
50
+ n0 -.->|GH_Contains| n6
51
+ n0 -.->|GH_HasSamlIdentityProvider| n7
52
+ n0 -.->|GH_HasMember| n8
53
+ n3 -.->|GH_CreateEnterpriseOrganizations| n0
54
+ n3 -.->|GH_EditEnterpriseCustomPropertiesForOrganizations| n0
55
+ n3 -->|GH_ManageEnterpriseAdmins| n0
56
+ n3 -.->|GH_ManageEnterpriseIdentityProvider| n0
57
+ n3 -->|GH_ManageEnterpriseMembers| n0
58
+ n3 -->|GH_ManageEnterpriseOrganizationAdmins| n0
59
+ n3 -.->|GH_ManageEnterpriseOrganizations| n0
60
+ n3 -.->|GH_ManageEnterpriseReferrals| n0
61
+ n3 -.->|GH_ManageEnterpriseTeams| n0
62
+ n3 -.->|GH_ReadEnterpriseAuditLog| n0
63
+ n3 -.->|GH_ReadEnterpriseDomainVerification| n0
64
+ n3 -.->|GH_ReadEnterpriseMembers| n0
65
+ n3 -.->|GH_ReadEnterpriseOrgProjects| n0
66
+ n3 -.->|GH_ReadEnterpriseOrganizationAdmin| n0
67
+ n3 -.->|GH_SetEnterpriseInteractionLimits| n0
68
+ n3 -.->|GH_ViewEnterpriseActionsUsageMetrics| n0
69
+ n3 -.->|GH_ViewEnterpriseBilling| n0
70
+ n3 -.->|GH_ViewEnterpriseSecretScanningAlerts| n0
71
+ n3 -.->|GH_WriteEnterpriseActionsPolicies| n0
72
+ n3 -.->|GH_WriteEnterpriseBilling| n0
73
+ n3 -.->|GH_WriteEnterprisePersonalAccessTokenPolicies| n0
74
+ n3 -.->|GH_WriteEnterpriseSso| n0
75
+ n3 -.->|GH_WriteEnterpriseTeamMembers| n0
74
76
  ```
@@ -90,40 +90,42 @@ Represents a GitHub organization. This is the root node of the graph and serves
90
90
 
91
91
  ```mermaid
92
92
  graph LR
93
- n0["GH_Enterprise"]
93
+ n0["GH_ClassicPersonalAccessToken"]
94
94
  n1["GH_Organization"]
95
- n2["GH_EnterpriseTeam"]
96
- n3["GH_OrgRole"]
97
- n4["GH_AppInstallation"]
98
- n5["GH_OrgRunnerGroup"]
99
- n6["GH_OrgSecret"]
100
- n7["GH_OrgVariable"]
101
- n8["GH_PersonalAccessToken"]
102
- n9["GH_PersonalAccessTokenRequest"]
103
- n10["GH_Repository"]
104
- n11["GH_SamlIdentityProvider"]
105
- n12["GH_SecretScanningAlert"]
106
- n0 -.->|GH_Contains| n1
107
- n2 -.->|GH_AssignedTo| n1
108
- n3 -.->|GH_AddCollaborator| n1
109
- n3 -.->|GH_CanCreateInternalRepositories| n1
110
- n3 -.->|GH_CanCreatePrivateRepositories| n1
111
- n3 -.->|GH_CanCreatePublicRepositories| n1
112
- n3 -.->|GH_CanCreateRepositories| n1
113
- n3 -.->|GH_CreateTeam| n1
114
- n3 -.->|GH_InviteMember| n1
115
- n3 -.->|GH_ResolveSecretScanningAlerts| n1
116
- n3 -.->|GH_TransferRepository| n1
117
- n3 -.->|GH_ViewSecretScanningAlerts| n1
118
- n1 -.->|GH_Contains| n4
119
- n1 -.->|GH_Contains| n3
95
+ n2["GH_Enterprise"]
96
+ n3["GH_EnterpriseTeam"]
97
+ n4["GH_OrgRole"]
98
+ n5["GH_AppInstallation"]
99
+ n6["GH_OrgRunnerGroup"]
100
+ n7["GH_OrgSecret"]
101
+ n8["GH_OrgVariable"]
102
+ n9["GH_PersonalAccessToken"]
103
+ n10["GH_PersonalAccessTokenRequest"]
104
+ n11["GH_Repository"]
105
+ n12["GH_SamlIdentityProvider"]
106
+ n13["GH_SecretScanningAlert"]
107
+ n0 -.->|GH_AuthorizedForOrganization| n1
108
+ n2 -.->|GH_Contains| n1
109
+ n3 -.->|GH_AssignedTo| n1
110
+ n4 -.->|GH_AddCollaborator| n1
111
+ n4 -.->|GH_CanCreateInternalRepositories| n1
112
+ n4 -.->|GH_CanCreatePrivateRepositories| n1
113
+ n4 -.->|GH_CanCreatePublicRepositories| n1
114
+ n4 -.->|GH_CanCreateRepositories| n1
115
+ n4 -.->|GH_CreateTeam| n1
116
+ n4 -.->|GH_InviteMember| n1
117
+ n4 -.->|GH_ResolveSecretScanningAlerts| n1
118
+ n4 -.->|GH_TransferRepository| n1
119
+ n4 -.->|GH_ViewSecretScanningAlerts| n1
120
120
  n1 -.->|GH_Contains| n5
121
+ n1 -.->|GH_Contains| n4
121
122
  n1 -.->|GH_Contains| n6
122
123
  n1 -.->|GH_Contains| n7
123
124
  n1 -.->|GH_Contains| n8
124
125
  n1 -.->|GH_Contains| n9
125
- n1 -->|GH_Owns| n10
126
- n1 -.->|GH_HasSamlIdentityProvider| n11
127
- n1 -.->|GH_Contains| n12
128
- n8 -.->|GH_CanAccess| n1
126
+ n1 -.->|GH_Contains| n10
127
+ n1 -->|GH_Owns| n11
128
+ n1 -.->|GH_HasSamlIdentityProvider| n12
129
+ n1 -.->|GH_Contains| n13
130
+ n9 -.->|GH_CanAccess| n1
129
131
  ```
@@ -36,14 +36,15 @@ graph LR
36
36
  n4["GH_SecretScanningAlert"]
37
37
  n5["GH_Branch"]
38
38
  n6["GH_BranchProtectionRule"]
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"]
39
+ n7["GH_ClassicPersonalAccessToken"]
40
+ n8["GH_DeployKey"]
41
+ n9["GH_EnterpriseRole"]
42
+ n10["GH_Environment"]
43
+ n11["GH_OrgRole"]
44
+ n12["GH_PersonalAccessToken"]
45
+ n13["GH_PersonalAccessTokenRequest"]
46
+ n14["GH_RepoRole"]
47
+ n15["GH_TeamRole"]
47
48
  n0 -.->|GH_HasMember| n1
48
49
  n2 -.->|GH_MapsToUser| n1
49
50
  n3 -.->|GH_MapsToUser| n1
@@ -51,13 +52,14 @@ graph LR
51
52
  n1 -.->|GH_CanWriteBranch| n5
52
53
  n1 -.->|GH_BypassPullRequestAllowances| n6
53
54
  n1 -.->|GH_RestrictionsCanPush| n6
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
61
- n1 -->|GH_HasRole| n13
55
+ n1 -.->|GH_HasPersonalAccessToken| n7
56
+ n1 -.->|GH_AddedDeployKey| n8
57
+ n1 -->|GH_HasRole| n9
58
+ n1 -.->|GH_ApprovesDeploymentTo| n10
59
+ n1 -->|GH_CanDeployToEnvironment| n10
60
+ n1 -->|GH_HasRole| n11
61
+ n1 -.->|GH_HasPersonalAccessToken| n12
62
+ n1 -.->|GH_HasPersonalAccessTokenRequest| n13
62
63
  n1 -->|GH_HasRole| n14
64
+ n1 -->|GH_HasRole| n15
63
65
  ```
@@ -40,7 +40,7 @@ Use the runner interception searches as a progression:
40
40
  | 1 | `active-leaked-secrets.json` | Active Leaked Secrets | Finds secret scanning alerts that are both unresolved and confirmed active. These are valid, usable credentials committed to source code and represent an immediate compromise risk. |
41
41
  | 2 | `secret-scanning-alerts.json` | Secret Scanning Alerts | Returns all repositories that have open secret scanning alerts. |
42
42
  | 3 | `pats-all-repo-access.json` | PATs with Access to All Repositories | Finds fine-grained personal access tokens scoped to all repositories. A single compromised token grants access to every repository in the organization. |
43
- | 4 | `expired-pats.json` | Expired Personal Access Tokens | Finds expired personal access tokens that still exist. Expired tokens should be cleaned up to reduce credential inventory and audit noise. |
43
+ | 4 | `expired-pats.json` | Expired Personal Access Tokens | Finds expired fine-grained and classic personal access tokens, including tokens whose owner could not be resolved. Expired tokens should be cleaned up to reduce credential inventory and audit noise. |
44
44
  | 5 | `pending-pat-requests.json` | Pending PAT Requests | Finds pending fine-grained personal access token requests awaiting approval. Review these to ensure requested permissions are appropriate before granting access. |
45
45
 
46
46
  ### :orange_circle: High &mdash; Organization Security Posture
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "GitHub: Expired Personal Access Tokens",
3
+ "query": "MATCH (token)\nWHERE (token:GH_PersonalAccessToken AND token.token_expired = true) OR (token:GH_ClassicPersonalAccessToken AND token.credential_state = 'expired')\nOPTIONAL MATCH p=(:GH_User)-[:GH_HasPersonalAccessToken]->(token)\nRETURN token, p\nLIMIT 1000",
4
+ "description": "Finds expired fine-grained and classic personal access tokens, including tokens whose owner could not be resolved. Expired tokens should be cleaned up to reduce credential inventory and audit noise."
5
+ }
@@ -76,6 +76,13 @@
76
76
  "markdown": {
77
77
  "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (selected:GH_Enterprise {objectid: '%s'})-[:GH_HasSamlIdentityProvider]->(idp:GH_SamlIdentityProvider)\\nOPTIONAL MATCH p1 = (idp)-[:GH_HasExternalIdentity]->(:GH_ExternalIdentity)-[:GH_MapsToUser]->(:GH_User)\\nRETURN p, p1\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View the identity provider and mapped users for this enterprise in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
78
78
  }
79
+ },
80
+ "classic_personal_access_tokens": {
81
+ "title": "Classic Personal Access Tokens",
82
+ "position": 10,
83
+ "markdown": {
84
+ "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (selected:GH_Enterprise {objectid: '%s'})-[:GH_Contains]->(:GH_ClassicPersonalAccessToken)\\nRETURN p\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View classic personal access tokens in this enterprise in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
85
+ }
79
86
  }
80
87
  }
81
88
  },
@@ -305,6 +312,13 @@
305
312
  "markdown": {
306
313
  "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (selected:GH_Organization {objectid: '%s'})-[:GH_HasSamlIdentityProvider]->(idp:GH_SamlIdentityProvider)\\nOPTIONAL MATCH p1 = (idp)-[:GH_HasExternalIdentity]->(:GH_ExternalIdentity)-[:GH_MapsToUser]->(:GH_User)\\nRETURN p, p1\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View the identity provider and mapped users for this organization in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
307
314
  }
315
+ },
316
+ "classic_pat_authorizations": {
317
+ "title": "Classic PAT Authorizations",
318
+ "position": 9,
319
+ "markdown": {
320
+ "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (:GH_ClassicPersonalAccessToken)-[:GH_AuthorizedForOrganization]->(selected:GH_Organization {objectid: '%s'})\\nRETURN p\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View classic PATs authorized for this organization in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
321
+ }
308
322
  }
309
323
  }
310
324
  },
@@ -1759,6 +1773,51 @@
1759
1773
  }
1760
1774
  }
1761
1775
  },
1776
+ {
1777
+ "name": "GH_ClassicPersonalAccessToken",
1778
+ "display_name": "GitHub Classic Personal Access Token",
1779
+ "description": "A classic personal access token found in the enterprise credential inventory",
1780
+ "is_display_kind": true,
1781
+ "icon": "key",
1782
+ "color": "#F5A623",
1783
+ "info": {
1784
+ "description": {
1785
+ "title": "Description",
1786
+ "position": 1,
1787
+ "markdown": {
1788
+ "content": "## Overview\n\nRepresents a classic personal access token reported by the enterprise credential inventory. Organization edges record authorizations, while token scopes and owner permissions determine what the credential can do. Repository access is not enumerated by the inventory."
1789
+ }
1790
+ },
1791
+ "inbound_traversable_relationships": {
1792
+ "title": "Inbound Traversable GH Relationships",
1793
+ "position": 2,
1794
+ "markdown": {
1795
+ "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (selected:GH_ClassicPersonalAccessToken {objectid: '%s'})\\nWHERE false\\nRETURN p\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View direct inbound relationships in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
1796
+ }
1797
+ },
1798
+ "outbound_traversable_relationships": {
1799
+ "title": "Outbound Traversable GH Relationships",
1800
+ "position": 3,
1801
+ "markdown": {
1802
+ "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (selected:GH_ClassicPersonalAccessToken {objectid: '%s'})\\nWHERE false\\nRETURN p\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View direct outbound relationships in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
1803
+ }
1804
+ },
1805
+ "owner": {
1806
+ "title": "Owner",
1807
+ "position": 4,
1808
+ "markdown": {
1809
+ "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (:GH_User)-[:GH_HasPersonalAccessToken]->(selected:GH_ClassicPersonalAccessToken {objectid: '%s'})\\nRETURN p\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View the owner of this personal access token in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
1810
+ }
1811
+ },
1812
+ "organization_scope": {
1813
+ "title": "Organization Scope",
1814
+ "position": 5,
1815
+ "markdown": {
1816
+ "content": "{{ $objectID := .Properties.objectid | default \"\" | trim }}\n{{ $escapedObjectID := $objectID | replace \"\\\\\" \"\\\\\\\\\" | replace \"'\" \"\\\\'\" }}\n{{ if ne $objectID \"\" }}\n{{ $query := printf \"MATCH p = (selected:GH_ClassicPersonalAccessToken {objectid: '%s'})-[:GH_AuthorizedForOrganization]->(:GH_Organization)\\nRETURN p\\nLIMIT 500\" $escapedObjectID }}\n{{ $encodedQuery := $query | b64enc | urlquery }}\n[View organizations authorizing this token in Explore](/ui/explore?exploreSearchTab=cypher&searchType=cypher&cypherSearch={{ $encodedQuery }})\n{{ else }}\nExplore navigation is unavailable because this object has no stable identifier.\n{{ end }}"
1817
+ }
1818
+ }
1819
+ }
1820
+ },
1762
1821
  {
1763
1822
  "name": "GH_PersonalAccessToken",
1764
1823
  "display_name": "GitHub Personal Access Token",
@@ -2490,7 +2549,7 @@
2490
2549
  },
2491
2550
  {
2492
2551
  "name": "GH_HasPersonalAccessToken",
2493
- "description": "User owns this personal access token that has been granted access to the organization",
2552
+ "description": "User owns a personal access token reported by GitHub",
2494
2553
  "is_traversable": false
2495
2554
  },
2496
2555
  {
@@ -2503,6 +2562,11 @@
2503
2562
  "description": "GitHub App is installed as this app installation on an organization",
2504
2563
  "is_traversable": true
2505
2564
  },
2565
+ {
2566
+ "name": "GH_AuthorizedForOrganization",
2567
+ "description": "Classic personal access token has a recorded authorization for this organization",
2568
+ "is_traversable": false
2569
+ },
2506
2570
  {
2507
2571
  "name": "GH_CanAccess",
2508
2572
  "description": "Personal access token, app installation, or deploy key can access this repository or organization",