openhound-github 0.3.1__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openhound_github-0.3.1 → openhound_github-0.3.3}/PKG-INFO +1 -1
- {openhound_github-0.3.1 → openhound_github-0.3.3}/pyproject.toml +1 -1
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/workflow.py +39 -31
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/workflow_job.py +42 -4
- {openhound_github-0.3.1 → openhound_github-0.3.3}/uv.lock +18 -6
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/CODE_OF_CONDUCT.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/CONTRIBUTING.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GOVERNANCE.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GitHub-COC-Header.png +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GitHub-CONTRIB-Header.png +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GitHub-GOV-Header.png +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GitHub-Header.png +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GitHub-LIC-Header.png +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/GitHub-SEC-Header.png +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/SECURITY.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/SO-Dark.svg +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/SO-FOSS-Dark.svg +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/SO-FOSS-Light.svg +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/SO-Light.svg +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/workflows/publish.yml +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/workflows/release-on-merge.yml +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.github/workflows/validate-branch.yml +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.gitignore +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.gitmodules +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/.pre-commit-config.yaml +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/LICENSE.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/README.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_AddAssignee.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_AddCollaborator.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_AddLabel.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_AddMember.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_AdminTo.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_BypassBranchProtection.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_BypassPullRequestAllowances.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CallsWorkflow.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanAccess.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanAssumeIdentity.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanCreateBranch.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanEditProtection.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanPwnRequest.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanReadSecretScanningAlert.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanWriteBranch.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CloseDiscussion.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CloseIssue.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ClosePullRequest.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_Contains.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ConvertIssuesToDiscussions.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateDiscussionCategory.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateRepository.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateTag.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateTeam.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteAlertsCodeScanning.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteDiscussion.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteDiscussionComment.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteIssue.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteTag.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DependsOn.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeploysTo.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditCategoryOnDiscussion.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditDiscussionCategory.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditDiscussionComment.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditRepoAnnouncementBanners.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditRepoCustomPropertiesValues.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditRepoMetadata.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditRepoProtections.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasBaseRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasBranch.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasEnvironment.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasExternalIdentity.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasJob.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasMember.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasPersonalAccessToken.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasPersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasSamlIdentityProvider.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasSecret.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasStep.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasVariable.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasWorkflow.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_InstalledAs.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_InviteMember.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_JumpMergeQueue.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageDeployKeys.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageDiscussionBadges.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageOrganizationWebhooks.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageRepoSecurityProducts.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSecurityProducts.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsMergeTypes.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsPages.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsProjects.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsWiki.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageTopics.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageWebhooks.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_MapsToUser.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_MarkAsDuplicate.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_MemberOf.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_OrgBypassCodeScanningDismissalRequests.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_OrgBypassSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_OrgReviewAndManageSecretScanningBypassRequests.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_OrgReviewAndManageSecretScanningClosureRequests.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_Owns.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ProtectedBy.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_PushProtectedBranch.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReadCodeScanning.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReadOrganizationActionsUsageMetrics.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReadOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReadOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReadRepoContents.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_RemoveAssignee.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_RemoveLabel.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReopenDiscussion.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReopenIssue.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReopenPullRequest.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_RequestPrReview.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ResolveDependabotAlerts.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ResolveSecretScanningAlerts.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_RestrictionsCanPush.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_RunOrgMigration.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_SetInteractionLimits.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_SetIssueType.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_SetMilestone.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_SetSocialPreview.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_SyncedTo.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ToggleDiscussionAnswer.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ToggleDiscussionCommentMinimize.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_TransferRepository.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_UsesSecret.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_UsesVariable.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ValidToken.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ViewDependabotAlerts.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ViewSecretScanningAlerts.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteCodeScanning.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteOrganizationActionsSecrets.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteOrganizationActionsSettings.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteOrganizationActionsVariables.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteOrganizationCustomOrgRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteOrganizationCustomRepoRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteOrganizationNetworkConfigurations.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteRepoContents.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_WriteRepoPullRequests.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_App.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_AppInstallation.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_Branch.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_BranchProtectionRule.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_Environment.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_EnvironmentSecret.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_EnvironmentVariable.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_ExternalIdentity.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_OrgRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_OrgSecret.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_OrgVariable.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_Organization.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_PersonalAccessToken.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_PersonalAccessTokenRequest.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_RepoRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_RepoSecret.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_RepoVariable.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_Repository.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_SamlIdentityProvider.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_SecretScanningAlert.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_Team.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_TeamRole.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_User.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_Workflow.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_WorkflowJob.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/nodes/GH_WorkflowStep.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/docs/og-docs.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-all-repo-admin-role.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-app-installations-all-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-apps-all-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-external-identities-owners.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-organizations.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-owner-users.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-owners-role.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-pats-all-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-privilege-escalation-roles.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-privilege-escalation-users.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/privilege_zone_rules/t0-saml-identity-providers.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/README.md +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/actions-sha-pinning-not-required.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/active-leaked-secrets.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/advanced-security-disabled-new-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/all-actions-allowed.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/app-installations-all-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-admins-not-enforced.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-deletions-allowed.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-force-pushes.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-no-code-owner-reviews.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-no-pr-reviews.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-no-status-checks.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-self-approval.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/branch-protection-stale-reviews.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/bypass-pr-requirements.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/dangerous-branch-perms.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/default-repository-permissions.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/demo-sso-to-cloud-round-trip.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/dependabot-alerts-disabled-new-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/dependabot-updates-disabled-new-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/dependency-graph-disabled-new-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/environments-admin-bypass.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/expired-pats.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/external-identities-without-scim.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/github-to-azure-identity.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/global-repo-perms.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/hybrid-identities.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/members-can-change-repo-visibility.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/members-can-create-pages.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/members-can-create-public-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/members-can-delete-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/members-can-fork-private-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/members-can-invite-outside-collaborators.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/org-owners.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/orgs-without-2fa.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/pats-all-repo-access.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/pending-pat-requests.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/private-repos-forking-allowed.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/privileged-custom-org-roles.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/privileged-hybrid-identities.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/public-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/push-protection-disabled-new-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/push-to-protected-branches.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/repos-secret-scanning-disabled.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/repos-vulnerable-to-workflow-secret-exfil.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/repository-workflows.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/saml-configuration.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/secret-scanning-alerts.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/secret-scanning-disabled-new-repos.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/secrets-reachable-by-user.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/team-membership-admin.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/team-structure.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/unprotected-branches.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/unprotected-default-branch-with-workflow.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/unprotected-default-branches.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/saved_searches/web-commit-signoff-not-required.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension/schema.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/extension.yaml +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/justfile +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/main.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/__init__.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/auth.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/graph.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/graphql.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/helpers.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/kinds/edges.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/kinds/nodes.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/lookup.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/main.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/__init__.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/actions_permission.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/app_installation.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/branch.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/branch_pr_bypass_allowance.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/branch_protection_rule.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/branch_push_allowance.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_admin.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_external_identity.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_helpers.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_managed_user.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_member.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_organization.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_role.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_role_team.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_role_user.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_saml_provider.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_team.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_team_member.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_team_organization.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_team_role.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/enterprise_user.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/env_secret.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/env_variable.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/environment.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/environment_branch_policy.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/external_identity.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/org.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/org_role.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/org_role_member.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/org_role_team.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/org_secret.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/org_variable.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/personal_access_token.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/personal_access_token_access.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/personal_access_token_request.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/projected_enterprise_team.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/repo_role_assignment.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/repository.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/repository_role.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/repository_secret.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/repository_variable.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/runner.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/saml_provider.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/scim_user.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/secret_scanning_alert.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/team.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/team_member.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/team_role.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/user.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/workflow_step.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/resources/__init__.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/resources/enterprise.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/resources/organization.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/source.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/transforms.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/actions-permissions.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/actionsecrets.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/app.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/appinstalls.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/branch-policies.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/branch-prot-rules.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/branches.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/custom-roles.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/environments.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/org-pat-request.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/org-pat.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/org-role-teams.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/org-role-users.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/org-roles.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/org.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/pat-repositories.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/repo-collaborators.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/repo-teams.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/repositories.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/scimusers.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/secrets.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/secretscanningalert.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/selected-org-secrets.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/variables.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_data/api/workflows.json +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_github_rest_client.py +0 -0
- {openhound_github-0.3.1 → openhound_github-0.3.3}/tests/test_github_retry.py +0 -0
|
@@ -51,8 +51,8 @@ class WorkflowStepDefinition(BaseModel):
|
|
|
51
51
|
name: str | None = None
|
|
52
52
|
uses: str | None = None
|
|
53
53
|
run: str | None = None
|
|
54
|
-
with_: dict[str,
|
|
55
|
-
env: dict[str,
|
|
54
|
+
with_: dict[str, str] = Field(default_factory=dict, alias="with")
|
|
55
|
+
env: dict[str, str] = Field(default_factory=dict)
|
|
56
56
|
|
|
57
57
|
@field_validator("with_", "env", mode="before")
|
|
58
58
|
@classmethod
|
|
@@ -79,23 +79,45 @@ class WorkflowStepDefinition(BaseModel):
|
|
|
79
79
|
return "unknown"
|
|
80
80
|
|
|
81
81
|
|
|
82
|
+
class Container(BaseModel):
|
|
83
|
+
image: str
|
|
84
|
+
credentials: dict[str, str] | None = None
|
|
85
|
+
env: dict[str, str] | None = None
|
|
86
|
+
ports: list[int] | None = None
|
|
87
|
+
|
|
88
|
+
def __str__(self) -> str:
|
|
89
|
+
return self.image
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class RunsOn(BaseModel):
|
|
93
|
+
group: str | None = None
|
|
94
|
+
labels: list[str] | str | None = None
|
|
95
|
+
|
|
96
|
+
|
|
82
97
|
class WorkflowJobDefinition(BaseModel):
|
|
83
98
|
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
84
99
|
|
|
85
|
-
runs_on:
|
|
86
|
-
needs:
|
|
87
|
-
environment:
|
|
88
|
-
permissions:
|
|
100
|
+
runs_on: str | list[str] | RunsOn | None = Field(default=None, alias="runs-on")
|
|
101
|
+
needs: str | list[str] | None = None
|
|
102
|
+
environment: str | dict[str, str] | None = None
|
|
103
|
+
permissions: str | dict[str, str] | None = None
|
|
89
104
|
uses: str | None = None
|
|
90
|
-
container:
|
|
91
|
-
env: dict[str,
|
|
92
|
-
secrets: dict[str,
|
|
105
|
+
container: str | Container | None = None
|
|
106
|
+
env: dict[str, str] = Field(default_factory=dict)
|
|
107
|
+
secrets: dict[str, str] = Field(default_factory=dict)
|
|
93
108
|
steps: list[WorkflowStepDefinition] = Field(default_factory=list)
|
|
94
109
|
|
|
95
|
-
|
|
110
|
+
# This may seem strange, but the GitHub yaml format accepts empty values for keys
|
|
111
|
+
# additionally, to prevent other yaml parsing issues, make sure we always convert the key/value to string first
|
|
112
|
+
# for both env and secrets
|
|
113
|
+
@field_validator("env", "secrets", mode="before")
|
|
96
114
|
@classmethod
|
|
97
|
-
def dict_or_empty(cls, value: Any) -> dict[str,
|
|
98
|
-
return
|
|
115
|
+
def dict_or_empty(cls, value: Any) -> dict[str, str]:
|
|
116
|
+
return (
|
|
117
|
+
{f"{str(key)}": f"{str(value)}" for key, value in value.items()}
|
|
118
|
+
if isinstance(value, dict)
|
|
119
|
+
else {}
|
|
120
|
+
)
|
|
99
121
|
|
|
100
122
|
@field_validator("steps", mode="before")
|
|
101
123
|
@classmethod
|
|
@@ -123,27 +145,15 @@ class WorkflowJobDefinition(BaseModel):
|
|
|
123
145
|
return str(self.environment["name"])
|
|
124
146
|
return None
|
|
125
147
|
|
|
126
|
-
@property
|
|
127
|
-
def is_self_hosted(self) -> bool:
|
|
128
|
-
if isinstance(self.runs_on, str):
|
|
129
|
-
return self.runs_on == "self-hosted"
|
|
130
|
-
if isinstance(self.runs_on, list):
|
|
131
|
-
return "self-hosted" in [str(item) for item in self.runs_on]
|
|
132
|
-
return False
|
|
133
|
-
|
|
134
148
|
@property
|
|
135
149
|
def container_value(self) -> str | None:
|
|
136
|
-
if self.container
|
|
137
|
-
return None
|
|
138
|
-
if isinstance(self.container, str):
|
|
139
|
-
return self.container
|
|
140
|
-
return str(self.container)
|
|
150
|
+
return str(self.container) if self.container else None
|
|
141
151
|
|
|
142
152
|
|
|
143
153
|
class WorkflowDocument(BaseModel):
|
|
144
154
|
model_config = ConfigDict(extra="allow")
|
|
145
155
|
|
|
146
|
-
permissions:
|
|
156
|
+
permissions: str | dict[str, str] | None = None
|
|
147
157
|
jobs: dict[str, WorkflowJobDefinition] = Field(default_factory=dict)
|
|
148
158
|
|
|
149
159
|
@field_validator("jobs", mode="before")
|
|
@@ -490,10 +500,9 @@ class Workflow(BaseAsset):
|
|
|
490
500
|
for job_key, job in document.jobs.items():
|
|
491
501
|
secret_refs = []
|
|
492
502
|
variable_refs = []
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
)
|
|
503
|
+
secret_refs.extend(
|
|
504
|
+
mapping_references(SECRET_REFERENCE_RE, job.secrets, "secrets")
|
|
505
|
+
)
|
|
497
506
|
secret_refs.extend(mapping_references(SECRET_REFERENCE_RE, job.env, "env"))
|
|
498
507
|
variable_refs.extend(
|
|
499
508
|
mapping_references(VARIABLE_REFERENCE_RE, job.env, "env")
|
|
@@ -505,7 +514,6 @@ class Workflow(BaseAsset):
|
|
|
505
514
|
"name": f"{self.repository_name}\\{job_key}",
|
|
506
515
|
"job_key": job_key,
|
|
507
516
|
"runs_on": job.runs_on,
|
|
508
|
-
"is_self_hosted": job.is_self_hosted,
|
|
509
517
|
"container": job.container_value,
|
|
510
518
|
"environment": job.environment_name,
|
|
511
519
|
"permissions": job.permissions
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/src/openhound_github/models/workflow_job.py
RENAMED
|
@@ -21,6 +21,7 @@ from openhound_github.graph import GHNode, GHNodeProperties
|
|
|
21
21
|
from openhound_github.kinds import edges as ek
|
|
22
22
|
from openhound_github.kinds import nodes as nk
|
|
23
23
|
from openhound_github.main import app
|
|
24
|
+
from openhound_github.models.workflow import RunsOn
|
|
24
25
|
|
|
25
26
|
TEMPLATE_RE = re.compile(r"\$\{\{\s*[^}]+?\s*\}\}")
|
|
26
27
|
|
|
@@ -49,7 +50,7 @@ class GHWorkflowJobProperties(GHNodeProperties):
|
|
|
49
50
|
"""
|
|
50
51
|
|
|
51
52
|
job_key: str | None = None
|
|
52
|
-
runs_on:
|
|
53
|
+
runs_on: list[str] | None = None
|
|
53
54
|
is_self_hosted: bool = False
|
|
54
55
|
container: str | None = None
|
|
55
56
|
environment: str | None = None
|
|
@@ -153,8 +154,7 @@ class WorkflowJob(BaseAsset):
|
|
|
153
154
|
repository_name: str
|
|
154
155
|
repository_node_id: str
|
|
155
156
|
org_login: str
|
|
156
|
-
runs_on:
|
|
157
|
-
is_self_hosted: bool = False
|
|
157
|
+
runs_on: list[str] | None = None
|
|
158
158
|
container: str | None = None
|
|
159
159
|
environment: str | None = None
|
|
160
160
|
permissions: list[str] | None = None
|
|
@@ -172,14 +172,52 @@ class WorkflowJob(BaseAsset):
|
|
|
172
172
|
def normalize_permissions(cls, value: Any) -> list[str] | None:
|
|
173
173
|
if value is None:
|
|
174
174
|
return None
|
|
175
|
+
|
|
176
|
+
if isinstance(value, str):
|
|
177
|
+
return [value]
|
|
178
|
+
|
|
179
|
+
if isinstance(value, list):
|
|
180
|
+
return [str(item) for item in value]
|
|
181
|
+
|
|
175
182
|
if isinstance(value, dict):
|
|
176
|
-
return [f"{key}:{
|
|
183
|
+
return [f"{str(key)}:{str(value)}" for key, value in value.items()]
|
|
184
|
+
|
|
185
|
+
return [str(value)]
|
|
186
|
+
|
|
187
|
+
@field_validator("runs_on", mode="before")
|
|
188
|
+
@classmethod
|
|
189
|
+
def normalize_runs_on(cls, value: Any) -> list[str] | None:
|
|
190
|
+
if value is None:
|
|
191
|
+
return None
|
|
192
|
+
|
|
177
193
|
if isinstance(value, str):
|
|
178
194
|
return [value]
|
|
195
|
+
|
|
179
196
|
if isinstance(value, list):
|
|
180
197
|
return [str(item) for item in value]
|
|
198
|
+
|
|
199
|
+
if isinstance(value, RunsOn):
|
|
200
|
+
value = value.model_dump()
|
|
201
|
+
|
|
202
|
+
if isinstance(value, dict):
|
|
203
|
+
labels = value.get("labels")
|
|
204
|
+
if labels is None:
|
|
205
|
+
return None
|
|
206
|
+
|
|
207
|
+
if isinstance(labels, str):
|
|
208
|
+
return [labels]
|
|
209
|
+
|
|
210
|
+
if isinstance(labels, list):
|
|
211
|
+
return [str(item) for item in labels]
|
|
212
|
+
|
|
213
|
+
return [str(labels)]
|
|
214
|
+
|
|
181
215
|
return [str(value)]
|
|
182
216
|
|
|
217
|
+
@property
|
|
218
|
+
def is_self_hosted(self) -> bool:
|
|
219
|
+
return "self-hosted" in (self.runs_on or [])
|
|
220
|
+
|
|
183
221
|
@property
|
|
184
222
|
def as_node(self) -> GHNode:
|
|
185
223
|
return GHNode(
|
|
@@ -541,6 +541,18 @@ wheels = [
|
|
|
541
541
|
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" },
|
|
542
542
|
]
|
|
543
543
|
|
|
544
|
+
[[package]]
|
|
545
|
+
name = "joserfc"
|
|
546
|
+
version = "1.7.1"
|
|
547
|
+
source = { registry = "https://pypi.org/simple" }
|
|
548
|
+
dependencies = [
|
|
549
|
+
{ name = "cryptography" },
|
|
550
|
+
]
|
|
551
|
+
sdist = { url = "https://files.pythonhosted.org/packages/44/90/25cb27518750218e4f850be63d8bbb2343efaad1c01c3571aaa4b3c33bd7/joserfc-1.7.1.tar.gz", hash = "sha256:77d0b76514879c68c6f433bc5b7357a4ab72008ff1e33d8379fd11d72bd8ca81", size = 233181, upload-time = "2026-06-08T07:21:33.412Z" }
|
|
552
|
+
wheels = [
|
|
553
|
+
{ url = "https://files.pythonhosted.org/packages/b3/00/fa62404c3e347f946faa13aa21085205f9cc06ad17671e37f81a51662ae8/joserfc-1.7.1-py3-none-any.whl", hash = "sha256:b3e3d655612e2e1ef67b2600f2f420e12e537b020208fab1761fad647319c164", size = 70423, upload-time = "2026-06-08T07:21:32.001Z" },
|
|
554
|
+
]
|
|
555
|
+
|
|
544
556
|
[[package]]
|
|
545
557
|
name = "jsonpath-ng"
|
|
546
558
|
version = "1.7.0"
|
|
@@ -835,7 +847,7 @@ wheels = [
|
|
|
835
847
|
|
|
836
848
|
[[package]]
|
|
837
849
|
name = "openhound"
|
|
838
|
-
version = "0.1
|
|
850
|
+
version = "0.2.1"
|
|
839
851
|
source = { registry = "https://pypi.org/simple" }
|
|
840
852
|
dependencies = [
|
|
841
853
|
{ name = "alive-progress" },
|
|
@@ -853,16 +865,16 @@ dependencies = [
|
|
|
853
865
|
{ name = "typer" },
|
|
854
866
|
{ name = "types-requests" },
|
|
855
867
|
]
|
|
856
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
868
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b5/55/1e411c2328b0dc5bd5719332c86664fd211a1b5d9967f6e7c2fe62893259/openhound-0.2.1.tar.gz", hash = "sha256:a72ce592f37154cdb25268066ed57b891823653ee0fed546013ffcfe60ddb3d0", size = 3539819, upload-time = "2026-06-16T17:59:40.221Z" }
|
|
857
869
|
wheels = [
|
|
858
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
870
|
+
{ url = "https://files.pythonhosted.org/packages/65/af/7e358be9436ac1ca183382536b26ff916f5b06d96bd7d7529ce8f3fe028c/openhound-0.2.1-py3-none-any.whl", hash = "sha256:bc3bb9863d99d3de2bb1906560f2a38edcb898f8dcac463881f2f95e38c3c051", size = 65136, upload-time = "2026-06-16T17:59:38.923Z" },
|
|
859
871
|
]
|
|
860
872
|
|
|
861
873
|
[[package]]
|
|
862
874
|
name = "openhound-github"
|
|
863
875
|
source = { editable = "." }
|
|
864
876
|
dependencies = [
|
|
865
|
-
{ name = "
|
|
877
|
+
{ name = "joserfc" },
|
|
866
878
|
{ name = "requests" },
|
|
867
879
|
]
|
|
868
880
|
|
|
@@ -878,14 +890,14 @@ dev = [
|
|
|
878
890
|
|
|
879
891
|
[package.metadata]
|
|
880
892
|
requires-dist = [
|
|
881
|
-
{ name = "
|
|
893
|
+
{ name = "joserfc", specifier = ">=1.6.5" },
|
|
882
894
|
{ name = "requests", specifier = ">=2.33.0" },
|
|
883
895
|
]
|
|
884
896
|
|
|
885
897
|
[package.metadata.requires-dev]
|
|
886
898
|
dev = [
|
|
887
899
|
{ name = "mypy", specifier = ">=1.19.1" },
|
|
888
|
-
{ name = "openhound"
|
|
900
|
+
{ name = "openhound" },
|
|
889
901
|
{ name = "pre-commit", specifier = ">=4.5.1" },
|
|
890
902
|
{ name = "pytest", specifier = ">=9.0.1" },
|
|
891
903
|
{ name = "ruff", specifier = ">=0.15.5" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_BypassBranchProtection.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanAssumeIdentity.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CanEditProtection.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateDiscussionCategory.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_CreateSoloMergeQueueEntry.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteAlertsCodeScanning.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_DeleteDiscussionComment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditCategoryOnDiscussion.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditDiscussionCategory.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditDiscussionComment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_EditRepoProtections.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasExternalIdentity.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasPersonalAccessToken.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_HasSamlIdentityProvider.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageDiscussionBadges.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSecurityProducts.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsMergeTypes.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsPages.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsProjects.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ManageSettingsWiki.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_PushProtectedBranch.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ReopenPullRequest.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ResolveDependabotAlerts.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_RestrictionsCanPush.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_SetInteractionLimits.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ToggleDiscussionAnswer.md
RENAMED
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_TransferRepository.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ViewDependabotAlerts.md
RENAMED
|
File without changes
|
{openhound_github-0.3.1 → openhound_github-0.3.3}/descriptions/edges/GH_ViewSecretScanningAlerts.md
RENAMED
|
File without changes
|