import decode/zero import gleam/json import gleam/option.{type Option, None} pub type TeamFull { TeamFull( ldap_dn: Option(String), privacy: Option(String), members_url: Option(String), members_count: Option(Int), parent: Option(Nil), created_at: Option(String), name: Option(String), slug: Option(String), url: Option(String), permission: Option(String), repos_count: Option(Int), organization: Option(Nil), updated_at: Option(String), node_id: Option(String), repositories_url: Option(String), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type ProjectsV2SingleSelectOption { ProjectsV2SingleSelectOption( color: Option(String), name: Option(String), id: Option(String), description: Option(String), ) } pub type RepositoryWebhooks { RepositoryWebhooks( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), custom_properties: Option(Nil), forks_count: Option(Int), fork: Option(Bool), allow_update_branch: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), squash_merge_commit_message: Option(String), has_discussions: Option(Bool), teams_url: Option(String), merge_commit_message: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), allow_squash_merge: Option(Bool), homepage: Option(String), template_repository: Option(Nil), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), use_squash_pr_title_as_default: Option(Bool), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), organization: Option(Nil), owner: Option(Nil), starred_at: Option(String), allow_merge_commit: Option(Bool), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), squash_merge_commit_title: Option(String), merge_commit_title: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), anonymous_access_enabled: Option(Bool), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), subscribers_count: Option(Int), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), network_count: Option(Int), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhookDeploymentProtectionRuleRequested { WebhookDeploymentProtectionRuleRequested( deployment: Option(Nil), repository: Option(Nil), deployment_callback_url: Option(String), organization: Option(Nil), environment: Option(String), sender: Option(Nil), action: Option(String), installation: Option(Nil), event: Option(String), pull_requests: Option(Nil), ) } pub type EmptyObject { EmptyObject } pub type Workflow { Workflow( path_: Option(String), created_at: Option(String), name: Option(String), url: Option(String), state: Option(String), badge_url: Option(String), updated_at: Option(String), node_id: Option(String), deleted_at: Option(String), id: Option(Int), html_url: Option(String), ) } pub type RepositoryRule { RepositoryRule } pub type PersonalAccessTokenRequest { PersonalAccessTokenRequest( token_id: Option(Int), permissions_upgraded: Option(Nil), token_expires_at: Option(String), permissions_added: Option(Nil), repositories: Option(Nil), created_at: Option(String), token_name: Option(String), token_last_used_at: Option(String), owner: Option(Nil), repository_selection: Option(String), permissions_result: Option(Nil), repository_count: Option(Int), id: Option(Int), token_expired: Option(Bool), ) } pub type SecurityAndAnalysis { SecurityAndAnalysis( secret_scanning: Option(Nil), secret_scanning_non_provider_patterns: Option(Nil), secret_scanning_ai_detection: Option(Nil), dependabot_security_updates: Option(Nil), advanced_security: Option(Nil), secret_scanning_push_protection: Option(Nil), ) } pub type ApiInsightsSubjectStats { ApiInsightsSubjectStats } pub type CodeScanningAlertStateQuery { CodeScanningAlertStateQuery } pub type WebhookRepositoryPrivatized { WebhookRepositoryPrivatized( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPersonalAccessTokenRequestDenied { WebhookPersonalAccessTokenRequestDenied( enterprise: Option(Nil), personal_access_token_request: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type AuthorAssociation { AuthorAssociation } pub type TimelineCrossReferencedEvent { TimelineCrossReferencedEvent( created_at: Option(String), actor: Option(Nil), updated_at: Option(String), event: Option(String), source: Option(Nil), ) } pub type GitTag { GitTag( message: Option(String), sha: Option(String), url: Option(String), node_id: Option(String), tagger: Option(Nil), tag: Option(String), verification: Option(Nil), object: Option(Nil), ) } pub type ActionsBillingUsage { ActionsBillingUsage( total_paid_minutes_used: Option(Int), total_minutes_used: Option(Int), included_minutes: Option(Int), minutes_used_breakdown: Option(Nil), ) } pub type WebhookPublic { WebhookPublic( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), ) } pub type OrgMembership { OrgMembership( organization_url: Option(String), permissions: Option(Nil), user: Option(Nil), url: Option(String), state: Option(String), organization: Option(Nil), role: Option(String), ) } pub type Key { Key( verified: Option(Bool), created_at: Option(String), url: Option(String), read_only: Option(Bool), title: Option(String), id: Option(Int), key: Option(String), ) } pub type CommitComparison { CommitComparison( total_commits: Option(Int), base_commit: Option(Nil), url: Option(String), status: Option(String), diff_url: Option(String), ahead_by: Option(Int), files: Option(Nil), patch_url: Option(String), permalink_url: Option(String), html_url: Option(String), behind_by: Option(Int), commits: Option(Nil), merge_base_commit: Option(Nil), ) } pub type RenamedIssueEvent { RenamedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), rename: Option(Nil), ) } pub type WebhookCodeScanningAlertReopened { WebhookCodeScanningAlertReopened( enterprise: Option(Nil), commit_oid: Option(String), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type CodeScanningVariantAnalysisStatus { CodeScanningVariantAnalysisStatus } pub type WebhookInstallationSuspend { WebhookInstallationSuspend( enterprise: Option(Nil), repositories: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestAutoMergeDisabled { WebhookPullRequestAutoMergeDisabled( enterprise: Option(Nil), reason: Option(String), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhooksProjectColumn { WebhooksProjectColumn( project_url: Option(String), created_at: Option(String), name: Option(String), url: Option(String), cards_url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), after_id: Option(Int), ) } pub type WebhookMilestoneClosed { WebhookMilestoneClosed( enterprise: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookMembershipAdded { WebhookMembershipAdded( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), scope: Option(String), sender: Option(Nil), action: Option(String), installation: Option(Nil), member: Option(Nil), team: Option(Nil), ) } pub type WebhookMembershipRemoved { WebhookMembershipRemoved( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), scope: Option(String), sender: Option(Nil), action: Option(String), installation: Option(Nil), member: Option(Nil), team: Option(Nil), ) } pub type WebhooksRule { WebhooksRule( signature_requirement_enforcement_level: Option(String), strict_required_status_checks_policy: Option(Bool), linear_history_requirement_enforcement_level: Option(String), authorized_actors_only: Option(Bool), created_at: Option(String), create_protected: Option(Bool), name: Option(String), required_conversation_resolution_level: Option(String), merge_queue_enforcement_level: Option(String), repository_id: Option(Int), ignore_approvals_from_contributors: Option(Bool), admin_enforced: Option(Bool), required_deployments_enforcement_level: Option(String), allow_deletions_enforcement_level: Option(String), lock_allows_fork_sync: Option(Bool), updated_at: Option(String), pull_request_reviews_enforcement_level: Option(String), required_status_checks: Option(List(String)), allow_force_pushes_enforcement_level: Option(String), require_last_push_approval: Option(Bool), authorized_actor_names: Option(List(String)), dismiss_stale_reviews_on_push: Option(Bool), id: Option(Int), lock_branch_enforcement_level: Option(String), require_code_owner_review: Option(Bool), required_approving_review_count: Option(Int), required_status_checks_enforcement_level: Option(String), authorized_dismissal_actors_only: Option(Bool), ) } pub type WebhookProjectCardConverted { WebhookProjectCardConverted( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), project_card: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDeploymentStatusCreated { WebhookDeploymentStatusCreated( enterprise: Option(Nil), deployment: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), deployment_status: Option(Nil), organization: Option(Nil), check_run: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow: Option(Nil), ) } pub type SimpleClassroomRepository { SimpleClassroomRepository( default_branch: Option(String), private: Option(Bool), node_id: Option(String), id: Option(Int), full_name: Option(String), html_url: Option(String), ) } pub type WebhookTeamDeleted { WebhookTeamDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), team: Option(Nil), ) } pub type BaseGist { BaseGist( forks_url: Option(String), git_pull_url: Option(String), comments_url: Option(String), public: Option(Bool), created_at: Option(String), user: Option(Nil), commits_url: Option(String), url: Option(String), owner: Option(Nil), comments: Option(Int), git_push_url: Option(String), updated_at: Option(String), files: Option(Nil), node_id: Option(String), id: Option(String), html_url: Option(String), description: Option(String), truncated: Option(Bool), ) } pub type WebhookSecretScanningAlertResolved { WebhookSecretScanningAlertResolved( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type RepositoryRuleDetailed { RepositoryRuleDetailed } pub type WebhookPullRequestAssigned { WebhookPullRequestAssigned( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), assignee: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPackageUpdated { WebhookPackageUpdated( enterprise: Option(Nil), package: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookSecurityAdvisoryUpdated { WebhookSecurityAdvisoryUpdated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), security_advisory: Option(Nil), installation: Option(Nil), ) } pub type ApiInsightsTimeStats { ApiInsightsTimeStats } pub type CodeSearchResultItem { CodeSearchResultItem( last_modified_at: Option(String), text_matches: Option(Nil), git_url: Option(String), file_size: Option(Int), path_: Option(String), repository: Option(Nil), name: Option(String), sha: Option(String), url: Option(String), score: Option(Float), language: Option(String), html_url: Option(String), line_numbers: Option(List(String)), ) } pub type Feed { Feed( current_user_url: Option(String), current_user_organization_urls: Option(List(String)), repository_discussions_url: Option(String), security_advisories_url: Option(String), current_user_public_url: Option(String), current_user_organization_url: Option(String), timeline_url: Option(String), current_user_actor_url: Option(String), repository_discussions_category_url: Option(String), links: Option(Nil), user_url: Option(String), ) } pub type AlertHtmlUrl { AlertHtmlUrl } pub type TimelineLineCommentedEvent { TimelineLineCommentedEvent( comments: Option(Nil), node_id: Option(String), event: Option(String), ) } pub type AlertUrl { AlertUrl } pub type HookDelivery { HookDelivery( installation_id: Option(Int), response: Option(Nil), redelivery: Option(Bool), guid: Option(String), delivered_at: Option(String), url: Option(String), request: Option(Nil), repository_id: Option(Int), status: Option(String), duration: Option(Float), action: Option(String), throttled_at: Option(String), status_code: Option(Int), event: Option(String), id: Option(Int), ) } pub type WebhookCheckSuiteRequested { WebhookCheckSuiteRequested( check_suite: Option(Nil), enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type PullRequestReview { PullRequestReview( body: Option(String), commit_id: Option(String), pull_request_url: Option(String), body_html: Option(String), body_text: Option(String), user: Option(Nil), author_association: Option(String), state: Option(String), submitted_at: Option(String), node_id: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), ) } pub type WebhookProjectCreated { WebhookProjectCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), project: Option(Nil), installation: Option(Nil), ) } pub type LicenseSimple { LicenseSimple( spdx_id: Option(String), name: Option(String), url: Option(String), node_id: Option(String), html_url: Option(String), key: Option(String), ) } pub type WebhookCheckRunRerequested { WebhookCheckRunRerequested( repository: Option(Nil), organization: Option(Nil), check_run: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDependabotAlertFixed { WebhookDependabotAlertFixed( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type SearchResultTextMatches { SearchResultTextMatches } pub type BranchRestrictionPolicy { BranchRestrictionPolicy( apps_url: Option(String), teams_url: Option(String), users: Option(Nil), url: Option(String), apps: Option(Nil), teams: Option(Nil), users_url: Option(String), ) } pub type CodeScanningAnalysisEnvironment { CodeScanningAnalysisEnvironment } pub type WebhookMarketplacePurchasePendingChangeCancelled { WebhookMarketplacePurchasePendingChangeCancelled( enterprise: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), marketplace_purchase: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), previous_marketplace_purchase: Option(Nil), ) } pub type WebhookPullRequestAutoMergeEnabled { WebhookPullRequestAutoMergeEnabled( enterprise: Option(Nil), reason: Option(String), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestReviewRequestRemoved { WebhookPullRequestReviewRequestRemoved } pub type ActionsSetDefaultWorkflowPermissions { ActionsSetDefaultWorkflowPermissions( default_workflow_permissions: Option(String), can_approve_pull_request_reviews: Option(Bool), ) } pub type Job { Job( head_branch: Option(String), check_run_url: Option(String), completed_at: Option(String), steps: Option(Nil), runner_id: Option(Int), created_at: Option(String), runner_group_id: Option(Int), name: Option(String), workflow_name: Option(String), head_sha: Option(String), url: Option(String), run_id: Option(Int), started_at: Option(String), status: Option(String), node_id: Option(String), run_attempt: Option(Int), runner_group_name: Option(String), runner_name: Option(String), id: Option(Int), run_url: Option(String), html_url: Option(String), conclusion: Option(String), labels: Option(List(String)), ) } pub type Blob { Blob( size: Option(Int), sha: Option(String), highlighted_content: Option(String), url: Option(String), encoding: Option(String), node_id: Option(String), content: Option(String), ) } pub type TimelineCommittedEvent { TimelineCommittedEvent( message: Option(String), parents: Option(Nil), committer: Option(Nil), author: Option(Nil), sha: Option(String), url: Option(String), node_id: Option(String), event: Option(String), verification: Option(Nil), html_url: Option(String), tree: Option(Nil), ) } pub type WorkflowRun { WorkflowRun( triggering_actor: Option(Nil), head_branch: Option(String), path_: Option(String), run_started_at: Option(String), jobs_url: Option(String), rerun_url: Option(String), head_repository: Option(Nil), created_at: Option(String), cancel_url: Option(String), repository: Option(Nil), name: Option(String), head_sha: Option(String), referenced_workflows: Option(Nil), workflow_url: Option(String), url: Option(String), artifacts_url: Option(String), check_suite_url: Option(String), head_repository_id: Option(Int), status: Option(String), actor: Option(Nil), previous_attempt_url: Option(String), head_commit: Option(Nil), updated_at: Option(String), node_id: Option(String), check_suite_id: Option(Int), run_attempt: Option(Int), event: Option(String), check_suite_node_id: Option(String), display_title: Option(String), id: Option(Int), workflow_id: Option(Int), html_url: Option(String), run_number: Option(Int), pull_requests: Option(Nil), conclusion: Option(String), logs_url: Option(String), ) } pub type WebhookIssuesUnlabeled { WebhookIssuesUnlabeled( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookRepositoryVulnerabilityAlertResolve { WebhookRepositoryVulnerabilityAlertResolve( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type AlertFixedAt { AlertFixedAt } pub type Team { Team( permissions: Option(Nil), privacy: Option(String), members_url: Option(String), parent: Option(Nil), name: Option(String), slug: Option(String), url: Option(String), permission: Option(String), node_id: Option(String), repositories_url: Option(String), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type CodespaceExportDetails { CodespaceExportDetails( branch: Option(String), export_url: Option(String), completed_at: Option(String), sha: Option(String), state: Option(String), id: Option(String), html_url: Option(String), ) } pub type Traffic { Traffic(uniques: Option(Int), count: Option(Int), timestamp: Option(String)) } pub type OrganizationSimpleWebhooks { OrganizationSimpleWebhooks( hooks_url: Option(String), members_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), issues_url: Option(String), url: Option(String), repos_url: Option(String), public_members_url: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type SecretScanningAlert { SecretScanningAlert( push_protection_bypass_request_html_url: Option(String), push_protection_bypassed: Option(Bool), number: Option(Int), secret_type: Option(String), created_at: Option(String), push_protection_bypassed_at: Option(String), push_protection_bypass_request_reviewer: Option(Nil), publicly_leaked: Option(Bool), resolution: Option(String), resolution_comment: Option(String), locations_url: Option(String), push_protection_bypassed_by: Option(Nil), url: Option(String), secret: Option(String), state: Option(String), validity: Option(String), updated_at: Option(String), multi_repo: Option(Bool), push_protection_bypass_request_comment: Option(String), resolved_at: Option(String), html_url: Option(String), secret_type_display_name: Option(String), resolved_by: Option(Nil), ) } pub type NullableCodeOfConductSimple { NullableCodeOfConductSimple( name: Option(String), url: Option(String), html_url: Option(String), key: Option(String), ) } pub type WebhookRepositoryRulesetEdited { WebhookRepositoryRulesetEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), repository_ruleset: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookReleaseDeleted { WebhookReleaseDeleted( enterprise: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type NullableCommunityHealthFile { NullableCommunityHealthFile(url: Option(String), html_url: Option(String)) } pub type WebhookMarketplacePurchaseCancelled { WebhookMarketplacePurchaseCancelled( enterprise: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), marketplace_purchase: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), previous_marketplace_purchase: Option(Nil), ) } pub type WebhooksDeployPusherType { WebhooksDeployPusherType } pub type CodeScanningAnalysisSarifFile { CodeScanningAnalysisSarifFile } pub type ReactionRollup { ReactionRollup( confused: Option(Int), laugh: Option(Int), eyes: Option(Int), hooray: Option(Int), one: Option(Int), heart: Option(Int), plusone: Option(Int), url: Option(String), total_count: Option(Int), rocket: Option(Int), ) } pub type CodeScanningAnalysisSarifId { CodeScanningAnalysisSarifId } pub type GistSimple { GistSimple( forks_url: Option(String), git_pull_url: Option(String), comments_url: Option(String), public: Option(Bool), created_at: Option(String), user: Option(String), commits_url: Option(String), url: Option(String), forks: Option(Nil), owner: Option(Nil), history: Option(Nil), comments: Option(Int), fork_of: Option(Nil), git_push_url: Option(String), updated_at: Option(String), files: Option(Nil), node_id: Option(String), id: Option(String), html_url: Option(String), description: Option(String), truncated: Option(Bool), ) } pub type WebhookMilestoneOpened { WebhookMilestoneOpened( enterprise: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryAdvisory { RepositoryAdvisory( cwes: Option(Nil), published_at: Option(String), summary: Option(String), closed_at: Option(String), cvss_severities: Option(Nil), cve_id: Option(String), collaborating_users: Option(Nil), created_at: Option(String), identifiers: Option(Nil), cwe_ids: Option(List(String)), ghsa_id: Option(String), author: Option(Nil), submission: Option(Nil), withdrawn_at: Option(String), url: Option(String), state: Option(String), cvss: Option(Nil), credits_detailed: Option(Nil), collaborating_teams: Option(Nil), updated_at: Option(String), credits: Option(Nil), vulnerabilities: Option(Nil), html_url: Option(String), publisher: Option(Nil), description: Option(String), severity: Option(String), private_fork: Option(Nil), ) } pub type WebhookMilestoneEdited { WebhookMilestoneEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Email { Email( primary: Option(Bool), verified: Option(Bool), visibility: Option(String), email: Option(String), ) } pub type TopicSearchResultItem { TopicSearchResultItem( text_matches: Option(Nil), display_name: Option(String), created_at: Option(String), related: Option(Nil), name: Option(String), featured: Option(Bool), created_by: Option(String), curated: Option(Bool), score: Option(Float), updated_at: Option(String), short_description: Option(String), repository_count: Option(Int), logo_url: Option(String), description: Option(String), released: Option(String), aliases: Option(Nil), ) } pub type CopilotIdeChat { CopilotIdeChat(editors: Option(Nil), total_engaged_users: Option(Int)) } pub type MergedUpstream { MergedUpstream( merge_type: Option(String), message: Option(String), base_branch: Option(String), ) } pub type WebhookPullRequestReviewCommentEdited { WebhookPullRequestReviewCommentEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type ApiInsightsRouteStats { ApiInsightsRouteStats } pub type WebhookSecretScanningAlertLocationCreatedFormEncoded { WebhookSecretScanningAlertLocationCreatedFormEncoded(payload: Option(String)) } pub type WebhookPullRequestClosed { WebhookPullRequestClosed( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type SecretScanningAlertResolution { SecretScanningAlertResolution } pub type RepositoryRuleDeletion { RepositoryRuleDeletion(type_: Option(String)) } pub type RemovedFromProjectIssueEvent { RemovedFromProjectIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), project_card: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhookIssuesDeleted { WebhookIssuesDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type RepositoryInvitation { RepositoryInvitation( permissions: Option(String), expired: Option(Bool), inviter: Option(Nil), created_at: Option(String), repository: Option(Nil), url: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), invitee: Option(Nil), ) } pub type WebhooksComment { WebhooksComment( body: Option(String), created_at: Option(String), reactions: Option(Nil), user: Option(Nil), child_comment_count: Option(Int), author_association: Option(String), parent_id: Option(Int), discussion_id: Option(Int), updated_at: Option(String), node_id: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookProjectsV2StatusUpdateDeleted { WebhookProjectsV2StatusUpdateDeleted( organization: Option(Nil), sender: Option(Nil), action: Option(String), projects_v2_status_update: Option(Nil), installation: Option(Nil), ) } pub type CustomDeploymentRuleApp { CustomDeploymentRuleApp( integration_url: Option(String), slug: Option(String), node_id: Option(String), id: Option(Int), ) } pub type ApiInsightsUserStats { ApiInsightsUserStats } pub type WebhookInstallationDeleted { WebhookInstallationDeleted( enterprise: Option(Nil), repositories: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookProjectsV2ItemRestored { WebhookProjectsV2ItemRestored( changes: Option(Nil), projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookProjectCardEdited { WebhookProjectCardEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), project_card: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Vulnerability { Vulnerability( vulnerable_functions: Option(List(String)), package: Option(Nil), first_patched_version: Option(String), vulnerable_version_range: Option(String), ) } pub type WebhookDiscussionCommentDeleted { WebhookDiscussionCommentDeleted( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type WebhookWorkflowJobQueued { WebhookWorkflowJobQueued( enterprise: Option(Nil), deployment: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow_job: Option(Nil), ) } pub type WebhookRepositoryVulnerabilityAlertDismiss { WebhookRepositoryVulnerabilityAlertDismiss( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhookBranchProtectionRuleEdited { WebhookBranchProtectionRuleEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), rule: Option(Nil), ) } pub type WebhookRepositoryCreated { WebhookRepositoryCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRuleRequiredSignatures { RepositoryRuleRequiredSignatures(type_: Option(String)) } pub type CopilotIdeCodeCompletions { CopilotIdeCodeCompletions( editors: Option(Nil), total_engaged_users: Option(Int), languages: Option(Nil), ) } pub type WebhooksReviewComment { WebhooksReviewComment( body: Option(String), original_line: Option(Int), commit_id: Option(String), diff_hunk: Option(String), path_: Option(String), pull_request_url: Option(String), position: Option(Int), created_at: Option(String), reactions: Option(Nil), user: Option(Nil), subject_type: Option(String), author_association: Option(String), url: Option(String), in_reply_to_id: Option(Int), start_line: Option(Int), start_side: Option(String), line: Option(Int), original_commit_id: Option(String), side: Option(String), updated_at: Option(String), original_position: Option(Int), node_id: Option(String), pull_request_review_id: Option(Int), links: Option(Nil), id: Option(Int), html_url: Option(String), original_start_line: Option(Int), ) } pub type WebhookWorkflowRunInProgress { WebhookWorkflowRunInProgress( enterprise: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow: Option(Nil), ) } pub type Verification { Verification( reason: Option(String), verified: Option(Bool), payload: Option(String), signature: Option(String), ) } pub type DependabotAlertSecurityVulnerability { DependabotAlertSecurityVulnerability( package: Option(Nil), first_patched_version: Option(Nil), severity: Option(String), vulnerable_version_range: Option(String), ) } pub type WebhookDeployKeyDeleted { WebhookDeployKeyDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), key: Option(Nil), ) } pub type WebhookPersonalAccessTokenRequestApproved { WebhookPersonalAccessTokenRequestApproved( enterprise: Option(Nil), personal_access_token_request: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type SecretScanningLocationWikiCommit { SecretScanningLocationWikiCommit( commit_sha: Option(String), path_: Option(String), commit_url: Option(String), blob_sha: Option(String), start_line: Option(Float), start_column: Option(Float), end_line: Option(Float), end_column: Option(Float), page_url: Option(String), ) } pub type PullRequestMinimal { PullRequestMinimal( head: Option(Nil), number: Option(Int), url: Option(String), base_: Option(Nil), id: Option(Int), ) } pub type RepositoryRulesetConditionsRepositoryNameTarget { RepositoryRulesetConditionsRepositoryNameTarget(repository_name: Option(Nil)) } pub type Contributor { Contributor( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), contributions: Option(Int), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type CopilotSeatDetails { CopilotSeatDetails( pending_cancellation_date: Option(String), assigning_team: Option(Nil), created_at: Option(String), assignee: Option(Nil), plan_type: Option(String), organization: Option(Nil), last_activity_editor: Option(String), updated_at: Option(String), last_activity_at: Option(String), ) } pub type WebhookDiscussionClosed { WebhookDiscussionClosed( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookProjectColumnCreated { WebhookProjectColumnCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), project_column: Option(Nil), ) } pub type PendingDeployment { PendingDeployment( reviewers: Option(Nil), current_user_can_approve: Option(Bool), environment: Option(Nil), wait_timer_started_at: Option(String), wait_timer: Option(Int), ) } pub type RepositoryRulesetConditionsRepositoryPropertySpec { RepositoryRulesetConditionsRepositoryPropertySpec( name: Option(String), property_values: Option(List(String)), source: Option(String), ) } pub type Stargazer { Stargazer(user: Option(Nil), starred_at: Option(String)) } pub type DeploymentBranchPolicySettings { DeploymentBranchPolicySettings( protected_branches: Option(Bool), custom_branch_policies: Option(Bool), ) } pub type WebhookCheckSuiteCompleted { WebhookCheckSuiteCompleted( check_suite: Option(Nil), enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhooksReview { WebhooksReview( body: Option(String), commit_id: Option(String), pull_request_url: Option(String), user: Option(Nil), author_association: Option(String), state: Option(String), submitted_at: Option(String), node_id: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), ) } pub type WebhookSponsorshipCreated { WebhookSponsorshipCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), sponsorship: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type DeploymentStatus { DeploymentStatus( target_url: Option(String), environment_url: Option(String), created_at: Option(String), creator: Option(Nil), url: Option(String), state: Option(String), environment: Option(String), log_url: Option(String), deployment_url: Option(String), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), repository_url: Option(String), id: Option(Int), description: Option(String), ) } pub type Link { Link(href: Option(String)) } pub type RepositoryAdvisoryUpdate { RepositoryAdvisoryUpdate( cvss_vector_string: Option(String), summary: Option(String), cve_id: Option(String), collaborating_users: Option(List(String)), cwe_ids: Option(List(String)), state: Option(String), collaborating_teams: Option(List(String)), credits: Option(Nil), vulnerabilities: Option(Nil), description: Option(String), severity: Option(String), ) } pub type DependabotAlertSecurityAdvisory { DependabotAlertSecurityAdvisory( cwes: Option(Nil), published_at: Option(String), summary: Option(String), cvss_severities: Option(Nil), cve_id: Option(String), references: Option(Nil), identifiers: Option(Nil), ghsa_id: Option(String), withdrawn_at: Option(String), cvss: Option(Nil), updated_at: Option(String), vulnerabilities: Option(Nil), description: Option(String), severity: Option(String), ) } pub type WebhookDeploymentReviewApproved { WebhookDeploymentReviewApproved( enterprise: Option(Nil), approver: Option(Nil), workflow_job_run: Option(Nil), workflow_job_runs: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), reviewers: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), since: Option(String), comment: Option(String), ) } pub type Tag { Tag( name: Option(String), zipball_url: Option(String), tarball_url: Option(String), commit: Option(Nil), node_id: Option(String), ) } pub type WebhookRepositoryAdvisoryReported { WebhookRepositoryAdvisoryReported( enterprise: Option(Nil), repository: Option(Nil), repository_advisory: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookRegistryPackageUpdated { WebhookRegistryPackageUpdated( enterprise: Option(Nil), registry_package: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type SecurityAdvisoryEcosystems { SecurityAdvisoryEcosystems } pub type PrivateVulnerabilityReportCreate { PrivateVulnerabilityReportCreate( cvss_vector_string: Option(String), summary: Option(String), cwe_ids: Option(List(String)), vulnerabilities: Option(Nil), start_private_fork: Option(Bool), description: Option(String), severity: Option(String), ) } pub type WebhookPullRequestConvertedToDraft { WebhookPullRequestConvertedToDraft( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningAnalysisUrl { CodeScanningAnalysisUrl } pub type Event { Event( org: Option(Nil), public: Option(Bool), created_at: Option(String), payload: Option(Nil), repo: Option(Nil), actor: Option(Nil), type_: Option(String), id: Option(String), ) } pub type NullableSimpleUser { NullableSimpleUser( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), starred_at: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type AutoMerge { AutoMerge( merge_method: Option(String), commit_title: Option(String), enabled_by: Option(Nil), commit_message: Option(String), ) } pub type CopilotSeatBreakdown { CopilotSeatBreakdown( pending_invitation: Option(Int), added_this_cycle: Option(Int), total: Option(Int), pending_cancellation: Option(Int), inactive_this_cycle: Option(Int), active_this_cycle: Option(Int), ) } pub type WebhooksRepositorySelection { WebhooksRepositorySelection } pub type WebhookInstallationNewPermissionsAccepted { WebhookInstallationNewPermissionsAccepted( enterprise: Option(Nil), repositories: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Installation { Installation( single_file_paths: Option(List(String)), permissions: Option(Nil), access_tokens_url: Option(String), target_type: Option(String), app_slug: Option(String), target_id: Option(Int), created_at: Option(String), has_multiple_single_files: Option(Bool), account: Option(Nil), single_file_name: Option(String), suspended_at: Option(String), updated_at: Option(String), repository_selection: Option(String), repositories_url: Option(String), events: Option(List(String)), app_id: Option(Int), id: Option(Int), suspended_by: Option(Nil), html_url: Option(String), contact_email: Option(String), ) } pub type WebhooksProjectChanges { WebhooksProjectChanges(archived_at: Option(Nil)) } pub type RepositoryRulesetBypassActor { RepositoryRulesetBypassActor( actor_type: Option(String), actor_id: Option(Int), bypass_mode: Option(String), ) } pub type DeploymentSimple { DeploymentSimple( original_environment: Option(String), task: Option(String), created_at: Option(String), production_environment: Option(Bool), url: Option(String), statuses_url: Option(String), environment: Option(String), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), repository_url: Option(String), id: Option(Int), description: Option(String), transient_environment: Option(Bool), ) } pub type ActionsOrganizationPermissions { ActionsOrganizationPermissions( allowed_actions: Option(String), enabled_repositories: Option(String), selected_actions_url: Option(String), selected_repositories_url: Option(String), ) } pub type WebhookConfigUrl { WebhookConfigUrl } pub type OrganizationActionsSecret { OrganizationActionsSecret( created_at: Option(String), name: Option(String), visibility: Option(String), updated_at: Option(String), selected_repositories_url: Option(String), ) } pub type DeploymentBranchPolicyNamePatternWithType { DeploymentBranchPolicyNamePatternWithType( name: Option(String), type_: Option(String), ) } pub type WebhookMarketplacePurchasePendingChange { WebhookMarketplacePurchasePendingChange( enterprise: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), marketplace_purchase: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), previous_marketplace_purchase: Option(Nil), ) } pub type DeploymentReviewerType { DeploymentReviewerType } pub type WebhookCommitCommentCreated { WebhookCommitCommentCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type AlertNumber { AlertNumber } pub type TeamRepository { TeamRepository( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), forks_count: Option(Int), fork: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), teams_url: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), allow_squash_merge: Option(Bool), homepage: Option(String), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), owner: Option(Nil), allow_merge_commit: Option(Bool), role_name: Option(String), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), subscribers_count: Option(Int), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), network_count: Option(Int), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhooksPreviousMarketplacePurchase { WebhooksPreviousMarketplacePurchase( billing_cycle: Option(String), on_free_trial: Option(Bool), plan: Option(Nil), account: Option(Nil), unit_count: Option(Int), next_billing_date: Option(String), ) } pub type DependabotAlertPackage { DependabotAlertPackage(ecosystem: Option(String), name: Option(String)) } pub type SecretScanningPushProtectionBypassPlaceholderId { SecretScanningPushProtectionBypassPlaceholderId } pub type WebhookPullRequestLocked { WebhookPullRequestLocked( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ActionsCacheUsageByRepository { ActionsCacheUsageByRepository( active_caches_size_in_bytes: Option(Int), active_caches_count: Option(Int), full_name: Option(String), ) } pub type ReviewCustomGatesCommentRequired { ReviewCustomGatesCommentRequired( environment_name: Option(String), comment: Option(String), ) } pub type WebhookSubIssuesParentIssueRemoved { WebhookSubIssuesParentIssueRemoved( sub_issue_id: Option(Float), parent_issue: Option(Nil), repository: Option(Nil), parent_issue_repo: Option(Nil), organization: Option(Nil), sender: Option(Nil), parent_issue_id: Option(Float), action: Option(String), sub_issue: Option(Nil), installation: Option(Nil), ) } pub type Codespace { Codespace( idle_timeout_notice: Option(String), recent_folders: Option(List(String)), retention_period_minutes: Option(Int), web_url: Option(String), machine: Option(Nil), pending_operation_disabled_reason: Option(String), environment_id: Option(String), display_name: Option(String), created_at: Option(String), repository: Option(Nil), prebuild: Option(Bool), name: Option(String), last_used_at: Option(String), runtime_constraints: Option(Nil), url: Option(String), last_known_stop_notice: Option(String), state: Option(String), start_url: Option(String), stop_url: Option(String), owner: Option(Nil), billable_owner: Option(Nil), location: Option(String), idle_timeout_minutes: Option(Int), updated_at: Option(String), devcontainer_path: Option(String), id: Option(Int), machines_url: Option(String), pulls_url: Option(String), pending_operation: Option(Bool), retention_expires_at: Option(String), git_status: Option(Nil), publish_url: Option(String), ) } pub type Project { Project( body: Option(String), private: Option(Bool), owner_url: Option(String), number: Option(Int), created_at: Option(String), name: Option(String), creator: Option(Nil), columns_url: Option(String), url: Option(String), state: Option(String), updated_at: Option(String), node_id: Option(String), organization_permission: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhooksMembership { WebhooksMembership( organization_url: Option(String), user: Option(Nil), url: Option(String), state: Option(String), role: Option(String), ) } pub type CodeScanningAlertSetState { CodeScanningAlertSetState } pub type WebhooksProjectCard { WebhooksProjectCard( archived: Option(Bool), column_id: Option(Int), column_url: Option(String), content_url: Option(String), project_url: Option(String), created_at: Option(String), creator: Option(Nil), url: Option(String), note: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), after_id: Option(Int), ) } pub type WebhookRepositoryTransferred { WebhookRepositoryTransferred( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ActionsCacheList { ActionsCacheList(actions_caches: Option(Nil), total_count: Option(Int)) } pub type WebhookIssuesReopened { WebhookIssuesReopened( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type TimelineIssueEvents { TimelineIssueEvents } pub type WebhookDiscussionLocked { WebhookDiscussionLocked( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ApiInsightsSummaryStats { ApiInsightsSummaryStats( total_request_count: Option(Int), rate_limited_request_count: Option(Int), ) } pub type WebhookReleaseUnpublished { WebhookReleaseUnpublished( enterprise: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ClassroomAcceptedAssignment { ClassroomAcceptedAssignment( commit_count: Option(Int), repository: Option(Nil), assignment: Option(Nil), passing: Option(Bool), grade: Option(String), students: Option(Nil), submitted: Option(Bool), id: Option(Int), ) } pub type WebhookSubIssuesParentIssueAdded { WebhookSubIssuesParentIssueAdded( sub_issue_id: Option(Float), parent_issue: Option(Nil), repository: Option(Nil), parent_issue_repo: Option(Nil), organization: Option(Nil), sender: Option(Nil), parent_issue_id: Option(Float), action: Option(String), sub_issue: Option(Nil), installation: Option(Nil), ) } pub type WebhooksChanges8 { WebhooksChanges8(tier: Option(Nil)) } pub type ContentDirectory { ContentDirectory } pub type WebhookPullRequestOpened { WebhookPullRequestOpened( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestEdited { WebhookPullRequestEdited( enterprise: Option(Nil), changes: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDiscussionCreated { WebhookDiscussionCreated( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookReleaseReleased { WebhookReleaseReleased( enterprise: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Issue { Issue( draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), closed_at: Option(String), body_html: Option(String), events_url: Option(String), number: Option(Int), closed_by: Option(Nil), created_at: Option(String), body_text: Option(String), locked: Option(Bool), repository: Option(Nil), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), labels_url: Option(String), url: Option(String), assignee: Option(Nil), milestone: Option(Nil), timeline_url: Option(String), state: Option(String), state_reason: Option(String), comments: Option(Int), pull_request: Option(Nil), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), title: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type GitTree { GitTree( sha: Option(String), url: Option(String), tree: Option(Nil), truncated: Option(Bool), ) } pub type CodeScanningSarifsReceipt { CodeScanningSarifsReceipt(url: Option(String), id: Option(String)) } pub type Authorization { Authorization( app: Option(Nil), note_url: Option(String), fingerprint: Option(String), hashed_token: Option(String), created_at: Option(String), user: Option(Nil), token_last_eight: Option(String), url: Option(String), note: Option(String), updated_at: Option(String), token_: Option(String), installation: Option(Nil), id: Option(Int), expires_at: Option(String), scopes: Option(List(String)), ) } pub type DeployKey { DeployKey( enabled: Option(Bool), last_used: Option(String), verified: Option(Bool), created_at: Option(String), url: Option(String), read_only: Option(Bool), added_by: Option(String), title: Option(String), id: Option(Int), key: Option(String), ) } pub type WebhookRepositoryRenamed { WebhookRepositoryRenamed( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepoSearchResultItem { RepoSearchResultItem( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), text_matches: Option(Nil), license: Option(Nil), delete_branch_on_merge: Option(Bool), forks_count: Option(Int), fork: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), has_discussions: Option(Bool), teams_url: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), allow_squash_merge: Option(Bool), homepage: Option(String), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), forks: Option(Int), archive_url: Option(String), score: Option(Float), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), owner: Option(Nil), allow_merge_commit: Option(Bool), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhookLabelCreated { WebhookLabelCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhooksAlert { WebhooksAlert( number: Option(Int), dismissed_at: Option(String), created_at: Option(String), ghsa_id: Option(String), fix_reason: Option(String), affected_package_name: Option(String), fixed_in: Option(String), state: Option(String), affected_range: Option(String), dismisser: Option(Nil), external_reference: Option(String), node_id: Option(String), dismiss_reason: Option(String), id: Option(Int), external_identifier: Option(String), severity: Option(String), fixed_at: Option(String), ) } pub type SimpleClassroom { SimpleClassroom( archived: Option(Bool), name: Option(String), url: Option(String), id: Option(Int), ) } pub type WebhooksMarketplacePurchase { WebhooksMarketplacePurchase( billing_cycle: Option(String), on_free_trial: Option(Bool), plan: Option(Nil), free_trial_ends_on: Option(String), account: Option(Nil), unit_count: Option(Int), next_billing_date: Option(String), ) } pub type RateLimitOverview { RateLimitOverview(rate: Option(Nil), resources: Option(Nil)) } pub type WebhookDiscussionEdited { WebhookDiscussionEdited( enterprise: Option(Nil), changes: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookInstallationRepositoriesAdded { WebhookInstallationRepositoriesAdded( enterprise: Option(Nil), repositories_removed: Option(Nil), repositories_added: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), repository_selection: Option(String), installation: Option(Nil), requester: Option(Nil), ) } pub type WebhookSponsorshipPendingTierChange { WebhookSponsorshipPendingTierChange( enterprise: Option(Nil), changes: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), sponsorship: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookConfig { WebhookConfig( content_type: Option(String), insecure_ssl: Option(Nil), url: Option(String), secret: Option(String), ) } pub type Language { Language } pub type PullRequestSimple { PullRequestSimple( head: Option(Nil), draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), requested_teams: Option(Nil), merged_at: Option(String), closed_at: Option(String), review_comment_url: Option(String), auto_merge: Option(Nil), issue_url: Option(String), number: Option(Int), created_at: Option(String), locked: Option(Bool), merge_commit_sha: Option(String), review_comments_url: Option(String), user: Option(Nil), commits_url: Option(String), author_association: Option(String), url: Option(String), assignee: Option(Nil), statuses_url: Option(String), milestone: Option(Nil), state: Option(String), base_: Option(Nil), diff_url: Option(String), updated_at: Option(String), node_id: Option(String), patch_url: Option(String), title: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), requested_reviewers: Option(Nil), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type AppPermissions { AppPermissions( statuses: Option(String), environments: Option(String), organization_custom_org_roles: Option(String), organization_personal_access_tokens: Option(String), starring: Option(String), secrets: Option(String), organization_hooks: Option(String), pages: Option(String), organization_events: Option(String), interaction_limits: Option(String), organization_projects: Option(String), profile: Option(String), team_discussions: Option(String), organization_administration: Option(String), checks: Option(String), repository_custom_properties: Option(String), packages: Option(String), deployments: Option(String), repository_projects: Option(String), metadata: Option(String), organization_personal_access_token_requests: Option(String), organization_self_hosted_runners: Option(String), single_file: Option(String), workflows: Option(String), followers: Option(String), gpg_keys: Option(String), organization_custom_properties: Option(String), organization_plan: Option(String), secret_scanning_alerts: Option(String), dependabot_secrets: Option(String), organization_secrets: Option(String), security_events: Option(String), git_ssh_keys: Option(String), members: Option(String), organization_packages: Option(String), codespaces: Option(String), issues: Option(String), contents: Option(String), vulnerability_alerts: Option(String), repository_hooks: Option(String), organization_announcement_banners: Option(String), organization_custom_roles: Option(String), organization_user_blocking: Option(String), actions: Option(String), administration: Option(String), pull_requests: Option(String), organization_copilot_seat_management: Option(String), email_addresses: Option(String), ) } pub type SimpleCheckSuite { SimpleCheckSuite( head_branch: Option(String), app: Option(Nil), created_at: Option(String), repository: Option(Nil), head_sha: Option(String), url: Option(String), status: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), after: Option(String), pull_requests: Option(Nil), conclusion: Option(String), before: Option(String), ) } pub type WebhookFork { WebhookFork( enterprise: Option(Nil), forkee: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), ) } pub type CheckRunWithSimpleCheckSuite { CheckRunWithSimpleCheckSuite( output: Option(Nil), check_suite: Option(Nil), app: Option(Nil), deployment: Option(Nil), completed_at: Option(String), name: Option(String), head_sha: Option(String), url: Option(String), external_id: Option(String), started_at: Option(String), details_url: Option(String), status: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), pull_requests: Option(Nil), conclusion: Option(String), ) } pub type CopilotDotcomPullRequests { CopilotDotcomPullRequests( repositories: Option(Nil), total_engaged_users: Option(Int), ) } pub type AllowedActions { AllowedActions } pub type CheckAutomatedSecurityFixes { CheckAutomatedSecurityFixes(enabled: Option(Bool), paused: Option(Bool)) } pub type TeamDiscussion { TeamDiscussion( last_edited_at: Option(String), body: Option(String), private: Option(Bool), comments_url: Option(String), comments_count: Option(Int), body_html: Option(String), number: Option(Int), created_at: Option(String), reactions: Option(Nil), author: Option(Nil), team_url: Option(String), url: Option(String), updated_at: Option(String), node_id: Option(String), title: Option(String), pinned: Option(Bool), html_url: Option(String), body_version: Option(String), ) } pub type WebhookInstallationRepositoriesRemoved { WebhookInstallationRepositoriesRemoved( enterprise: Option(Nil), repositories_removed: Option(Nil), repositories_added: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), repository_selection: Option(String), installation: Option(Nil), requester: Option(Nil), ) } pub type StarredRepository { StarredRepository(repo: Option(Nil), starred_at: Option(String)) } pub type CodeScanningAnalysisToolVersion { CodeScanningAnalysisToolVersion } pub type WebhookLabelEdited { WebhookLabelEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningAnalysis { CodeScanningAnalysis( commit_sha: Option(String), results_count: Option(Int), rules_count: Option(Int), error: Option(String), created_at: Option(String), url: Option(String), ref: Option(String), environment: Option(String), deletable: Option(Bool), tool: Option(Nil), sarif_id: Option(String), id: Option(Int), analysis_key: Option(String), warning: Option(String), category: Option(String), ) } pub type PullRequestMergeResult { PullRequestMergeResult( message: Option(String), sha: Option(String), merged: Option(Bool), ) } pub type OidcCustomSub { OidcCustomSub(include_claim_keys: Option(List(String))) } pub type ContentSubmodule { ContentSubmodule( size: Option(Int), git_url: Option(String), path_: Option(String), name: Option(String), sha: Option(String), url: Option(String), submodule_git_url: Option(String), download_url: Option(String), links: Option(Nil), type_: Option(String), html_url: Option(String), ) } pub type GitRef { GitRef( url: Option(String), ref: Option(String), node_id: Option(String), object: Option(Nil), ) } pub type PagesSourceHash { PagesSourceHash(branch: Option(String), path_: Option(String)) } pub type WebhookDiscussionTransferred { WebhookDiscussionTransferred( enterprise: Option(Nil), changes: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRuleUpdate { RepositoryRuleUpdate(parameters: Option(Nil), type_: Option(String)) } pub type CodeScanningVariantAnalysisRepository { CodeScanningVariantAnalysisRepository( private: Option(Bool), stargazers_count: Option(Int), name: Option(String), updated_at: Option(String), id: Option(Int), full_name: Option(String), ) } pub type RunnerLabel { RunnerLabel(name: Option(String), type_: Option(String), id: Option(Int)) } pub type SecretScanningLocationPullRequestReviewComment { SecretScanningLocationPullRequestReviewComment( pull_request_review_comment_url: Option(String), ) } pub type LabelSearchResultItem { LabelSearchResultItem( text_matches: Option(Nil), default: Option(Bool), color: Option(String), name: Option(String), url: Option(String), score: Option(Float), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type CodeScanningRef { CodeScanningRef } pub type Commit { Commit( comments_url: Option(String), parents: Option(Nil), committer: Option(Nil), author: Option(Nil), sha: Option(String), url: Option(String), commit: Option(Nil), files: Option(Nil), node_id: Option(String), html_url: Option(String), stats: Option(Nil), ) } pub type WebhookPullRequestUnassigned { WebhookPullRequestUnassigned( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), assignee: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookProjectColumnEdited { WebhookProjectColumnEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), project_column: Option(Nil), ) } pub type WebhooksIssue { WebhooksIssue( draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), closed_at: Option(String), events_url: Option(String), number: Option(Int), created_at: Option(String), locked: Option(Bool), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), labels_url: Option(String), url: Option(String), assignee: Option(Nil), milestone: Option(Nil), timeline_url: Option(String), state: Option(String), state_reason: Option(String), comments: Option(Int), pull_request: Option(Nil), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), title: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type AlertUpdatedAt { AlertUpdatedAt } pub type DependabotPublicKey { DependabotPublicKey(key_id: Option(String), key: Option(String)) } pub type EnvironmentApprovals { EnvironmentApprovals( environments: Option(Nil), user: Option(Nil), state: Option(String), comment: Option(String), ) } pub type WebhookDeploymentCreated { WebhookDeploymentCreated( enterprise: Option(Nil), deployment: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow: Option(Nil), ) } pub type MinimalRepository { MinimalRepository( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), forks_count: Option(Int), fork: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), security_and_analysis: Option(Nil), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), has_discussions: Option(Bool), teams_url: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), code_of_conduct: Option(Nil), homepage: Option(String), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), owner: Option(Nil), role_name: Option(String), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), subscribers_count: Option(Int), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), pulls_url: Option(String), network_count: Option(Int), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhooksIssueComment { WebhooksIssueComment( body: Option(String), issue_url: Option(String), created_at: Option(String), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), url: Option(String), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookSecretScanningAlertLocationCreated { WebhookSecretScanningAlertLocationCreated( repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), location: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type NullableTeamSimple { NullableTeamSimple( ldap_dn: Option(String), privacy: Option(String), members_url: Option(String), name: Option(String), slug: Option(String), url: Option(String), permission: Option(String), node_id: Option(String), repositories_url: Option(String), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type WebhooksProject { WebhooksProject( body: Option(String), owner_url: Option(String), number: Option(Int), created_at: Option(String), name: Option(String), creator: Option(Nil), columns_url: Option(String), url: Option(String), state: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookBranchProtectionRuleCreated { WebhookBranchProtectionRuleCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), rule: Option(Nil), ) } pub type CopilotUsageMetrics { CopilotUsageMetrics( breakdown: Option(Nil), total_lines_accepted: Option(Int), total_suggestions_count: Option(Int), total_lines_suggested: Option(Int), total_active_users: Option(Int), total_chat_turns: Option(Int), total_chat_acceptances: Option(Int), total_acceptances_count: Option(Int), day: Option(String), total_active_chat_users: Option(Int), ) } pub type WebhooksRelease1 { WebhooksRelease1( draft: Option(Bool), body: Option(String), assets: Option(Nil), prerelease: Option(Bool), published_at: Option(String), created_at: Option(String), reactions: Option(Nil), author: Option(Nil), name: Option(String), url: Option(String), tag_name: Option(String), zipball_url: Option(String), upload_url: Option(String), assets_url: Option(String), tarball_url: Option(String), node_id: Option(String), discussion_url: Option(String), target_commitish: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookRepositoryEdited { WebhookRepositoryEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestReviewSubmitted { WebhookPullRequestReviewSubmitted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), review: Option(Nil), installation: Option(Nil), ) } pub type NullableRepository { NullableRepository( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), forks_count: Option(Int), fork: Option(Bool), allow_update_branch: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), squash_merge_commit_message: Option(String), has_discussions: Option(Bool), teams_url: Option(String), merge_commit_message: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), allow_squash_merge: Option(Bool), homepage: Option(String), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), use_squash_pr_title_as_default: Option(Bool), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), owner: Option(Nil), starred_at: Option(String), allow_merge_commit: Option(Bool), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), squash_merge_commit_title: Option(String), merge_commit_title: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), anonymous_access_enabled: Option(Bool), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhookPullRequestReviewThreadResolved { WebhookPullRequestReviewThreadResolved( enterprise: Option(Nil), thread: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookGollum { WebhookGollum( enterprise: Option(Nil), pages: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), ) } pub type WebhookProjectClosed { WebhookProjectClosed( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), project: Option(Nil), installation: Option(Nil), ) } pub type CodeSecurityDefaultConfigurations { CodeSecurityDefaultConfigurations } pub type WebhookIssuesLabeled { WebhookIssuesLabeled( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookSponsorshipEdited { WebhookSponsorshipEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), sponsorship: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookSponsorshipTierChanged { WebhookSponsorshipTierChanged( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), sponsorship: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestReadyForReview { WebhookPullRequestReadyForReview( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookCustomPropertyCreated { WebhookCustomPropertyCreated( enterprise: Option(Nil), organization: Option(Nil), definition: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningDefaultSetup { CodeScanningDefaultSetup( query_suite: Option(String), state: Option(String), updated_at: Option(String), schedule: Option(String), languages: Option(List(String)), ) } pub type WebhookOrganizationDeleted { WebhookOrganizationDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), membership: Option(Nil), installation: Option(Nil), ) } pub type WebhookTeamAddedToRepository { WebhookTeamAddedToRepository( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), team: Option(Nil), ) } pub type ViewTraffic { ViewTraffic(uniques: Option(Int), views: Option(Nil), count: Option(Int)) } pub type DeploymentBranchPolicy { DeploymentBranchPolicy( name: Option(String), node_id: Option(String), type_: Option(String), id: Option(Int), ) } pub type RepositoryRulePullRequest { RepositoryRulePullRequest(parameters: Option(Nil), type_: Option(String)) } pub type SimpleInstallation { SimpleInstallation(node_id: Option(String), id: Option(Int)) } pub type WebhooksSecurityAdvisory { WebhooksSecurityAdvisory( cwes: Option(Nil), published_at: Option(String), summary: Option(String), cvss_severities: Option(Nil), references: Option(Nil), identifiers: Option(Nil), ghsa_id: Option(String), withdrawn_at: Option(String), cvss: Option(Nil), updated_at: Option(String), vulnerabilities: Option(Nil), description: Option(String), severity: Option(String), ) } pub type WebhookPullRequestReviewCommentCreated { WebhookPullRequestReviewCommentCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type Actor { Actor( avatar_url: Option(String), login: Option(String), display_login: Option(String), url: Option(String), gravatar_id: Option(String), id: Option(Int), ) } pub type PrivateUser { PrivateUser( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), ldap_dn: Option(String), twitter_username: Option(String), blog: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), bio: Option(String), notification_email: Option(String), events_url: Option(String), avatar_url: Option(String), plan: Option(Nil), login: Option(String), created_at: Option(String), total_private_repos: Option(Int), owned_private_repos: Option(Int), public_repos: Option(Int), name: Option(String), collaborators: Option(Int), hireable: Option(Bool), url: Option(String), starred_url: Option(String), organizations_url: Option(String), following: Option(Int), repos_url: Option(String), private_gists: Option(Int), followers: Option(Int), two_factor_authentication: Option(Bool), location: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), updated_at: Option(String), node_id: Option(String), business_plus: Option(Bool), public_gists: Option(Int), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), company: Option(String), disk_usage: Option(Int), ) } pub type WebhookMilestoneCreated { WebhookMilestoneCreated( enterprise: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookIssuesPinned { WebhookIssuesPinned( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type GistComment { GistComment( body: Option(String), created_at: Option(String), user: Option(Nil), author_association: Option(String), url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), ) } pub type CustomPropertyValue { CustomPropertyValue(value: Option(Nil), property_name: Option(String)) } pub type WebhookProjectCardCreated { WebhookProjectCardCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), project_card: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CheckSuitePreference { CheckSuitePreference(repository: Option(Nil), preferences: Option(Nil)) } pub type CodeScanningAlertDismissedReason { CodeScanningAlertDismissedReason } pub type CodespaceWithFullRepository { CodespaceWithFullRepository( idle_timeout_notice: Option(String), recent_folders: Option(List(String)), retention_period_minutes: Option(Int), web_url: Option(String), machine: Option(Nil), pending_operation_disabled_reason: Option(String), environment_id: Option(String), display_name: Option(String), created_at: Option(String), repository: Option(Nil), prebuild: Option(Bool), name: Option(String), last_used_at: Option(String), runtime_constraints: Option(Nil), url: Option(String), state: Option(String), start_url: Option(String), stop_url: Option(String), owner: Option(Nil), billable_owner: Option(Nil), location: Option(String), idle_timeout_minutes: Option(Int), updated_at: Option(String), devcontainer_path: Option(String), id: Option(Int), machines_url: Option(String), pulls_url: Option(String), pending_operation: Option(Bool), retention_expires_at: Option(String), git_status: Option(Nil), publish_url: Option(String), ) } pub type CvssSeverities { CvssSeverities(cvss_v3: Option(Nil), cvss_v4: Option(Nil)) } pub type IntegrationInstallationRequest { IntegrationInstallationRequest( created_at: Option(String), account: Option(Nil), node_id: Option(String), id: Option(Int), requester: Option(Nil), ) } pub type BranchWithProtection { BranchWithProtection( protection_url: Option(String), name: Option(String), protected: Option(Bool), pattern: Option(String), commit: Option(Nil), protection: Option(Nil), links: Option(Nil), required_approving_review_count: Option(Int), ) } pub type ValidationError { ValidationError( message: Option(String), documentation_url: Option(String), errors: Option(Nil), ) } pub type WebhookCodeScanningAlertAppearedInBranch { WebhookCodeScanningAlertAppearedInBranch( enterprise: Option(Nil), commit_oid: Option(String), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type SecretScanningLocation { SecretScanningLocation(details: Option(Nil), type_: Option(String)) } pub type WebhookStarDeleted { WebhookStarDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Label { Label( default: Option(Bool), color: Option(String), name: Option(String), url: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type WebhookOrgBlockUnblocked { WebhookOrgBlockUnblocked( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), blocked_user: Option(Nil), ) } pub type WebhookProjectsV2ItemReordered { WebhookProjectsV2ItemReordered( changes: Option(Nil), projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CommitSearchResultItem { CommitSearchResultItem( text_matches: Option(Nil), comments_url: Option(String), parents: Option(Nil), repository: Option(Nil), committer: Option(Nil), author: Option(Nil), sha: Option(String), url: Option(String), score: Option(Float), commit: Option(Nil), node_id: Option(String), html_url: Option(String), ) } pub type Integration { Integration( permissions: Option(Nil), client_secret: Option(String), installations_count: Option(Int), created_at: Option(String), name: Option(String), slug: Option(String), client_id: Option(String), owner: Option(Nil), updated_at: Option(String), node_id: Option(String), pem: Option(String), webhook_secret: Option(String), events: Option(List(String)), id: Option(Int), html_url: Option(String), external_url: Option(String), description: Option(String), ) } pub type WebhookCheckRunRerequestedFormEncoded { WebhookCheckRunRerequestedFormEncoded(payload: Option(String)) } pub type WebhookDiscussionCategoryChanged { WebhookDiscussionCategoryChanged( enterprise: Option(Nil), changes: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookWorkflowRunRequested { WebhookWorkflowRunRequested( enterprise: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow: Option(Nil), ) } pub type CheckAnnotation { CheckAnnotation( path_: Option(String), message: Option(String), raw_details: Option(String), blob_href: Option(String), start_line: Option(Int), start_column: Option(Int), annotation_level: Option(String), end_line: Option(Int), title: Option(String), end_column: Option(Int), ) } pub type MarketplaceListingPlan { MarketplaceListingPlan( unit_name: Option(String), has_free_trial: Option(Bool), number: Option(Int), name: Option(String), url: Option(String), state: Option(String), bullets: Option(List(String)), price_model: Option(String), accounts_url: Option(String), monthly_price_in_cents: Option(Int), id: Option(Int), yearly_price_in_cents: Option(Int), description: Option(String), ) } pub type TeamRoleAssignment { TeamRoleAssignment( permissions: Option(Nil), privacy: Option(String), members_url: Option(String), parent: Option(Nil), name: Option(String), slug: Option(String), assignment: Option(String), url: Option(String), permission: Option(String), node_id: Option(String), repositories_url: Option(String), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type WebhookProjectsV2ProjectClosed { WebhookProjectsV2ProjectClosed( projects_v2: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookRepositoryRulesetCreated { WebhookRepositoryRulesetCreated( enterprise: Option(Nil), repository: Option(Nil), repository_ruleset: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhooksCodeScanningRef { WebhooksCodeScanningRef } pub type EnabledRepositories { EnabledRepositories } pub type NullableRepositoryWebhooks { NullableRepositoryWebhooks( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), custom_properties: Option(Nil), forks_count: Option(Int), fork: Option(Bool), allow_update_branch: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), squash_merge_commit_message: Option(String), has_discussions: Option(Bool), teams_url: Option(String), merge_commit_message: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), allow_squash_merge: Option(Bool), homepage: Option(String), template_repository: Option(Nil), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), use_squash_pr_title_as_default: Option(Bool), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), organization: Option(Nil), owner: Option(Nil), starred_at: Option(String), allow_merge_commit: Option(Bool), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), squash_merge_commit_title: Option(String), merge_commit_title: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), anonymous_access_enabled: Option(Bool), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), subscribers_count: Option(Int), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), network_count: Option(Int), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhookProjectEdited { WebhookProjectEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), project: Option(Nil), installation: Option(Nil), ) } pub type CodeScanningAnalysisCategory { CodeScanningAnalysisCategory } pub type Classroom { Classroom( archived: Option(Bool), name: Option(String), url: Option(String), organization: Option(Nil), id: Option(Int), ) } pub type WebhookProjectsV2ItemDeleted { WebhookProjectsV2ItemDeleted( projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningVariantAnalysisRepoTask { CodeScanningVariantAnalysisRepoTask( artifact_url: Option(String), artifact_size_in_bytes: Option(Int), database_commit_sha: Option(String), repository: Option(Nil), result_count: Option(Int), failure_message: Option(String), analysis_status: Option(String), source_location_prefix: Option(String), ) } pub type RunnerApplication { RunnerApplication( os: Option(String), filename: Option(String), temp_download_token: Option(String), architecture: Option(String), download_url: Option(String), sha256_checksum: Option(String), ) } pub type WorkflowUsage { WorkflowUsage(billable: Option(Nil)) } pub type Environment { Environment( created_at: Option(String), name: Option(String), url: Option(String), protection_rules: Option(Nil), deployment_branch_policy: Option(Nil), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type CheckSuite { CheckSuite( head_branch: Option(String), app: Option(Nil), latest_check_runs_count: Option(Int), created_at: Option(String), repository: Option(Nil), head_sha: Option(String), check_runs_url: Option(String), url: Option(String), status: Option(String), rerequestable: Option(Bool), head_commit: Option(Nil), updated_at: Option(String), node_id: Option(String), id: Option(Int), after: Option(String), pull_requests: Option(Nil), conclusion: Option(String), before: Option(String), runs_rerequestable: Option(Bool), ) } pub type CodespaceMachine { CodespaceMachine( display_name: Option(String), name: Option(String), cpus: Option(Int), operating_system: Option(String), memory_in_bytes: Option(Int), prebuild_availability: Option(String), storage_in_bytes: Option(Int), ) } pub type WebhookCodeScanningAlertReopenedByUser { WebhookCodeScanningAlertReopenedByUser( enterprise: Option(Nil), commit_oid: Option(String), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhooksSponsorship { WebhooksSponsorship( tier: Option(Nil), created_at: Option(String), privacy_level: Option(String), sponsorable: Option(Nil), node_id: Option(String), maintainer: Option(Nil), sponsor: Option(Nil), ) } pub type TimelineAssignedIssueEvent { TimelineAssignedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), assignee: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type UnlabeledIssueEvent { UnlabeledIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), label: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type ParticipationStats { ParticipationStats(all: Option(Nil), owner: Option(Nil)) } pub type WebhookDependabotAlertDismissed { WebhookDependabotAlertDismissed( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type CodeScanningAlertItems { CodeScanningAlertItems( dismissed_comment: Option(String), number: Option(Int), dismissed_at: Option(String), created_at: Option(String), dismissed_by: Option(Nil), instances_url: Option(String), url: Option(String), state: Option(String), updated_at: Option(String), tool: Option(Nil), dismissed_reason: Option(String), html_url: Option(String), rule: Option(Nil), most_recent_instance: Option(Nil), fixed_at: Option(String), ) } pub type SecretScanningLocationDiscussionComment { SecretScanningLocationDiscussionComment( discussion_comment_url: Option(String), ) } pub type ReferencedWorkflow { ReferencedWorkflow( path_: Option(String), sha: Option(String), ref: Option(String), ) } pub type WebhookSecretScanningAlertPubliclyLeaked { WebhookSecretScanningAlertPubliclyLeaked( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type RepositoryCollaboratorPermission { RepositoryCollaboratorPermission( user: Option(Nil), permission: Option(String), role_name: Option(String), ) } pub type OrganizationInvitation { OrganizationInvitation( invitation_teams_url: Option(String), invitation_source: Option(String), failed_reason: Option(String), inviter: Option(Nil), login: Option(String), created_at: Option(String), team_count: Option(Int), failed_at: Option(String), role: Option(String), node_id: Option(String), id: Option(Int), email: Option(String), ) } pub type CodeScanningAlertClassification { CodeScanningAlertClassification } pub type ShortBranch { ShortBranch( protection_url: Option(String), name: Option(String), protected: Option(Bool), commit: Option(Nil), protection: Option(Nil), ) } pub type WebhookPullRequestUnlocked { WebhookPullRequestUnlocked( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Status { Status( target_url: Option(String), avatar_url: Option(String), created_at: Option(String), creator: Option(Nil), url: Option(String), context: Option(String), state: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type GitCommit { GitCommit( message: Option(String), parents: Option(Nil), committer: Option(Nil), author: Option(Nil), sha: Option(String), url: Option(String), node_id: Option(String), verification: Option(Nil), html_url: Option(String), tree: Option(Nil), ) } pub type WebhooksTeam1 { WebhooksTeam1( privacy: Option(String), members_url: Option(String), parent: Option(Nil), name: Option(String), slug: Option(String), url: Option(String), permission: Option(String), node_id: Option(String), repositories_url: Option(String), deleted: Option(Bool), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type IssueSearchResultItem { IssueSearchResultItem( text_matches: Option(Nil), draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), closed_at: Option(String), body_html: Option(String), events_url: Option(String), number: Option(Int), created_at: Option(String), body_text: Option(String), locked: Option(Bool), repository: Option(Nil), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), labels_url: Option(String), url: Option(String), assignee: Option(Nil), milestone: Option(Nil), timeline_url: Option(String), state: Option(String), state_reason: Option(String), score: Option(Float), comments: Option(Int), pull_request: Option(Nil), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), title: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type StatusCheckPolicy { StatusCheckPolicy( contexts: Option(List(String)), strict: Option(Bool), checks: Option(Nil), url: Option(String), contexts_url: Option(String), ) } pub type RepositoryRuleEnforcement { RepositoryRuleEnforcement } pub type OrganizationProgrammaticAccessGrantRequest { OrganizationProgrammaticAccessGrantRequest( token_id: Option(Int), permissions: Option(Nil), reason: Option(String), token_expires_at: Option(String), created_at: Option(String), token_name: Option(String), token_last_used_at: Option(String), owner: Option(Nil), repository_selection: Option(String), repositories_url: Option(String), id: Option(Int), token_expired: Option(Bool), ) } pub type NullableCollaborator { NullableCollaborator( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), permissions: Option(Nil), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), role_name: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type WebhookDependabotAlertReopened { WebhookDependabotAlertReopened( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type SecretScanningLocationIssueComment { SecretScanningLocationIssueComment(issue_comment_url: Option(String)) } pub type WebhookDiscussionUnlocked { WebhookDiscussionUnlocked( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ActionsDefaultWorkflowPermissions { ActionsDefaultWorkflowPermissions } pub type SecretScanningLocationPullRequestComment { SecretScanningLocationPullRequestComment( pull_request_comment_url: Option(String), ) } pub type WebhookReleasePublished { WebhookReleasePublished( enterprise: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type NullableGitUser { NullableGitUser( name: Option(String), date: Option(String), email: Option(String), ) } pub type Artifact { Artifact( expired: Option(Bool), created_at: Option(String), workflow_run: Option(Nil), name: Option(String), url: Option(String), size_in_bytes: Option(Int), archive_download_url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), expires_at: Option(String), ) } pub type SimpleCommit { SimpleCommit( message: Option(String), committer: Option(Nil), author: Option(Nil), timestamp: Option(String), id: Option(String), tree_id: Option(String), ) } pub type WebhookDependabotAlertCreated { WebhookDependabotAlertCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhookRepositoryImport { WebhookRepositoryImport( enterprise: Option(Nil), repository: Option(Nil), status: Option(String), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), ) } pub type ProtectedBranchPullRequestReview { ProtectedBranchPullRequestReview( dismiss_stale_reviews: Option(Bool), bypass_pull_request_allowances: Option(Nil), url: Option(String), dismissal_restrictions: Option(Nil), require_code_owner_reviews: Option(Bool), require_last_push_approval: Option(Bool), required_approving_review_count: Option(Int), ) } pub type SshSigningKey { SshSigningKey( created_at: Option(String), title: Option(String), id: Option(Int), key: Option(String), ) } pub type WebhookCheckRunRequestedAction { WebhookCheckRunRequestedAction( requested_action: Option(Nil), repository: Option(Nil), organization: Option(Nil), check_run: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRuleViolationError { RepositoryRuleViolationError( message: Option(String), documentation_url: Option(String), metadata: Option(Nil), status: Option(String), ) } pub type WebhookCreate { WebhookCreate( enterprise: Option(Nil), ref_type: Option(String), repository: Option(Nil), pusher_type: Option(String), ref: Option(String), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), description: Option(String), master_branch: Option(String), ) } pub type WebhookWorkflowDispatch { WebhookWorkflowDispatch( enterprise: Option(Nil), inputs: Option(Nil), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), workflow: Option(String), ) } pub type ContentTree { ContentTree( size: Option(Int), git_url: Option(String), path_: Option(String), name: Option(String), sha: Option(String), url: Option(String), entries: Option(Nil), download_url: Option(String), content: Option(String), links: Option(Nil), type_: Option(String), html_url: Option(String), ) } pub type WebhookBranchProtectionConfigurationDisabled { WebhookBranchProtectionConfigurationDisabled( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookIssuesDemilestoned { WebhookIssuesDemilestoned( enterprise: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type CodeSecurityConfigurationForRepository { CodeSecurityConfigurationForRepository( status: Option(String), configuration: Option(Nil), ) } pub type ReviewRequestedIssueEvent { ReviewRequestedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), requested_team: Option(Nil), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), review_requester: Option(Nil), requested_reviewer: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type ActionsCacheUsageOrgEnterprise { ActionsCacheUsageOrgEnterprise( total_active_caches_size_in_bytes: Option(Int), total_active_caches_count: Option(Int), ) } pub type WorkflowRunUsage { WorkflowRunUsage(billable: Option(Nil), run_duration_ms: Option(Int)) } pub type WebhookPackagePublished { WebhookPackagePublished( enterprise: Option(Nil), package: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookProjectsV2ProjectEdited { WebhookProjectsV2ProjectEdited( projects_v2: Option(Nil), changes: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookSecurityAdvisoryPublished { WebhookSecurityAdvisoryPublished( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), security_advisory: Option(Nil), installation: Option(Nil), ) } pub type WebhookOrganizationMemberAdded { WebhookOrganizationMemberAdded( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), membership: Option(Nil), installation: Option(Nil), ) } pub type CodespacesPermissionsCheckForDevcontainer { CodespacesPermissionsCheckForDevcontainer(accepted: Option(Bool)) } pub type ActionsEnabled { ActionsEnabled } pub type RepositoryRulesetConditionsRepositoryPropertyTarget { RepositoryRulesetConditionsRepositoryPropertyTarget( repository_property: Option(Nil), ) } pub type PackageVersion { PackageVersion( license: Option(String), created_at: Option(String), name: Option(String), url: Option(String), metadata: Option(Nil), package_html_url: Option(String), updated_at: Option(String), deleted_at: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type PagesDeploymentStatus { PagesDeploymentStatus(status: Option(String)) } pub type WebhookProjectsV2ProjectDeleted { WebhookProjectsV2ProjectDeleted( projects_v2: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhooksLabel { WebhooksLabel( default: Option(Bool), color: Option(String), name: Option(String), url: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type PullRequestWebhook { PullRequestWebhook( head: Option(Nil), delete_branch_on_merge: Option(Bool), draft: Option(Bool), body: Option(String), allow_update_branch: Option(Bool), assignees: Option(Nil), comments_url: Option(String), mergeable_state: Option(String), requested_teams: Option(Nil), deletions: Option(Int), merged_at: Option(String), squash_merge_commit_message: Option(String), closed_at: Option(String), merge_commit_message: Option(String), review_comment_url: Option(String), auto_merge: Option(Nil), issue_url: Option(String), number: Option(Int), created_at: Option(String), merged_by: Option(Nil), locked: Option(Bool), merge_commit_sha: Option(String), review_comments_url: Option(String), user: Option(Nil), commits_url: Option(String), changed_files: Option(Int), merged: Option(Bool), author_association: Option(String), url: Option(String), assignee: Option(Nil), statuses_url: Option(String), milestone: Option(Nil), use_squash_pr_title_as_default: Option(Bool), maintainer_can_modify: Option(Bool), state: Option(String), base_: Option(Nil), mergeable: Option(Bool), comments: Option(Int), diff_url: Option(String), squash_merge_commit_title: Option(String), additions: Option(Int), merge_commit_title: Option(String), updated_at: Option(String), node_id: Option(String), patch_url: Option(String), title: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), review_comments: Option(Int), commits: Option(Int), requested_reviewers: Option(Nil), allow_auto_merge: Option(Bool), rebaseable: Option(Bool), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type ActionsWorkflowAccessToRepository { ActionsWorkflowAccessToRepository(access_level: Option(String)) } pub type WebhookOrganizationMemberRemoved { WebhookOrganizationMemberRemoved( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), membership: Option(Nil), installation: Option(Nil), ) } pub type ProjectsV2Item { ProjectsV2Item( content_type: Option(String), created_at: Option(String), creator: Option(Nil), archived_at: Option(String), project_node_id: Option(String), content_node_id: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Float), ) } pub type CodeScanningSarifsStatus { CodeScanningSarifsStatus( errors: Option(List(String)), analyses_url: Option(String), processing_status: Option(String), ) } pub type ActionsRepositoryPermissions { ActionsRepositoryPermissions( enabled: Option(Bool), allowed_actions: Option(String), selected_actions_url: Option(String), ) } pub type CodeOfConductSimple { CodeOfConductSimple( name: Option(String), url: Option(String), html_url: Option(String), key: Option(String), ) } pub type ClassroomAssignmentGrade { ClassroomAssignmentGrade( points_awarded: Option(Int), submission_timestamp: Option(String), group_name: Option(String), starter_code_url: Option(String), points_available: Option(Int), github_username: Option(String), student_repository_name: Option(String), assignment_name: Option(String), assignment_url: Option(String), roster_identifier: Option(String), student_repository_url: Option(String), ) } pub type WebhookCodeScanningAlertFixed { WebhookCodeScanningAlertFixed( enterprise: Option(Nil), commit_oid: Option(String), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type CustomProperty { CustomProperty( value_type: Option(String), url: Option(String), default_value: Option(Nil), values_editable_by: Option(String), property_name: Option(String), allowed_values: Option(List(String)), description: Option(String), source_type: Option(String), required: Option(Bool), ) } pub type BranchShort { BranchShort( name: Option(String), protected: Option(Bool), commit: Option(Nil), ) } pub type OrganizationDependabotSecret { OrganizationDependabotSecret( created_at: Option(String), name: Option(String), visibility: Option(String), updated_at: Option(String), selected_repositories_url: Option(String), ) } pub type CodeScanningOrganizationAlertItems { CodeScanningOrganizationAlertItems( dismissed_comment: Option(String), number: Option(Int), dismissed_at: Option(String), created_at: Option(String), repository: Option(Nil), dismissed_by: Option(Nil), instances_url: Option(String), url: Option(String), state: Option(String), updated_at: Option(String), tool: Option(Nil), dismissed_reason: Option(String), html_url: Option(String), rule: Option(Nil), most_recent_instance: Option(Nil), fixed_at: Option(String), ) } pub type WebhookIssuesMilestoned { WebhookIssuesMilestoned( enterprise: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookWorkflowRunCompleted { WebhookWorkflowRunCompleted( enterprise: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow: Option(Nil), ) } pub type Runner { Runner( os: Option(String), runner_group_id: Option(Int), name: Option(String), status: Option(String), busy: Option(Bool), id: Option(Int), labels: Option(Nil), ) } pub type OrgRepoCustomPropertyValues { OrgRepoCustomPropertyValues( repository_name: Option(String), repository_full_name: Option(String), repository_id: Option(Int), properties: Option(Nil), ) } pub type WebhookRepositoryDispatchSample { WebhookRepositoryDispatchSample( enterprise: Option(Nil), branch: Option(String), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), client_payload: Option(Nil), installation: Option(Nil), ) } pub type ContentFile { ContentFile( size: Option(Int), git_url: Option(String), path_: Option(String), name: Option(String), sha: Option(String), url: Option(String), submodule_git_url: Option(String), target: Option(String), encoding: Option(String), download_url: Option(String), content: Option(String), links: Option(Nil), type_: Option(String), html_url: Option(String), ) } pub type TimelineReviewedEvent { TimelineReviewedEvent( body: Option(String), commit_id: Option(String), pull_request_url: Option(String), body_html: Option(String), body_text: Option(String), user: Option(Nil), author_association: Option(String), state: Option(String), submitted_at: Option(String), node_id: Option(String), event: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), ) } pub type WebhookConfigInsecureSsl { WebhookConfigInsecureSsl } pub type WebhookIssueCommentCreated { WebhookIssueCommentCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), comment: Option(Nil), ) } pub type PageBuild { PageBuild( pusher: Option(Nil), error: Option(Nil), created_at: Option(String), url: Option(String), status: Option(String), duration: Option(Int), commit: Option(String), updated_at: Option(String), ) } pub type SecretScanningLocationCommit { SecretScanningLocationCommit( commit_sha: Option(String), path_: Option(String), commit_url: Option(String), blob_sha: Option(String), blob_url: Option(String), start_line: Option(Float), start_column: Option(Float), end_line: Option(Float), end_column: Option(Float), ) } pub type Milestone { Milestone( closed_at: Option(String), number: Option(Int), due_on: Option(String), created_at: Option(String), creator: Option(Nil), closed_issues: Option(Int), labels_url: Option(String), url: Option(String), open_issues: Option(Int), state: Option(String), updated_at: Option(String), node_id: Option(String), title: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type OrganizationProgrammaticAccessGrant { OrganizationProgrammaticAccessGrant( token_id: Option(Int), permissions: Option(Nil), token_expires_at: Option(String), token_name: Option(String), access_granted_at: Option(String), token_last_used_at: Option(String), owner: Option(Nil), repository_selection: Option(String), repositories_url: Option(String), id: Option(Int), token_expired: Option(Bool), ) } pub type OrganizationRole { OrganizationRole( permissions: Option(List(String)), base_role: Option(String), created_at: Option(String), name: Option(String), organization: Option(Nil), updated_at: Option(String), source: Option(String), id: Option(Int), description: Option(String), ) } pub type WebhookPush { WebhookPush( enterprise: Option(Nil), compare: Option(String), base_ref: Option(String), pusher: Option(Nil), created: Option(Bool), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), head_commit: Option(Nil), deleted: Option(Bool), forced: Option(Bool), installation: Option(Nil), after: Option(String), commits: Option(Nil), before: Option(String), ) } pub type GpgKey { GpgKey( raw_key: Option(String), can_certify: Option(Bool), public_key: Option(String), created_at: Option(String), name: Option(String), can_sign: Option(Bool), can_encrypt_storage: Option(Bool), subkeys: Option(Nil), emails: Option(Nil), primary_key_id: Option(Int), id: Option(Int), key_id: Option(String), expires_at: Option(String), can_encrypt_comms: Option(Bool), revoked: Option(Bool), ) } pub type PullRequestReviewComment { PullRequestReviewComment( body: Option(String), original_line: Option(Int), commit_id: Option(String), diff_hunk: Option(String), path_: Option(String), pull_request_url: Option(String), body_html: Option(String), position: Option(Int), created_at: Option(String), body_text: Option(String), reactions: Option(Nil), user: Option(Nil), subject_type: Option(String), author_association: Option(String), url: Option(String), in_reply_to_id: Option(Int), start_line: Option(Int), start_side: Option(String), line: Option(Int), original_commit_id: Option(String), side: Option(String), updated_at: Option(String), original_position: Option(Int), node_id: Option(String), pull_request_review_id: Option(Int), links: Option(Nil), id: Option(Int), html_url: Option(String), original_start_line: Option(Int), ) } pub type Metadata { Metadata } pub type WebhookPullRequestReviewThreadUnresolved { WebhookPullRequestReviewThreadUnresolved( enterprise: Option(Nil), thread: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Activity { Activity( activity_type: Option(String), ref: Option(String), actor: Option(Nil), timestamp: Option(String), node_id: Option(String), id: Option(Int), after: Option(String), before: Option(String), ) } pub type PackagesBillingUsage { PackagesBillingUsage( total_paid_gigabytes_bandwidth_used: Option(Int), total_gigabytes_bandwidth_used: Option(Int), included_gigabytes_bandwidth: Option(Int), ) } pub type AlertInstancesUrl { AlertInstancesUrl } pub type WebhookProjectsV2ItemEdited { WebhookProjectsV2ItemEdited( changes: Option(Nil), projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookRepositoryArchived { WebhookRepositoryArchived( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type PageBuildStatus { PageBuildStatus(url: Option(String), status: Option(String)) } pub type ProtectedBranchRequiredStatusCheck { ProtectedBranchRequiredStatusCheck( contexts: Option(List(String)), enforcement_level: Option(String), strict: Option(Bool), checks: Option(Nil), url: Option(String), contexts_url: Option(String), ) } pub type Page { Page( https_certificate: Option(Nil), protected_domain_state: Option(String), public: Option(Bool), custom_404: Option(Bool), build_type: Option(String), cname: Option(String), url: Option(String), status: Option(String), https_enforced: Option(Bool), source: Option(Nil), html_url: Option(String), pending_domain_unverified_at: Option(String), ) } pub type WebhookMarketplacePurchasePurchased { WebhookMarketplacePurchasePurchased( enterprise: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), marketplace_purchase: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), previous_marketplace_purchase: Option(Nil), ) } pub type SecretScanningLocationPullRequestBody { SecretScanningLocationPullRequestBody(pull_request_body_url: Option(String)) } pub type ScimError { ScimError( message: Option(String), documentation_url: Option(String), scim_type: Option(String), detail: Option(String), schemas: Option(List(String)), status: Option(Int), ) } pub type ReferrerTraffic { ReferrerTraffic( uniques: Option(Int), count: Option(Int), referrer: Option(String), ) } pub type Manifest { Manifest( name: Option(String), metadata: Option(Nil), resolved: Option(Nil), file: Option(Nil), ) } pub type WebhookProjectDeleted { WebhookProjectDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), project: Option(Nil), installation: Option(Nil), ) } pub type RepositoryRuleTagNamePattern { RepositoryRuleTagNamePattern(parameters: Option(Nil), type_: Option(String)) } pub type SecretScanningLocationIssueBody { SecretScanningLocationIssueBody(issue_body_url: Option(String)) } pub type WebhookSubIssuesSubIssueAdded { WebhookSubIssuesSubIssueAdded( sub_issue_id: Option(Float), parent_issue: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), parent_issue_id: Option(Float), action: Option(String), sub_issue_repo: Option(Nil), sub_issue: Option(Nil), installation: Option(Nil), ) } pub type Topic { Topic(names: Option(List(String))) } pub type WebhookSubIssuesSubIssueRemoved { WebhookSubIssuesSubIssueRemoved( sub_issue_id: Option(Float), parent_issue: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), parent_issue_id: Option(Float), action: Option(String), sub_issue_repo: Option(Nil), sub_issue: Option(Nil), installation: Option(Nil), ) } pub type PublicUser { PublicUser( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), twitter_username: Option(String), blog: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), bio: Option(String), notification_email: Option(String), events_url: Option(String), avatar_url: Option(String), plan: Option(Nil), login: Option(String), created_at: Option(String), total_private_repos: Option(Int), owned_private_repos: Option(Int), public_repos: Option(Int), name: Option(String), collaborators: Option(Int), hireable: Option(Bool), url: Option(String), starred_url: Option(String), organizations_url: Option(String), following: Option(Int), repos_url: Option(String), private_gists: Option(Int), followers: Option(Int), location: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), updated_at: Option(String), node_id: Option(String), public_gists: Option(Int), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), company: Option(String), disk_usage: Option(Int), ) } pub type RepositoryRuleParamsWorkflowFileReference { RepositoryRuleParamsWorkflowFileReference( path_: Option(String), sha: Option(String), repository_id: Option(Int), ref: Option(String), ) } pub type ProjectsV2 { ProjectsV2( closed_at: Option(String), public: Option(Bool), number: Option(Int), created_at: Option(String), creator: Option(Nil), owner: Option(Nil), updated_at: Option(String), node_id: Option(String), title: Option(String), short_description: Option(String), deleted_at: Option(String), id: Option(Float), description: Option(String), deleted_by: Option(Nil), ) } pub type RepositoryRuleParamsStatusCheckConfiguration { RepositoryRuleParamsStatusCheckConfiguration( integration_id: Option(Int), context: Option(String), ) } pub type SecretScanningLocationDiscussionBody { SecretScanningLocationDiscussionBody(discussion_body_url: Option(String)) } pub type Migration { Migration( org_metadata_only: Option(Bool), repositories: Option(Nil), guid: Option(String), created_at: Option(String), exclude_attachments: Option(Bool), exclude_owner_projects: Option(Bool), url: Option(String), state: Option(String), exclude_releases: Option(Bool), archive_url: Option(String), owner: Option(Nil), exclude_metadata: Option(Bool), updated_at: Option(String), node_id: Option(String), exclude: Option(List(String)), id: Option(Int), exclude_git_data: Option(Bool), lock_repositories: Option(Bool), ) } pub type CodeOfConduct { CodeOfConduct( body: Option(String), name: Option(String), url: Option(String), html_url: Option(String), key: Option(String), ) } pub type InteractionLimitResponse { InteractionLimitResponse( origin: Option(String), limit: Option(String), expires_at: Option(String), ) } pub type WebhookTeamCreated { WebhookTeamCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), team: Option(Nil), ) } pub type DemilestonedIssueEvent { DemilestonedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), milestone: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhooksPullRequest5 { WebhooksPullRequest5( head: Option(Nil), draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), mergeable_state: Option(String), requested_teams: Option(Nil), deletions: Option(Int), merged_at: Option(String), closed_at: Option(String), review_comment_url: Option(String), auto_merge: Option(Nil), issue_url: Option(String), number: Option(Int), created_at: Option(String), merged_by: Option(Nil), locked: Option(Bool), merge_commit_sha: Option(String), review_comments_url: Option(String), user: Option(Nil), commits_url: Option(String), changed_files: Option(Int), merged: Option(Bool), author_association: Option(String), url: Option(String), assignee: Option(Nil), statuses_url: Option(String), milestone: Option(Nil), maintainer_can_modify: Option(Bool), state: Option(String), base_: Option(Nil), mergeable: Option(Bool), comments: Option(Int), diff_url: Option(String), additions: Option(Int), updated_at: Option(String), node_id: Option(String), patch_url: Option(String), title: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), review_comments: Option(Int), commits: Option(Int), requested_reviewers: Option(Nil), rebaseable: Option(Bool), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type RepositoryRuleRequiredDeployments { RepositoryRuleRequiredDeployments( parameters: Option(Nil), type_: Option(String), ) } pub type IssueEventForIssue { IssueEventForIssue } pub type ShortBlob { ShortBlob(sha: Option(String), url: Option(String)) } pub type RepositoryRuleMergeQueue { RepositoryRuleMergeQueue(parameters: Option(Nil), type_: Option(String)) } pub type WebhookIssuesUnpinned { WebhookIssuesUnpinned( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type LinkWithType { LinkWithType(href: Option(String), type_: Option(String)) } pub type CodeScanningAlertDismissedComment { CodeScanningAlertDismissedComment } pub type WebhooksUser { WebhooksUser( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), deleted: Option(Bool), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type InteractionExpiry { InteractionExpiry } pub type RepositoryRuleCommitterEmailPattern { RepositoryRuleCommitterEmailPattern( parameters: Option(Nil), type_: Option(String), ) } pub type CodeScanningVariantAnalysisSkippedRepoGroup { CodeScanningVariantAnalysisSkippedRepoGroup( repositories: Option(Nil), repository_count: Option(Int), ) } pub type WebhookCheckRunCompleted { WebhookCheckRunCompleted( repository: Option(Nil), organization: Option(Nil), check_run: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestReviewEdited { WebhookPullRequestReviewEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), review: Option(Nil), installation: Option(Nil), ) } pub type WebhookDependabotAlertReintroduced { WebhookDependabotAlertReintroduced( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type RateLimit { RateLimit( reset: Option(Int), remaining: Option(Int), limit: Option(Int), used: Option(Int), ) } pub type CodespacesPublicKey { CodespacesPublicKey( created_at: Option(String), url: Option(String), title: Option(String), id: Option(Int), key_id: Option(String), key: Option(String), ) } pub type SecretScanningAlertResolutionComment { SecretScanningAlertResolutionComment } pub type SocialAccount { SocialAccount(url: Option(String), provider: Option(String)) } pub type WebhookOrgBlockBlocked { WebhookOrgBlockBlocked( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), blocked_user: Option(Nil), ) } pub type NullableIssue { NullableIssue( draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), closed_at: Option(String), body_html: Option(String), events_url: Option(String), number: Option(Int), closed_by: Option(Nil), created_at: Option(String), body_text: Option(String), locked: Option(Bool), repository: Option(Nil), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), labels_url: Option(String), url: Option(String), assignee: Option(Nil), milestone: Option(Nil), timeline_url: Option(String), state: Option(String), state_reason: Option(String), comments: Option(Int), pull_request: Option(Nil), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), title: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type WebhookPersonalAccessTokenRequestCancelled { WebhookPersonalAccessTokenRequestCancelled( enterprise: Option(Nil), personal_access_token_request: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type IssueEventLabel { IssueEventLabel(color: Option(String), name: Option(String)) } pub type PorterLargeFile { PorterLargeFile( size: Option(Int), path_: Option(String), oid: Option(String), ref_name: Option(String), ) } pub type LicenseContent { LicenseContent( size: Option(Int), license: Option(Nil), git_url: Option(String), path_: Option(String), name: Option(String), sha: Option(String), url: Option(String), encoding: Option(String), download_url: Option(String), content: Option(String), links: Option(Nil), type_: Option(String), html_url: Option(String), ) } pub type CodeScanningDefaultSetupUpdateResponse { CodeScanningDefaultSetupUpdateResponse( run_id: Option(Int), run_url: Option(String), ) } pub type ContentSymlink { ContentSymlink( size: Option(Int), git_url: Option(String), path_: Option(String), name: Option(String), sha: Option(String), url: Option(String), target: Option(String), download_url: Option(String), links: Option(Nil), type_: Option(String), html_url: Option(String), ) } pub type WebhooksMilestone { WebhooksMilestone( closed_at: Option(String), number: Option(Int), due_on: Option(String), created_at: Option(String), creator: Option(Nil), closed_issues: Option(Int), labels_url: Option(String), url: Option(String), open_issues: Option(Int), state: Option(String), updated_at: Option(String), node_id: Option(String), title: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type CodeScanningAnalysisTool { CodeScanningAnalysisTool( guid: Option(String), name: Option(String), version: Option(String), ) } pub type CodeScanningAnalysisCreatedAt { CodeScanningAnalysisCreatedAt } pub type CloneTraffic { CloneTraffic(uniques: Option(Int), count: Option(Int), clones: Option(Nil)) } pub type MilestonedIssueEvent { MilestonedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), milestone: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type RepositoryRuleCreation { RepositoryRuleCreation(type_: Option(String)) } pub type AddedToProjectIssueEvent { AddedToProjectIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), project_card: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WaitTimer { WaitTimer } pub type ReviewDismissedIssueEvent { ReviewDismissedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), dismissed_review: Option(Nil), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhookRegistryPackagePublished { WebhookRegistryPackagePublished( enterprise: Option(Nil), registry_package: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookWatchStarted { WebhookWatchStarted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type SimpleCommitStatus { SimpleCommitStatus( target_url: Option(String), avatar_url: Option(String), created_at: Option(String), url: Option(String), context: Option(String), state: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), required: Option(Bool), ) } pub type SelectedActionsUrl { SelectedActionsUrl } pub type RepositoryRuleParamsCodeScanningTool { RepositoryRuleParamsCodeScanningTool( security_alerts_threshold: Option(String), alerts_threshold: Option(String), tool: Option(String), ) } pub type WebhookWorkflowJobInProgress { WebhookWorkflowJobInProgress( enterprise: Option(Nil), deployment: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow_job: Option(Nil), ) } pub type RepositoryAdvisoryCreate { RepositoryAdvisoryCreate( cvss_vector_string: Option(String), summary: Option(String), cve_id: Option(String), cwe_ids: Option(List(String)), credits: Option(Nil), vulnerabilities: Option(Nil), start_private_fork: Option(Bool), description: Option(String), severity: Option(String), ) } pub type WebhookRepositoryVulnerabilityAlertReopen { WebhookRepositoryVulnerabilityAlertReopen( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhookReleaseCreated { WebhookReleaseCreated( enterprise: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ApiOverview { ApiOverview( verifiable_password_authentication: Option(Bool), pages: Option(List(String)), ssh_key_fingerprints: Option(Nil), ssh_keys: Option(List(String)), copilot: Option(List(String)), packages: Option(List(String)), domains: Option(Nil), hooks: Option(List(String)), actions_macos: Option(List(String)), dependabot: Option(List(String)), importer: Option(List(String)), git: Option(List(String)), web: Option(List(String)), github_enterprise_importer: Option(List(String)), codespaces: Option(List(String)), api: Option(List(String)), actions: Option(List(String)), ) } pub type WebhookOrganizationMemberInvited { WebhookOrganizationMemberInvited( enterprise: Option(Nil), repository: Option(Nil), user: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), invitation: Option(Nil), installation: Option(Nil), ) } pub type CodeSecurityConfigurationRepositories { CodeSecurityConfigurationRepositories( repository: Option(Nil), status: Option(String), ) } pub type WebhooksRepositoriesAdded { WebhooksRepositoriesAdded } pub type WebhookRepositoryDeleted { WebhookRepositoryDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type OrganizationSimple { OrganizationSimple( hooks_url: Option(String), members_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), issues_url: Option(String), url: Option(String), repos_url: Option(String), public_members_url: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type WebhooksWorkflowJobRun { WebhooksWorkflowJobRun( created_at: Option(String), status: Option(String), environment: Option(String), updated_at: Option(String), id: Option(Int), html_url: Option(String), ) } pub type TagProtection { TagProtection( enabled: Option(Bool), created_at: Option(String), pattern: Option(String), updated_at: Option(String), id: Option(Int), ) } pub type SecurityAdvisoryCreditTypes { SecurityAdvisoryCreditTypes } pub type OrgHook { OrgHook( ping_url: Option(String), config: Option(Nil), deliveries_url: Option(String), active: Option(Bool), created_at: Option(String), name: Option(String), url: Option(String), updated_at: Option(String), events: Option(List(String)), type_: Option(String), id: Option(Int), ) } pub type TimelineUnassignedIssueEvent { TimelineUnassignedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), assignee: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type Hovercard { Hovercard(contexts: Option(Nil)) } pub type CopilotDotcomChat { CopilotDotcomChat(models: Option(Nil), total_engaged_users: Option(Int)) } pub type PagesHttpsCertificate { PagesHttpsCertificate( domains: Option(List(String)), state: Option(String), description: Option(String), expires_at: Option(String), ) } pub type WebhookProjectColumnDeleted { WebhookProjectColumnDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), project_column: Option(Nil), ) } pub type SecretScanningLocationDiscussionTitle { SecretScanningLocationDiscussionTitle(discussion_title_url: Option(String)) } pub type RepositoryRuleRequiredLinearHistory { RepositoryRuleRequiredLinearHistory(type_: Option(String)) } pub type WebhookPullRequestReopened { WebhookPullRequestReopened( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookProjectsV2ItemConverted { WebhookProjectsV2ItemConverted( changes: Option(Nil), projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ActionsVariable { ActionsVariable( created_at: Option(String), name: Option(String), value: Option(String), updated_at: Option(String), ) } pub type WebhooksNullableString { WebhooksNullableString } pub type CodespacesOrgSecret { CodespacesOrgSecret( created_at: Option(String), name: Option(String), visibility: Option(String), updated_at: Option(String), selected_repositories_url: Option(String), ) } pub type WebhookPullRequestEnqueued { WebhookPullRequestEnqueued( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDiscussionAnswered { WebhookDiscussionAnswered( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), answer: Option(Nil), ) } pub type LabeledIssueEvent { LabeledIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), label: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type RuleSuites { RuleSuites } pub type ProtectedBranchAdminEnforced { ProtectedBranchAdminEnforced(enabled: Option(Bool), url: Option(String)) } pub type WebhooksNumber { WebhooksNumber } pub type WebhooksRepositories { WebhooksRepositories } pub type NullableScopedInstallation { NullableScopedInstallation( single_file_paths: Option(List(String)), permissions: Option(Nil), has_multiple_single_files: Option(Bool), account: Option(Nil), single_file_name: Option(String), repository_selection: Option(String), repositories_url: Option(String), ) } pub type WebhookInstallationCreated { WebhookInstallationCreated( enterprise: Option(Nil), repositories: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), requester: Option(Nil), ) } pub type ActionsPublicKey { ActionsPublicKey( created_at: Option(String), url: Option(String), title: Option(String), id: Option(Int), key_id: Option(String), key: Option(String), ) } pub type SelectedActions { SelectedActions( patterns_allowed: Option(List(String)), verified_allowed: Option(Bool), github_owned_allowed: Option(Bool), ) } pub type SecretScanningLocationIssueTitle { SecretScanningLocationIssueTitle(issue_title_url: Option(String)) } pub type CodeScanningAnalysisCommitSha { CodeScanningAnalysisCommitSha } pub type WebhooksReviewers { WebhooksReviewers } pub type Dependency { Dependency( dependencies: Option(List(String)), metadata: Option(Nil), scope: Option(String), package_url: Option(String), relationship: Option(String), ) } pub type IssueEventProjectCard { IssueEventProjectCard( project_id: Option(Int), project_url: Option(String), previous_column_name: Option(String), url: Option(String), column_name: Option(String), id: Option(Int), ) } pub type SecretScanningLocationPullRequestTitle { SecretScanningLocationPullRequestTitle(pull_request_title_url: Option(String)) } pub type WebhookBranchProtectionConfigurationEnabled { WebhookBranchProtectionConfigurationEnabled( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDeploymentReviewRequested { WebhookDeploymentReviewRequested( enterprise: Option(Nil), workflow_job_run: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), reviewers: Option(Nil), requestor: Option(Nil), organization: Option(Nil), environment: Option(String), sender: Option(Nil), action: Option(String), installation: Option(Nil), since: Option(String), ) } pub type WebhookDiscussionCommentCreated { WebhookDiscussionCommentCreated( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type DependabotSecret { DependabotSecret( created_at: Option(String), name: Option(String), updated_at: Option(String), ) } pub type CodeScanningAnalysisToolName { CodeScanningAnalysisToolName } pub type WebhookCheckRunCreated { WebhookCheckRunCreated( repository: Option(Nil), organization: Option(Nil), check_run: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRulesetConditionsRepositoryIdTarget { RepositoryRulesetConditionsRepositoryIdTarget(repository_id: Option(Nil)) } pub type ValidationErrorSimple { ValidationErrorSimple( message: Option(String), documentation_url: Option(String), errors: Option(List(String)), ) } pub type WebhookRepositoryVulnerabilityAlertCreate { WebhookRepositoryVulnerabilityAlertCreate( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type HookResponse { HookResponse( message: Option(String), code: Option(Int), status: Option(String), ) } pub type RepositoryRuleBranchNamePattern { RepositoryRuleBranchNamePattern( parameters: Option(Nil), type_: Option(String), ) } pub type IssueComment { IssueComment( body: Option(String), body_html: Option(String), issue_url: Option(String), created_at: Option(String), body_text: Option(String), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), url: Option(String), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type CodeownersErrors { CodeownersErrors(errors: Option(Nil)) } pub type MarketplaceAccount { MarketplaceAccount( login: Option(String), organization_billing_email: Option(String), url: Option(String), node_id: Option(String), type_: Option(String), id: Option(Int), email: Option(String), ) } pub type WebhookProjectsV2StatusUpdateCreated { WebhookProjectsV2StatusUpdateCreated( organization: Option(Nil), sender: Option(Nil), action: Option(String), projects_v2_status_update: Option(Nil), installation: Option(Nil), ) } pub type WebhookCheckSuiteRerequested { WebhookCheckSuiteRerequested( check_suite: Option(Nil), enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryAdvisoryVulnerability { RepositoryAdvisoryVulnerability( vulnerable_functions: Option(List(String)), package: Option(Nil), patched_versions: Option(String), vulnerable_version_range: Option(String), ) } pub type WebhookIssuesAssigned { WebhookIssuesAssigned( enterprise: Option(Nil), repository: Option(Nil), assignee: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookDiscussionReopened { WebhookDiscussionReopened( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDiscussionUnlabeled { WebhookDiscussionUnlabeled( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPingFormEncoded { WebhookPingFormEncoded(payload: Option(String)) } pub type GistHistory { GistHistory( change_status: Option(Nil), user: Option(Nil), url: Option(String), committed_at: Option(String), version: Option(String), ) } pub type Repository { Repository( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), forks_count: Option(Int), fork: Option(Bool), allow_update_branch: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), squash_merge_commit_message: Option(String), has_discussions: Option(Bool), teams_url: Option(String), merge_commit_message: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), allow_squash_merge: Option(Bool), homepage: Option(String), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), use_squash_pr_title_as_default: Option(Bool), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), owner: Option(Nil), starred_at: Option(String), allow_merge_commit: Option(Bool), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), squash_merge_commit_title: Option(String), merge_commit_title: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), anonymous_access_enabled: Option(Bool), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type PorterAuthor { PorterAuthor( remote_name: Option(String), name: Option(String), url: Option(String), remote_id: Option(String), import_url: Option(String), id: Option(Int), email: Option(String), ) } pub type TeamDiscussionComment { TeamDiscussionComment( last_edited_at: Option(String), body: Option(String), body_html: Option(String), number: Option(Int), created_at: Option(String), reactions: Option(Nil), author: Option(Nil), url: Option(String), updated_at: Option(String), node_id: Option(String), discussion_url: Option(String), html_url: Option(String), body_version: Option(String), ) } pub type ProjectsV2ItemContentType { ProjectsV2ItemContentType } pub type WebhookPullRequestUnlabeled { WebhookPullRequestUnlabeled( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookDiscussionDeleted { WebhookDiscussionDeleted( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhooksDeployKey { WebhooksDeployKey( enabled: Option(Bool), last_used: Option(String), verified: Option(Bool), created_at: Option(String), url: Option(String), read_only: Option(Bool), added_by: Option(String), title: Option(String), id: Option(Int), key: Option(String), ) } pub type RepositoryAdvisoryCredit { RepositoryAdvisoryCredit( user: Option(Nil), state: Option(String), type_: Option(String), ) } pub type Thread { Thread( reason: Option(String), repository: Option(Nil), subject: Option(Nil), subscription_url: Option(String), url: Option(String), unread: Option(Bool), last_read_at: Option(String), updated_at: Option(String), id: Option(String), ) } pub type WebhookGithubAppAuthorizationRevoked { WebhookGithubAppAuthorizationRevoked( sender: Option(Nil), action: Option(String), ) } pub type ReleaseAsset { ReleaseAsset( content_type: Option(String), size: Option(Int), created_at: Option(String), name: Option(String), uploader: Option(Nil), browser_download_url: Option(String), url: Option(String), state: Option(String), label: Option(String), updated_at: Option(String), node_id: Option(String), download_count: Option(Int), id: Option(Int), ) } pub type WebhookLabelDeleted { WebhookLabelDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningAlertSeverity { CodeScanningAlertSeverity } pub type ReviewComment { ReviewComment( body: Option(String), original_line: Option(Int), commit_id: Option(String), diff_hunk: Option(String), path_: Option(String), pull_request_url: Option(String), body_html: Option(String), position: Option(Int), created_at: Option(String), body_text: Option(String), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), url: Option(String), in_reply_to_id: Option(Int), start_line: Option(Int), start_side: Option(String), line: Option(Int), original_commit_id: Option(String), side: Option(String), updated_at: Option(String), original_position: Option(Int), node_id: Option(String), pull_request_review_id: Option(Int), links: Option(Nil), id: Option(Int), html_url: Option(String), original_start_line: Option(Int), ) } pub type CodespacesUserPublicKey { CodespacesUserPublicKey(key_id: Option(String), key: Option(String)) } pub type DiffEntry { DiffEntry( changes: Option(Int), deletions: Option(Int), filename: Option(String), patch: Option(String), contents_url: Option(String), sha: Option(String), blob_url: Option(String), previous_filename: Option(String), status: Option(String), additions: Option(Int), raw_url: Option(String), ) } pub type WebhookDeployKeyCreated { WebhookDeployKeyCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), key: Option(Nil), ) } pub type MergeGroup { MergeGroup( base_ref: Option(String), head_sha: Option(String), head_ref: Option(String), head_commit: Option(Nil), base_sha: Option(String), ) } pub type NullableLicenseSimple { NullableLicenseSimple( spdx_id: Option(String), name: Option(String), url: Option(String), node_id: Option(String), html_url: Option(String), key: Option(String), ) } pub type ProjectColumn { ProjectColumn( project_url: Option(String), created_at: Option(String), name: Option(String), url: Option(String), cards_url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), ) } pub type SecretScanningPushProtectionBypassReason { SecretScanningPushProtectionBypassReason } pub type CommitComment { CommitComment( body: Option(String), commit_id: Option(String), path_: Option(String), position: Option(Int), created_at: Option(String), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), url: Option(String), line: Option(Int), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type BasicError { BasicError( message: Option(String), documentation_url: Option(String), url: Option(String), status: Option(String), ) } pub type TeamProject { TeamProject( body: Option(String), private: Option(Bool), owner_url: Option(String), permissions: Option(Nil), number: Option(Int), created_at: Option(String), name: Option(String), creator: Option(Nil), columns_url: Option(String), url: Option(String), state: Option(String), updated_at: Option(String), node_id: Option(String), organization_permission: Option(String), id: Option(Int), html_url: Option(String), ) } pub type CodeScanningAlertRule { CodeScanningAlertRule( security_severity_level: Option(String), help: Option(String), name: Option(String), full_description: Option(String), help_uri: Option(String), tags: Option(List(String)), id: Option(String), description: Option(String), severity: Option(String), ) } pub type WebhookIssuesClosed { WebhookIssuesClosed( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type OrganizationFull { OrganizationFull( hooks_url: Option(String), dependency_graph_enabled_for_new_repositories: Option(Bool), has_organization_projects: Option(Bool), twitter_username: Option(String), members_allowed_repository_creation_type: Option(String), dependabot_security_updates_enabled_for_new_repositories: Option(Bool), blog: Option(String), default_repository_permission: Option(String), secret_scanning_push_protection_custom_link: Option(String), two_factor_requirement_enabled: Option(Bool), web_commit_signoff_required: Option(Bool), members_url: Option(String), events_url: Option(String), avatar_url: Option(String), plan: Option(Nil), login: Option(String), has_repository_projects: Option(Bool), created_at: Option(String), secret_scanning_push_protection_custom_link_enabled: Option(Bool), issues_url: Option(String), total_private_repos: Option(Int), owned_private_repos: Option(Int), public_repos: Option(Int), name: Option(String), members_can_fork_private_repositories: Option(Bool), collaborators: Option(Int), deploy_keys_enabled_for_repositories: Option(Bool), url: Option(String), members_can_create_public_repositories: Option(Bool), archived_at: Option(String), following: Option(Int), repos_url: Option(String), members_can_create_private_repositories: Option(Bool), public_members_url: Option(String), private_gists: Option(Int), followers: Option(Int), location: Option(String), members_can_create_pages: Option(Bool), dependabot_alerts_enabled_for_new_repositories: Option(Bool), members_can_create_repositories: Option(Bool), updated_at: Option(String), node_id: Option(String), billing_email: Option(String), public_gists: Option(Int), members_can_create_private_pages: Option(Bool), secret_scanning_enabled_for_new_repositories: Option(Bool), type_: Option(String), secret_scanning_push_protection_enabled_for_new_repositories: Option(Bool), id: Option(Int), html_url: Option(String), members_can_create_public_pages: Option(Bool), members_can_create_internal_repositories: Option(Bool), email: Option(String), description: Option(String), company: Option(String), is_verified: Option(Bool), advanced_security_enabled_for_new_repositories: Option(Bool), disk_usage: Option(Int), ) } pub type CodeScanningAnalysisToolGuid { CodeScanningAnalysisToolGuid } pub type AlertCreatedAt { AlertCreatedAt } pub type WebhookCustomPropertyUpdated { WebhookCustomPropertyUpdated( enterprise: Option(Nil), organization: Option(Nil), definition: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Reaction { Reaction( created_at: Option(String), user: Option(Nil), node_id: Option(String), content: Option(String), id: Option(Int), ) } pub type Autolink { Autolink( is_alphanumeric: Option(Bool), url_template: Option(String), key_prefix: Option(String), id: Option(Int), ) } pub type WebhooksIssue2 { WebhooksIssue2( draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), closed_at: Option(String), events_url: Option(String), number: Option(Int), created_at: Option(String), locked: Option(Bool), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), labels_url: Option(String), url: Option(String), assignee: Option(Nil), milestone: Option(Nil), timeline_url: Option(String), state: Option(String), state_reason: Option(String), comments: Option(Int), pull_request: Option(Nil), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), title: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type ActionsGetDefaultWorkflowPermissions { ActionsGetDefaultWorkflowPermissions( default_workflow_permissions: Option(String), can_approve_pull_request_reviews: Option(Bool), ) } pub type WebhookIssuesTransferred { WebhookIssuesTransferred( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type EnterpriseTeam { EnterpriseTeam( sync_to_organizations: Option(String), members_url: Option(String), created_at: Option(String), name: Option(String), slug: Option(String), url: Option(String), updated_at: Option(String), id: Option(Int), html_url: Option(String), group_id: Option(String), ) } pub type CopilotOrganizationDetails { CopilotOrganizationDetails( cli: Option(String), platform_chat: Option(String), seat_breakdown: Option(Nil), ide_chat: Option(String), seat_management_setting: Option(String), plan_type: Option(String), public_code_suggestions: Option(String), ) } pub type IssueEventMilestone { IssueEventMilestone(title: Option(String)) } pub type WebhooksEffectiveDate { WebhooksEffectiveDate } pub type CodeSecurityConfiguration { CodeSecurityConfiguration( enforcement: Option(String), secret_scanning: Option(String), secret_scanning_non_provider_patterns: Option(String), code_scanning_default_setup: Option(String), dependabot_alerts: Option(String), secret_scanning_delegated_bypass_options: Option(Nil), secret_scanning_delegated_bypass: Option(String), target_type: Option(String), dependency_graph_autosubmit_action_options: Option(Nil), dependency_graph_autosubmit_action: Option(String), created_at: Option(String), name: Option(String), url: Option(String), private_vulnerability_reporting: Option(String), updated_at: Option(String), dependabot_security_updates: Option(String), secret_scanning_validity_checks: Option(String), dependency_graph: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), advanced_security: Option(String), secret_scanning_push_protection: Option(String), ) } pub type WebhooksUserMannequin { WebhooksUserMannequin( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), deleted: Option(Bool), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type WebhookSecurityAndAnalysis { WebhookSecurityAndAnalysis( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), ) } pub type ContentTraffic { ContentTraffic( uniques: Option(Int), path_: Option(String), count: Option(Int), title: Option(String), ) } pub type WebhookPullRequestReviewRequested { WebhookPullRequestReviewRequested } pub type SecretScanningPushProtectionBypass { SecretScanningPushProtectionBypass( token_type: Option(String), reason: Option(String), expire_at: Option(String), ) } pub type WebhookPing { WebhookPing( hook: Option(Nil), zen: Option(String), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), hook_id: Option(Int), ) } pub type WebhookSecretScanningAlertValidated { WebhookSecretScanningAlertValidated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhooksApprover { WebhooksApprover( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), ) } pub type FileCommit { FileCommit(commit: Option(Nil), content: Option(Nil)) } pub type WebhookRubygemsMetadata { WebhookRubygemsMetadata( commit_oid: Option(String), dependencies: Option(Nil), name: Option(String), readme: Option(String), homepage: Option(String), metadata: Option(Nil), repo: Option(String), platform: Option(String), version_info: Option(Nil), description: Option(String), ) } pub type DeploymentProtectionRule { DeploymentProtectionRule( app: Option(Nil), enabled: Option(Bool), node_id: Option(String), id: Option(Int), ) } pub type RunnerGroupsOrg { RunnerGroupsOrg( default: Option(Bool), allows_public_repositories: Option(Bool), name: Option(String), inherited_allows_public_repositories: Option(Bool), selected_workflows: Option(List(String)), visibility: Option(String), runners_url: Option(String), restricted_to_workflows: Option(Bool), inherited: Option(Bool), id: Option(Float), hosted_runners_url: Option(String), selected_repositories_url: Option(String), workflow_restrictions_read_only: Option(Bool), ) } pub type RepoCodespacesSecret { RepoCodespacesSecret( created_at: Option(String), name: Option(String), updated_at: Option(String), ) } pub type EnterpriseWebhooks { EnterpriseWebhooks( avatar_url: Option(String), created_at: Option(String), name: Option(String), slug: Option(String), website_url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type NullableIntegration { NullableIntegration( permissions: Option(Nil), client_secret: Option(String), installations_count: Option(Int), created_at: Option(String), name: Option(String), slug: Option(String), client_id: Option(String), owner: Option(Nil), updated_at: Option(String), node_id: Option(String), pem: Option(String), webhook_secret: Option(String), events: Option(List(String)), id: Option(Int), html_url: Option(String), external_url: Option(String), description: Option(String), ) } pub type FullRepository { FullRepository( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), custom_properties: Option(Nil), forks_count: Option(Int), fork: Option(Bool), allow_update_branch: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), security_and_analysis: Option(Nil), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), squash_merge_commit_message: Option(String), has_discussions: Option(Bool), teams_url: Option(String), merge_commit_message: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), parent: Option(Nil), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), code_of_conduct: Option(Nil), allow_squash_merge: Option(Bool), homepage: Option(String), template_repository: Option(Nil), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), use_squash_pr_title_as_default: Option(Bool), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), allow_rebase_merge: Option(Bool), organization: Option(Nil), owner: Option(Nil), allow_merge_commit: Option(Bool), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), squash_merge_commit_title: Option(String), merge_commit_title: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), anonymous_access_enabled: Option(Bool), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), source: Option(Nil), subscribers_url: Option(String), subscribers_count: Option(Int), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), allow_auto_merge: Option(Bool), pulls_url: Option(String), network_count: Option(Int), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), master_branch: Option(String), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type WebhookRepositoryUnarchived { WebhookRepositoryUnarchived( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type SimpleClassroomOrganization { SimpleClassroomOrganization( avatar_url: Option(String), login: Option(String), name: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookProjectsV2ItemArchived { WebhookProjectsV2ItemArchived( changes: Option(Nil), projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type DependencyGraphSpdxSbom { DependencyGraphSpdxSbom(sbom: Option(Nil)) } pub type AlertDismissedAt { AlertDismissedAt } pub type OrgRulesetConditions { OrgRulesetConditions } pub type Discussion { Discussion( body: Option(String), answer_chosen_by: Option(Nil), number: Option(Int), created_at: Option(String), locked: Option(Bool), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), timeline_url: Option(String), state: Option(String), state_reason: Option(String), comments: Option(Int), updated_at: Option(String), node_id: Option(String), title: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), answer_html_url: Option(String), category: Option(Nil), active_lock_reason: Option(String), answer_chosen_at: Option(String), labels: Option(Nil), ) } pub type WebhookStatus { WebhookStatus( target_url: Option(String), enterprise: Option(Nil), avatar_url: Option(String), created_at: Option(String), repository: Option(Nil), name: Option(String), sha: Option(String), context: Option(String), branches: Option(Nil), state: Option(String), organization: Option(Nil), sender: Option(Nil), commit: Option(Nil), updated_at: Option(String), installation: Option(Nil), id: Option(Int), description: Option(String), ) } pub type WebhookMetaDeleted { WebhookMetaDeleted( enterprise: Option(Nil), hook: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), hook_id: Option(Int), installation: Option(Nil), ) } pub type WebhookSecurityAdvisoryWithdrawn { WebhookSecurityAdvisoryWithdrawn( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), security_advisory: Option(Nil), installation: Option(Nil), ) } pub type OidcCustomSubRepo { OidcCustomSubRepo( use_default: Option(Bool), include_claim_keys: Option(List(String)), ) } pub type WebhookTeamAdd { WebhookTeamAdd( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), team: Option(Nil), ) } pub type WebhookBranchProtectionRuleDeleted { WebhookBranchProtectionRuleDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), rule: Option(Nil), ) } pub type WebhookDiscussionPinned { WebhookDiscussionPinned( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type AssignedIssueEvent { AssignedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), assignee: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), assigner: Option(Nil), ) } pub type PullRequest { PullRequest( head: Option(Nil), draft: Option(Bool), body: Option(String), assignees: Option(Nil), comments_url: Option(String), mergeable_state: Option(String), requested_teams: Option(Nil), deletions: Option(Int), merged_at: Option(String), closed_at: Option(String), review_comment_url: Option(String), auto_merge: Option(Nil), issue_url: Option(String), number: Option(Int), created_at: Option(String), merged_by: Option(Nil), locked: Option(Bool), merge_commit_sha: Option(String), review_comments_url: Option(String), user: Option(Nil), commits_url: Option(String), changed_files: Option(Int), merged: Option(Bool), author_association: Option(String), url: Option(String), assignee: Option(Nil), statuses_url: Option(String), milestone: Option(Nil), maintainer_can_modify: Option(Bool), state: Option(String), base_: Option(Nil), mergeable: Option(Bool), comments: Option(Int), diff_url: Option(String), additions: Option(Int), updated_at: Option(String), node_id: Option(String), patch_url: Option(String), title: Option(String), links: Option(Nil), id: Option(Int), html_url: Option(String), review_comments: Option(Int), commits: Option(Int), requested_reviewers: Option(Nil), rebaseable: Option(Bool), active_lock_reason: Option(String), labels: Option(Nil), ) } pub type CombinedBillingUsage { CombinedBillingUsage( estimated_storage_for_month: Option(Int), estimated_paid_storage_for_month: Option(Int), days_left_in_billing_cycle: Option(Int), ) } pub type SecretScanningAlertWebhook { SecretScanningAlertWebhook( push_protection_bypass_request_html_url: Option(String), push_protection_bypassed: Option(Bool), number: Option(Int), secret_type: Option(String), created_at: Option(String), push_protection_bypassed_at: Option(String), push_protection_bypass_request_reviewer: Option(Nil), publicly_leaked: Option(Bool), resolution: Option(String), resolution_comment: Option(String), locations_url: Option(String), push_protection_bypassed_by: Option(Nil), url: Option(String), validity: Option(String), updated_at: Option(String), multi_repo: Option(Bool), push_protection_bypass_request_comment: Option(String), resolved_at: Option(String), html_url: Option(String), secret_type_display_name: Option(String), resolved_by: Option(Nil), ) } pub type ClassroomAssignment { ClassroomAssignment( feedback_pull_requests_enabled: Option(Bool), accepted: Option(Int), public_repo: Option(Bool), slug: Option(String), starter_code_repository: Option(Nil), editor: Option(String), invite_link: Option(String), passing: Option(Int), classroom: Option(Nil), title: Option(String), deadline: Option(String), language: Option(String), type_: Option(String), submitted: Option(Int), id: Option(Int), max_teams: Option(Int), invitations_enabled: Option(Bool), max_members: Option(Int), students_are_repo_admins: Option(Bool), ) } pub type WebhookInstallationTargetRenamed { WebhookInstallationTargetRenamed( enterprise: Option(Nil), changes: Option(Nil), target_type: Option(String), repository: Option(Nil), account: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type NullableCodespaceMachine { NullableCodespaceMachine( display_name: Option(String), name: Option(String), cpus: Option(Int), operating_system: Option(String), memory_in_bytes: Option(Int), prebuild_availability: Option(String), storage_in_bytes: Option(Int), ) } pub type ReleaseNotesContent { ReleaseNotesContent(body: Option(String), name: Option(String)) } pub type MovedColumnInProjectIssueEvent { MovedColumnInProjectIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), project_card: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhookCustomPropertyDeleted { WebhookCustomPropertyDeleted( enterprise: Option(Nil), organization: Option(Nil), definition: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookCheckRunCreatedFormEncoded { WebhookCheckRunCreatedFormEncoded(payload: Option(String)) } pub type RuleSuite { RuleSuite( repository_name: Option(String), evaluation_result: Option(String), actor_id: Option(Int), after_sha: Option(String), before_sha: Option(String), repository_id: Option(Int), ref: Option(String), rule_evaluations: Option(Nil), actor_name: Option(String), pushed_at: Option(String), id: Option(Int), result: Option(String), ) } pub type ReviewCustomGatesStateRequired { ReviewCustomGatesStateRequired( state: Option(String), environment_name: Option(String), comment: Option(String), ) } pub type WebhookIssuesLocked { WebhookIssuesLocked( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookRepositoryAdvisoryPublished { WebhookRepositoryAdvisoryPublished( enterprise: Option(Nil), repository: Option(Nil), repository_advisory: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type Release { Release( draft: Option(Bool), body: Option(String), assets: Option(Nil), prerelease: Option(Bool), published_at: Option(String), body_html: Option(String), created_at: Option(String), body_text: Option(String), reactions: Option(Nil), author: Option(Nil), name: Option(String), url: Option(String), tag_name: Option(String), zipball_url: Option(String), upload_url: Option(String), assets_url: Option(String), tarball_url: Option(String), node_id: Option(String), discussion_url: Option(String), mentions_count: Option(Int), target_commitish: Option(String), id: Option(Int), html_url: Option(String), ) } pub type RepositoryRuleWorkflows { RepositoryRuleWorkflows(parameters: Option(Nil), type_: Option(String)) } pub type WebhookDiscussionCommentEdited { WebhookDiscussionCommentEdited( enterprise: Option(Nil), changes: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type WebhookInstallationUnsuspend { WebhookInstallationUnsuspend( enterprise: Option(Nil), repositories: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPullRequestReviewCommentDeleted { WebhookPullRequestReviewCommentDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), comment: Option(Nil), ) } pub type WebhookSponsorshipPendingCancellation { WebhookSponsorshipPendingCancellation( enterprise: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), sponsorship: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookRepositoryPublicized { WebhookRepositoryPublicized( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type SimpleUser { SimpleUser( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), starred_at: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type WebhookMilestoneDeleted { WebhookMilestoneDeleted( enterprise: Option(Nil), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRuleRequiredStatusChecks { RepositoryRuleRequiredStatusChecks( parameters: Option(Nil), type_: Option(String), ) } pub type WebhookPageBuild { WebhookPageBuild( enterprise: Option(Nil), repository: Option(Nil), build: Option(Nil), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), id: Option(Int), ) } pub type OrganizationActionsVariable { OrganizationActionsVariable( created_at: Option(String), name: Option(String), value: Option(String), visibility: Option(String), updated_at: Option(String), selected_repositories_url: Option(String), ) } pub type DeploymentBranchPolicyNamePattern { DeploymentBranchPolicyNamePattern(name: Option(String)) } pub type ProjectsV2StatusUpdate { ProjectsV2StatusUpdate( body: Option(String), created_at: Option(String), start_date: Option(String), creator: Option(Nil), project_node_id: Option(String), status: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Float), target_date: Option(String), ) } pub type WebhookProjectCardDeleted { WebhookProjectCardDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), project_card: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookIssuesOpened { WebhookIssuesOpened( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookProjectsV2StatusUpdateEdited { WebhookProjectsV2StatusUpdateEdited( changes: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), projects_v2_status_update: Option(Nil), installation: Option(Nil), ) } pub type WebhookTeamRemovedFromRepository { WebhookTeamRemovedFromRepository( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), team: Option(Nil), ) } pub type WebhookMemberEdited { WebhookMemberEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), member: Option(Nil), ) } pub type WebhookIssuesEdited { WebhookIssuesEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type ReviewRequestRemovedIssueEvent { ReviewRequestRemovedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), requested_team: Option(Nil), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), review_requester: Option(Nil), requested_reviewer: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhookProjectColumnMoved { WebhookProjectColumnMoved( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), project_column: Option(Nil), ) } pub type TeamMembership { TeamMembership( url: Option(String), state: Option(String), role: Option(String), ) } pub type WebhookProjectReopened { WebhookProjectReopened( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), project: Option(Nil), installation: Option(Nil), ) } pub type CodeScanningAlertEnvironment { CodeScanningAlertEnvironment } pub type DependencyGraphDiff { DependencyGraphDiff } pub type IssueEvent { IssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), author_association: Option(String), requested_team: Option(Nil), dismissed_review: Option(Nil), url: Option(String), assignee: Option(Nil), milestone: Option(Nil), label: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), review_requester: Option(Nil), project_card: Option(Nil), requested_reviewer: Option(Nil), node_id: Option(String), lock_reason: Option(String), issue: Option(Nil), event: Option(String), id: Option(Int), assigner: Option(Nil), rename: Option(Nil), ) } pub type InstallationToken { InstallationToken( single_file_paths: Option(List(String)), permissions: Option(Nil), repositories: Option(Nil), has_multiple_single_files: Option(Bool), single_file: Option(String), repository_selection: Option(String), token_: Option(String), expires_at: Option(String), ) } pub type CheckRun { CheckRun( output: Option(Nil), check_suite: Option(Nil), app: Option(Nil), deployment: Option(Nil), completed_at: Option(String), name: Option(String), head_sha: Option(String), url: Option(String), external_id: Option(String), started_at: Option(String), details_url: Option(String), status: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), pull_requests: Option(Nil), conclusion: Option(String), ) } pub type Package { Package( version_count: Option(Int), created_at: Option(String), repository: Option(Nil), name: Option(String), url: Option(String), visibility: Option(String), owner: Option(Nil), package_type: Option(String), updated_at: Option(String), id: Option(Int), html_url: Option(String), ) } pub type NullableSimpleCommit { NullableSimpleCommit( message: Option(String), committer: Option(Nil), author: Option(Nil), timestamp: Option(String), id: Option(String), tree_id: Option(String), ) } pub type SecretScanningAlertResolutionWebhook { SecretScanningAlertResolutionWebhook } pub type Collaborator { Collaborator( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), permissions: Option(Nil), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), url: Option(String), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), role_name: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type CommunityProfile { CommunityProfile( updated_at: Option(String), files: Option(Nil), documentation: Option(String), content_reports_enabled: Option(Bool), description: Option(String), health_percentage: Option(Int), ) } pub type Import { Import( push_percent: Option(Int), svc_root: Option(String), use_lfs: Option(Bool), large_files_count: Option(Int), vcs: Option(String), message: Option(String), commit_count: Option(Int), import_percent: Option(Int), project_choices: Option(Nil), large_files_size: Option(Int), failed_step: Option(String), has_large_files: Option(Bool), url: Option(String), error_message: Option(String), status: Option(String), vcs_url: Option(String), svn_root: Option(String), authors_url: Option(String), authors_count: Option(Int), tfvc_project: Option(String), status_text: Option(String), repository_url: Option(String), html_url: Option(String), ) } pub type CopilotUsageMetricsDay { CopilotUsageMetricsDay( copilot_ide_chat: Option(Nil), total_active_users: Option(Int), copilot_dotcom_pull_requests: Option(Nil), copilot_dotcom_chat: Option(Nil), copilot_ide_code_completions: Option(Nil), date: Option(String), total_engaged_users: Option(Int), ) } pub type RepositoryRuleCommitAuthorEmailPattern { RepositoryRuleCommitAuthorEmailPattern( parameters: Option(Nil), type_: Option(String), ) } pub type UserMarketplacePurchase { UserMarketplacePurchase( billing_cycle: Option(String), on_free_trial: Option(Bool), plan: Option(Nil), free_trial_ends_on: Option(String), account: Option(Nil), unit_count: Option(Int), updated_at: Option(String), next_billing_date: Option(String), ) } pub type DependabotAlertWithRepository { DependabotAlertWithRepository( dismissed_comment: Option(String), number: Option(Int), dismissed_at: Option(String), created_at: Option(String), repository: Option(Nil), dependency: Option(Nil), dismissed_by: Option(Nil), url: Option(String), state: Option(String), updated_at: Option(String), security_advisory: Option(Nil), auto_dismissed_at: Option(String), dismissed_reason: Option(String), html_url: Option(String), security_vulnerability: Option(Nil), fixed_at: Option(String), ) } pub type CommitActivity { CommitActivity(total: Option(Int), week: Option(Int), days: Option(Nil)) } pub type WebhookMergeGroupChecksRequested { WebhookMergeGroupChecksRequested( repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), merge_group: Option(Nil), installation: Option(Nil), ) } pub type Deployment { Deployment( original_environment: Option(String), task: Option(String), created_at: Option(String), creator: Option(Nil), sha: Option(String), production_environment: Option(Bool), payload: Option(Nil), url: Option(String), statuses_url: Option(String), ref: Option(String), environment: Option(String), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), repository_url: Option(String), id: Option(Int), description: Option(String), transient_environment: Option(Bool), ) } pub type WebhookReleaseEdited { WebhookReleaseEdited( enterprise: Option(Nil), changes: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookConfigSecret { WebhookConfigSecret } pub type WebhookDiscussionUnanswered { WebhookDiscussionUnanswered( discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), old_answer: Option(Nil), action: Option(String), ) } pub type SimpleRepository { SimpleRepository( hooks_url: Option(String), branches_url: Option(String), forks_url: Option(String), fork: Option(Bool), private: Option(Bool), keys_url: Option(String), comments_url: Option(String), trees_url: Option(String), blobs_url: Option(String), teams_url: Option(String), stargazers_url: Option(String), contributors_url: Option(String), tags_url: Option(String), issue_comment_url: Option(String), events_url: Option(String), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), commits_url: Option(String), subscription_url: Option(String), issue_events_url: Option(String), labels_url: Option(String), url: Option(String), statuses_url: Option(String), archive_url: Option(String), milestones_url: Option(String), owner: Option(Nil), assignees_url: Option(String), compare_url: Option(String), git_tags_url: Option(String), node_id: Option(String), notifications_url: Option(String), downloads_url: Option(String), subscribers_url: Option(String), id: Option(Int), full_name: Option(String), html_url: Option(String), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), pulls_url: Option(String), deployments_url: Option(String), git_commits_url: Option(String), ) } pub type IssueEventRename { IssueEventRename(from: Option(String), to: Option(String)) } pub type WebhookRepositoryRulesetDeleted { WebhookRepositoryRulesetDeleted( enterprise: Option(Nil), repository: Option(Nil), repository_ruleset: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningVariantAnalysisLanguage { CodeScanningVariantAnalysisLanguage } pub type WebhookPullRequestDemilestoned { WebhookPullRequestDemilestoned( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), ) } pub type CodeScanningRefFull { CodeScanningRefFull } pub type SecretScanningLocationPullRequestReview { SecretScanningLocationPullRequestReview( pull_request_review_url: Option(String), ) } pub type WebhookCodeScanningAlertCreated { WebhookCodeScanningAlertCreated( enterprise: Option(Nil), commit_oid: Option(String), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhookWorkflowJobWaiting { WebhookWorkflowJobWaiting( enterprise: Option(Nil), deployment: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow_job: Option(Nil), ) } pub type StateChangeIssueEvent { StateChangeIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), state_reason: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type CodeFrequencyStat { CodeFrequencyStat } pub type BranchProtection { BranchProtection( allow_fork_syncing: Option(Nil), enforce_admins: Option(Nil), enabled: Option(Bool), block_creations: Option(Nil), restrictions: Option(Nil), required_conversation_resolution: Option(Nil), protection_url: Option(String), name: Option(String), allow_deletions: Option(Nil), url: Option(String), required_pull_request_reviews: Option(Nil), allow_force_pushes: Option(Nil), lock_branch: Option(Nil), required_status_checks: Option(Nil), required_linear_history: Option(Nil), required_signatures: Option(Nil), ) } pub type WebhookReleasePrereleased { WebhookReleasePrereleased( enterprise: Option(Nil), release: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type WebhookPersonalAccessTokenRequestCreated { WebhookPersonalAccessTokenRequestCreated( enterprise: Option(Nil), personal_access_token_request: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningCodeqlDatabase { CodeScanningCodeqlDatabase( content_type: Option(String), size: Option(Int), commit_oid: Option(String), created_at: Option(String), name: Option(String), uploader: Option(Nil), url: Option(String), updated_at: Option(String), language: Option(String), id: Option(Int), ) } pub type WebhooksRelease { WebhooksRelease( draft: Option(Bool), body: Option(String), assets: Option(Nil), prerelease: Option(Bool), published_at: Option(String), created_at: Option(String), reactions: Option(Nil), author: Option(Nil), name: Option(String), url: Option(String), tag_name: Option(String), zipball_url: Option(String), upload_url: Option(String), assets_url: Option(String), tarball_url: Option(String), node_id: Option(String), discussion_url: Option(String), target_commitish: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookCheckRunCompletedFormEncoded { WebhookCheckRunCompletedFormEncoded(payload: Option(String)) } pub type InteractionGroup { InteractionGroup } pub type WebhookIssuesUnassigned { WebhookIssuesUnassigned( enterprise: Option(Nil), repository: Option(Nil), assignee: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type WebhookPullRequestDequeued { WebhookPullRequestDequeued( enterprise: Option(Nil), reason: Option(String), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type AuthenticationToken { AuthenticationToken( permissions: Option(Nil), repositories: Option(Nil), single_file: Option(String), repository_selection: Option(String), token_: Option(String), expires_at: Option(String), ) } pub type WebhookPullRequestMilestoned { WebhookPullRequestMilestoned( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), milestone: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), ) } pub type WebhookDependabotAlertAutoReopened { WebhookDependabotAlertAutoReopened( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type NullableMilestone { NullableMilestone( closed_at: Option(String), number: Option(Int), due_on: Option(String), created_at: Option(String), creator: Option(Nil), closed_issues: Option(Int), labels_url: Option(String), url: Option(String), open_issues: Option(Int), state: Option(String), updated_at: Option(String), node_id: Option(String), title: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type Snapshot { Snapshot( manifests: Option(Nil), detector: Option(Nil), sha: Option(String), metadata: Option(Nil), scanned: Option(String), ref: Option(String), version: Option(Int), job: Option(Nil), ) } pub type WebhookSponsorshipCancelled { WebhookSponsorshipCancelled( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), sponsorship: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningAlertState { CodeScanningAlertState } pub type WebhookPullRequestReviewDismissed { WebhookPullRequestReviewDismissed( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), review: Option(Nil), installation: Option(Nil), ) } pub type WebhookProjectsV2ProjectReopened { WebhookProjectsV2ProjectReopened( projects_v2: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ProjectCard { ProjectCard( project_id: Option(String), archived: Option(Bool), column_url: Option(String), content_url: Option(String), project_url: Option(String), created_at: Option(String), creator: Option(Nil), url: Option(String), note: Option(String), column_name: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), ) } pub type WebhookDiscussionLabeled { WebhookDiscussionLabeled( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type AlertAutoDismissedAt { AlertAutoDismissedAt } pub type PreventSelfReview { PreventSelfReview } pub type GlobalAdvisory { GlobalAdvisory( cwes: Option(Nil), source_code_location: Option(String), published_at: Option(String), summary: Option(String), cvss_severities: Option(Nil), nvd_published_at: Option(String), cve_id: Option(String), references: Option(List(String)), identifiers: Option(Nil), epss: Option(Nil), ghsa_id: Option(String), withdrawn_at: Option(String), url: Option(String), cvss: Option(Nil), updated_at: Option(String), credits: Option(Nil), vulnerabilities: Option(Nil), type_: Option(String), html_url: Option(String), description: Option(String), severity: Option(String), repository_advisory_url: Option(String), github_reviewed_at: Option(String), ) } pub type WebhookMemberAdded { WebhookMemberAdded( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), member: Option(Nil), ) } pub type WebhookCodeScanningAlertClosedByUser { WebhookCodeScanningAlertClosedByUser( enterprise: Option(Nil), commit_oid: Option(String), repository: Option(Nil), ref: Option(String), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type CodespacesSecret { CodespacesSecret( created_at: Option(String), name: Option(String), visibility: Option(String), updated_at: Option(String), selected_repositories_url: Option(String), ) } pub type WebhookPullRequestLabeled { WebhookPullRequestLabeled( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), label: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type IssueEventDismissedReview { IssueEventDismissedReview( review_id: Option(Int), state: Option(String), dismissal_commit_id: Option(String), dismissal_message: Option(String), ) } pub type WebhookTeamEdited { WebhookTeamEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), team: Option(Nil), ) } pub type CodeScanningAnalysisAnalysisKey { CodeScanningAnalysisAnalysisKey } pub type RepositoryRuleCodeScanning { RepositoryRuleCodeScanning(parameters: Option(Nil), type_: Option(String)) } pub type WebhookWorkflowJobCompleted { WebhookWorkflowJobCompleted( enterprise: Option(Nil), deployment: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), workflow_job: Option(Nil), ) } pub type RepositoryRuleParamsRequiredReviewerConfiguration { RepositoryRuleParamsRequiredReviewerConfiguration( file_patterns: Option(List(String)), reviewer_id: Option(String), minimum_approvals: Option(Int), ) } pub type TeamOrganization { TeamOrganization( hooks_url: Option(String), has_organization_projects: Option(Bool), twitter_username: Option(String), members_allowed_repository_creation_type: Option(String), blog: Option(String), default_repository_permission: Option(String), two_factor_requirement_enabled: Option(Bool), web_commit_signoff_required: Option(Bool), members_url: Option(String), events_url: Option(String), avatar_url: Option(String), plan: Option(Nil), login: Option(String), has_repository_projects: Option(Bool), created_at: Option(String), issues_url: Option(String), total_private_repos: Option(Int), owned_private_repos: Option(Int), public_repos: Option(Int), name: Option(String), members_can_fork_private_repositories: Option(Bool), collaborators: Option(Int), url: Option(String), members_can_create_public_repositories: Option(Bool), archived_at: Option(String), following: Option(Int), repos_url: Option(String), members_can_create_private_repositories: Option(Bool), public_members_url: Option(String), private_gists: Option(Int), followers: Option(Int), location: Option(String), members_can_create_pages: Option(Bool), members_can_create_repositories: Option(Bool), updated_at: Option(String), node_id: Option(String), billing_email: Option(String), public_gists: Option(Int), members_can_create_private_pages: Option(Bool), type_: Option(String), id: Option(Int), html_url: Option(String), members_can_create_public_pages: Option(Bool), members_can_create_internal_repositories: Option(Bool), email: Option(String), description: Option(String), company: Option(String), is_verified: Option(Bool), disk_usage: Option(Int), ) } pub type LockedIssueEvent { LockedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), lock_reason: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhookMemberRemoved { WebhookMemberRemoved( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), member: Option(Nil), ) } pub type MarketplacePurchase { MarketplacePurchase( login: Option(String), organization_billing_email: Option(String), marketplace_pending_change: Option(Nil), url: Option(String), marketplace_purchase: Option(Nil), type_: Option(String), id: Option(Int), email: Option(String), ) } pub type WebhookStarCreated { WebhookStarCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), starred_at: Option(String), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRuleRulesetInfo { RepositoryRuleRulesetInfo( ruleset_source_type: Option(String), ruleset_id: Option(Int), ruleset_source: Option(String), ) } pub type RepositoryRuleParamsRestrictedCommits { RepositoryRuleParamsRestrictedCommits( reason: Option(String), oid: Option(String), ) } pub type CodeScanningAnalysisDeletion { CodeScanningAnalysisDeletion( next_analysis_url: Option(String), confirm_delete_url: Option(String), ) } pub type Hook { Hook( test_url: Option(String), ping_url: Option(String), config: Option(Nil), deliveries_url: Option(String), active: Option(Bool), created_at: Option(String), last_response: Option(Nil), name: Option(String), url: Option(String), updated_at: Option(String), events: Option(List(String)), type_: Option(String), id: Option(Int), ) } pub type OrganizationSecretScanningAlert { OrganizationSecretScanningAlert( push_protection_bypass_request_html_url: Option(String), push_protection_bypassed: Option(Bool), number: Option(Int), secret_type: Option(String), created_at: Option(String), push_protection_bypassed_at: Option(String), repository: Option(Nil), push_protection_bypass_request_reviewer: Option(Nil), publicly_leaked: Option(Bool), resolution: Option(String), resolution_comment: Option(String), locations_url: Option(String), push_protection_bypassed_by: Option(Nil), url: Option(String), secret: Option(String), state: Option(String), validity: Option(String), updated_at: Option(String), multi_repo: Option(Bool), push_protection_bypass_request_comment: Option(String), resolved_at: Option(String), html_url: Option(String), secret_type_display_name: Option(String), resolved_by: Option(Nil), ) } pub type PageDeployment { PageDeployment( status_url: Option(String), preview_url: Option(String), id: Option(Nil), page_url: Option(String), ) } pub type RepositoryRuleset { RepositoryRuleset( enforcement: Option(String), current_user_can_bypass: Option(String), created_at: Option(String), name: Option(String), target: Option(String), bypass_actors: Option(Nil), rules: Option(Nil), updated_at: Option(String), node_id: Option(String), conditions: Option(Nil), links: Option(Nil), source: Option(String), id: Option(Int), source_type: Option(String), ) } pub type WebhookConfigContentType { WebhookConfigContentType } pub type GitignoreTemplate { GitignoreTemplate(name: Option(String), source: Option(String)) } pub type WebhookOrganizationRenamed { WebhookOrganizationRenamed( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), membership: Option(Nil), installation: Option(Nil), ) } pub type SimpleClassroomAssignment { SimpleClassroomAssignment( feedback_pull_requests_enabled: Option(Bool), accepted: Option(Int), public_repo: Option(Bool), slug: Option(String), editor: Option(String), invite_link: Option(String), passing: Option(Int), classroom: Option(Nil), title: Option(String), deadline: Option(String), language: Option(String), type_: Option(String), submitted: Option(Int), id: Option(Int), max_teams: Option(Int), invitations_enabled: Option(Bool), max_members: Option(Int), students_are_repo_admins: Option(Bool), ) } pub type WebhooksWorkflow { WebhooksWorkflow( path_: Option(String), created_at: Option(String), name: Option(String), url: Option(String), state: Option(String), badge_url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), ) } pub type ProjectCollaboratorPermission { ProjectCollaboratorPermission(user: Option(Nil), permission: Option(String)) } pub type TeamSimple { TeamSimple( ldap_dn: Option(String), privacy: Option(String), members_url: Option(String), name: Option(String), slug: Option(String), url: Option(String), permission: Option(String), node_id: Option(String), repositories_url: Option(String), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type CodeScanningAlertInstance { CodeScanningAlertInstance( commit_sha: Option(String), message: Option(Nil), classifications: Option(Nil), state: Option(String), ref: Option(String), environment: Option(String), location: Option(Nil), html_url: Option(String), analysis_key: Option(String), category: Option(String), ) } pub type UserRoleAssignment { UserRoleAssignment( user_view_type: Option(String), gists_url: Option(String), following_url: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), name: Option(String), assignment: Option(String), url: Option(String), inherited_from: Option(Nil), starred_url: Option(String), organizations_url: Option(String), repos_url: Option(String), starred_at: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), node_id: Option(String), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), ) } pub type RepositoryRulesetConditions { RepositoryRulesetConditions(ref_name: Option(Nil)) } pub type WebhookSecretScanningAlertCreated { WebhookSecretScanningAlertCreated( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type HookDeliveryItem { HookDeliveryItem( installation_id: Option(Int), redelivery: Option(Bool), guid: Option(String), delivered_at: Option(String), repository_id: Option(Int), status: Option(String), duration: Option(Float), action: Option(String), throttled_at: Option(String), status_code: Option(Int), event: Option(String), id: Option(Int), ) } pub type RepositoryRuleNonFastForward { RepositoryRuleNonFastForward(type_: Option(String)) } pub type ProjectsV2IterationSetting { ProjectsV2IterationSetting( start_date: Option(String), duration: Option(Float), title: Option(String), id: Option(String), ) } pub type WebhookCustomPropertyValuesUpdated { WebhookCustomPropertyValuesUpdated( enterprise: Option(Nil), repository: Option(Nil), new_property_values: Option(Nil), organization: Option(Nil), old_property_values: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type CodeScanningAlertLocation { CodeScanningAlertLocation( path_: Option(String), start_line: Option(Int), start_column: Option(Int), end_line: Option(Int), end_column: Option(Int), ) } pub type ActionsCanApprovePullRequestReviews { ActionsCanApprovePullRequestReviews } pub type CodeScanningAlertRuleSummary { CodeScanningAlertRuleSummary( security_severity_level: Option(String), help: Option(String), name: Option(String), full_description: Option(String), help_uri: Option(String), tags: Option(List(String)), id: Option(String), description: Option(String), severity: Option(String), ) } pub type WebhookProjectsV2ItemCreated { WebhookProjectsV2ItemCreated( projects_v2_item: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type RepositoryRuleCommitMessagePattern { RepositoryRuleCommitMessagePattern( parameters: Option(Nil), type_: Option(String), ) } pub type NullableMinimalRepository { NullableMinimalRepository( hooks_url: Option(String), default_branch: Option(String), branches_url: Option(String), size: Option(Int), forks_url: Option(String), license: Option(Nil), delete_branch_on_merge: Option(Bool), forks_count: Option(Int), fork: Option(Bool), git_url: Option(String), archived: Option(Bool), private: Option(Bool), security_and_analysis: Option(Nil), permissions: Option(Nil), keys_url: Option(String), comments_url: Option(String), topics: Option(List(String)), trees_url: Option(String), has_downloads: Option(Bool), blobs_url: Option(String), has_discussions: Option(Bool), teams_url: Option(String), watchers_count: Option(Int), stargazers_url: Option(String), stargazers_count: Option(Int), contributors_url: Option(String), tags_url: Option(String), web_commit_signoff_required: Option(Bool), issue_comment_url: Option(String), events_url: Option(String), created_at: Option(String), allow_forking: Option(Bool), issues_url: Option(String), contents_url: Option(String), merges_url: Option(String), name: Option(String), languages_url: Option(String), temp_clone_token: Option(String), commits_url: Option(String), subscription_url: Option(String), clone_url: Option(String), code_of_conduct: Option(Nil), homepage: Option(String), issue_events_url: Option(String), mirror_url: Option(String), labels_url: Option(String), url: Option(String), open_issues: Option(Int), is_template: Option(Bool), statuses_url: Option(String), forks: Option(Int), archive_url: Option(String), visibility: Option(String), milestones_url: Option(String), owner: Option(Nil), role_name: Option(String), assignees_url: Option(String), has_wiki: Option(Bool), compare_url: Option(String), git_tags_url: Option(String), updated_at: Option(String), watchers: Option(Int), node_id: Option(String), notifications_url: Option(String), ssh_url: Option(String), language: Option(String), pushed_at: Option(String), downloads_url: Option(String), subscribers_url: Option(String), subscribers_count: Option(Int), id: Option(Int), svn_url: Option(String), full_name: Option(String), html_url: Option(String), disabled: Option(Bool), description: Option(String), releases_url: Option(String), git_refs_url: Option(String), collaborators_url: Option(String), pulls_url: Option(String), network_count: Option(Int), deployments_url: Option(String), has_projects: Option(Bool), has_pages: Option(Bool), open_issues_count: Option(Int), git_commits_url: Option(String), has_issues: Option(Bool), ) } pub type Root { Root( commit_search_url: Option(String), gists_url: Option(String), starred_gists_url: Option(String), following_url: Option(String), current_user_url: Option(String), organization_url: Option(String), label_search_url: Option(String), keys_url: Option(String), organization_repositories_url: Option(String), feeds_url: Option(String), followers_url: Option(String), hub_url: Option(String), current_user_repositories_url: Option(String), emails_url: Option(String), topic_search_url: Option(String), events_url: Option(String), public_gists_url: Option(String), issues_url: Option(String), authorizations_url: Option(String), code_search_url: Option(String), user_repositories_url: Option(String), rate_limit_url: Option(String), user_search_url: Option(String), repository_search_url: Option(String), starred_url: Option(String), current_user_authorizations_html_url: Option(String), notifications_url: Option(String), repository_url: Option(String), organization_teams_url: Option(String), user_url: Option(String), user_organizations_url: Option(String), emojis_url: Option(String), issue_search_url: Option(String), ) } pub type NullableAlertUpdatedAt { NullableAlertUpdatedAt } pub type WebhookSecretScanningAlertReopened { WebhookSecretScanningAlertReopened( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type SigstoreBundle0 { SigstoreBundle0( verification_material: Option(Nil), dsse_envelope: Option(Nil), media_type: Option(String), ) } pub type ContributorActivity { ContributorActivity( total: Option(Int), author: Option(Nil), weeks: Option(Nil), ) } pub type WebhooksCodeScanningCommitOid { WebhooksCodeScanningCommitOid } pub type GistCommit { GistCommit( change_status: Option(Nil), user: Option(Nil), url: Option(String), committed_at: Option(String), version: Option(String), ) } pub type Enterprise { Enterprise( avatar_url: Option(String), created_at: Option(String), name: Option(String), slug: Option(String), website_url: Option(String), updated_at: Option(String), node_id: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type WebhookIssueCommentDeleted { WebhookIssueCommentDeleted( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), comment: Option(Nil), ) } pub type WebhooksRef0 { WebhooksRef0 } pub type WebhooksMilestone3 { WebhooksMilestone3( closed_at: Option(String), number: Option(Int), due_on: Option(String), created_at: Option(String), creator: Option(Nil), closed_issues: Option(Int), labels_url: Option(String), url: Option(String), open_issues: Option(Int), state: Option(String), updated_at: Option(String), node_id: Option(String), title: Option(String), id: Option(Int), html_url: Option(String), description: Option(String), ) } pub type DependabotAlert { DependabotAlert( dismissed_comment: Option(String), number: Option(Int), dismissed_at: Option(String), created_at: Option(String), dependency: Option(Nil), dismissed_by: Option(Nil), url: Option(String), state: Option(String), updated_at: Option(String), security_advisory: Option(Nil), auto_dismissed_at: Option(String), dismissed_reason: Option(String), html_url: Option(String), security_vulnerability: Option(Nil), fixed_at: Option(String), ) } pub type CodeScanningDefaultSetupUpdate { CodeScanningDefaultSetupUpdate( query_suite: Option(String), state: Option(String), languages: Option(List(String)), ) } pub type TimelineCommitCommentedEvent { TimelineCommitCommentedEvent( commit_id: Option(String), comments: Option(Nil), node_id: Option(String), event: Option(String), ) } pub type WebhookDelete { WebhookDelete( enterprise: Option(Nil), ref_type: Option(String), repository: Option(Nil), pusher_type: Option(String), ref: Option(String), organization: Option(Nil), sender: Option(Nil), installation: Option(Nil), ) } pub type WebhookDeploymentReviewRejected { WebhookDeploymentReviewRejected( enterprise: Option(Nil), approver: Option(Nil), workflow_job_run: Option(Nil), workflow_job_runs: Option(Nil), repository: Option(Nil), workflow_run: Option(Nil), reviewers: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), since: Option(String), comment: Option(String), ) } pub type SecretScanningAlertState { SecretScanningAlertState } pub type ProtectedBranch { ProtectedBranch( allow_fork_syncing: Option(Nil), enforce_admins: Option(Nil), block_creations: Option(Nil), restrictions: Option(Nil), required_conversation_resolution: Option(Nil), allow_deletions: Option(Nil), url: Option(String), required_pull_request_reviews: Option(Nil), allow_force_pushes: Option(Nil), lock_branch: Option(Nil), required_status_checks: Option(Nil), required_linear_history: Option(Nil), required_signatures: Option(Nil), ) } pub type WebhooksAnswer { WebhooksAnswer( body: Option(String), created_at: Option(String), reactions: Option(Nil), user: Option(Nil), child_comment_count: Option(Int), author_association: Option(String), discussion_id: Option(Int), updated_at: Option(String), node_id: Option(String), repository_url: Option(String), id: Option(Int), html_url: Option(String), ) } pub type WebhookIssueCommentEdited { WebhookIssueCommentEdited( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), comment: Option(Nil), ) } pub type License { License( body: Option(String), permissions: Option(List(String)), spdx_id: Option(String), name: Option(String), featured: Option(Bool), url: Option(String), implementation: Option(String), node_id: Option(String), conditions: Option(List(String)), limitations: Option(List(String)), html_url: Option(String), description: Option(String), key: Option(String), ) } pub type WebhookDependabotAlertAutoDismissed { WebhookDependabotAlertAutoDismissed( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), alert: Option(Nil), ) } pub type WebhooksTeam { WebhooksTeam( privacy: Option(String), members_url: Option(String), parent: Option(Nil), name: Option(String), slug: Option(String), url: Option(String), permission: Option(String), node_id: Option(String), repositories_url: Option(String), deleted: Option(Bool), id: Option(Int), html_url: Option(String), notification_setting: Option(String), description: Option(String), ) } pub type UserSearchResultItem { UserSearchResultItem( user_view_type: Option(String), gists_url: Option(String), text_matches: Option(Nil), following_url: Option(String), blog: Option(String), followers_url: Option(String), subscriptions_url: Option(String), received_events_url: Option(String), bio: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), created_at: Option(String), public_repos: Option(Int), name: Option(String), hireable: Option(Bool), url: Option(String), starred_url: Option(String), organizations_url: Option(String), following: Option(Int), repos_url: Option(String), score: Option(Float), followers: Option(Int), location: Option(String), gravatar_id: Option(String), site_admin: Option(Bool), suspended_at: Option(String), updated_at: Option(String), node_id: Option(String), public_gists: Option(Int), type_: Option(String), id: Option(Int), html_url: Option(String), email: Option(String), company: Option(String), ) } pub type WebhookDiscussionUnpinned { WebhookDiscussionUnpinned( enterprise: Option(Nil), discussion: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type UnassignedIssueEvent { UnassignedIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), assignee: Option(Nil), actor: Option(Nil), performed_via_github_app: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), assigner: Option(Nil), ) } pub type NullableOrganizationSimple { NullableOrganizationSimple( hooks_url: Option(String), members_url: Option(String), events_url: Option(String), avatar_url: Option(String), login: Option(String), issues_url: Option(String), url: Option(String), repos_url: Option(String), public_members_url: Option(String), node_id: Option(String), id: Option(Int), description: Option(String), ) } pub type RepositorySubscription { RepositorySubscription( reason: Option(String), created_at: Option(String), url: Option(String), ignored: Option(Bool), subscribed: Option(Bool), repository_url: Option(String), ) } pub type WebhooksChanges { WebhooksChanges(body: Option(Nil)) } pub type WebhookPullRequestSynchronize { WebhookPullRequestSynchronize( enterprise: Option(Nil), number: Option(Int), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), pull_request: Option(Nil), action: Option(String), installation: Option(Nil), after: Option(String), before: Option(String), ) } pub type WebhookMergeGroupDestroyed { WebhookMergeGroupDestroyed( reason: Option(String), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), merge_group: Option(Nil), installation: Option(Nil), ) } pub type PagesHealthCheck { PagesHealthCheck(domain: Option(Nil), alt_domain: Option(Nil)) } pub type WebhookCheckRunRequestedActionFormEncoded { WebhookCheckRunRequestedActionFormEncoded(payload: Option(String)) } pub type ActionsSecret { ActionsSecret( created_at: Option(String), name: Option(String), updated_at: Option(String), ) } pub type ConvertedNoteToIssueIssueEvent { ConvertedNoteToIssueIssueEvent( commit_id: Option(String), commit_url: Option(String), created_at: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), project_card: Option(Nil), node_id: Option(String), event: Option(String), id: Option(Int), ) } pub type WebhookIssuesUnlocked { WebhookIssuesUnlocked( enterprise: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), issue: Option(Nil), installation: Option(Nil), ) } pub type CodeScanningAlert { CodeScanningAlert( dismissed_comment: Option(String), number: Option(Int), dismissed_at: Option(String), created_at: Option(String), dismissed_by: Option(Nil), instances_url: Option(String), url: Option(String), state: Option(String), updated_at: Option(String), tool: Option(Nil), dismissed_reason: Option(String), html_url: Option(String), rule: Option(Nil), most_recent_instance: Option(Nil), fixed_at: Option(String), ) } pub type TimelineCommentEvent { TimelineCommentEvent( body: Option(String), body_html: Option(String), issue_url: Option(String), created_at: Option(String), body_text: Option(String), reactions: Option(Nil), user: Option(Nil), author_association: Option(String), url: Option(String), actor: Option(Nil), performed_via_github_app: Option(Nil), updated_at: Option(String), node_id: Option(String), event: Option(String), id: Option(Int), html_url: Option(String), ) } pub type CodeScanningVariantAnalysis { CodeScanningVariantAnalysis( query_pack_url: Option(String), completed_at: Option(String), created_at: Option(String), actions_workflow_run_id: Option(Int), query_language: Option(String), status: Option(String), actor: Option(Nil), controller_repo: Option(Nil), skipped_repositories: Option(Nil), updated_at: Option(String), scanned_repositories: Option(Nil), failure_reason: Option(String), id: Option(Int), ) } pub type KeySimple { KeySimple(id: Option(Int), key: Option(String)) } pub type WebhookMarketplacePurchaseChanged { WebhookMarketplacePurchaseChanged( enterprise: Option(Nil), effective_date: Option(String), repository: Option(Nil), organization: Option(Nil), marketplace_purchase: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), previous_marketplace_purchase: Option(Nil), ) } pub type WebhookProjectsV2ProjectCreated { WebhookProjectsV2ProjectCreated( projects_v2: Option(Nil), organization: Option(Nil), sender: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type PullRequestReviewRequest { PullRequestReviewRequest(users: Option(Nil), teams: Option(Nil)) } pub type SimpleClassroomUser { SimpleClassroomUser( avatar_url: Option(String), login: Option(String), id: Option(Int), html_url: Option(String), ) } pub type CombinedCommitStatus { CombinedCommitStatus( statuses: Option(Nil), commit_url: Option(String), repository: Option(Nil), sha: Option(String), url: Option(String), state: Option(String), total_count: Option(Int), ) } pub type InteractionLimit { InteractionLimit(expiry: Option(String), limit: Option(String)) } pub type WebhookProjectCardMoved { WebhookProjectCardMoved( enterprise: Option(Nil), changes: Option(Nil), repository: Option(Nil), organization: Option(Nil), sender: Option(Nil), project_card: Option(Nil), action: Option(String), installation: Option(Nil), ) } pub type ThreadSubscription { ThreadSubscription( reason: Option(String), created_at: Option(String), url: Option(String), ignored: Option(Bool), subscribed: Option(Bool), thread_url: Option(String), repository_url: Option(String), ) } pub const team_full = TeamFull( ldap_dn: None, privacy: None, members_url: None, members_count: None, parent: None, created_at: None, name: None, slug: None, url: None, permission: None, repos_count: None, organization: None, updated_at: None, node_id: None, repositories_url: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const projects_v2_single_select_option = ProjectsV2SingleSelectOption( color: None, name: None, id: None, description: None, ) pub const repository_webhooks = RepositoryWebhooks( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, custom_properties: None, forks_count: None, fork: None, allow_update_branch: None, git_url: None, archived: None, private: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, squash_merge_commit_message: None, has_discussions: None, teams_url: None, merge_commit_message: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, allow_squash_merge: None, homepage: None, template_repository: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, use_squash_pr_title_as_default: None, forks: None, archive_url: None, visibility: None, milestones_url: None, allow_rebase_merge: None, organization: None, owner: None, starred_at: None, allow_merge_commit: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, squash_merge_commit_title: None, merge_commit_title: None, updated_at: None, watchers: None, node_id: None, anonymous_access_enabled: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, subscribers_count: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, network_count: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhook_deployment_protection_rule_requested = WebhookDeploymentProtectionRuleRequested( deployment: None, repository: None, deployment_callback_url: None, organization: None, environment: None, sender: None, action: None, installation: None, event: None, pull_requests: None, ) pub const empty_object = EmptyObject pub const workflow = Workflow( path_: None, created_at: None, name: None, url: None, state: None, badge_url: None, updated_at: None, node_id: None, deleted_at: None, id: None, html_url: None, ) pub const repository_rule = RepositoryRule pub const personal_access_token_request = PersonalAccessTokenRequest( token_id: None, permissions_upgraded: None, token_expires_at: None, permissions_added: None, repositories: None, created_at: None, token_name: None, token_last_used_at: None, owner: None, repository_selection: None, permissions_result: None, repository_count: None, id: None, token_expired: None, ) pub const security_and_analysis = SecurityAndAnalysis( secret_scanning: None, secret_scanning_non_provider_patterns: None, secret_scanning_ai_detection: None, dependabot_security_updates: None, advanced_security: None, secret_scanning_push_protection: None, ) pub const api_insights_subject_stats = [] pub const webhook_repository_privatized = WebhookRepositoryPrivatized( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_personal_access_token_request_denied = WebhookPersonalAccessTokenRequestDenied( enterprise: None, personal_access_token_request: None, organization: None, sender: None, action: None, installation: None, ) pub const timeline_cross_referenced_event = TimelineCrossReferencedEvent( created_at: None, actor: None, updated_at: None, event: None, source: None, ) pub const git_tag = GitTag( message: None, sha: None, url: None, node_id: None, tagger: None, tag: None, verification: None, object: None, ) pub const actions_billing_usage = ActionsBillingUsage( total_paid_minutes_used: None, total_minutes_used: None, included_minutes: None, minutes_used_breakdown: None, ) pub const webhook_public = WebhookPublic( enterprise: None, repository: None, organization: None, sender: None, installation: None, ) pub const org_membership = OrgMembership( organization_url: None, permissions: None, user: None, url: None, state: None, organization: None, role: None, ) pub const key = Key( verified: None, created_at: None, url: None, read_only: None, title: None, id: None, key: None, ) pub const commit_comparison = CommitComparison( total_commits: None, base_commit: None, url: None, status: None, diff_url: None, ahead_by: None, files: None, patch_url: None, permalink_url: None, html_url: None, behind_by: None, commits: None, merge_base_commit: None, ) pub const renamed_issue_event = RenamedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, rename: None, ) pub const webhook_code_scanning_alert_reopened = WebhookCodeScanningAlertReopened( enterprise: None, commit_oid: None, repository: None, ref: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhook_installation_suspend = WebhookInstallationSuspend( enterprise: None, repositories: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_pull_request_auto_merge_disabled = WebhookPullRequestAutoMergeDisabled( enterprise: None, reason: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhooks_project_column = WebhooksProjectColumn( project_url: None, created_at: None, name: None, url: None, cards_url: None, updated_at: None, node_id: None, id: None, after_id: None, ) pub const webhook_milestone_closed = WebhookMilestoneClosed( enterprise: None, repository: None, milestone: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_membership_added = WebhookMembershipAdded( enterprise: None, repository: None, organization: None, scope: None, sender: None, action: None, installation: None, member: None, team: None, ) pub const webhook_membership_removed = WebhookMembershipRemoved( enterprise: None, repository: None, organization: None, scope: None, sender: None, action: None, installation: None, member: None, team: None, ) pub const webhooks_rule = WebhooksRule( signature_requirement_enforcement_level: None, strict_required_status_checks_policy: None, linear_history_requirement_enforcement_level: None, authorized_actors_only: None, created_at: None, create_protected: None, name: None, required_conversation_resolution_level: None, merge_queue_enforcement_level: None, repository_id: None, ignore_approvals_from_contributors: None, admin_enforced: None, required_deployments_enforcement_level: None, allow_deletions_enforcement_level: None, lock_allows_fork_sync: None, updated_at: None, pull_request_reviews_enforcement_level: None, required_status_checks: None, allow_force_pushes_enforcement_level: None, require_last_push_approval: None, authorized_actor_names: None, dismiss_stale_reviews_on_push: None, id: None, lock_branch_enforcement_level: None, require_code_owner_review: None, required_approving_review_count: None, required_status_checks_enforcement_level: None, authorized_dismissal_actors_only: None, ) pub const webhook_project_card_converted = WebhookProjectCardConverted( enterprise: None, changes: None, repository: None, organization: None, sender: None, project_card: None, action: None, installation: None, ) pub const webhook_deployment_status_created = WebhookDeploymentStatusCreated( enterprise: None, deployment: None, repository: None, workflow_run: None, deployment_status: None, organization: None, check_run: None, sender: None, action: None, installation: None, workflow: None, ) pub const simple_classroom_repository = SimpleClassroomRepository( default_branch: None, private: None, node_id: None, id: None, full_name: None, html_url: None, ) pub const webhook_team_deleted = WebhookTeamDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, team: None, ) pub const base_gist = BaseGist( forks_url: None, git_pull_url: None, comments_url: None, public: None, created_at: None, user: None, commits_url: None, url: None, owner: None, comments: None, git_push_url: None, updated_at: None, files: None, node_id: None, id: None, html_url: None, description: None, truncated: None, ) pub const webhook_secret_scanning_alert_resolved = WebhookSecretScanningAlertResolved( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const repository_rule_detailed = RepositoryRuleDetailed pub const webhook_pull_request_assigned = WebhookPullRequestAssigned( enterprise: None, number: None, repository: None, assignee: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_package_updated = WebhookPackageUpdated( enterprise: None, package: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_security_advisory_updated = WebhookSecurityAdvisoryUpdated( enterprise: None, repository: None, organization: None, sender: None, action: None, security_advisory: None, installation: None, ) pub const api_insights_time_stats = [] pub const code_search_result_item = CodeSearchResultItem( last_modified_at: None, text_matches: None, git_url: None, file_size: None, path_: None, repository: None, name: None, sha: None, url: None, score: None, language: None, html_url: None, line_numbers: None, ) pub const feed = Feed( current_user_url: None, current_user_organization_urls: None, repository_discussions_url: None, security_advisories_url: None, current_user_public_url: None, current_user_organization_url: None, timeline_url: None, current_user_actor_url: None, repository_discussions_category_url: None, links: None, user_url: None, ) pub const timeline_line_commented_event = TimelineLineCommentedEvent( comments: None, node_id: None, event: None, ) pub const hook_delivery = HookDelivery( installation_id: None, response: None, redelivery: None, guid: None, delivered_at: None, url: None, request: None, repository_id: None, status: None, duration: None, action: None, throttled_at: None, status_code: None, event: None, id: None, ) pub const webhook_check_suite_requested = WebhookCheckSuiteRequested( check_suite: None, enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const pull_request_review = PullRequestReview( body: None, commit_id: None, pull_request_url: None, body_html: None, body_text: None, user: None, author_association: None, state: None, submitted_at: None, node_id: None, links: None, id: None, html_url: None, ) pub const webhook_project_created = WebhookProjectCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, project: None, installation: None, ) pub const license_simple = LicenseSimple( spdx_id: None, name: None, url: None, node_id: None, html_url: None, key: None, ) pub const webhook_check_run_rerequested = WebhookCheckRunRerequested( repository: None, organization: None, check_run: None, sender: None, action: None, installation: None, ) pub const webhook_dependabot_alert_fixed = WebhookDependabotAlertFixed( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const search_result_text_matches = [] pub const branch_restriction_policy = BranchRestrictionPolicy( apps_url: None, teams_url: None, users: None, url: None, apps: None, teams: None, users_url: None, ) pub const webhook_marketplace_purchase_pending_change_cancelled = WebhookMarketplacePurchasePendingChangeCancelled( enterprise: None, effective_date: None, repository: None, organization: None, marketplace_purchase: None, sender: None, action: None, installation: None, previous_marketplace_purchase: None, ) pub const webhook_pull_request_auto_merge_enabled = WebhookPullRequestAutoMergeEnabled( enterprise: None, reason: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const actions_set_default_workflow_permissions = ActionsSetDefaultWorkflowPermissions( default_workflow_permissions: None, can_approve_pull_request_reviews: None, ) pub const job = Job( head_branch: None, check_run_url: None, completed_at: None, steps: None, runner_id: None, created_at: None, runner_group_id: None, name: None, workflow_name: None, head_sha: None, url: None, run_id: None, started_at: None, status: None, node_id: None, run_attempt: None, runner_group_name: None, runner_name: None, id: None, run_url: None, html_url: None, conclusion: None, labels: None, ) pub const blob = Blob( size: None, sha: None, highlighted_content: None, url: None, encoding: None, node_id: None, content: None, ) pub const timeline_committed_event = TimelineCommittedEvent( message: None, parents: None, committer: None, author: None, sha: None, url: None, node_id: None, event: None, verification: None, html_url: None, tree: None, ) pub const workflow_run = WorkflowRun( triggering_actor: None, head_branch: None, path_: None, run_started_at: None, jobs_url: None, rerun_url: None, head_repository: None, created_at: None, cancel_url: None, repository: None, name: None, head_sha: None, referenced_workflows: None, workflow_url: None, url: None, artifacts_url: None, check_suite_url: None, head_repository_id: None, status: None, actor: None, previous_attempt_url: None, head_commit: None, updated_at: None, node_id: None, check_suite_id: None, run_attempt: None, event: None, check_suite_node_id: None, display_title: None, id: None, workflow_id: None, html_url: None, run_number: None, pull_requests: None, conclusion: None, logs_url: None, ) pub const webhook_issues_unlabeled = WebhookIssuesUnlabeled( enterprise: None, repository: None, organization: None, label: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_repository_vulnerability_alert_resolve = WebhookRepositoryVulnerabilityAlertResolve( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const team = Team( permissions: None, privacy: None, members_url: None, parent: None, name: None, slug: None, url: None, permission: None, node_id: None, repositories_url: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const codespace_export_details = CodespaceExportDetails( branch: None, export_url: None, completed_at: None, sha: None, state: None, id: None, html_url: None, ) pub const traffic = Traffic(uniques: None, count: None, timestamp: None) pub const organization_simple_webhooks = OrganizationSimpleWebhooks( hooks_url: None, members_url: None, events_url: None, avatar_url: None, login: None, issues_url: None, url: None, repos_url: None, public_members_url: None, node_id: None, id: None, description: None, ) pub const secret_scanning_alert = SecretScanningAlert( push_protection_bypass_request_html_url: None, push_protection_bypassed: None, number: None, secret_type: None, created_at: None, push_protection_bypassed_at: None, push_protection_bypass_request_reviewer: None, publicly_leaked: None, resolution: None, resolution_comment: None, locations_url: None, push_protection_bypassed_by: None, url: None, secret: None, state: None, validity: None, updated_at: None, multi_repo: None, push_protection_bypass_request_comment: None, resolved_at: None, html_url: None, secret_type_display_name: None, resolved_by: None, ) pub const nullable_code_of_conduct_simple = NullableCodeOfConductSimple( name: None, url: None, html_url: None, key: None, ) pub const webhook_repository_ruleset_edited = WebhookRepositoryRulesetEdited( enterprise: None, changes: None, repository: None, repository_ruleset: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_release_deleted = WebhookReleaseDeleted( enterprise: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const nullable_community_health_file = NullableCommunityHealthFile( url: None, html_url: None, ) pub const webhook_marketplace_purchase_cancelled = WebhookMarketplacePurchaseCancelled( enterprise: None, effective_date: None, repository: None, organization: None, marketplace_purchase: None, sender: None, action: None, installation: None, previous_marketplace_purchase: None, ) pub const reaction_rollup = ReactionRollup( confused: None, laugh: None, eyes: None, hooray: None, one: None, heart: None, plusone: None, url: None, total_count: None, rocket: None, ) pub const gist_simple = GistSimple( forks_url: None, git_pull_url: None, comments_url: None, public: None, created_at: None, user: None, commits_url: None, url: None, forks: None, owner: None, history: None, comments: None, fork_of: None, git_push_url: None, updated_at: None, files: None, node_id: None, id: None, html_url: None, description: None, truncated: None, ) pub const webhook_milestone_opened = WebhookMilestoneOpened( enterprise: None, repository: None, milestone: None, organization: None, sender: None, action: None, installation: None, ) pub const repository_advisory = RepositoryAdvisory( cwes: None, published_at: None, summary: None, closed_at: None, cvss_severities: None, cve_id: None, collaborating_users: None, created_at: None, identifiers: None, cwe_ids: None, ghsa_id: None, author: None, submission: None, withdrawn_at: None, url: None, state: None, cvss: None, credits_detailed: None, collaborating_teams: None, updated_at: None, credits: None, vulnerabilities: None, html_url: None, publisher: None, description: None, severity: None, private_fork: None, ) pub const webhook_milestone_edited = WebhookMilestoneEdited( enterprise: None, changes: None, repository: None, milestone: None, organization: None, sender: None, action: None, installation: None, ) pub const email = Email( primary: None, verified: None, visibility: None, email: None, ) pub const topic_search_result_item = TopicSearchResultItem( text_matches: None, display_name: None, created_at: None, related: None, name: None, featured: None, created_by: None, curated: None, score: None, updated_at: None, short_description: None, repository_count: None, logo_url: None, description: None, released: None, aliases: None, ) pub const copilot_ide_chat = CopilotIdeChat( editors: None, total_engaged_users: None, ) pub const merged_upstream = MergedUpstream( merge_type: None, message: None, base_branch: None, ) pub const webhook_pull_request_review_comment_edited = WebhookPullRequestReviewCommentEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, comment: None, ) pub const api_insights_route_stats = [] pub const webhook_secret_scanning_alert_location_created_form_encoded = WebhookSecretScanningAlertLocationCreatedFormEncoded( payload: None, ) pub const webhook_pull_request_closed = WebhookPullRequestClosed( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const repository_rule_deletion = RepositoryRuleDeletion(type_: None) pub const removed_from_project_issue_event = RemovedFromProjectIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, actor: None, performed_via_github_app: None, project_card: None, node_id: None, event: None, id: None, ) pub const webhook_issues_deleted = WebhookIssuesDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const repository_invitation = RepositoryInvitation( permissions: None, expired: None, inviter: None, created_at: None, repository: None, url: None, node_id: None, id: None, html_url: None, invitee: None, ) pub const webhooks_comment = WebhooksComment( body: None, created_at: None, reactions: None, user: None, child_comment_count: None, author_association: None, parent_id: None, discussion_id: None, updated_at: None, node_id: None, repository_url: None, id: None, html_url: None, ) pub const webhook_projects_v2_status_update_deleted = WebhookProjectsV2StatusUpdateDeleted( organization: None, sender: None, action: None, projects_v2_status_update: None, installation: None, ) pub const custom_deployment_rule_app = CustomDeploymentRuleApp( integration_url: None, slug: None, node_id: None, id: None, ) pub const api_insights_user_stats = [] pub const webhook_installation_deleted = WebhookInstallationDeleted( enterprise: None, repositories: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_projects_v2_item_restored = WebhookProjectsV2ItemRestored( changes: None, projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_project_card_edited = WebhookProjectCardEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, project_card: None, action: None, installation: None, ) pub const vulnerability = Vulnerability( vulnerable_functions: None, package: None, first_patched_version: None, vulnerable_version_range: None, ) pub const webhook_discussion_comment_deleted = WebhookDiscussionCommentDeleted( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, comment: None, ) pub const webhook_workflow_job_queued = WebhookWorkflowJobQueued( enterprise: None, deployment: None, repository: None, organization: None, sender: None, action: None, installation: None, workflow_job: None, ) pub const webhook_repository_vulnerability_alert_dismiss = WebhookRepositoryVulnerabilityAlertDismiss( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhook_branch_protection_rule_edited = WebhookBranchProtectionRuleEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, rule: None, ) pub const webhook_repository_created = WebhookRepositoryCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const repository_rule_required_signatures = RepositoryRuleRequiredSignatures( type_: None, ) pub const copilot_ide_code_completions = CopilotIdeCodeCompletions( editors: None, total_engaged_users: None, languages: None, ) pub const webhooks_review_comment = WebhooksReviewComment( body: None, original_line: None, commit_id: None, diff_hunk: None, path_: None, pull_request_url: None, position: None, created_at: None, reactions: None, user: None, subject_type: None, author_association: None, url: None, in_reply_to_id: None, start_line: None, start_side: None, line: None, original_commit_id: None, side: None, updated_at: None, original_position: None, node_id: None, pull_request_review_id: None, links: None, id: None, html_url: None, original_start_line: None, ) pub const webhook_workflow_run_in_progress = WebhookWorkflowRunInProgress( enterprise: None, repository: None, workflow_run: None, organization: None, sender: None, action: None, installation: None, workflow: None, ) pub const verification = Verification( reason: None, verified: None, payload: None, signature: None, ) pub const dependabot_alert_security_vulnerability = DependabotAlertSecurityVulnerability( package: None, first_patched_version: None, severity: None, vulnerable_version_range: None, ) pub const webhook_deploy_key_deleted = WebhookDeployKeyDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, key: None, ) pub const webhook_personal_access_token_request_approved = WebhookPersonalAccessTokenRequestApproved( enterprise: None, personal_access_token_request: None, organization: None, sender: None, action: None, installation: None, ) pub const secret_scanning_location_wiki_commit = SecretScanningLocationWikiCommit( commit_sha: None, path_: None, commit_url: None, blob_sha: None, start_line: None, start_column: None, end_line: None, end_column: None, page_url: None, ) pub const pull_request_minimal = PullRequestMinimal( head: None, number: None, url: None, base_: None, id: None, ) pub const repository_ruleset_conditions_repository_name_target = RepositoryRulesetConditionsRepositoryNameTarget( repository_name: None, ) pub const contributor = Contributor( user_view_type: None, gists_url: None, following_url: None, contributions: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, email: None, ) pub const copilot_seat_details = CopilotSeatDetails( pending_cancellation_date: None, assigning_team: None, created_at: None, assignee: None, plan_type: None, organization: None, last_activity_editor: None, updated_at: None, last_activity_at: None, ) pub const webhook_discussion_closed = WebhookDiscussionClosed( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_project_column_created = WebhookProjectColumnCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, project_column: None, ) pub const pending_deployment = PendingDeployment( reviewers: None, current_user_can_approve: None, environment: None, wait_timer_started_at: None, wait_timer: None, ) pub const repository_ruleset_conditions_repository_property_spec = RepositoryRulesetConditionsRepositoryPropertySpec( name: None, property_values: None, source: None, ) pub const stargazer = Stargazer(user: None, starred_at: None) pub const deployment_branch_policy_settings = DeploymentBranchPolicySettings( protected_branches: None, custom_branch_policies: None, ) pub const webhook_check_suite_completed = WebhookCheckSuiteCompleted( check_suite: None, enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhooks_review = WebhooksReview( body: None, commit_id: None, pull_request_url: None, user: None, author_association: None, state: None, submitted_at: None, node_id: None, links: None, id: None, html_url: None, ) pub const webhook_sponsorship_created = WebhookSponsorshipCreated( enterprise: None, repository: None, organization: None, sender: None, sponsorship: None, action: None, installation: None, ) pub const deployment_status = DeploymentStatus( target_url: None, environment_url: None, created_at: None, creator: None, url: None, state: None, environment: None, log_url: None, deployment_url: None, performed_via_github_app: None, updated_at: None, node_id: None, repository_url: None, id: None, description: None, ) pub const link = Link(href: None) pub const repository_advisory_update = RepositoryAdvisoryUpdate( cvss_vector_string: None, summary: None, cve_id: None, collaborating_users: None, cwe_ids: None, state: None, collaborating_teams: None, credits: None, vulnerabilities: None, description: None, severity: None, ) pub const dependabot_alert_security_advisory = DependabotAlertSecurityAdvisory( cwes: None, published_at: None, summary: None, cvss_severities: None, cve_id: None, references: None, identifiers: None, ghsa_id: None, withdrawn_at: None, cvss: None, updated_at: None, vulnerabilities: None, description: None, severity: None, ) pub const webhook_deployment_review_approved = WebhookDeploymentReviewApproved( enterprise: None, approver: None, workflow_job_run: None, workflow_job_runs: None, repository: None, workflow_run: None, reviewers: None, organization: None, sender: None, action: None, installation: None, since: None, comment: None, ) pub const tag = Tag( name: None, zipball_url: None, tarball_url: None, commit: None, node_id: None, ) pub const webhook_repository_advisory_reported = WebhookRepositoryAdvisoryReported( enterprise: None, repository: None, repository_advisory: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_registry_package_updated = WebhookRegistryPackageUpdated( enterprise: None, registry_package: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const private_vulnerability_report_create = PrivateVulnerabilityReportCreate( cvss_vector_string: None, summary: None, cwe_ids: None, vulnerabilities: None, start_private_fork: None, description: None, severity: None, ) pub const webhook_pull_request_converted_to_draft = WebhookPullRequestConvertedToDraft( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const event = Event( org: None, public: None, created_at: None, payload: None, repo: None, actor: None, type_: None, id: None, ) pub const nullable_simple_user = NullableSimpleUser( user_view_type: None, gists_url: None, following_url: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, starred_at: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, email: None, ) pub const auto_merge = AutoMerge( merge_method: None, commit_title: None, enabled_by: None, commit_message: None, ) pub const copilot_seat_breakdown = CopilotSeatBreakdown( pending_invitation: None, added_this_cycle: None, total: None, pending_cancellation: None, inactive_this_cycle: None, active_this_cycle: None, ) pub const webhook_installation_new_permissions_accepted = WebhookInstallationNewPermissionsAccepted( enterprise: None, repositories: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const installation = Installation( single_file_paths: None, permissions: None, access_tokens_url: None, target_type: None, app_slug: None, target_id: None, created_at: None, has_multiple_single_files: None, account: None, single_file_name: None, suspended_at: None, updated_at: None, repository_selection: None, repositories_url: None, events: None, app_id: None, id: None, suspended_by: None, html_url: None, contact_email: None, ) pub const webhooks_project_changes = WebhooksProjectChanges(archived_at: None) pub const repository_ruleset_bypass_actor = RepositoryRulesetBypassActor( actor_type: None, actor_id: None, bypass_mode: None, ) pub const deployment_simple = DeploymentSimple( original_environment: None, task: None, created_at: None, production_environment: None, url: None, statuses_url: None, environment: None, performed_via_github_app: None, updated_at: None, node_id: None, repository_url: None, id: None, description: None, transient_environment: None, ) pub const actions_organization_permissions = ActionsOrganizationPermissions( allowed_actions: None, enabled_repositories: None, selected_actions_url: None, selected_repositories_url: None, ) pub const organization_actions_secret = OrganizationActionsSecret( created_at: None, name: None, visibility: None, updated_at: None, selected_repositories_url: None, ) pub const deployment_branch_policy_name_pattern_with_type = DeploymentBranchPolicyNamePatternWithType( name: None, type_: None, ) pub const webhook_marketplace_purchase_pending_change = WebhookMarketplacePurchasePendingChange( enterprise: None, effective_date: None, repository: None, organization: None, marketplace_purchase: None, sender: None, action: None, installation: None, previous_marketplace_purchase: None, ) pub const webhook_commit_comment_created = WebhookCommitCommentCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, comment: None, ) pub const team_repository = TeamRepository( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, forks_count: None, fork: None, git_url: None, archived: None, private: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, teams_url: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, allow_squash_merge: None, homepage: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, forks: None, archive_url: None, visibility: None, milestones_url: None, allow_rebase_merge: None, owner: None, allow_merge_commit: None, role_name: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, updated_at: None, watchers: None, node_id: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, subscribers_count: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, network_count: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhooks_previous_marketplace_purchase = WebhooksPreviousMarketplacePurchase( billing_cycle: None, on_free_trial: None, plan: None, account: None, unit_count: None, next_billing_date: None, ) pub const dependabot_alert_package = DependabotAlertPackage( ecosystem: None, name: None, ) pub const webhook_pull_request_locked = WebhookPullRequestLocked( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const actions_cache_usage_by_repository = ActionsCacheUsageByRepository( active_caches_size_in_bytes: None, active_caches_count: None, full_name: None, ) pub const review_custom_gates_comment_required = ReviewCustomGatesCommentRequired( environment_name: None, comment: None, ) pub const webhook_sub_issues_parent_issue_removed = WebhookSubIssuesParentIssueRemoved( sub_issue_id: None, parent_issue: None, repository: None, parent_issue_repo: None, organization: None, sender: None, parent_issue_id: None, action: None, sub_issue: None, installation: None, ) pub const codespace = Codespace( idle_timeout_notice: None, recent_folders: None, retention_period_minutes: None, web_url: None, machine: None, pending_operation_disabled_reason: None, environment_id: None, display_name: None, created_at: None, repository: None, prebuild: None, name: None, last_used_at: None, runtime_constraints: None, url: None, last_known_stop_notice: None, state: None, start_url: None, stop_url: None, owner: None, billable_owner: None, location: None, idle_timeout_minutes: None, updated_at: None, devcontainer_path: None, id: None, machines_url: None, pulls_url: None, pending_operation: None, retention_expires_at: None, git_status: None, publish_url: None, ) pub const project = Project( body: None, private: None, owner_url: None, number: None, created_at: None, name: None, creator: None, columns_url: None, url: None, state: None, updated_at: None, node_id: None, organization_permission: None, id: None, html_url: None, ) pub const webhooks_membership = WebhooksMembership( organization_url: None, user: None, url: None, state: None, role: None, ) pub const webhooks_project_card = WebhooksProjectCard( archived: None, column_id: None, column_url: None, content_url: None, project_url: None, created_at: None, creator: None, url: None, note: None, updated_at: None, node_id: None, id: None, after_id: None, ) pub const webhook_repository_transferred = WebhookRepositoryTransferred( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const actions_cache_list = ActionsCacheList( actions_caches: None, total_count: None, ) pub const webhook_issues_reopened = WebhookIssuesReopened( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const timeline_issue_events = TimelineIssueEvents pub const webhook_discussion_locked = WebhookDiscussionLocked( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const api_insights_summary_stats = ApiInsightsSummaryStats( total_request_count: None, rate_limited_request_count: None, ) pub const webhook_release_unpublished = WebhookReleaseUnpublished( enterprise: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const classroom_accepted_assignment = ClassroomAcceptedAssignment( commit_count: None, repository: None, assignment: None, passing: None, grade: None, students: None, submitted: None, id: None, ) pub const webhook_sub_issues_parent_issue_added = WebhookSubIssuesParentIssueAdded( sub_issue_id: None, parent_issue: None, repository: None, parent_issue_repo: None, organization: None, sender: None, parent_issue_id: None, action: None, sub_issue: None, installation: None, ) pub const webhooks_changes_8 = WebhooksChanges8(tier: None) pub const content_directory = [] pub const webhook_pull_request_opened = WebhookPullRequestOpened( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_pull_request_edited = WebhookPullRequestEdited( enterprise: None, changes: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_discussion_created = WebhookDiscussionCreated( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_release_released = WebhookReleaseReleased( enterprise: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const issue = Issue( draft: None, body: None, assignees: None, comments_url: None, closed_at: None, body_html: None, events_url: None, number: None, closed_by: None, created_at: None, body_text: None, locked: None, repository: None, reactions: None, user: None, author_association: None, labels_url: None, url: None, assignee: None, milestone: None, timeline_url: None, state: None, state_reason: None, comments: None, pull_request: None, performed_via_github_app: None, updated_at: None, node_id: None, title: None, repository_url: None, id: None, html_url: None, active_lock_reason: None, labels: None, ) pub const git_tree = GitTree(sha: None, url: None, tree: None, truncated: None) pub const code_scanning_sarifs_receipt = CodeScanningSarifsReceipt( url: None, id: None, ) pub const authorization = Authorization( app: None, note_url: None, fingerprint: None, hashed_token: None, created_at: None, user: None, token_last_eight: None, url: None, note: None, updated_at: None, token_: None, installation: None, id: None, expires_at: None, scopes: None, ) pub const deploy_key = DeployKey( enabled: None, last_used: None, verified: None, created_at: None, url: None, read_only: None, added_by: None, title: None, id: None, key: None, ) pub const webhook_repository_renamed = WebhookRepositoryRenamed( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const repo_search_result_item = RepoSearchResultItem( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, text_matches: None, license: None, delete_branch_on_merge: None, forks_count: None, fork: None, git_url: None, archived: None, private: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, has_discussions: None, teams_url: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, allow_squash_merge: None, homepage: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, forks: None, archive_url: None, score: None, visibility: None, milestones_url: None, allow_rebase_merge: None, owner: None, allow_merge_commit: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, updated_at: None, watchers: None, node_id: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhook_label_created = WebhookLabelCreated( enterprise: None, repository: None, organization: None, label: None, sender: None, action: None, installation: None, ) pub const webhooks_alert = WebhooksAlert( number: None, dismissed_at: None, created_at: None, ghsa_id: None, fix_reason: None, affected_package_name: None, fixed_in: None, state: None, affected_range: None, dismisser: None, external_reference: None, node_id: None, dismiss_reason: None, id: None, external_identifier: None, severity: None, fixed_at: None, ) pub const simple_classroom = SimpleClassroom( archived: None, name: None, url: None, id: None, ) pub const webhooks_marketplace_purchase = WebhooksMarketplacePurchase( billing_cycle: None, on_free_trial: None, plan: None, free_trial_ends_on: None, account: None, unit_count: None, next_billing_date: None, ) pub const rate_limit_overview = RateLimitOverview(rate: None, resources: None) pub const webhook_discussion_edited = WebhookDiscussionEdited( enterprise: None, changes: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_installation_repositories_added = WebhookInstallationRepositoriesAdded( enterprise: None, repositories_removed: None, repositories_added: None, repository: None, organization: None, sender: None, action: None, repository_selection: None, installation: None, requester: None, ) pub const webhook_sponsorship_pending_tier_change = WebhookSponsorshipPendingTierChange( enterprise: None, changes: None, effective_date: None, repository: None, organization: None, sender: None, sponsorship: None, action: None, installation: None, ) pub const webhook_config = WebhookConfig( content_type: None, insecure_ssl: None, url: None, secret: None, ) pub const language = Language pub const pull_request_simple = PullRequestSimple( head: None, draft: None, body: None, assignees: None, comments_url: None, requested_teams: None, merged_at: None, closed_at: None, review_comment_url: None, auto_merge: None, issue_url: None, number: None, created_at: None, locked: None, merge_commit_sha: None, review_comments_url: None, user: None, commits_url: None, author_association: None, url: None, assignee: None, statuses_url: None, milestone: None, state: None, base_: None, diff_url: None, updated_at: None, node_id: None, patch_url: None, title: None, links: None, id: None, html_url: None, requested_reviewers: None, active_lock_reason: None, labels: None, ) pub const app_permissions = AppPermissions( statuses: None, environments: None, organization_custom_org_roles: None, organization_personal_access_tokens: None, starring: None, secrets: None, organization_hooks: None, pages: None, organization_events: None, interaction_limits: None, organization_projects: None, profile: None, team_discussions: None, organization_administration: None, checks: None, repository_custom_properties: None, packages: None, deployments: None, repository_projects: None, metadata: None, organization_personal_access_token_requests: None, organization_self_hosted_runners: None, single_file: None, workflows: None, followers: None, gpg_keys: None, organization_custom_properties: None, organization_plan: None, secret_scanning_alerts: None, dependabot_secrets: None, organization_secrets: None, security_events: None, git_ssh_keys: None, members: None, organization_packages: None, codespaces: None, issues: None, contents: None, vulnerability_alerts: None, repository_hooks: None, organization_announcement_banners: None, organization_custom_roles: None, organization_user_blocking: None, actions: None, administration: None, pull_requests: None, organization_copilot_seat_management: None, email_addresses: None, ) pub const simple_check_suite = SimpleCheckSuite( head_branch: None, app: None, created_at: None, repository: None, head_sha: None, url: None, status: None, updated_at: None, node_id: None, id: None, after: None, pull_requests: None, conclusion: None, before: None, ) pub const webhook_fork = WebhookFork( enterprise: None, forkee: None, repository: None, organization: None, sender: None, installation: None, ) pub const check_run_with_simple_check_suite = CheckRunWithSimpleCheckSuite( output: None, check_suite: None, app: None, deployment: None, completed_at: None, name: None, head_sha: None, url: None, external_id: None, started_at: None, details_url: None, status: None, node_id: None, id: None, html_url: None, pull_requests: None, conclusion: None, ) pub const copilot_dotcom_pull_requests = CopilotDotcomPullRequests( repositories: None, total_engaged_users: None, ) pub const check_automated_security_fixes = CheckAutomatedSecurityFixes( enabled: None, paused: None, ) pub const team_discussion = TeamDiscussion( last_edited_at: None, body: None, private: None, comments_url: None, comments_count: None, body_html: None, number: None, created_at: None, reactions: None, author: None, team_url: None, url: None, updated_at: None, node_id: None, title: None, pinned: None, html_url: None, body_version: None, ) pub const webhook_installation_repositories_removed = WebhookInstallationRepositoriesRemoved( enterprise: None, repositories_removed: None, repositories_added: None, repository: None, organization: None, sender: None, action: None, repository_selection: None, installation: None, requester: None, ) pub const starred_repository = StarredRepository(repo: None, starred_at: None) pub const webhook_label_edited = WebhookLabelEdited( enterprise: None, changes: None, repository: None, organization: None, label: None, sender: None, action: None, installation: None, ) pub const code_scanning_analysis = CodeScanningAnalysis( commit_sha: None, results_count: None, rules_count: None, error: None, created_at: None, url: None, ref: None, environment: None, deletable: None, tool: None, sarif_id: None, id: None, analysis_key: None, warning: None, category: None, ) pub const pull_request_merge_result = PullRequestMergeResult( message: None, sha: None, merged: None, ) pub const oidc_custom_sub = OidcCustomSub(include_claim_keys: None) pub const content_submodule = ContentSubmodule( size: None, git_url: None, path_: None, name: None, sha: None, url: None, submodule_git_url: None, download_url: None, links: None, type_: None, html_url: None, ) pub const git_ref = GitRef(url: None, ref: None, node_id: None, object: None) pub const pages_source_hash = PagesSourceHash(branch: None, path_: None) pub const webhook_discussion_transferred = WebhookDiscussionTransferred( enterprise: None, changes: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const repository_rule_update = RepositoryRuleUpdate( parameters: None, type_: None, ) pub const code_scanning_variant_analysis_repository = CodeScanningVariantAnalysisRepository( private: None, stargazers_count: None, name: None, updated_at: None, id: None, full_name: None, ) pub const runner_label = RunnerLabel(name: None, type_: None, id: None) pub const secret_scanning_location_pull_request_review_comment = SecretScanningLocationPullRequestReviewComment( pull_request_review_comment_url: None, ) pub const label_search_result_item = LabelSearchResultItem( text_matches: None, default: None, color: None, name: None, url: None, score: None, node_id: None, id: None, description: None, ) pub const commit = Commit( comments_url: None, parents: None, committer: None, author: None, sha: None, url: None, commit: None, files: None, node_id: None, html_url: None, stats: None, ) pub const webhook_pull_request_unassigned = WebhookPullRequestUnassigned( enterprise: None, number: None, repository: None, assignee: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_project_column_edited = WebhookProjectColumnEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, project_column: None, ) pub const webhooks_issue = WebhooksIssue( draft: None, body: None, assignees: None, comments_url: None, closed_at: None, events_url: None, number: None, created_at: None, locked: None, reactions: None, user: None, author_association: None, labels_url: None, url: None, assignee: None, milestone: None, timeline_url: None, state: None, state_reason: None, comments: None, pull_request: None, performed_via_github_app: None, updated_at: None, node_id: None, title: None, repository_url: None, id: None, html_url: None, active_lock_reason: None, labels: None, ) pub const dependabot_public_key = DependabotPublicKey(key_id: None, key: None) pub const environment_approvals = EnvironmentApprovals( environments: None, user: None, state: None, comment: None, ) pub const webhook_deployment_created = WebhookDeploymentCreated( enterprise: None, deployment: None, repository: None, workflow_run: None, organization: None, sender: None, action: None, installation: None, workflow: None, ) pub const minimal_repository = MinimalRepository( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, forks_count: None, fork: None, git_url: None, archived: None, private: None, security_and_analysis: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, has_discussions: None, teams_url: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, code_of_conduct: None, homepage: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, forks: None, archive_url: None, visibility: None, milestones_url: None, owner: None, role_name: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, updated_at: None, watchers: None, node_id: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, subscribers_count: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, pulls_url: None, network_count: None, deployments_url: None, has_projects: None, has_pages: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhooks_issue_comment = WebhooksIssueComment( body: None, issue_url: None, created_at: None, reactions: None, user: None, author_association: None, url: None, performed_via_github_app: None, updated_at: None, node_id: None, id: None, html_url: None, ) pub const webhook_secret_scanning_alert_location_created = WebhookSecretScanningAlertLocationCreated( repository: None, organization: None, sender: None, location: None, action: None, installation: None, alert: None, ) pub const nullable_team_simple = NullableTeamSimple( ldap_dn: None, privacy: None, members_url: None, name: None, slug: None, url: None, permission: None, node_id: None, repositories_url: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const webhooks_project = WebhooksProject( body: None, owner_url: None, number: None, created_at: None, name: None, creator: None, columns_url: None, url: None, state: None, updated_at: None, node_id: None, id: None, html_url: None, ) pub const webhook_branch_protection_rule_created = WebhookBranchProtectionRuleCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, rule: None, ) pub const copilot_usage_metrics = CopilotUsageMetrics( breakdown: None, total_lines_accepted: None, total_suggestions_count: None, total_lines_suggested: None, total_active_users: None, total_chat_turns: None, total_chat_acceptances: None, total_acceptances_count: None, day: None, total_active_chat_users: None, ) pub const webhooks_release_one = WebhooksRelease1( draft: None, body: None, assets: None, prerelease: None, published_at: None, created_at: None, reactions: None, author: None, name: None, url: None, tag_name: None, zipball_url: None, upload_url: None, assets_url: None, tarball_url: None, node_id: None, discussion_url: None, target_commitish: None, id: None, html_url: None, ) pub const webhook_repository_edited = WebhookRepositoryEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_pull_request_review_submitted = WebhookPullRequestReviewSubmitted( enterprise: None, repository: None, organization: None, sender: None, pull_request: None, action: None, review: None, installation: None, ) pub const nullable_repository = NullableRepository( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, forks_count: None, fork: None, allow_update_branch: None, git_url: None, archived: None, private: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, squash_merge_commit_message: None, has_discussions: None, teams_url: None, merge_commit_message: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, allow_squash_merge: None, homepage: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, use_squash_pr_title_as_default: None, forks: None, archive_url: None, visibility: None, milestones_url: None, allow_rebase_merge: None, owner: None, starred_at: None, allow_merge_commit: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, squash_merge_commit_title: None, merge_commit_title: None, updated_at: None, watchers: None, node_id: None, anonymous_access_enabled: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhook_pull_request_review_thread_resolved = WebhookPullRequestReviewThreadResolved( enterprise: None, thread: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_gollum = WebhookGollum( enterprise: None, pages: None, repository: None, organization: None, sender: None, installation: None, ) pub const webhook_project_closed = WebhookProjectClosed( enterprise: None, repository: None, organization: None, sender: None, action: None, project: None, installation: None, ) pub const code_security_default_configurations = [] pub const webhook_issues_labeled = WebhookIssuesLabeled( enterprise: None, repository: None, organization: None, label: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_sponsorship_edited = WebhookSponsorshipEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, sponsorship: None, action: None, installation: None, ) pub const webhook_sponsorship_tier_changed = WebhookSponsorshipTierChanged( enterprise: None, changes: None, repository: None, organization: None, sender: None, sponsorship: None, action: None, installation: None, ) pub const webhook_pull_request_ready_for_review = WebhookPullRequestReadyForReview( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_custom_property_created = WebhookCustomPropertyCreated( enterprise: None, organization: None, definition: None, sender: None, action: None, installation: None, ) pub const code_scanning_default_setup = CodeScanningDefaultSetup( query_suite: None, state: None, updated_at: None, schedule: None, languages: None, ) pub const webhook_organization_deleted = WebhookOrganizationDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, membership: None, installation: None, ) pub const webhook_team_added_to_repository = WebhookTeamAddedToRepository( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, team: None, ) pub const view_traffic = ViewTraffic(uniques: None, views: None, count: None) pub const deployment_branch_policy = DeploymentBranchPolicy( name: None, node_id: None, type_: None, id: None, ) pub const repository_rule_pull_request = RepositoryRulePullRequest( parameters: None, type_: None, ) pub const simple_installation = SimpleInstallation(node_id: None, id: None) pub const webhooks_security_advisory = WebhooksSecurityAdvisory( cwes: None, published_at: None, summary: None, cvss_severities: None, references: None, identifiers: None, ghsa_id: None, withdrawn_at: None, cvss: None, updated_at: None, vulnerabilities: None, description: None, severity: None, ) pub const webhook_pull_request_review_comment_created = WebhookPullRequestReviewCommentCreated( enterprise: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, comment: None, ) pub const actor = Actor( avatar_url: None, login: None, display_login: None, url: None, gravatar_id: None, id: None, ) pub const private_user = PrivateUser( user_view_type: None, gists_url: None, following_url: None, ldap_dn: None, twitter_username: None, blog: None, followers_url: None, subscriptions_url: None, received_events_url: None, bio: None, notification_email: None, events_url: None, avatar_url: None, plan: None, login: None, created_at: None, total_private_repos: None, owned_private_repos: None, public_repos: None, name: None, collaborators: None, hireable: None, url: None, starred_url: None, organizations_url: None, following: None, repos_url: None, private_gists: None, followers: None, two_factor_authentication: None, location: None, gravatar_id: None, site_admin: None, updated_at: None, node_id: None, business_plus: None, public_gists: None, type_: None, id: None, html_url: None, email: None, company: None, disk_usage: None, ) pub const webhook_milestone_created = WebhookMilestoneCreated( enterprise: None, repository: None, milestone: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_issues_pinned = WebhookIssuesPinned( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const gist_comment = GistComment( body: None, created_at: None, user: None, author_association: None, url: None, updated_at: None, node_id: None, id: None, ) pub const custom_property_value = CustomPropertyValue( value: None, property_name: None, ) pub const webhook_project_card_created = WebhookProjectCardCreated( enterprise: None, repository: None, organization: None, sender: None, project_card: None, action: None, installation: None, ) pub const check_suite_preference = CheckSuitePreference( repository: None, preferences: None, ) pub const codespace_with_full_repository = CodespaceWithFullRepository( idle_timeout_notice: None, recent_folders: None, retention_period_minutes: None, web_url: None, machine: None, pending_operation_disabled_reason: None, environment_id: None, display_name: None, created_at: None, repository: None, prebuild: None, name: None, last_used_at: None, runtime_constraints: None, url: None, state: None, start_url: None, stop_url: None, owner: None, billable_owner: None, location: None, idle_timeout_minutes: None, updated_at: None, devcontainer_path: None, id: None, machines_url: None, pulls_url: None, pending_operation: None, retention_expires_at: None, git_status: None, publish_url: None, ) pub const cvss_severities = CvssSeverities(cvss_v3: None, cvss_v4: None) pub const integration_installation_request = IntegrationInstallationRequest( created_at: None, account: None, node_id: None, id: None, requester: None, ) pub const branch_with_protection = BranchWithProtection( protection_url: None, name: None, protected: None, pattern: None, commit: None, protection: None, links: None, required_approving_review_count: None, ) pub const validation_error = ValidationError( message: None, documentation_url: None, errors: None, ) pub const webhook_code_scanning_alert_appeared_in_branch = WebhookCodeScanningAlertAppearedInBranch( enterprise: None, commit_oid: None, repository: None, ref: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const secret_scanning_location = SecretScanningLocation( details: None, type_: None, ) pub const webhook_star_deleted = WebhookStarDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const label = Label( default: None, color: None, name: None, url: None, node_id: None, id: None, description: None, ) pub const webhook_org_block_unblocked = WebhookOrgBlockUnblocked( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, blocked_user: None, ) pub const webhook_projects_v2_item_reordered = WebhookProjectsV2ItemReordered( changes: None, projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const commit_search_result_item = CommitSearchResultItem( text_matches: None, comments_url: None, parents: None, repository: None, committer: None, author: None, sha: None, url: None, score: None, commit: None, node_id: None, html_url: None, ) pub const integration = Integration( permissions: None, client_secret: None, installations_count: None, created_at: None, name: None, slug: None, client_id: None, owner: None, updated_at: None, node_id: None, pem: None, webhook_secret: None, events: None, id: None, html_url: None, external_url: None, description: None, ) pub const webhook_check_run_rerequested_form_encoded = WebhookCheckRunRerequestedFormEncoded( payload: None, ) pub const webhook_discussion_category_changed = WebhookDiscussionCategoryChanged( enterprise: None, changes: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_workflow_run_requested = WebhookWorkflowRunRequested( enterprise: None, repository: None, workflow_run: None, organization: None, sender: None, action: None, installation: None, workflow: None, ) pub const check_annotation = CheckAnnotation( path_: None, message: None, raw_details: None, blob_href: None, start_line: None, start_column: None, annotation_level: None, end_line: None, title: None, end_column: None, ) pub const marketplace_listing_plan = MarketplaceListingPlan( unit_name: None, has_free_trial: None, number: None, name: None, url: None, state: None, bullets: None, price_model: None, accounts_url: None, monthly_price_in_cents: None, id: None, yearly_price_in_cents: None, description: None, ) pub const team_role_assignment = TeamRoleAssignment( permissions: None, privacy: None, members_url: None, parent: None, name: None, slug: None, assignment: None, url: None, permission: None, node_id: None, repositories_url: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const webhook_projects_v2_project_closed = WebhookProjectsV2ProjectClosed( projects_v2: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_repository_ruleset_created = WebhookRepositoryRulesetCreated( enterprise: None, repository: None, repository_ruleset: None, organization: None, sender: None, action: None, installation: None, ) pub const nullable_repository_webhooks = NullableRepositoryWebhooks( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, custom_properties: None, forks_count: None, fork: None, allow_update_branch: None, git_url: None, archived: None, private: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, squash_merge_commit_message: None, has_discussions: None, teams_url: None, merge_commit_message: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, allow_squash_merge: None, homepage: None, template_repository: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, use_squash_pr_title_as_default: None, forks: None, archive_url: None, visibility: None, milestones_url: None, allow_rebase_merge: None, organization: None, owner: None, starred_at: None, allow_merge_commit: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, squash_merge_commit_title: None, merge_commit_title: None, updated_at: None, watchers: None, node_id: None, anonymous_access_enabled: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, subscribers_count: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, network_count: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhook_project_edited = WebhookProjectEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, project: None, installation: None, ) pub const classroom = Classroom( archived: None, name: None, url: None, organization: None, id: None, ) pub const webhook_projects_v2_item_deleted = WebhookProjectsV2ItemDeleted( projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const code_scanning_variant_analysis_repo_task = CodeScanningVariantAnalysisRepoTask( artifact_url: None, artifact_size_in_bytes: None, database_commit_sha: None, repository: None, result_count: None, failure_message: None, analysis_status: None, source_location_prefix: None, ) pub const runner_application = RunnerApplication( os: None, filename: None, temp_download_token: None, architecture: None, download_url: None, sha256_checksum: None, ) pub const workflow_usage = WorkflowUsage(billable: None) pub const environment = Environment( created_at: None, name: None, url: None, protection_rules: None, deployment_branch_policy: None, updated_at: None, node_id: None, id: None, html_url: None, ) pub const check_suite = CheckSuite( head_branch: None, app: None, latest_check_runs_count: None, created_at: None, repository: None, head_sha: None, check_runs_url: None, url: None, status: None, rerequestable: None, head_commit: None, updated_at: None, node_id: None, id: None, after: None, pull_requests: None, conclusion: None, before: None, runs_rerequestable: None, ) pub const codespace_machine = CodespaceMachine( display_name: None, name: None, cpus: None, operating_system: None, memory_in_bytes: None, prebuild_availability: None, storage_in_bytes: None, ) pub const webhook_code_scanning_alert_reopened_by_user = WebhookCodeScanningAlertReopenedByUser( enterprise: None, commit_oid: None, repository: None, ref: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhooks_sponsorship = WebhooksSponsorship( tier: None, created_at: None, privacy_level: None, sponsorable: None, node_id: None, maintainer: None, sponsor: None, ) pub const timeline_assigned_issue_event = TimelineAssignedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, assignee: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const unlabeled_issue_event = UnlabeledIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, label: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const participation_stats = ParticipationStats(all: None, owner: None) pub const webhook_dependabot_alert_dismissed = WebhookDependabotAlertDismissed( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const code_scanning_alert_items = CodeScanningAlertItems( dismissed_comment: None, number: None, dismissed_at: None, created_at: None, dismissed_by: None, instances_url: None, url: None, state: None, updated_at: None, tool: None, dismissed_reason: None, html_url: None, rule: None, most_recent_instance: None, fixed_at: None, ) pub const secret_scanning_location_discussion_comment = SecretScanningLocationDiscussionComment( discussion_comment_url: None, ) pub const referenced_workflow = ReferencedWorkflow( path_: None, sha: None, ref: None, ) pub const webhook_secret_scanning_alert_publicly_leaked = WebhookSecretScanningAlertPubliclyLeaked( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const repository_collaborator_permission = RepositoryCollaboratorPermission( user: None, permission: None, role_name: None, ) pub const organization_invitation = OrganizationInvitation( invitation_teams_url: None, invitation_source: None, failed_reason: None, inviter: None, login: None, created_at: None, team_count: None, failed_at: None, role: None, node_id: None, id: None, email: None, ) pub const short_branch = ShortBranch( protection_url: None, name: None, protected: None, commit: None, protection: None, ) pub const webhook_pull_request_unlocked = WebhookPullRequestUnlocked( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const status = Status( target_url: None, avatar_url: None, created_at: None, creator: None, url: None, context: None, state: None, updated_at: None, node_id: None, id: None, description: None, ) pub const git_commit = GitCommit( message: None, parents: None, committer: None, author: None, sha: None, url: None, node_id: None, verification: None, html_url: None, tree: None, ) pub const webhooks_team_one = WebhooksTeam1( privacy: None, members_url: None, parent: None, name: None, slug: None, url: None, permission: None, node_id: None, repositories_url: None, deleted: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const issue_search_result_item = IssueSearchResultItem( text_matches: None, draft: None, body: None, assignees: None, comments_url: None, closed_at: None, body_html: None, events_url: None, number: None, created_at: None, body_text: None, locked: None, repository: None, reactions: None, user: None, author_association: None, labels_url: None, url: None, assignee: None, milestone: None, timeline_url: None, state: None, state_reason: None, score: None, comments: None, pull_request: None, performed_via_github_app: None, updated_at: None, node_id: None, title: None, repository_url: None, id: None, html_url: None, active_lock_reason: None, labels: None, ) pub const status_check_policy = StatusCheckPolicy( contexts: None, strict: None, checks: None, url: None, contexts_url: None, ) pub const organization_programmatic_access_grant_request = OrganizationProgrammaticAccessGrantRequest( token_id: None, permissions: None, reason: None, token_expires_at: None, created_at: None, token_name: None, token_last_used_at: None, owner: None, repository_selection: None, repositories_url: None, id: None, token_expired: None, ) pub const nullable_collaborator = NullableCollaborator( user_view_type: None, gists_url: None, following_url: None, permissions: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, role_name: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, email: None, ) pub const webhook_dependabot_alert_reopened = WebhookDependabotAlertReopened( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const secret_scanning_location_issue_comment = SecretScanningLocationIssueComment( issue_comment_url: None, ) pub const webhook_discussion_unlocked = WebhookDiscussionUnlocked( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const secret_scanning_location_pull_request_comment = SecretScanningLocationPullRequestComment( pull_request_comment_url: None, ) pub const webhook_release_published = WebhookReleasePublished( enterprise: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const nullable_git_user = NullableGitUser( name: None, date: None, email: None, ) pub const artifact = Artifact( expired: None, created_at: None, workflow_run: None, name: None, url: None, size_in_bytes: None, archive_download_url: None, updated_at: None, node_id: None, id: None, expires_at: None, ) pub const simple_commit = SimpleCommit( message: None, committer: None, author: None, timestamp: None, id: None, tree_id: None, ) pub const webhook_dependabot_alert_created = WebhookDependabotAlertCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhook_repository_import = WebhookRepositoryImport( enterprise: None, repository: None, status: None, organization: None, sender: None, installation: None, ) pub const protected_branch_pull_request_review = ProtectedBranchPullRequestReview( dismiss_stale_reviews: None, bypass_pull_request_allowances: None, url: None, dismissal_restrictions: None, require_code_owner_reviews: None, require_last_push_approval: None, required_approving_review_count: None, ) pub const ssh_signing_key = SshSigningKey( created_at: None, title: None, id: None, key: None, ) pub const webhook_check_run_requested_action = WebhookCheckRunRequestedAction( requested_action: None, repository: None, organization: None, check_run: None, sender: None, action: None, installation: None, ) pub const repository_rule_violation_error = RepositoryRuleViolationError( message: None, documentation_url: None, metadata: None, status: None, ) pub const webhook_create = WebhookCreate( enterprise: None, ref_type: None, repository: None, pusher_type: None, ref: None, organization: None, sender: None, installation: None, description: None, master_branch: None, ) pub const webhook_workflow_dispatch = WebhookWorkflowDispatch( enterprise: None, inputs: None, repository: None, ref: None, organization: None, sender: None, installation: None, workflow: None, ) pub const content_tree = ContentTree( size: None, git_url: None, path_: None, name: None, sha: None, url: None, entries: None, download_url: None, content: None, links: None, type_: None, html_url: None, ) pub const webhook_branch_protection_configuration_disabled = WebhookBranchProtectionConfigurationDisabled( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_issues_demilestoned = WebhookIssuesDemilestoned( enterprise: None, repository: None, milestone: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const code_security_configuration_for_repository = CodeSecurityConfigurationForRepository( status: None, configuration: None, ) pub const review_requested_issue_event = ReviewRequestedIssueEvent( commit_id: None, commit_url: None, created_at: None, requested_team: None, url: None, actor: None, performed_via_github_app: None, review_requester: None, requested_reviewer: None, node_id: None, event: None, id: None, ) pub const actions_cache_usage_org_enterprise = ActionsCacheUsageOrgEnterprise( total_active_caches_size_in_bytes: None, total_active_caches_count: None, ) pub const workflow_run_usage = WorkflowRunUsage( billable: None, run_duration_ms: None, ) pub const webhook_package_published = WebhookPackagePublished( enterprise: None, package: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_projects_v2_project_edited = WebhookProjectsV2ProjectEdited( projects_v2: None, changes: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_security_advisory_published = WebhookSecurityAdvisoryPublished( enterprise: None, repository: None, organization: None, sender: None, action: None, security_advisory: None, installation: None, ) pub const webhook_organization_member_added = WebhookOrganizationMemberAdded( enterprise: None, repository: None, organization: None, sender: None, action: None, membership: None, installation: None, ) pub const codespaces_permissions_check_for_devcontainer = CodespacesPermissionsCheckForDevcontainer( accepted: None, ) pub const repository_ruleset_conditions_repository_property_target = RepositoryRulesetConditionsRepositoryPropertyTarget( repository_property: None, ) pub const package_version = PackageVersion( license: None, created_at: None, name: None, url: None, metadata: None, package_html_url: None, updated_at: None, deleted_at: None, id: None, html_url: None, description: None, ) pub const pages_deployment_status = PagesDeploymentStatus(status: None) pub const webhook_projects_v2_project_deleted = WebhookProjectsV2ProjectDeleted( projects_v2: None, organization: None, sender: None, action: None, installation: None, ) pub const webhooks_label = WebhooksLabel( default: None, color: None, name: None, url: None, node_id: None, id: None, description: None, ) pub const pull_request_webhook = PullRequestWebhook( head: None, delete_branch_on_merge: None, draft: None, body: None, allow_update_branch: None, assignees: None, comments_url: None, mergeable_state: None, requested_teams: None, deletions: None, merged_at: None, squash_merge_commit_message: None, closed_at: None, merge_commit_message: None, review_comment_url: None, auto_merge: None, issue_url: None, number: None, created_at: None, merged_by: None, locked: None, merge_commit_sha: None, review_comments_url: None, user: None, commits_url: None, changed_files: None, merged: None, author_association: None, url: None, assignee: None, statuses_url: None, milestone: None, use_squash_pr_title_as_default: None, maintainer_can_modify: None, state: None, base_: None, mergeable: None, comments: None, diff_url: None, squash_merge_commit_title: None, additions: None, merge_commit_title: None, updated_at: None, node_id: None, patch_url: None, title: None, links: None, id: None, html_url: None, review_comments: None, commits: None, requested_reviewers: None, allow_auto_merge: None, rebaseable: None, active_lock_reason: None, labels: None, ) pub const actions_workflow_access_to_repository = ActionsWorkflowAccessToRepository( access_level: None, ) pub const webhook_organization_member_removed = WebhookOrganizationMemberRemoved( enterprise: None, repository: None, organization: None, sender: None, action: None, membership: None, installation: None, ) pub const projects_v2_item = ProjectsV2Item( content_type: None, created_at: None, creator: None, archived_at: None, project_node_id: None, content_node_id: None, updated_at: None, node_id: None, id: None, ) pub const code_scanning_sarifs_status = CodeScanningSarifsStatus( errors: None, analyses_url: None, processing_status: None, ) pub const actions_repository_permissions = ActionsRepositoryPermissions( enabled: None, allowed_actions: None, selected_actions_url: None, ) pub const code_of_conduct_simple = CodeOfConductSimple( name: None, url: None, html_url: None, key: None, ) pub const classroom_assignment_grade = ClassroomAssignmentGrade( points_awarded: None, submission_timestamp: None, group_name: None, starter_code_url: None, points_available: None, github_username: None, student_repository_name: None, assignment_name: None, assignment_url: None, roster_identifier: None, student_repository_url: None, ) pub const webhook_code_scanning_alert_fixed = WebhookCodeScanningAlertFixed( enterprise: None, commit_oid: None, repository: None, ref: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const custom_property = CustomProperty( value_type: None, url: None, default_value: None, values_editable_by: None, property_name: None, allowed_values: None, description: None, source_type: None, required: None, ) pub const branch_short = BranchShort(name: None, protected: None, commit: None) pub const organization_dependabot_secret = OrganizationDependabotSecret( created_at: None, name: None, visibility: None, updated_at: None, selected_repositories_url: None, ) pub const code_scanning_organization_alert_items = CodeScanningOrganizationAlertItems( dismissed_comment: None, number: None, dismissed_at: None, created_at: None, repository: None, dismissed_by: None, instances_url: None, url: None, state: None, updated_at: None, tool: None, dismissed_reason: None, html_url: None, rule: None, most_recent_instance: None, fixed_at: None, ) pub const webhook_issues_milestoned = WebhookIssuesMilestoned( enterprise: None, repository: None, milestone: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_workflow_run_completed = WebhookWorkflowRunCompleted( enterprise: None, repository: None, workflow_run: None, organization: None, sender: None, action: None, installation: None, workflow: None, ) pub const runner = Runner( os: None, runner_group_id: None, name: None, status: None, busy: None, id: None, labels: None, ) pub const org_repo_custom_property_values = OrgRepoCustomPropertyValues( repository_name: None, repository_full_name: None, repository_id: None, properties: None, ) pub const webhook_repository_dispatch_sample = WebhookRepositoryDispatchSample( enterprise: None, branch: None, repository: None, organization: None, sender: None, action: None, client_payload: None, installation: None, ) pub const content_file = ContentFile( size: None, git_url: None, path_: None, name: None, sha: None, url: None, submodule_git_url: None, target: None, encoding: None, download_url: None, content: None, links: None, type_: None, html_url: None, ) pub const timeline_reviewed_event = TimelineReviewedEvent( body: None, commit_id: None, pull_request_url: None, body_html: None, body_text: None, user: None, author_association: None, state: None, submitted_at: None, node_id: None, event: None, links: None, id: None, html_url: None, ) pub const webhook_issue_comment_created = WebhookIssueCommentCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, comment: None, ) pub const page_build = PageBuild( pusher: None, error: None, created_at: None, url: None, status: None, duration: None, commit: None, updated_at: None, ) pub const secret_scanning_location_commit = SecretScanningLocationCommit( commit_sha: None, path_: None, commit_url: None, blob_sha: None, blob_url: None, start_line: None, start_column: None, end_line: None, end_column: None, ) pub const milestone = Milestone( closed_at: None, number: None, due_on: None, created_at: None, creator: None, closed_issues: None, labels_url: None, url: None, open_issues: None, state: None, updated_at: None, node_id: None, title: None, id: None, html_url: None, description: None, ) pub const organization_programmatic_access_grant = OrganizationProgrammaticAccessGrant( token_id: None, permissions: None, token_expires_at: None, token_name: None, access_granted_at: None, token_last_used_at: None, owner: None, repository_selection: None, repositories_url: None, id: None, token_expired: None, ) pub const organization_role = OrganizationRole( permissions: None, base_role: None, created_at: None, name: None, organization: None, updated_at: None, source: None, id: None, description: None, ) pub const webhook_push = WebhookPush( enterprise: None, compare: None, base_ref: None, pusher: None, created: None, repository: None, ref: None, organization: None, sender: None, head_commit: None, deleted: None, forced: None, installation: None, after: None, commits: None, before: None, ) pub const gpg_key = GpgKey( raw_key: None, can_certify: None, public_key: None, created_at: None, name: None, can_sign: None, can_encrypt_storage: None, subkeys: None, emails: None, primary_key_id: None, id: None, key_id: None, expires_at: None, can_encrypt_comms: None, revoked: None, ) pub const pull_request_review_comment = PullRequestReviewComment( body: None, original_line: None, commit_id: None, diff_hunk: None, path_: None, pull_request_url: None, body_html: None, position: None, created_at: None, body_text: None, reactions: None, user: None, subject_type: None, author_association: None, url: None, in_reply_to_id: None, start_line: None, start_side: None, line: None, original_commit_id: None, side: None, updated_at: None, original_position: None, node_id: None, pull_request_review_id: None, links: None, id: None, html_url: None, original_start_line: None, ) pub const metadata = Metadata pub const webhook_pull_request_review_thread_unresolved = WebhookPullRequestReviewThreadUnresolved( enterprise: None, thread: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const activity = Activity( activity_type: None, ref: None, actor: None, timestamp: None, node_id: None, id: None, after: None, before: None, ) pub const packages_billing_usage = PackagesBillingUsage( total_paid_gigabytes_bandwidth_used: None, total_gigabytes_bandwidth_used: None, included_gigabytes_bandwidth: None, ) pub const webhook_projects_v2_item_edited = WebhookProjectsV2ItemEdited( changes: None, projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_repository_archived = WebhookRepositoryArchived( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const page_build_status = PageBuildStatus(url: None, status: None) pub const protected_branch_required_status_check = ProtectedBranchRequiredStatusCheck( contexts: None, enforcement_level: None, strict: None, checks: None, url: None, contexts_url: None, ) pub const page = Page( https_certificate: None, protected_domain_state: None, public: None, custom_404: None, build_type: None, cname: None, url: None, status: None, https_enforced: None, source: None, html_url: None, pending_domain_unverified_at: None, ) pub const webhook_marketplace_purchase_purchased = WebhookMarketplacePurchasePurchased( enterprise: None, effective_date: None, repository: None, organization: None, marketplace_purchase: None, sender: None, action: None, installation: None, previous_marketplace_purchase: None, ) pub const secret_scanning_location_pull_request_body = SecretScanningLocationPullRequestBody( pull_request_body_url: None, ) pub const scim_error = ScimError( message: None, documentation_url: None, scim_type: None, detail: None, schemas: None, status: None, ) pub const referrer_traffic = ReferrerTraffic( uniques: None, count: None, referrer: None, ) pub const manifest = Manifest( name: None, metadata: None, resolved: None, file: None, ) pub const webhook_project_deleted = WebhookProjectDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, project: None, installation: None, ) pub const repository_rule_tag_name_pattern = RepositoryRuleTagNamePattern( parameters: None, type_: None, ) pub const secret_scanning_location_issue_body = SecretScanningLocationIssueBody( issue_body_url: None, ) pub const webhook_sub_issues_sub_issue_added = WebhookSubIssuesSubIssueAdded( sub_issue_id: None, parent_issue: None, repository: None, organization: None, sender: None, parent_issue_id: None, action: None, sub_issue_repo: None, sub_issue: None, installation: None, ) pub const topic = Topic(names: None) pub const webhook_sub_issues_sub_issue_removed = WebhookSubIssuesSubIssueRemoved( sub_issue_id: None, parent_issue: None, repository: None, organization: None, sender: None, parent_issue_id: None, action: None, sub_issue_repo: None, sub_issue: None, installation: None, ) pub const public_user = PublicUser( user_view_type: None, gists_url: None, following_url: None, twitter_username: None, blog: None, followers_url: None, subscriptions_url: None, received_events_url: None, bio: None, notification_email: None, events_url: None, avatar_url: None, plan: None, login: None, created_at: None, total_private_repos: None, owned_private_repos: None, public_repos: None, name: None, collaborators: None, hireable: None, url: None, starred_url: None, organizations_url: None, following: None, repos_url: None, private_gists: None, followers: None, location: None, gravatar_id: None, site_admin: None, updated_at: None, node_id: None, public_gists: None, type_: None, id: None, html_url: None, email: None, company: None, disk_usage: None, ) pub const repository_rule_params_workflow_file_reference = RepositoryRuleParamsWorkflowFileReference( path_: None, sha: None, repository_id: None, ref: None, ) pub const projects_v2 = ProjectsV2( closed_at: None, public: None, number: None, created_at: None, creator: None, owner: None, updated_at: None, node_id: None, title: None, short_description: None, deleted_at: None, id: None, description: None, deleted_by: None, ) pub const repository_rule_params_status_check_configuration = RepositoryRuleParamsStatusCheckConfiguration( integration_id: None, context: None, ) pub const secret_scanning_location_discussion_body = SecretScanningLocationDiscussionBody( discussion_body_url: None, ) pub const migration = Migration( org_metadata_only: None, repositories: None, guid: None, created_at: None, exclude_attachments: None, exclude_owner_projects: None, url: None, state: None, exclude_releases: None, archive_url: None, owner: None, exclude_metadata: None, updated_at: None, node_id: None, exclude: None, id: None, exclude_git_data: None, lock_repositories: None, ) pub const code_of_conduct = CodeOfConduct( body: None, name: None, url: None, html_url: None, key: None, ) pub const interaction_limit_response = InteractionLimitResponse( origin: None, limit: None, expires_at: None, ) pub const webhook_team_created = WebhookTeamCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, team: None, ) pub const demilestoned_issue_event = DemilestonedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, milestone: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const webhooks_pull_request_5 = WebhooksPullRequest5( head: None, draft: None, body: None, assignees: None, comments_url: None, mergeable_state: None, requested_teams: None, deletions: None, merged_at: None, closed_at: None, review_comment_url: None, auto_merge: None, issue_url: None, number: None, created_at: None, merged_by: None, locked: None, merge_commit_sha: None, review_comments_url: None, user: None, commits_url: None, changed_files: None, merged: None, author_association: None, url: None, assignee: None, statuses_url: None, milestone: None, maintainer_can_modify: None, state: None, base_: None, mergeable: None, comments: None, diff_url: None, additions: None, updated_at: None, node_id: None, patch_url: None, title: None, links: None, id: None, html_url: None, review_comments: None, commits: None, requested_reviewers: None, rebaseable: None, active_lock_reason: None, labels: None, ) pub const repository_rule_required_deployments = RepositoryRuleRequiredDeployments( parameters: None, type_: None, ) pub const short_blob = ShortBlob(sha: None, url: None) pub const repository_rule_merge_queue = RepositoryRuleMergeQueue( parameters: None, type_: None, ) pub const webhook_issues_unpinned = WebhookIssuesUnpinned( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const link_with_type = LinkWithType(href: None, type_: None) pub const webhooks_user = WebhooksUser( user_view_type: None, gists_url: None, following_url: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, gravatar_id: None, site_admin: None, node_id: None, deleted: None, type_: None, id: None, html_url: None, email: None, ) pub const repository_rule_committer_email_pattern = RepositoryRuleCommitterEmailPattern( parameters: None, type_: None, ) pub const code_scanning_variant_analysis_skipped_repo_group = CodeScanningVariantAnalysisSkippedRepoGroup( repositories: None, repository_count: None, ) pub const webhook_check_run_completed = WebhookCheckRunCompleted( repository: None, organization: None, check_run: None, sender: None, action: None, installation: None, ) pub const webhook_pull_request_review_edited = WebhookPullRequestReviewEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, pull_request: None, action: None, review: None, installation: None, ) pub const webhook_dependabot_alert_reintroduced = WebhookDependabotAlertReintroduced( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const rate_limit = RateLimit( reset: None, remaining: None, limit: None, used: None, ) pub const codespaces_public_key = CodespacesPublicKey( created_at: None, url: None, title: None, id: None, key_id: None, key: None, ) pub const social_account = SocialAccount(url: None, provider: None) pub const webhook_org_block_blocked = WebhookOrgBlockBlocked( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, blocked_user: None, ) pub const nullable_issue = NullableIssue( draft: None, body: None, assignees: None, comments_url: None, closed_at: None, body_html: None, events_url: None, number: None, closed_by: None, created_at: None, body_text: None, locked: None, repository: None, reactions: None, user: None, author_association: None, labels_url: None, url: None, assignee: None, milestone: None, timeline_url: None, state: None, state_reason: None, comments: None, pull_request: None, performed_via_github_app: None, updated_at: None, node_id: None, title: None, repository_url: None, id: None, html_url: None, active_lock_reason: None, labels: None, ) pub const webhook_personal_access_token_request_cancelled = WebhookPersonalAccessTokenRequestCancelled( enterprise: None, personal_access_token_request: None, organization: None, sender: None, action: None, installation: None, ) pub const issue_event_label = IssueEventLabel(color: None, name: None) pub const porter_large_file = PorterLargeFile( size: None, path_: None, oid: None, ref_name: None, ) pub const license_content = LicenseContent( size: None, license: None, git_url: None, path_: None, name: None, sha: None, url: None, encoding: None, download_url: None, content: None, links: None, type_: None, html_url: None, ) pub const code_scanning_default_setup_update_response = CodeScanningDefaultSetupUpdateResponse( run_id: None, run_url: None, ) pub const content_symlink = ContentSymlink( size: None, git_url: None, path_: None, name: None, sha: None, url: None, target: None, download_url: None, links: None, type_: None, html_url: None, ) pub const webhooks_milestone = WebhooksMilestone( closed_at: None, number: None, due_on: None, created_at: None, creator: None, closed_issues: None, labels_url: None, url: None, open_issues: None, state: None, updated_at: None, node_id: None, title: None, id: None, html_url: None, description: None, ) pub const code_scanning_analysis_tool = CodeScanningAnalysisTool( guid: None, name: None, version: None, ) pub const clone_traffic = CloneTraffic(uniques: None, count: None, clones: None) pub const milestoned_issue_event = MilestonedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, milestone: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const repository_rule_creation = RepositoryRuleCreation(type_: None) pub const added_to_project_issue_event = AddedToProjectIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, actor: None, performed_via_github_app: None, project_card: None, node_id: None, event: None, id: None, ) pub const review_dismissed_issue_event = ReviewDismissedIssueEvent( commit_id: None, commit_url: None, created_at: None, dismissed_review: None, url: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const webhook_registry_package_published = WebhookRegistryPackagePublished( enterprise: None, registry_package: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_watch_started = WebhookWatchStarted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const simple_commit_status = SimpleCommitStatus( target_url: None, avatar_url: None, created_at: None, url: None, context: None, state: None, updated_at: None, node_id: None, id: None, description: None, required: None, ) pub const repository_rule_params_code_scanning_tool = RepositoryRuleParamsCodeScanningTool( security_alerts_threshold: None, alerts_threshold: None, tool: None, ) pub const webhook_workflow_job_in_progress = WebhookWorkflowJobInProgress( enterprise: None, deployment: None, repository: None, organization: None, sender: None, action: None, installation: None, workflow_job: None, ) pub const repository_advisory_create = RepositoryAdvisoryCreate( cvss_vector_string: None, summary: None, cve_id: None, cwe_ids: None, credits: None, vulnerabilities: None, start_private_fork: None, description: None, severity: None, ) pub const webhook_repository_vulnerability_alert_reopen = WebhookRepositoryVulnerabilityAlertReopen( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhook_release_created = WebhookReleaseCreated( enterprise: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const api_overview = ApiOverview( verifiable_password_authentication: None, pages: None, ssh_key_fingerprints: None, ssh_keys: None, copilot: None, packages: None, domains: None, hooks: None, actions_macos: None, dependabot: None, importer: None, git: None, web: None, github_enterprise_importer: None, codespaces: None, api: None, actions: None, ) pub const webhook_organization_member_invited = WebhookOrganizationMemberInvited( enterprise: None, repository: None, user: None, organization: None, sender: None, action: None, invitation: None, installation: None, ) pub const code_security_configuration_repositories = CodeSecurityConfigurationRepositories( repository: None, status: None, ) pub const webhooks_repositories_added = [] pub const webhook_repository_deleted = WebhookRepositoryDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const organization_simple = OrganizationSimple( hooks_url: None, members_url: None, events_url: None, avatar_url: None, login: None, issues_url: None, url: None, repos_url: None, public_members_url: None, node_id: None, id: None, description: None, ) pub const webhooks_workflow_job_run = WebhooksWorkflowJobRun( created_at: None, status: None, environment: None, updated_at: None, id: None, html_url: None, ) pub const tag_protection = TagProtection( enabled: None, created_at: None, pattern: None, updated_at: None, id: None, ) pub const org_hook = OrgHook( ping_url: None, config: None, deliveries_url: None, active: None, created_at: None, name: None, url: None, updated_at: None, events: None, type_: None, id: None, ) pub const timeline_unassigned_issue_event = TimelineUnassignedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, assignee: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const hovercard = Hovercard(contexts: None) pub const copilot_dotcom_chat = CopilotDotcomChat( models: None, total_engaged_users: None, ) pub const pages_https_certificate = PagesHttpsCertificate( domains: None, state: None, description: None, expires_at: None, ) pub const webhook_project_column_deleted = WebhookProjectColumnDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, project_column: None, ) pub const secret_scanning_location_discussion_title = SecretScanningLocationDiscussionTitle( discussion_title_url: None, ) pub const repository_rule_required_linear_history = RepositoryRuleRequiredLinearHistory( type_: None, ) pub const webhook_pull_request_reopened = WebhookPullRequestReopened( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_projects_v2_item_converted = WebhookProjectsV2ItemConverted( changes: None, projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const actions_variable = ActionsVariable( created_at: None, name: None, value: None, updated_at: None, ) pub const codespaces_org_secret = CodespacesOrgSecret( created_at: None, name: None, visibility: None, updated_at: None, selected_repositories_url: None, ) pub const webhook_pull_request_enqueued = WebhookPullRequestEnqueued( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_discussion_answered = WebhookDiscussionAnswered( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, answer: None, ) pub const labeled_issue_event = LabeledIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, label: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const rule_suites = [] pub const protected_branch_admin_enforced = ProtectedBranchAdminEnforced( enabled: None, url: None, ) pub const webhooks_repositories = [] pub const nullable_scoped_installation = NullableScopedInstallation( single_file_paths: None, permissions: None, has_multiple_single_files: None, account: None, single_file_name: None, repository_selection: None, repositories_url: None, ) pub const webhook_installation_created = WebhookInstallationCreated( enterprise: None, repositories: None, repository: None, organization: None, sender: None, action: None, installation: None, requester: None, ) pub const actions_public_key = ActionsPublicKey( created_at: None, url: None, title: None, id: None, key_id: None, key: None, ) pub const selected_actions = SelectedActions( patterns_allowed: None, verified_allowed: None, github_owned_allowed: None, ) pub const secret_scanning_location_issue_title = SecretScanningLocationIssueTitle( issue_title_url: None, ) pub const webhooks_reviewers = [] pub const dependency = Dependency( dependencies: None, metadata: None, scope: None, package_url: None, relationship: None, ) pub const issue_event_project_card = IssueEventProjectCard( project_id: None, project_url: None, previous_column_name: None, url: None, column_name: None, id: None, ) pub const secret_scanning_location_pull_request_title = SecretScanningLocationPullRequestTitle( pull_request_title_url: None, ) pub const webhook_branch_protection_configuration_enabled = WebhookBranchProtectionConfigurationEnabled( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_deployment_review_requested = WebhookDeploymentReviewRequested( enterprise: None, workflow_job_run: None, repository: None, workflow_run: None, reviewers: None, requestor: None, organization: None, environment: None, sender: None, action: None, installation: None, since: None, ) pub const webhook_discussion_comment_created = WebhookDiscussionCommentCreated( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, comment: None, ) pub const dependabot_secret = DependabotSecret( created_at: None, name: None, updated_at: None, ) pub const webhook_check_run_created = WebhookCheckRunCreated( repository: None, organization: None, check_run: None, sender: None, action: None, installation: None, ) pub const repository_ruleset_conditions_repository_id_target = RepositoryRulesetConditionsRepositoryIdTarget( repository_id: None, ) pub const validation_error_simple = ValidationErrorSimple( message: None, documentation_url: None, errors: None, ) pub const webhook_repository_vulnerability_alert_create = WebhookRepositoryVulnerabilityAlertCreate( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const hook_response = HookResponse(message: None, code: None, status: None) pub const repository_rule_branch_name_pattern = RepositoryRuleBranchNamePattern( parameters: None, type_: None, ) pub const issue_comment = IssueComment( body: None, body_html: None, issue_url: None, created_at: None, body_text: None, reactions: None, user: None, author_association: None, url: None, performed_via_github_app: None, updated_at: None, node_id: None, id: None, html_url: None, ) pub const codeowners_errors = CodeownersErrors(errors: None) pub const marketplace_account = MarketplaceAccount( login: None, organization_billing_email: None, url: None, node_id: None, type_: None, id: None, email: None, ) pub const webhook_projects_v2_status_update_created = WebhookProjectsV2StatusUpdateCreated( organization: None, sender: None, action: None, projects_v2_status_update: None, installation: None, ) pub const webhook_check_suite_rerequested = WebhookCheckSuiteRerequested( check_suite: None, enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const repository_advisory_vulnerability = RepositoryAdvisoryVulnerability( vulnerable_functions: None, package: None, patched_versions: None, vulnerable_version_range: None, ) pub const webhook_issues_assigned = WebhookIssuesAssigned( enterprise: None, repository: None, assignee: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_discussion_reopened = WebhookDiscussionReopened( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_discussion_unlabeled = WebhookDiscussionUnlabeled( enterprise: None, discussion: None, repository: None, organization: None, label: None, sender: None, action: None, installation: None, ) pub const webhook_ping_form_encoded = WebhookPingFormEncoded(payload: None) pub const gist_history = GistHistory( change_status: None, user: None, url: None, committed_at: None, version: None, ) pub const repository = Repository( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, forks_count: None, fork: None, allow_update_branch: None, git_url: None, archived: None, private: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, squash_merge_commit_message: None, has_discussions: None, teams_url: None, merge_commit_message: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, allow_squash_merge: None, homepage: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, use_squash_pr_title_as_default: None, forks: None, archive_url: None, visibility: None, milestones_url: None, allow_rebase_merge: None, owner: None, starred_at: None, allow_merge_commit: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, squash_merge_commit_title: None, merge_commit_title: None, updated_at: None, watchers: None, node_id: None, anonymous_access_enabled: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const porter_author = PorterAuthor( remote_name: None, name: None, url: None, remote_id: None, import_url: None, id: None, email: None, ) pub const team_discussion_comment = TeamDiscussionComment( last_edited_at: None, body: None, body_html: None, number: None, created_at: None, reactions: None, author: None, url: None, updated_at: None, node_id: None, discussion_url: None, html_url: None, body_version: None, ) pub const webhook_pull_request_unlabeled = WebhookPullRequestUnlabeled( enterprise: None, number: None, repository: None, organization: None, label: None, sender: None, pull_request: None, action: None, installation: None, ) pub const webhook_discussion_deleted = WebhookDiscussionDeleted( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhooks_deploy_key = WebhooksDeployKey( enabled: None, last_used: None, verified: None, created_at: None, url: None, read_only: None, added_by: None, title: None, id: None, key: None, ) pub const repository_advisory_credit = RepositoryAdvisoryCredit( user: None, state: None, type_: None, ) pub const thread = Thread( reason: None, repository: None, subject: None, subscription_url: None, url: None, unread: None, last_read_at: None, updated_at: None, id: None, ) pub const webhook_github_app_authorization_revoked = WebhookGithubAppAuthorizationRevoked( sender: None, action: None, ) pub const release_asset = ReleaseAsset( content_type: None, size: None, created_at: None, name: None, uploader: None, browser_download_url: None, url: None, state: None, label: None, updated_at: None, node_id: None, download_count: None, id: None, ) pub const webhook_label_deleted = WebhookLabelDeleted( enterprise: None, repository: None, organization: None, label: None, sender: None, action: None, installation: None, ) pub const review_comment = ReviewComment( body: None, original_line: None, commit_id: None, diff_hunk: None, path_: None, pull_request_url: None, body_html: None, position: None, created_at: None, body_text: None, reactions: None, user: None, author_association: None, url: None, in_reply_to_id: None, start_line: None, start_side: None, line: None, original_commit_id: None, side: None, updated_at: None, original_position: None, node_id: None, pull_request_review_id: None, links: None, id: None, html_url: None, original_start_line: None, ) pub const codespaces_user_public_key = CodespacesUserPublicKey( key_id: None, key: None, ) pub const diff_entry = DiffEntry( changes: None, deletions: None, filename: None, patch: None, contents_url: None, sha: None, blob_url: None, previous_filename: None, status: None, additions: None, raw_url: None, ) pub const webhook_deploy_key_created = WebhookDeployKeyCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, key: None, ) pub const merge_group = MergeGroup( base_ref: None, head_sha: None, head_ref: None, head_commit: None, base_sha: None, ) pub const nullable_license_simple = NullableLicenseSimple( spdx_id: None, name: None, url: None, node_id: None, html_url: None, key: None, ) pub const project_column = ProjectColumn( project_url: None, created_at: None, name: None, url: None, cards_url: None, updated_at: None, node_id: None, id: None, ) pub const commit_comment = CommitComment( body: None, commit_id: None, path_: None, position: None, created_at: None, reactions: None, user: None, author_association: None, url: None, line: None, updated_at: None, node_id: None, id: None, html_url: None, ) pub const basic_error = BasicError( message: None, documentation_url: None, url: None, status: None, ) pub const team_project = TeamProject( body: None, private: None, owner_url: None, permissions: None, number: None, created_at: None, name: None, creator: None, columns_url: None, url: None, state: None, updated_at: None, node_id: None, organization_permission: None, id: None, html_url: None, ) pub const code_scanning_alert_rule = CodeScanningAlertRule( security_severity_level: None, help: None, name: None, full_description: None, help_uri: None, tags: None, id: None, description: None, severity: None, ) pub const webhook_issues_closed = WebhookIssuesClosed( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const organization_full = OrganizationFull( hooks_url: None, dependency_graph_enabled_for_new_repositories: None, has_organization_projects: None, twitter_username: None, members_allowed_repository_creation_type: None, dependabot_security_updates_enabled_for_new_repositories: None, blog: None, default_repository_permission: None, secret_scanning_push_protection_custom_link: None, two_factor_requirement_enabled: None, web_commit_signoff_required: None, members_url: None, events_url: None, avatar_url: None, plan: None, login: None, has_repository_projects: None, created_at: None, secret_scanning_push_protection_custom_link_enabled: None, issues_url: None, total_private_repos: None, owned_private_repos: None, public_repos: None, name: None, members_can_fork_private_repositories: None, collaborators: None, deploy_keys_enabled_for_repositories: None, url: None, members_can_create_public_repositories: None, archived_at: None, following: None, repos_url: None, members_can_create_private_repositories: None, public_members_url: None, private_gists: None, followers: None, location: None, members_can_create_pages: None, dependabot_alerts_enabled_for_new_repositories: None, members_can_create_repositories: None, updated_at: None, node_id: None, billing_email: None, public_gists: None, members_can_create_private_pages: None, secret_scanning_enabled_for_new_repositories: None, type_: None, secret_scanning_push_protection_enabled_for_new_repositories: None, id: None, html_url: None, members_can_create_public_pages: None, members_can_create_internal_repositories: None, email: None, description: None, company: None, is_verified: None, advanced_security_enabled_for_new_repositories: None, disk_usage: None, ) pub const webhook_custom_property_updated = WebhookCustomPropertyUpdated( enterprise: None, organization: None, definition: None, sender: None, action: None, installation: None, ) pub const reaction = Reaction( created_at: None, user: None, node_id: None, content: None, id: None, ) pub const autolink = Autolink( is_alphanumeric: None, url_template: None, key_prefix: None, id: None, ) pub const webhooks_issue_2 = WebhooksIssue2( draft: None, body: None, assignees: None, comments_url: None, closed_at: None, events_url: None, number: None, created_at: None, locked: None, reactions: None, user: None, author_association: None, labels_url: None, url: None, assignee: None, milestone: None, timeline_url: None, state: None, state_reason: None, comments: None, pull_request: None, performed_via_github_app: None, updated_at: None, node_id: None, title: None, repository_url: None, id: None, html_url: None, active_lock_reason: None, labels: None, ) pub const actions_get_default_workflow_permissions = ActionsGetDefaultWorkflowPermissions( default_workflow_permissions: None, can_approve_pull_request_reviews: None, ) pub const webhook_issues_transferred = WebhookIssuesTransferred( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const enterprise_team = EnterpriseTeam( sync_to_organizations: None, members_url: None, created_at: None, name: None, slug: None, url: None, updated_at: None, id: None, html_url: None, group_id: None, ) pub const copilot_organization_details = CopilotOrganizationDetails( cli: None, platform_chat: None, seat_breakdown: None, ide_chat: None, seat_management_setting: None, plan_type: None, public_code_suggestions: None, ) pub const issue_event_milestone = IssueEventMilestone(title: None) pub const code_security_configuration = CodeSecurityConfiguration( enforcement: None, secret_scanning: None, secret_scanning_non_provider_patterns: None, code_scanning_default_setup: None, dependabot_alerts: None, secret_scanning_delegated_bypass_options: None, secret_scanning_delegated_bypass: None, target_type: None, dependency_graph_autosubmit_action_options: None, dependency_graph_autosubmit_action: None, created_at: None, name: None, url: None, private_vulnerability_reporting: None, updated_at: None, dependabot_security_updates: None, secret_scanning_validity_checks: None, dependency_graph: None, id: None, html_url: None, description: None, advanced_security: None, secret_scanning_push_protection: None, ) pub const webhooks_user_mannequin = WebhooksUserMannequin( user_view_type: None, gists_url: None, following_url: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, gravatar_id: None, site_admin: None, node_id: None, deleted: None, type_: None, id: None, html_url: None, email: None, ) pub const webhook_security_and_analysis = WebhookSecurityAndAnalysis( enterprise: None, changes: None, repository: None, organization: None, sender: None, installation: None, ) pub const content_traffic = ContentTraffic( uniques: None, path_: None, count: None, title: None, ) pub const secret_scanning_push_protection_bypass = SecretScanningPushProtectionBypass( token_type: None, reason: None, expire_at: None, ) pub const webhook_ping = WebhookPing( hook: None, zen: None, repository: None, organization: None, sender: None, hook_id: None, ) pub const webhook_secret_scanning_alert_validated = WebhookSecretScanningAlertValidated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhooks_approver = WebhooksApprover( user_view_type: None, gists_url: None, following_url: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, url: None, starred_url: None, organizations_url: None, repos_url: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, ) pub const file_commit = FileCommit(commit: None, content: None) pub const webhook_rubygems_metadata = WebhookRubygemsMetadata( commit_oid: None, dependencies: None, name: None, readme: None, homepage: None, metadata: None, repo: None, platform: None, version_info: None, description: None, ) pub const deployment_protection_rule = DeploymentProtectionRule( app: None, enabled: None, node_id: None, id: None, ) pub const runner_groups_org = RunnerGroupsOrg( default: None, allows_public_repositories: None, name: None, inherited_allows_public_repositories: None, selected_workflows: None, visibility: None, runners_url: None, restricted_to_workflows: None, inherited: None, id: None, hosted_runners_url: None, selected_repositories_url: None, workflow_restrictions_read_only: None, ) pub const repo_codespaces_secret = RepoCodespacesSecret( created_at: None, name: None, updated_at: None, ) pub const enterprise_webhooks = EnterpriseWebhooks( avatar_url: None, created_at: None, name: None, slug: None, website_url: None, updated_at: None, node_id: None, id: None, html_url: None, description: None, ) pub const nullable_integration = NullableIntegration( permissions: None, client_secret: None, installations_count: None, created_at: None, name: None, slug: None, client_id: None, owner: None, updated_at: None, node_id: None, pem: None, webhook_secret: None, events: None, id: None, html_url: None, external_url: None, description: None, ) pub const full_repository = FullRepository( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, custom_properties: None, forks_count: None, fork: None, allow_update_branch: None, git_url: None, archived: None, private: None, security_and_analysis: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, squash_merge_commit_message: None, has_discussions: None, teams_url: None, merge_commit_message: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, parent: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, code_of_conduct: None, allow_squash_merge: None, homepage: None, template_repository: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, use_squash_pr_title_as_default: None, forks: None, archive_url: None, visibility: None, milestones_url: None, allow_rebase_merge: None, organization: None, owner: None, allow_merge_commit: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, squash_merge_commit_title: None, merge_commit_title: None, updated_at: None, watchers: None, node_id: None, anonymous_access_enabled: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, source: None, subscribers_url: None, subscribers_count: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, allow_auto_merge: None, pulls_url: None, network_count: None, deployments_url: None, has_projects: None, has_pages: None, master_branch: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const webhook_repository_unarchived = WebhookRepositoryUnarchived( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const simple_classroom_organization = SimpleClassroomOrganization( avatar_url: None, login: None, name: None, node_id: None, id: None, html_url: None, ) pub const webhook_projects_v2_item_archived = WebhookProjectsV2ItemArchived( changes: None, projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const dependency_graph_spdx_sbom = DependencyGraphSpdxSbom(sbom: None) pub const org_ruleset_conditions = OrgRulesetConditions pub const discussion = Discussion( body: None, answer_chosen_by: None, number: None, created_at: None, locked: None, reactions: None, user: None, author_association: None, timeline_url: None, state: None, state_reason: None, comments: None, updated_at: None, node_id: None, title: None, repository_url: None, id: None, html_url: None, answer_html_url: None, category: None, active_lock_reason: None, answer_chosen_at: None, labels: None, ) pub const webhook_status = WebhookStatus( target_url: None, enterprise: None, avatar_url: None, created_at: None, repository: None, name: None, sha: None, context: None, branches: None, state: None, organization: None, sender: None, commit: None, updated_at: None, installation: None, id: None, description: None, ) pub const webhook_meta_deleted = WebhookMetaDeleted( enterprise: None, hook: None, repository: None, organization: None, sender: None, action: None, hook_id: None, installation: None, ) pub const webhook_security_advisory_withdrawn = WebhookSecurityAdvisoryWithdrawn( enterprise: None, repository: None, organization: None, sender: None, action: None, security_advisory: None, installation: None, ) pub const oidc_custom_sub_repo = OidcCustomSubRepo( use_default: None, include_claim_keys: None, ) pub const webhook_team_add = WebhookTeamAdd( enterprise: None, repository: None, organization: None, sender: None, installation: None, team: None, ) pub const webhook_branch_protection_rule_deleted = WebhookBranchProtectionRuleDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, rule: None, ) pub const webhook_discussion_pinned = WebhookDiscussionPinned( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const assigned_issue_event = AssignedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, assignee: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, assigner: None, ) pub const pull_request = PullRequest( head: None, draft: None, body: None, assignees: None, comments_url: None, mergeable_state: None, requested_teams: None, deletions: None, merged_at: None, closed_at: None, review_comment_url: None, auto_merge: None, issue_url: None, number: None, created_at: None, merged_by: None, locked: None, merge_commit_sha: None, review_comments_url: None, user: None, commits_url: None, changed_files: None, merged: None, author_association: None, url: None, assignee: None, statuses_url: None, milestone: None, maintainer_can_modify: None, state: None, base_: None, mergeable: None, comments: None, diff_url: None, additions: None, updated_at: None, node_id: None, patch_url: None, title: None, links: None, id: None, html_url: None, review_comments: None, commits: None, requested_reviewers: None, rebaseable: None, active_lock_reason: None, labels: None, ) pub const combined_billing_usage = CombinedBillingUsage( estimated_storage_for_month: None, estimated_paid_storage_for_month: None, days_left_in_billing_cycle: None, ) pub const secret_scanning_alert_webhook = SecretScanningAlertWebhook( push_protection_bypass_request_html_url: None, push_protection_bypassed: None, number: None, secret_type: None, created_at: None, push_protection_bypassed_at: None, push_protection_bypass_request_reviewer: None, publicly_leaked: None, resolution: None, resolution_comment: None, locations_url: None, push_protection_bypassed_by: None, url: None, validity: None, updated_at: None, multi_repo: None, push_protection_bypass_request_comment: None, resolved_at: None, html_url: None, secret_type_display_name: None, resolved_by: None, ) pub const classroom_assignment = ClassroomAssignment( feedback_pull_requests_enabled: None, accepted: None, public_repo: None, slug: None, starter_code_repository: None, editor: None, invite_link: None, passing: None, classroom: None, title: None, deadline: None, language: None, type_: None, submitted: None, id: None, max_teams: None, invitations_enabled: None, max_members: None, students_are_repo_admins: None, ) pub const webhook_installation_target_renamed = WebhookInstallationTargetRenamed( enterprise: None, changes: None, target_type: None, repository: None, account: None, organization: None, sender: None, action: None, installation: None, ) pub const nullable_codespace_machine = NullableCodespaceMachine( display_name: None, name: None, cpus: None, operating_system: None, memory_in_bytes: None, prebuild_availability: None, storage_in_bytes: None, ) pub const release_notes_content = ReleaseNotesContent(body: None, name: None) pub const moved_column_in_project_issue_event = MovedColumnInProjectIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, actor: None, performed_via_github_app: None, project_card: None, node_id: None, event: None, id: None, ) pub const webhook_custom_property_deleted = WebhookCustomPropertyDeleted( enterprise: None, organization: None, definition: None, sender: None, action: None, installation: None, ) pub const webhook_check_run_created_form_encoded = WebhookCheckRunCreatedFormEncoded( payload: None, ) pub const rule_suite = RuleSuite( repository_name: None, evaluation_result: None, actor_id: None, after_sha: None, before_sha: None, repository_id: None, ref: None, rule_evaluations: None, actor_name: None, pushed_at: None, id: None, result: None, ) pub const review_custom_gates_state_required = ReviewCustomGatesStateRequired( state: None, environment_name: None, comment: None, ) pub const webhook_issues_locked = WebhookIssuesLocked( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_repository_advisory_published = WebhookRepositoryAdvisoryPublished( enterprise: None, repository: None, repository_advisory: None, organization: None, sender: None, action: None, installation: None, ) pub const release = Release( draft: None, body: None, assets: None, prerelease: None, published_at: None, body_html: None, created_at: None, body_text: None, reactions: None, author: None, name: None, url: None, tag_name: None, zipball_url: None, upload_url: None, assets_url: None, tarball_url: None, node_id: None, discussion_url: None, mentions_count: None, target_commitish: None, id: None, html_url: None, ) pub const repository_rule_workflows = RepositoryRuleWorkflows( parameters: None, type_: None, ) pub const webhook_discussion_comment_edited = WebhookDiscussionCommentEdited( enterprise: None, changes: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, comment: None, ) pub const webhook_installation_unsuspend = WebhookInstallationUnsuspend( enterprise: None, repositories: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_pull_request_review_comment_deleted = WebhookPullRequestReviewCommentDeleted( enterprise: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, comment: None, ) pub const webhook_sponsorship_pending_cancellation = WebhookSponsorshipPendingCancellation( enterprise: None, effective_date: None, repository: None, organization: None, sender: None, sponsorship: None, action: None, installation: None, ) pub const webhook_repository_publicized = WebhookRepositoryPublicized( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const simple_user = SimpleUser( user_view_type: None, gists_url: None, following_url: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, starred_at: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, email: None, ) pub const webhook_milestone_deleted = WebhookMilestoneDeleted( enterprise: None, repository: None, milestone: None, organization: None, sender: None, action: None, installation: None, ) pub const repository_rule_required_status_checks = RepositoryRuleRequiredStatusChecks( parameters: None, type_: None, ) pub const webhook_page_build = WebhookPageBuild( enterprise: None, repository: None, build: None, organization: None, sender: None, installation: None, id: None, ) pub const organization_actions_variable = OrganizationActionsVariable( created_at: None, name: None, value: None, visibility: None, updated_at: None, selected_repositories_url: None, ) pub const deployment_branch_policy_name_pattern = DeploymentBranchPolicyNamePattern( name: None, ) pub const projects_v2_status_update = ProjectsV2StatusUpdate( body: None, created_at: None, start_date: None, creator: None, project_node_id: None, status: None, updated_at: None, node_id: None, id: None, target_date: None, ) pub const webhook_project_card_deleted = WebhookProjectCardDeleted( enterprise: None, repository: None, organization: None, sender: None, project_card: None, action: None, installation: None, ) pub const webhook_issues_opened = WebhookIssuesOpened( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_projects_v2_status_update_edited = WebhookProjectsV2StatusUpdateEdited( changes: None, organization: None, sender: None, action: None, projects_v2_status_update: None, installation: None, ) pub const webhook_team_removed_from_repository = WebhookTeamRemovedFromRepository( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, team: None, ) pub const webhook_member_edited = WebhookMemberEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, member: None, ) pub const webhook_issues_edited = WebhookIssuesEdited( enterprise: None, changes: None, repository: None, organization: None, label: None, sender: None, action: None, issue: None, installation: None, ) pub const review_request_removed_issue_event = ReviewRequestRemovedIssueEvent( commit_id: None, commit_url: None, created_at: None, requested_team: None, url: None, actor: None, performed_via_github_app: None, review_requester: None, requested_reviewer: None, node_id: None, event: None, id: None, ) pub const webhook_project_column_moved = WebhookProjectColumnMoved( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, project_column: None, ) pub const team_membership = TeamMembership(url: None, state: None, role: None) pub const webhook_project_reopened = WebhookProjectReopened( enterprise: None, repository: None, organization: None, sender: None, action: None, project: None, installation: None, ) pub const dependency_graph_diff = [] pub const issue_event = IssueEvent( commit_id: None, commit_url: None, created_at: None, author_association: None, requested_team: None, dismissed_review: None, url: None, assignee: None, milestone: None, label: None, actor: None, performed_via_github_app: None, review_requester: None, project_card: None, requested_reviewer: None, node_id: None, lock_reason: None, issue: None, event: None, id: None, assigner: None, rename: None, ) pub const installation_token = InstallationToken( single_file_paths: None, permissions: None, repositories: None, has_multiple_single_files: None, single_file: None, repository_selection: None, token_: None, expires_at: None, ) pub const check_run = CheckRun( output: None, check_suite: None, app: None, deployment: None, completed_at: None, name: None, head_sha: None, url: None, external_id: None, started_at: None, details_url: None, status: None, node_id: None, id: None, html_url: None, pull_requests: None, conclusion: None, ) pub const package = Package( version_count: None, created_at: None, repository: None, name: None, url: None, visibility: None, owner: None, package_type: None, updated_at: None, id: None, html_url: None, ) pub const nullable_simple_commit = NullableSimpleCommit( message: None, committer: None, author: None, timestamp: None, id: None, tree_id: None, ) pub const collaborator = Collaborator( user_view_type: None, gists_url: None, following_url: None, permissions: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, url: None, starred_url: None, organizations_url: None, repos_url: None, role_name: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, email: None, ) pub const community_profile = CommunityProfile( updated_at: None, files: None, documentation: None, content_reports_enabled: None, description: None, health_percentage: None, ) pub const import_ = Import( push_percent: None, svc_root: None, use_lfs: None, large_files_count: None, vcs: None, message: None, commit_count: None, import_percent: None, project_choices: None, large_files_size: None, failed_step: None, has_large_files: None, url: None, error_message: None, status: None, vcs_url: None, svn_root: None, authors_url: None, authors_count: None, tfvc_project: None, status_text: None, repository_url: None, html_url: None, ) pub const copilot_usage_metrics_day = CopilotUsageMetricsDay( copilot_ide_chat: None, total_active_users: None, copilot_dotcom_pull_requests: None, copilot_dotcom_chat: None, copilot_ide_code_completions: None, date: None, total_engaged_users: None, ) pub const repository_rule_commit_author_email_pattern = RepositoryRuleCommitAuthorEmailPattern( parameters: None, type_: None, ) pub const user_marketplace_purchase = UserMarketplacePurchase( billing_cycle: None, on_free_trial: None, plan: None, free_trial_ends_on: None, account: None, unit_count: None, updated_at: None, next_billing_date: None, ) pub const dependabot_alert_with_repository = DependabotAlertWithRepository( dismissed_comment: None, number: None, dismissed_at: None, created_at: None, repository: None, dependency: None, dismissed_by: None, url: None, state: None, updated_at: None, security_advisory: None, auto_dismissed_at: None, dismissed_reason: None, html_url: None, security_vulnerability: None, fixed_at: None, ) pub const commit_activity = CommitActivity(total: None, week: None, days: None) pub const webhook_merge_group_checks_requested = WebhookMergeGroupChecksRequested( repository: None, organization: None, sender: None, action: None, merge_group: None, installation: None, ) pub const deployment = Deployment( original_environment: None, task: None, created_at: None, creator: None, sha: None, production_environment: None, payload: None, url: None, statuses_url: None, ref: None, environment: None, performed_via_github_app: None, updated_at: None, node_id: None, repository_url: None, id: None, description: None, transient_environment: None, ) pub const webhook_release_edited = WebhookReleaseEdited( enterprise: None, changes: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_discussion_unanswered = WebhookDiscussionUnanswered( discussion: None, repository: None, organization: None, sender: None, old_answer: None, action: None, ) pub const simple_repository = SimpleRepository( hooks_url: None, branches_url: None, forks_url: None, fork: None, private: None, keys_url: None, comments_url: None, trees_url: None, blobs_url: None, teams_url: None, stargazers_url: None, contributors_url: None, tags_url: None, issue_comment_url: None, events_url: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, commits_url: None, subscription_url: None, issue_events_url: None, labels_url: None, url: None, statuses_url: None, archive_url: None, milestones_url: None, owner: None, assignees_url: None, compare_url: None, git_tags_url: None, node_id: None, notifications_url: None, downloads_url: None, subscribers_url: None, id: None, full_name: None, html_url: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, pulls_url: None, deployments_url: None, git_commits_url: None, ) pub const issue_event_rename = IssueEventRename(from: None, to: None) pub const webhook_repository_ruleset_deleted = WebhookRepositoryRulesetDeleted( enterprise: None, repository: None, repository_ruleset: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_pull_request_demilestoned = WebhookPullRequestDemilestoned( enterprise: None, number: None, repository: None, milestone: None, organization: None, sender: None, pull_request: None, action: None, ) pub const secret_scanning_location_pull_request_review = SecretScanningLocationPullRequestReview( pull_request_review_url: None, ) pub const webhook_code_scanning_alert_created = WebhookCodeScanningAlertCreated( enterprise: None, commit_oid: None, repository: None, ref: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhook_workflow_job_waiting = WebhookWorkflowJobWaiting( enterprise: None, deployment: None, repository: None, organization: None, sender: None, action: None, installation: None, workflow_job: None, ) pub const state_change_issue_event = StateChangeIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, state_reason: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, ) pub const code_frequency_stat = [] pub const branch_protection = BranchProtection( allow_fork_syncing: None, enforce_admins: None, enabled: None, block_creations: None, restrictions: None, required_conversation_resolution: None, protection_url: None, name: None, allow_deletions: None, url: None, required_pull_request_reviews: None, allow_force_pushes: None, lock_branch: None, required_status_checks: None, required_linear_history: None, required_signatures: None, ) pub const webhook_release_prereleased = WebhookReleasePrereleased( enterprise: None, release: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const webhook_personal_access_token_request_created = WebhookPersonalAccessTokenRequestCreated( enterprise: None, personal_access_token_request: None, organization: None, sender: None, action: None, installation: None, ) pub const code_scanning_codeql_database = CodeScanningCodeqlDatabase( content_type: None, size: None, commit_oid: None, created_at: None, name: None, uploader: None, url: None, updated_at: None, language: None, id: None, ) pub const webhooks_release = WebhooksRelease( draft: None, body: None, assets: None, prerelease: None, published_at: None, created_at: None, reactions: None, author: None, name: None, url: None, tag_name: None, zipball_url: None, upload_url: None, assets_url: None, tarball_url: None, node_id: None, discussion_url: None, target_commitish: None, id: None, html_url: None, ) pub const webhook_check_run_completed_form_encoded = WebhookCheckRunCompletedFormEncoded( payload: None, ) pub const webhook_issues_unassigned = WebhookIssuesUnassigned( enterprise: None, repository: None, assignee: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const webhook_pull_request_dequeued = WebhookPullRequestDequeued( enterprise: None, reason: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, ) pub const authentication_token = AuthenticationToken( permissions: None, repositories: None, single_file: None, repository_selection: None, token_: None, expires_at: None, ) pub const webhook_pull_request_milestoned = WebhookPullRequestMilestoned( enterprise: None, number: None, repository: None, milestone: None, organization: None, sender: None, pull_request: None, action: None, ) pub const webhook_dependabot_alert_auto_reopened = WebhookDependabotAlertAutoReopened( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const nullable_milestone = NullableMilestone( closed_at: None, number: None, due_on: None, created_at: None, creator: None, closed_issues: None, labels_url: None, url: None, open_issues: None, state: None, updated_at: None, node_id: None, title: None, id: None, html_url: None, description: None, ) pub const snapshot = Snapshot( manifests: None, detector: None, sha: None, metadata: None, scanned: None, ref: None, version: None, job: None, ) pub const webhook_sponsorship_cancelled = WebhookSponsorshipCancelled( enterprise: None, repository: None, organization: None, sender: None, sponsorship: None, action: None, installation: None, ) pub const webhook_pull_request_review_dismissed = WebhookPullRequestReviewDismissed( enterprise: None, repository: None, organization: None, sender: None, pull_request: None, action: None, review: None, installation: None, ) pub const webhook_projects_v2_project_reopened = WebhookProjectsV2ProjectReopened( projects_v2: None, organization: None, sender: None, action: None, installation: None, ) pub const project_card = ProjectCard( project_id: None, archived: None, column_url: None, content_url: None, project_url: None, created_at: None, creator: None, url: None, note: None, column_name: None, updated_at: None, node_id: None, id: None, ) pub const webhook_discussion_labeled = WebhookDiscussionLabeled( enterprise: None, discussion: None, repository: None, organization: None, label: None, sender: None, action: None, installation: None, ) pub const global_advisory = GlobalAdvisory( cwes: None, source_code_location: None, published_at: None, summary: None, cvss_severities: None, nvd_published_at: None, cve_id: None, references: None, identifiers: None, epss: None, ghsa_id: None, withdrawn_at: None, url: None, cvss: None, updated_at: None, credits: None, vulnerabilities: None, type_: None, html_url: None, description: None, severity: None, repository_advisory_url: None, github_reviewed_at: None, ) pub const webhook_member_added = WebhookMemberAdded( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, member: None, ) pub const webhook_code_scanning_alert_closed_by_user = WebhookCodeScanningAlertClosedByUser( enterprise: None, commit_oid: None, repository: None, ref: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const codespaces_secret = CodespacesSecret( created_at: None, name: None, visibility: None, updated_at: None, selected_repositories_url: None, ) pub const webhook_pull_request_labeled = WebhookPullRequestLabeled( enterprise: None, number: None, repository: None, organization: None, label: None, sender: None, pull_request: None, action: None, installation: None, ) pub const issue_event_dismissed_review = IssueEventDismissedReview( review_id: None, state: None, dismissal_commit_id: None, dismissal_message: None, ) pub const webhook_team_edited = WebhookTeamEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, installation: None, team: None, ) pub const repository_rule_code_scanning = RepositoryRuleCodeScanning( parameters: None, type_: None, ) pub const webhook_workflow_job_completed = WebhookWorkflowJobCompleted( enterprise: None, deployment: None, repository: None, organization: None, sender: None, action: None, installation: None, workflow_job: None, ) pub const repository_rule_params_required_reviewer_configuration = RepositoryRuleParamsRequiredReviewerConfiguration( file_patterns: None, reviewer_id: None, minimum_approvals: None, ) pub const team_organization = TeamOrganization( hooks_url: None, has_organization_projects: None, twitter_username: None, members_allowed_repository_creation_type: None, blog: None, default_repository_permission: None, two_factor_requirement_enabled: None, web_commit_signoff_required: None, members_url: None, events_url: None, avatar_url: None, plan: None, login: None, has_repository_projects: None, created_at: None, issues_url: None, total_private_repos: None, owned_private_repos: None, public_repos: None, name: None, members_can_fork_private_repositories: None, collaborators: None, url: None, members_can_create_public_repositories: None, archived_at: None, following: None, repos_url: None, members_can_create_private_repositories: None, public_members_url: None, private_gists: None, followers: None, location: None, members_can_create_pages: None, members_can_create_repositories: None, updated_at: None, node_id: None, billing_email: None, public_gists: None, members_can_create_private_pages: None, type_: None, id: None, html_url: None, members_can_create_public_pages: None, members_can_create_internal_repositories: None, email: None, description: None, company: None, is_verified: None, disk_usage: None, ) pub const locked_issue_event = LockedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, actor: None, performed_via_github_app: None, node_id: None, lock_reason: None, event: None, id: None, ) pub const webhook_member_removed = WebhookMemberRemoved( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, member: None, ) pub const marketplace_purchase = MarketplacePurchase( login: None, organization_billing_email: None, marketplace_pending_change: None, url: None, marketplace_purchase: None, type_: None, id: None, email: None, ) pub const webhook_star_created = WebhookStarCreated( enterprise: None, repository: None, organization: None, starred_at: None, sender: None, action: None, installation: None, ) pub const repository_rule_ruleset_info = RepositoryRuleRulesetInfo( ruleset_source_type: None, ruleset_id: None, ruleset_source: None, ) pub const repository_rule_params_restricted_commits = RepositoryRuleParamsRestrictedCommits( reason: None, oid: None, ) pub const code_scanning_analysis_deletion = CodeScanningAnalysisDeletion( next_analysis_url: None, confirm_delete_url: None, ) pub const hook = Hook( test_url: None, ping_url: None, config: None, deliveries_url: None, active: None, created_at: None, last_response: None, name: None, url: None, updated_at: None, events: None, type_: None, id: None, ) pub const organization_secret_scanning_alert = OrganizationSecretScanningAlert( push_protection_bypass_request_html_url: None, push_protection_bypassed: None, number: None, secret_type: None, created_at: None, push_protection_bypassed_at: None, repository: None, push_protection_bypass_request_reviewer: None, publicly_leaked: None, resolution: None, resolution_comment: None, locations_url: None, push_protection_bypassed_by: None, url: None, secret: None, state: None, validity: None, updated_at: None, multi_repo: None, push_protection_bypass_request_comment: None, resolved_at: None, html_url: None, secret_type_display_name: None, resolved_by: None, ) pub const page_deployment = PageDeployment( status_url: None, preview_url: None, id: None, page_url: None, ) pub const repository_ruleset = RepositoryRuleset( enforcement: None, current_user_can_bypass: None, created_at: None, name: None, target: None, bypass_actors: None, rules: None, updated_at: None, node_id: None, conditions: None, links: None, source: None, id: None, source_type: None, ) pub const gitignore_template = GitignoreTemplate(name: None, source: None) pub const webhook_organization_renamed = WebhookOrganizationRenamed( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, membership: None, installation: None, ) pub const simple_classroom_assignment = SimpleClassroomAssignment( feedback_pull_requests_enabled: None, accepted: None, public_repo: None, slug: None, editor: None, invite_link: None, passing: None, classroom: None, title: None, deadline: None, language: None, type_: None, submitted: None, id: None, max_teams: None, invitations_enabled: None, max_members: None, students_are_repo_admins: None, ) pub const webhooks_workflow = WebhooksWorkflow( path_: None, created_at: None, name: None, url: None, state: None, badge_url: None, updated_at: None, node_id: None, id: None, html_url: None, ) pub const project_collaborator_permission = ProjectCollaboratorPermission( user: None, permission: None, ) pub const team_simple = TeamSimple( ldap_dn: None, privacy: None, members_url: None, name: None, slug: None, url: None, permission: None, node_id: None, repositories_url: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const code_scanning_alert_instance = CodeScanningAlertInstance( commit_sha: None, message: None, classifications: None, state: None, ref: None, environment: None, location: None, html_url: None, analysis_key: None, category: None, ) pub const user_role_assignment = UserRoleAssignment( user_view_type: None, gists_url: None, following_url: None, followers_url: None, subscriptions_url: None, received_events_url: None, events_url: None, avatar_url: None, login: None, name: None, assignment: None, url: None, inherited_from: None, starred_url: None, organizations_url: None, repos_url: None, starred_at: None, gravatar_id: None, site_admin: None, node_id: None, type_: None, id: None, html_url: None, email: None, ) pub const repository_ruleset_conditions = RepositoryRulesetConditions( ref_name: None, ) pub const webhook_secret_scanning_alert_created = WebhookSecretScanningAlertCreated( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const hook_delivery_item = HookDeliveryItem( installation_id: None, redelivery: None, guid: None, delivered_at: None, repository_id: None, status: None, duration: None, action: None, throttled_at: None, status_code: None, event: None, id: None, ) pub const repository_rule_non_fast_forward = RepositoryRuleNonFastForward( type_: None, ) pub const projects_v2_iteration_setting = ProjectsV2IterationSetting( start_date: None, duration: None, title: None, id: None, ) pub const webhook_custom_property_values_updated = WebhookCustomPropertyValuesUpdated( enterprise: None, repository: None, new_property_values: None, organization: None, old_property_values: None, sender: None, action: None, installation: None, ) pub const code_scanning_alert_location = CodeScanningAlertLocation( path_: None, start_line: None, start_column: None, end_line: None, end_column: None, ) pub const code_scanning_alert_rule_summary = CodeScanningAlertRuleSummary( security_severity_level: None, help: None, name: None, full_description: None, help_uri: None, tags: None, id: None, description: None, severity: None, ) pub const webhook_projects_v2_item_created = WebhookProjectsV2ItemCreated( projects_v2_item: None, organization: None, sender: None, action: None, installation: None, ) pub const repository_rule_commit_message_pattern = RepositoryRuleCommitMessagePattern( parameters: None, type_: None, ) pub const nullable_minimal_repository = NullableMinimalRepository( hooks_url: None, default_branch: None, branches_url: None, size: None, forks_url: None, license: None, delete_branch_on_merge: None, forks_count: None, fork: None, git_url: None, archived: None, private: None, security_and_analysis: None, permissions: None, keys_url: None, comments_url: None, topics: None, trees_url: None, has_downloads: None, blobs_url: None, has_discussions: None, teams_url: None, watchers_count: None, stargazers_url: None, stargazers_count: None, contributors_url: None, tags_url: None, web_commit_signoff_required: None, issue_comment_url: None, events_url: None, created_at: None, allow_forking: None, issues_url: None, contents_url: None, merges_url: None, name: None, languages_url: None, temp_clone_token: None, commits_url: None, subscription_url: None, clone_url: None, code_of_conduct: None, homepage: None, issue_events_url: None, mirror_url: None, labels_url: None, url: None, open_issues: None, is_template: None, statuses_url: None, forks: None, archive_url: None, visibility: None, milestones_url: None, owner: None, role_name: None, assignees_url: None, has_wiki: None, compare_url: None, git_tags_url: None, updated_at: None, watchers: None, node_id: None, notifications_url: None, ssh_url: None, language: None, pushed_at: None, downloads_url: None, subscribers_url: None, subscribers_count: None, id: None, svn_url: None, full_name: None, html_url: None, disabled: None, description: None, releases_url: None, git_refs_url: None, collaborators_url: None, pulls_url: None, network_count: None, deployments_url: None, has_projects: None, has_pages: None, open_issues_count: None, git_commits_url: None, has_issues: None, ) pub const root = Root( commit_search_url: None, gists_url: None, starred_gists_url: None, following_url: None, current_user_url: None, organization_url: None, label_search_url: None, keys_url: None, organization_repositories_url: None, feeds_url: None, followers_url: None, hub_url: None, current_user_repositories_url: None, emails_url: None, topic_search_url: None, events_url: None, public_gists_url: None, issues_url: None, authorizations_url: None, code_search_url: None, user_repositories_url: None, rate_limit_url: None, user_search_url: None, repository_search_url: None, starred_url: None, current_user_authorizations_html_url: None, notifications_url: None, repository_url: None, organization_teams_url: None, user_url: None, user_organizations_url: None, emojis_url: None, issue_search_url: None, ) pub const webhook_secret_scanning_alert_reopened = WebhookSecretScanningAlertReopened( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const sigstore_bundle_0 = SigstoreBundle0( verification_material: None, dsse_envelope: None, media_type: None, ) pub const contributor_activity = ContributorActivity( total: None, author: None, weeks: None, ) pub const gist_commit = GistCommit( change_status: None, user: None, url: None, committed_at: None, version: None, ) pub const enterprise = Enterprise( avatar_url: None, created_at: None, name: None, slug: None, website_url: None, updated_at: None, node_id: None, id: None, html_url: None, description: None, ) pub const webhook_issue_comment_deleted = WebhookIssueCommentDeleted( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, comment: None, ) pub const webhooks_milestone_3 = WebhooksMilestone3( closed_at: None, number: None, due_on: None, created_at: None, creator: None, closed_issues: None, labels_url: None, url: None, open_issues: None, state: None, updated_at: None, node_id: None, title: None, id: None, html_url: None, description: None, ) pub const dependabot_alert = DependabotAlert( dismissed_comment: None, number: None, dismissed_at: None, created_at: None, dependency: None, dismissed_by: None, url: None, state: None, updated_at: None, security_advisory: None, auto_dismissed_at: None, dismissed_reason: None, html_url: None, security_vulnerability: None, fixed_at: None, ) pub const code_scanning_default_setup_update = CodeScanningDefaultSetupUpdate( query_suite: None, state: None, languages: None, ) pub const timeline_commit_commented_event = TimelineCommitCommentedEvent( commit_id: None, comments: None, node_id: None, event: None, ) pub const webhook_delete = WebhookDelete( enterprise: None, ref_type: None, repository: None, pusher_type: None, ref: None, organization: None, sender: None, installation: None, ) pub const webhook_deployment_review_rejected = WebhookDeploymentReviewRejected( enterprise: None, approver: None, workflow_job_run: None, workflow_job_runs: None, repository: None, workflow_run: None, reviewers: None, organization: None, sender: None, action: None, installation: None, since: None, comment: None, ) pub const protected_branch = ProtectedBranch( allow_fork_syncing: None, enforce_admins: None, block_creations: None, restrictions: None, required_conversation_resolution: None, allow_deletions: None, url: None, required_pull_request_reviews: None, allow_force_pushes: None, lock_branch: None, required_status_checks: None, required_linear_history: None, required_signatures: None, ) pub const webhooks_answer = WebhooksAnswer( body: None, created_at: None, reactions: None, user: None, child_comment_count: None, author_association: None, discussion_id: None, updated_at: None, node_id: None, repository_url: None, id: None, html_url: None, ) pub const webhook_issue_comment_edited = WebhookIssueCommentEdited( enterprise: None, changes: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, comment: None, ) pub const license = License( body: None, permissions: None, spdx_id: None, name: None, featured: None, url: None, implementation: None, node_id: None, conditions: None, limitations: None, html_url: None, description: None, key: None, ) pub const webhook_dependabot_alert_auto_dismissed = WebhookDependabotAlertAutoDismissed( enterprise: None, repository: None, organization: None, sender: None, action: None, installation: None, alert: None, ) pub const webhooks_team = WebhooksTeam( privacy: None, members_url: None, parent: None, name: None, slug: None, url: None, permission: None, node_id: None, repositories_url: None, deleted: None, id: None, html_url: None, notification_setting: None, description: None, ) pub const user_search_result_item = UserSearchResultItem( user_view_type: None, gists_url: None, text_matches: None, following_url: None, blog: None, followers_url: None, subscriptions_url: None, received_events_url: None, bio: None, events_url: None, avatar_url: None, login: None, created_at: None, public_repos: None, name: None, hireable: None, url: None, starred_url: None, organizations_url: None, following: None, repos_url: None, score: None, followers: None, location: None, gravatar_id: None, site_admin: None, suspended_at: None, updated_at: None, node_id: None, public_gists: None, type_: None, id: None, html_url: None, email: None, company: None, ) pub const webhook_discussion_unpinned = WebhookDiscussionUnpinned( enterprise: None, discussion: None, repository: None, organization: None, sender: None, action: None, installation: None, ) pub const unassigned_issue_event = UnassignedIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, assignee: None, actor: None, performed_via_github_app: None, node_id: None, event: None, id: None, assigner: None, ) pub const nullable_organization_simple = NullableOrganizationSimple( hooks_url: None, members_url: None, events_url: None, avatar_url: None, login: None, issues_url: None, url: None, repos_url: None, public_members_url: None, node_id: None, id: None, description: None, ) pub const repository_subscription = RepositorySubscription( reason: None, created_at: None, url: None, ignored: None, subscribed: None, repository_url: None, ) pub const webhooks_changes = WebhooksChanges(body: None) pub const webhook_pull_request_synchronize = WebhookPullRequestSynchronize( enterprise: None, number: None, repository: None, organization: None, sender: None, pull_request: None, action: None, installation: None, after: None, before: None, ) pub const webhook_merge_group_destroyed = WebhookMergeGroupDestroyed( reason: None, repository: None, organization: None, sender: None, action: None, merge_group: None, installation: None, ) pub const pages_health_check = PagesHealthCheck(domain: None, alt_domain: None) pub const webhook_check_run_requested_action_form_encoded = WebhookCheckRunRequestedActionFormEncoded( payload: None, ) pub const actions_secret = ActionsSecret( created_at: None, name: None, updated_at: None, ) pub const converted_note_to_issue_issue_event = ConvertedNoteToIssueIssueEvent( commit_id: None, commit_url: None, created_at: None, url: None, actor: None, performed_via_github_app: None, project_card: None, node_id: None, event: None, id: None, ) pub const webhook_issues_unlocked = WebhookIssuesUnlocked( enterprise: None, repository: None, organization: None, sender: None, action: None, issue: None, installation: None, ) pub const code_scanning_alert = CodeScanningAlert( dismissed_comment: None, number: None, dismissed_at: None, created_at: None, dismissed_by: None, instances_url: None, url: None, state: None, updated_at: None, tool: None, dismissed_reason: None, html_url: None, rule: None, most_recent_instance: None, fixed_at: None, ) pub const timeline_comment_event = TimelineCommentEvent( body: None, body_html: None, issue_url: None, created_at: None, body_text: None, reactions: None, user: None, author_association: None, url: None, actor: None, performed_via_github_app: None, updated_at: None, node_id: None, event: None, id: None, html_url: None, ) pub const code_scanning_variant_analysis = CodeScanningVariantAnalysis( query_pack_url: None, completed_at: None, created_at: None, actions_workflow_run_id: None, query_language: None, status: None, actor: None, controller_repo: None, skipped_repositories: None, updated_at: None, scanned_repositories: None, failure_reason: None, id: None, ) pub const key_simple = KeySimple(id: None, key: None) pub const webhook_marketplace_purchase_changed = WebhookMarketplacePurchaseChanged( enterprise: None, effective_date: None, repository: None, organization: None, marketplace_purchase: None, sender: None, action: None, installation: None, previous_marketplace_purchase: None, ) pub const webhook_projects_v2_project_created = WebhookProjectsV2ProjectCreated( projects_v2: None, organization: None, sender: None, action: None, installation: None, ) pub const pull_request_review_request = PullRequestReviewRequest( users: None, teams: None, ) pub const simple_classroom_user = SimpleClassroomUser( avatar_url: None, login: None, id: None, html_url: None, ) pub const combined_commit_status = CombinedCommitStatus( statuses: None, commit_url: None, repository: None, sha: None, url: None, state: None, total_count: None, ) pub const interaction_limit = InteractionLimit(expiry: None, limit: None) pub const webhook_project_card_moved = WebhookProjectCardMoved( enterprise: None, changes: None, repository: None, organization: None, sender: None, project_card: None, action: None, installation: None, ) pub const thread_subscription = ThreadSubscription( reason: None, created_at: None, url: None, ignored: None, subscribed: None, thread_url: None, repository_url: None, ) pub fn team_full_to_json(data: TeamFull) { json.object([ #("ldap_dn", json.nullable(data.ldap_dn, json.string)), #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("members_count", json.nullable(data.members_count, json.int)), #("parent", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("repos_count", json.nullable(data.repos_count, json.int)), #("organization", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn team_full_decoder() { use ldap_dn <- zero.optional_field( "ldap_dn", None, zero.optional(zero.string), ) use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use members_count <- zero.optional_field( "members_count", None, zero.optional(zero.int), ) use parent <- zero.optional_field( "parent", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use repos_count <- zero.optional_field( "repos_count", None, zero.optional(zero.int), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(TeamFull( ldap_dn: ldap_dn, privacy: privacy, members_url: members_url, members_count: members_count, parent: parent, created_at: created_at, name: name, slug: slug, url: url, permission: permission, repos_count: repos_count, organization: organization, updated_at: updated_at, node_id: node_id, repositories_url: repositories_url, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn projects_v2_single_select_option_to_json( data: ProjectsV2SingleSelectOption, ) { json.object([ #("color", json.nullable(data.color, json.string)), #("name", json.nullable(data.name, json.string)), #("id", json.nullable(data.id, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn projects_v2_single_select_option_decoder() { use color <- zero.optional_field("color", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(ProjectsV2SingleSelectOption( color: color, name: name, id: id, description: description, )) } pub fn repository_webhooks_to_json(data: RepositoryWebhooks) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("custom_properties", json.null()), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("allow_update_branch", json.nullable(data.allow_update_branch, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #( "squash_merge_commit_message", json.nullable(data.squash_merge_commit_message, json.string), ), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #( "merge_commit_message", json.nullable(data.merge_commit_message, json.string), ), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("template_repository", json.null()), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #( "use_squash_pr_title_as_default", json.nullable(data.use_squash_pr_title_as_default, json.bool), ), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("organization", json.null()), #("owner", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #( "squash_merge_commit_title", json.nullable(data.squash_merge_commit_title, json.string), ), #("merge_commit_title", json.nullable(data.merge_commit_title, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "anonymous_access_enabled", json.nullable(data.anonymous_access_enabled, json.bool), ), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("subscribers_count", json.nullable(data.subscribers_count, json.int)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("network_count", json.nullable(data.network_count, json.int)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn repository_webhooks_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use custom_properties <- zero.optional_field( "custom_properties", None, zero.optional(zero.success(Nil)), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use allow_update_branch <- zero.optional_field( "allow_update_branch", None, zero.optional(zero.bool), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use squash_merge_commit_message <- zero.optional_field( "squash_merge_commit_message", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use merge_commit_message <- zero.optional_field( "merge_commit_message", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use template_repository <- zero.optional_field( "template_repository", None, zero.optional(zero.success(Nil)), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use use_squash_pr_title_as_default <- zero.optional_field( "use_squash_pr_title_as_default", None, zero.optional(zero.bool), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use squash_merge_commit_title <- zero.optional_field( "squash_merge_commit_title", None, zero.optional(zero.string), ) use merge_commit_title <- zero.optional_field( "merge_commit_title", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use anonymous_access_enabled <- zero.optional_field( "anonymous_access_enabled", None, zero.optional(zero.bool), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use subscribers_count <- zero.optional_field( "subscribers_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use network_count <- zero.optional_field( "network_count", None, zero.optional(zero.int), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(RepositoryWebhooks( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, custom_properties: custom_properties, forks_count: forks_count, fork: fork, allow_update_branch: allow_update_branch, git_url: git_url, archived: archived, private: private, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, squash_merge_commit_message: squash_merge_commit_message, has_discussions: has_discussions, teams_url: teams_url, merge_commit_message: merge_commit_message, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, allow_squash_merge: allow_squash_merge, homepage: homepage, template_repository: template_repository, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, use_squash_pr_title_as_default: use_squash_pr_title_as_default, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, organization: organization, owner: owner, starred_at: starred_at, allow_merge_commit: allow_merge_commit, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, squash_merge_commit_title: squash_merge_commit_title, merge_commit_title: merge_commit_title, updated_at: updated_at, watchers: watchers, node_id: node_id, anonymous_access_enabled: anonymous_access_enabled, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, subscribers_count: subscribers_count, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, network_count: network_count, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhook_deployment_protection_rule_requested_to_json( data: WebhookDeploymentProtectionRuleRequested, ) { json.object([ #("deployment", json.null()), #("repository", json.null()), #( "deployment_callback_url", json.nullable(data.deployment_callback_url, json.string), ), #("organization", json.null()), #("environment", json.nullable(data.environment, json.string)), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("event", json.nullable(data.event, json.string)), #("pull_requests", json.null()), ]) } pub fn webhook_deployment_protection_rule_requested_decoder() { use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use deployment_callback_url <- zero.optional_field( "deployment_callback_url", None, zero.optional(zero.string), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDeploymentProtectionRuleRequested( deployment: deployment, repository: repository, deployment_callback_url: deployment_callback_url, organization: organization, environment: environment, sender: sender, action: action, installation: installation, event: event, pull_requests: pull_requests, )) } pub fn empty_object_to_json(data: EmptyObject) { json.object([]) } pub fn empty_object_decoder() { zero.success(EmptyObject) } pub fn workflow_to_json(data: Workflow) { json.object([ #("path", json.nullable(data.path_, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("badge_url", json.nullable(data.badge_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("deleted_at", json.nullable(data.deleted_at, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn workflow_decoder() { use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use badge_url <- zero.optional_field( "badge_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use deleted_at <- zero.optional_field( "deleted_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(Workflow( path_: path_, created_at: created_at, name: name, url: url, state: state, badge_url: badge_url, updated_at: updated_at, node_id: node_id, deleted_at: deleted_at, id: id, html_url: html_url, )) } pub fn repository_rule_to_json(data: RepositoryRule) { json.object([]) } pub fn repository_rule_decoder() { zero.success(RepositoryRule) } pub fn personal_access_token_request_to_json(data: PersonalAccessTokenRequest) { json.object([ #("token_id", json.nullable(data.token_id, json.int)), #("permissions_upgraded", json.null()), #("token_expires_at", json.nullable(data.token_expires_at, json.string)), #("permissions_added", json.null()), #("repositories", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("token_name", json.nullable(data.token_name, json.string)), #("token_last_used_at", json.nullable(data.token_last_used_at, json.string)), #("owner", json.null()), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("permissions_result", json.null()), #("repository_count", json.nullable(data.repository_count, json.int)), #("id", json.nullable(data.id, json.int)), #("token_expired", json.nullable(data.token_expired, json.bool)), ]) } pub fn personal_access_token_request_decoder() { use token_id <- zero.optional_field("token_id", None, zero.optional(zero.int)) use permissions_upgraded <- zero.optional_field( "permissions_upgraded", None, zero.optional(zero.success(Nil)), ) use token_expires_at <- zero.optional_field( "token_expires_at", None, zero.optional(zero.string), ) use permissions_added <- zero.optional_field( "permissions_added", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use token_name <- zero.optional_field( "token_name", None, zero.optional(zero.string), ) use token_last_used_at <- zero.optional_field( "token_last_used_at", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use permissions_result <- zero.optional_field( "permissions_result", None, zero.optional(zero.success(Nil)), ) use repository_count <- zero.optional_field( "repository_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use token_expired <- zero.optional_field( "token_expired", None, zero.optional(zero.bool), ) zero.success(PersonalAccessTokenRequest( token_id: token_id, permissions_upgraded: permissions_upgraded, token_expires_at: token_expires_at, permissions_added: permissions_added, repositories: repositories, created_at: created_at, token_name: token_name, token_last_used_at: token_last_used_at, owner: owner, repository_selection: repository_selection, permissions_result: permissions_result, repository_count: repository_count, id: id, token_expired: token_expired, )) } pub fn security_and_analysis_to_json(data: SecurityAndAnalysis) { json.object([ #("secret_scanning", json.null()), #("secret_scanning_non_provider_patterns", json.null()), #("secret_scanning_ai_detection", json.null()), #("dependabot_security_updates", json.null()), #("advanced_security", json.null()), #("secret_scanning_push_protection", json.null()), ]) } pub fn security_and_analysis_decoder() { use secret_scanning <- zero.optional_field( "secret_scanning", None, zero.optional(zero.success(Nil)), ) use secret_scanning_non_provider_patterns <- zero.optional_field( "secret_scanning_non_provider_patterns", None, zero.optional(zero.success(Nil)), ) use secret_scanning_ai_detection <- zero.optional_field( "secret_scanning_ai_detection", None, zero.optional(zero.success(Nil)), ) use dependabot_security_updates <- zero.optional_field( "dependabot_security_updates", None, zero.optional(zero.success(Nil)), ) use advanced_security <- zero.optional_field( "advanced_security", None, zero.optional(zero.success(Nil)), ) use secret_scanning_push_protection <- zero.optional_field( "secret_scanning_push_protection", None, zero.optional(zero.success(Nil)), ) zero.success(SecurityAndAnalysis( secret_scanning: secret_scanning, secret_scanning_non_provider_patterns: secret_scanning_non_provider_patterns, secret_scanning_ai_detection: secret_scanning_ai_detection, dependabot_security_updates: dependabot_security_updates, advanced_security: advanced_security, secret_scanning_push_protection: secret_scanning_push_protection, )) } pub fn api_insights_subject_stats_decoder() { panic as "unsupported schema" } pub fn code_scanning_alert_state_query_decoder() { zero.string } pub fn webhook_repository_privatized_to_json(data: WebhookRepositoryPrivatized) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_privatized_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryPrivatized( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_personal_access_token_request_denied_to_json( data: WebhookPersonalAccessTokenRequestDenied, ) { json.object([ #("enterprise", json.null()), #("personal_access_token_request", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_personal_access_token_request_denied_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use personal_access_token_request <- zero.optional_field( "personal_access_token_request", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPersonalAccessTokenRequestDenied( enterprise: enterprise, personal_access_token_request: personal_access_token_request, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn author_association_decoder() { zero.string } pub fn timeline_cross_referenced_event_to_json( data: TimelineCrossReferencedEvent, ) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("actor", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("event", json.nullable(data.event, json.string)), #("source", json.null()), ]) } pub fn timeline_cross_referenced_event_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use source <- zero.optional_field( "source", None, zero.optional(zero.success(Nil)), ) zero.success(TimelineCrossReferencedEvent( created_at: created_at, actor: actor, updated_at: updated_at, event: event, source: source, )) } pub fn git_tag_to_json(data: GitTag) { json.object([ #("message", json.nullable(data.message, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("tagger", json.null()), #("tag", json.nullable(data.tag, json.string)), #("verification", json.null()), #("object", json.null()), ]) } pub fn git_tag_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use tagger <- zero.optional_field( "tagger", None, zero.optional(zero.success(Nil)), ) use tag <- zero.optional_field("tag", None, zero.optional(zero.string)) use verification <- zero.optional_field( "verification", None, zero.optional(zero.success(Nil)), ) use object <- zero.optional_field( "object", None, zero.optional(zero.success(Nil)), ) zero.success(GitTag( message: message, sha: sha, url: url, node_id: node_id, tagger: tagger, tag: tag, verification: verification, object: object, )) } pub fn actions_billing_usage_to_json(data: ActionsBillingUsage) { json.object([ #( "total_paid_minutes_used", json.nullable(data.total_paid_minutes_used, json.int), ), #("total_minutes_used", json.nullable(data.total_minutes_used, json.int)), #("included_minutes", json.nullable(data.included_minutes, json.int)), #("minutes_used_breakdown", json.null()), ]) } pub fn actions_billing_usage_decoder() { use total_paid_minutes_used <- zero.optional_field( "total_paid_minutes_used", None, zero.optional(zero.int), ) use total_minutes_used <- zero.optional_field( "total_minutes_used", None, zero.optional(zero.int), ) use included_minutes <- zero.optional_field( "included_minutes", None, zero.optional(zero.int), ) use minutes_used_breakdown <- zero.optional_field( "minutes_used_breakdown", None, zero.optional(zero.success(Nil)), ) zero.success(ActionsBillingUsage( total_paid_minutes_used: total_paid_minutes_used, total_minutes_used: total_minutes_used, included_minutes: included_minutes, minutes_used_breakdown: minutes_used_breakdown, )) } pub fn webhook_public_to_json(data: WebhookPublic) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), ]) } pub fn webhook_public_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPublic( enterprise: enterprise, repository: repository, organization: organization, sender: sender, installation: installation, )) } pub fn org_membership_to_json(data: OrgMembership) { json.object([ #("organization_url", json.nullable(data.organization_url, json.string)), #("permissions", json.null()), #("user", json.null()), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("organization", json.null()), #("role", json.nullable(data.role, json.string)), ]) } pub fn org_membership_decoder() { use organization_url <- zero.optional_field( "organization_url", None, zero.optional(zero.string), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use role <- zero.optional_field("role", None, zero.optional(zero.string)) zero.success(OrgMembership( organization_url: organization_url, permissions: permissions, user: user, url: url, state: state, organization: organization, role: role, )) } pub fn key_to_json(data: Key) { json.object([ #("verified", json.nullable(data.verified, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("read_only", json.nullable(data.read_only, json.bool)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("key", json.nullable(data.key, json.string)), ]) } pub fn key_decoder() { use verified <- zero.optional_field( "verified", None, zero.optional(zero.bool), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use read_only <- zero.optional_field( "read_only", None, zero.optional(zero.bool), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(Key( verified: verified, created_at: created_at, url: url, read_only: read_only, title: title, id: id, key: key, )) } pub fn commit_comparison_to_json(data: CommitComparison) { json.object([ #("total_commits", json.nullable(data.total_commits, json.int)), #("base_commit", json.null()), #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), #("diff_url", json.nullable(data.diff_url, json.string)), #("ahead_by", json.nullable(data.ahead_by, json.int)), #("files", json.null()), #("patch_url", json.nullable(data.patch_url, json.string)), #("permalink_url", json.nullable(data.permalink_url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("behind_by", json.nullable(data.behind_by, json.int)), #("commits", json.null()), #("merge_base_commit", json.null()), ]) } pub fn commit_comparison_decoder() { use total_commits <- zero.optional_field( "total_commits", None, zero.optional(zero.int), ) use base_commit <- zero.optional_field( "base_commit", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use diff_url <- zero.optional_field( "diff_url", None, zero.optional(zero.string), ) use ahead_by <- zero.optional_field("ahead_by", None, zero.optional(zero.int)) use files <- zero.optional_field( "files", None, zero.optional(zero.success(Nil)), ) use patch_url <- zero.optional_field( "patch_url", None, zero.optional(zero.string), ) use permalink_url <- zero.optional_field( "permalink_url", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use behind_by <- zero.optional_field( "behind_by", None, zero.optional(zero.int), ) use commits <- zero.optional_field( "commits", None, zero.optional(zero.success(Nil)), ) use merge_base_commit <- zero.optional_field( "merge_base_commit", None, zero.optional(zero.success(Nil)), ) zero.success(CommitComparison( total_commits: total_commits, base_commit: base_commit, url: url, status: status, diff_url: diff_url, ahead_by: ahead_by, files: files, patch_url: patch_url, permalink_url: permalink_url, html_url: html_url, behind_by: behind_by, commits: commits, merge_base_commit: merge_base_commit, )) } pub fn renamed_issue_event_to_json(data: RenamedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), #("rename", json.null()), ]) } pub fn renamed_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use rename <- zero.optional_field( "rename", None, zero.optional(zero.success(Nil)), ) zero.success(RenamedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, rename: rename, )) } pub fn webhook_code_scanning_alert_reopened_to_json( data: WebhookCodeScanningAlertReopened, ) { json.object([ #("enterprise", json.null()), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_code_scanning_alert_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCodeScanningAlertReopened( enterprise: enterprise, commit_oid: commit_oid, repository: repository, ref: ref, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn code_scanning_variant_analysis_status_decoder() { zero.string } pub fn webhook_installation_suspend_to_json(data: WebhookInstallationSuspend) { json.object([ #("enterprise", json.null()), #("repositories", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_installation_suspend_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationSuspend( enterprise: enterprise, repositories: repositories, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_pull_request_auto_merge_disabled_to_json( data: WebhookPullRequestAutoMergeDisabled, ) { json.object([ #("enterprise", json.null()), #("reason", json.nullable(data.reason, json.string)), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_auto_merge_disabled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestAutoMergeDisabled( enterprise: enterprise, reason: reason, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhooks_project_column_to_json(data: WebhooksProjectColumn) { json.object([ #("project_url", json.nullable(data.project_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("cards_url", json.nullable(data.cards_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("after_id", json.nullable(data.after_id, json.int)), ]) } pub fn webhooks_project_column_decoder() { use project_url <- zero.optional_field( "project_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use cards_url <- zero.optional_field( "cards_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use after_id <- zero.optional_field("after_id", None, zero.optional(zero.int)) zero.success(WebhooksProjectColumn( project_url: project_url, created_at: created_at, name: name, url: url, cards_url: cards_url, updated_at: updated_at, node_id: node_id, id: id, after_id: after_id, )) } pub fn webhook_milestone_closed_to_json(data: WebhookMilestoneClosed) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_milestone_closed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMilestoneClosed( enterprise: enterprise, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_membership_added_to_json(data: WebhookMembershipAdded) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("scope", json.nullable(data.scope, json.string)), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("member", json.null()), #("team", json.null()), ]) } pub fn webhook_membership_added_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use scope <- zero.optional_field("scope", None, zero.optional(zero.string)) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use member <- zero.optional_field( "member", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMembershipAdded( enterprise: enterprise, repository: repository, organization: organization, scope: scope, sender: sender, action: action, installation: installation, member: member, team: team, )) } pub fn webhook_membership_removed_to_json(data: WebhookMembershipRemoved) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("scope", json.nullable(data.scope, json.string)), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("member", json.null()), #("team", json.null()), ]) } pub fn webhook_membership_removed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use scope <- zero.optional_field("scope", None, zero.optional(zero.string)) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use member <- zero.optional_field( "member", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMembershipRemoved( enterprise: enterprise, repository: repository, organization: organization, scope: scope, sender: sender, action: action, installation: installation, member: member, team: team, )) } pub fn webhooks_rule_to_json(data: WebhooksRule) { json.object([ #( "signature_requirement_enforcement_level", json.nullable(data.signature_requirement_enforcement_level, json.string), ), #( "strict_required_status_checks_policy", json.nullable(data.strict_required_status_checks_policy, json.bool), ), #( "linear_history_requirement_enforcement_level", json.nullable( data.linear_history_requirement_enforcement_level, json.string, ), ), #( "authorized_actors_only", json.nullable(data.authorized_actors_only, json.bool), ), #("created_at", json.nullable(data.created_at, json.string)), #("create_protected", json.nullable(data.create_protected, json.bool)), #("name", json.nullable(data.name, json.string)), #( "required_conversation_resolution_level", json.nullable(data.required_conversation_resolution_level, json.string), ), #( "merge_queue_enforcement_level", json.nullable(data.merge_queue_enforcement_level, json.string), ), #("repository_id", json.nullable(data.repository_id, json.int)), #( "ignore_approvals_from_contributors", json.nullable(data.ignore_approvals_from_contributors, json.bool), ), #("admin_enforced", json.nullable(data.admin_enforced, json.bool)), #( "required_deployments_enforcement_level", json.nullable(data.required_deployments_enforcement_level, json.string), ), #( "allow_deletions_enforcement_level", json.nullable(data.allow_deletions_enforcement_level, json.string), ), #( "lock_allows_fork_sync", json.nullable(data.lock_allows_fork_sync, json.bool), ), #("updated_at", json.nullable(data.updated_at, json.string)), #( "pull_request_reviews_enforcement_level", json.nullable(data.pull_request_reviews_enforcement_level, json.string), ), #("required_status_checks", json.null()), #( "allow_force_pushes_enforcement_level", json.nullable(data.allow_force_pushes_enforcement_level, json.string), ), #( "require_last_push_approval", json.nullable(data.require_last_push_approval, json.bool), ), #("authorized_actor_names", json.null()), #( "dismiss_stale_reviews_on_push", json.nullable(data.dismiss_stale_reviews_on_push, json.bool), ), #("id", json.nullable(data.id, json.int)), #( "lock_branch_enforcement_level", json.nullable(data.lock_branch_enforcement_level, json.string), ), #( "require_code_owner_review", json.nullable(data.require_code_owner_review, json.bool), ), #( "required_approving_review_count", json.nullable(data.required_approving_review_count, json.int), ), #( "required_status_checks_enforcement_level", json.nullable(data.required_status_checks_enforcement_level, json.string), ), #( "authorized_dismissal_actors_only", json.nullable(data.authorized_dismissal_actors_only, json.bool), ), ]) } pub fn webhooks_rule_decoder() { use signature_requirement_enforcement_level <- zero.optional_field( "signature_requirement_enforcement_level", None, zero.optional(zero.string), ) use strict_required_status_checks_policy <- zero.optional_field( "strict_required_status_checks_policy", None, zero.optional(zero.bool), ) use linear_history_requirement_enforcement_level <- zero.optional_field( "linear_history_requirement_enforcement_level", None, zero.optional(zero.string), ) use authorized_actors_only <- zero.optional_field( "authorized_actors_only", None, zero.optional(zero.bool), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use create_protected <- zero.optional_field( "create_protected", None, zero.optional(zero.bool), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use required_conversation_resolution_level <- zero.optional_field( "required_conversation_resolution_level", None, zero.optional(zero.string), ) use merge_queue_enforcement_level <- zero.optional_field( "merge_queue_enforcement_level", None, zero.optional(zero.string), ) use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.int), ) use ignore_approvals_from_contributors <- zero.optional_field( "ignore_approvals_from_contributors", None, zero.optional(zero.bool), ) use admin_enforced <- zero.optional_field( "admin_enforced", None, zero.optional(zero.bool), ) use required_deployments_enforcement_level <- zero.optional_field( "required_deployments_enforcement_level", None, zero.optional(zero.string), ) use allow_deletions_enforcement_level <- zero.optional_field( "allow_deletions_enforcement_level", None, zero.optional(zero.string), ) use lock_allows_fork_sync <- zero.optional_field( "lock_allows_fork_sync", None, zero.optional(zero.bool), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use pull_request_reviews_enforcement_level <- zero.optional_field( "pull_request_reviews_enforcement_level", None, zero.optional(zero.string), ) use required_status_checks <- zero.optional_field( "required_status_checks", None, zero.optional(zero.list(zero.string)), ) use allow_force_pushes_enforcement_level <- zero.optional_field( "allow_force_pushes_enforcement_level", None, zero.optional(zero.string), ) use require_last_push_approval <- zero.optional_field( "require_last_push_approval", None, zero.optional(zero.bool), ) use authorized_actor_names <- zero.optional_field( "authorized_actor_names", None, zero.optional(zero.list(zero.string)), ) use dismiss_stale_reviews_on_push <- zero.optional_field( "dismiss_stale_reviews_on_push", None, zero.optional(zero.bool), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use lock_branch_enforcement_level <- zero.optional_field( "lock_branch_enforcement_level", None, zero.optional(zero.string), ) use require_code_owner_review <- zero.optional_field( "require_code_owner_review", None, zero.optional(zero.bool), ) use required_approving_review_count <- zero.optional_field( "required_approving_review_count", None, zero.optional(zero.int), ) use required_status_checks_enforcement_level <- zero.optional_field( "required_status_checks_enforcement_level", None, zero.optional(zero.string), ) use authorized_dismissal_actors_only <- zero.optional_field( "authorized_dismissal_actors_only", None, zero.optional(zero.bool), ) zero.success(WebhooksRule( signature_requirement_enforcement_level: signature_requirement_enforcement_level, strict_required_status_checks_policy: strict_required_status_checks_policy, linear_history_requirement_enforcement_level: linear_history_requirement_enforcement_level, authorized_actors_only: authorized_actors_only, created_at: created_at, create_protected: create_protected, name: name, required_conversation_resolution_level: required_conversation_resolution_level, merge_queue_enforcement_level: merge_queue_enforcement_level, repository_id: repository_id, ignore_approvals_from_contributors: ignore_approvals_from_contributors, admin_enforced: admin_enforced, required_deployments_enforcement_level: required_deployments_enforcement_level, allow_deletions_enforcement_level: allow_deletions_enforcement_level, lock_allows_fork_sync: lock_allows_fork_sync, updated_at: updated_at, pull_request_reviews_enforcement_level: pull_request_reviews_enforcement_level, required_status_checks: required_status_checks, allow_force_pushes_enforcement_level: allow_force_pushes_enforcement_level, require_last_push_approval: require_last_push_approval, authorized_actor_names: authorized_actor_names, dismiss_stale_reviews_on_push: dismiss_stale_reviews_on_push, id: id, lock_branch_enforcement_level: lock_branch_enforcement_level, require_code_owner_review: require_code_owner_review, required_approving_review_count: required_approving_review_count, required_status_checks_enforcement_level: required_status_checks_enforcement_level, authorized_dismissal_actors_only: authorized_dismissal_actors_only, )) } pub fn webhook_project_card_converted_to_json(data: WebhookProjectCardConverted) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("project_card", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_project_card_converted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectCardConverted( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, project_card: project_card, action: action, installation: installation, )) } pub fn webhook_deployment_status_created_to_json( data: WebhookDeploymentStatusCreated, ) { json.object([ #("enterprise", json.null()), #("deployment", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("deployment_status", json.null()), #("organization", json.null()), #("check_run", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow", json.null()), ]) } pub fn webhook_deployment_status_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use deployment_status <- zero.optional_field( "deployment_status", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use check_run <- zero.optional_field( "check_run", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow <- zero.optional_field( "workflow", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDeploymentStatusCreated( enterprise: enterprise, deployment: deployment, repository: repository, workflow_run: workflow_run, deployment_status: deployment_status, organization: organization, check_run: check_run, sender: sender, action: action, installation: installation, workflow: workflow, )) } pub fn simple_classroom_repository_to_json(data: SimpleClassroomRepository) { json.object([ #("default_branch", json.nullable(data.default_branch, json.string)), #("private", json.nullable(data.private, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn simple_classroom_repository_decoder() { use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(SimpleClassroomRepository( default_branch: default_branch, private: private, node_id: node_id, id: id, full_name: full_name, html_url: html_url, )) } pub fn webhook_team_deleted_to_json(data: WebhookTeamDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("team", json.null()), ]) } pub fn webhook_team_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookTeamDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, team: team, )) } pub fn base_gist_to_json(data: BaseGist) { json.object([ #("forks_url", json.nullable(data.forks_url, json.string)), #("git_pull_url", json.nullable(data.git_pull_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("public", json.nullable(data.public, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("user", json.null()), #("commits_url", json.nullable(data.commits_url, json.string)), #("url", json.nullable(data.url, json.string)), #("owner", json.null()), #("comments", json.nullable(data.comments, json.int)), #("git_push_url", json.nullable(data.git_push_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("files", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), #("truncated", json.nullable(data.truncated, json.bool)), ]) } pub fn base_gist_decoder() { use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use git_pull_url <- zero.optional_field( "git_pull_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use public <- zero.optional_field("public", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use git_push_url <- zero.optional_field( "git_push_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use files <- zero.optional_field( "files", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use truncated <- zero.optional_field( "truncated", None, zero.optional(zero.bool), ) zero.success(BaseGist( forks_url: forks_url, git_pull_url: git_pull_url, comments_url: comments_url, public: public, created_at: created_at, user: user, commits_url: commits_url, url: url, owner: owner, comments: comments, git_push_url: git_push_url, updated_at: updated_at, files: files, node_id: node_id, id: id, html_url: html_url, description: description, truncated: truncated, )) } pub fn webhook_secret_scanning_alert_resolved_to_json( data: WebhookSecretScanningAlertResolved, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_secret_scanning_alert_resolved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecretScanningAlertResolved( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn repository_rule_detailed_to_json(data: RepositoryRuleDetailed) { json.object([]) } pub fn repository_rule_detailed_decoder() { zero.success(RepositoryRuleDetailed) } pub fn webhook_pull_request_assigned_to_json(data: WebhookPullRequestAssigned) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("assignee", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_assigned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestAssigned( enterprise: enterprise, number: number, repository: repository, assignee: assignee, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_package_updated_to_json(data: WebhookPackageUpdated) { json.object([ #("enterprise", json.null()), #("package", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_package_updated_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use package <- zero.optional_field( "package", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPackageUpdated( enterprise: enterprise, package: package, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_security_advisory_updated_to_json( data: WebhookSecurityAdvisoryUpdated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("security_advisory", json.null()), #("installation", json.null()), ]) } pub fn webhook_security_advisory_updated_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use security_advisory <- zero.optional_field( "security_advisory", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecurityAdvisoryUpdated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, security_advisory: security_advisory, installation: installation, )) } pub fn api_insights_time_stats_decoder() { panic as "unsupported schema" } pub fn code_search_result_item_to_json(data: CodeSearchResultItem) { json.object([ #("last_modified_at", json.nullable(data.last_modified_at, json.string)), #("text_matches", json.null()), #("git_url", json.nullable(data.git_url, json.string)), #("file_size", json.nullable(data.file_size, json.int)), #("path", json.nullable(data.path_, json.string)), #("repository", json.null()), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("score", json.nullable(data.score, json.float)), #("language", json.nullable(data.language, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("line_numbers", json.null()), ]) } pub fn code_search_result_item_decoder() { use last_modified_at <- zero.optional_field( "last_modified_at", None, zero.optional(zero.string), ) use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use file_size <- zero.optional_field( "file_size", None, zero.optional(zero.int), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use line_numbers <- zero.optional_field( "line_numbers", None, zero.optional(zero.list(zero.string)), ) zero.success(CodeSearchResultItem( last_modified_at: last_modified_at, text_matches: text_matches, git_url: git_url, file_size: file_size, path_: path_, repository: repository, name: name, sha: sha, url: url, score: score, language: language, html_url: html_url, line_numbers: line_numbers, )) } pub fn feed_to_json(data: Feed) { json.object([ #("current_user_url", json.nullable(data.current_user_url, json.string)), #("current_user_organization_urls", json.null()), #( "repository_discussions_url", json.nullable(data.repository_discussions_url, json.string), ), #( "security_advisories_url", json.nullable(data.security_advisories_url, json.string), ), #( "current_user_public_url", json.nullable(data.current_user_public_url, json.string), ), #( "current_user_organization_url", json.nullable(data.current_user_organization_url, json.string), ), #("timeline_url", json.nullable(data.timeline_url, json.string)), #( "current_user_actor_url", json.nullable(data.current_user_actor_url, json.string), ), #( "repository_discussions_category_url", json.nullable(data.repository_discussions_category_url, json.string), ), #("_links", json.null()), #("user_url", json.nullable(data.user_url, json.string)), ]) } pub fn feed_decoder() { use current_user_url <- zero.optional_field( "current_user_url", None, zero.optional(zero.string), ) use current_user_organization_urls <- zero.optional_field( "current_user_organization_urls", None, zero.optional(zero.list(zero.string)), ) use repository_discussions_url <- zero.optional_field( "repository_discussions_url", None, zero.optional(zero.string), ) use security_advisories_url <- zero.optional_field( "security_advisories_url", None, zero.optional(zero.string), ) use current_user_public_url <- zero.optional_field( "current_user_public_url", None, zero.optional(zero.string), ) use current_user_organization_url <- zero.optional_field( "current_user_organization_url", None, zero.optional(zero.string), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use current_user_actor_url <- zero.optional_field( "current_user_actor_url", None, zero.optional(zero.string), ) use repository_discussions_category_url <- zero.optional_field( "repository_discussions_category_url", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use user_url <- zero.optional_field( "user_url", None, zero.optional(zero.string), ) zero.success(Feed( current_user_url: current_user_url, current_user_organization_urls: current_user_organization_urls, repository_discussions_url: repository_discussions_url, security_advisories_url: security_advisories_url, current_user_public_url: current_user_public_url, current_user_organization_url: current_user_organization_url, timeline_url: timeline_url, current_user_actor_url: current_user_actor_url, repository_discussions_category_url: repository_discussions_category_url, links: links, user_url: user_url, )) } pub fn alert_html_url_decoder() { zero.string } pub fn timeline_line_commented_event_to_json(data: TimelineLineCommentedEvent) { json.object([ #("comments", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), ]) } pub fn timeline_line_commented_event_decoder() { use comments <- zero.optional_field( "comments", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) zero.success(TimelineLineCommentedEvent( comments: comments, node_id: node_id, event: event, )) } pub fn alert_url_decoder() { zero.string } pub fn hook_delivery_to_json(data: HookDelivery) { json.object([ #("installation_id", json.nullable(data.installation_id, json.int)), #("response", json.null()), #("redelivery", json.nullable(data.redelivery, json.bool)), #("guid", json.nullable(data.guid, json.string)), #("delivered_at", json.nullable(data.delivered_at, json.string)), #("url", json.nullable(data.url, json.string)), #("request", json.null()), #("repository_id", json.nullable(data.repository_id, json.int)), #("status", json.nullable(data.status, json.string)), #("duration", json.nullable(data.duration, json.float)), #("action", json.nullable(data.action, json.string)), #("throttled_at", json.nullable(data.throttled_at, json.string)), #("status_code", json.nullable(data.status_code, json.int)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn hook_delivery_decoder() { use installation_id <- zero.optional_field( "installation_id", None, zero.optional(zero.int), ) use response <- zero.optional_field( "response", None, zero.optional(zero.success(Nil)), ) use redelivery <- zero.optional_field( "redelivery", None, zero.optional(zero.bool), ) use guid <- zero.optional_field("guid", None, zero.optional(zero.string)) use delivered_at <- zero.optional_field( "delivered_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use request <- zero.optional_field( "request", None, zero.optional(zero.success(Nil)), ) use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.int), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use duration <- zero.optional_field( "duration", None, zero.optional(zero.float), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use throttled_at <- zero.optional_field( "throttled_at", None, zero.optional(zero.string), ) use status_code <- zero.optional_field( "status_code", None, zero.optional(zero.int), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(HookDelivery( installation_id: installation_id, response: response, redelivery: redelivery, guid: guid, delivered_at: delivered_at, url: url, request: request, repository_id: repository_id, status: status, duration: duration, action: action, throttled_at: throttled_at, status_code: status_code, event: event, id: id, )) } pub fn webhook_check_suite_requested_to_json(data: WebhookCheckSuiteRequested) { json.object([ #("check_suite", json.null()), #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_suite_requested_decoder() { use check_suite <- zero.optional_field( "check_suite", None, zero.optional(zero.success(Nil)), ) use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckSuiteRequested( check_suite: check_suite, enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn pull_request_review_to_json(data: PullRequestReview) { json.object([ #("body", json.nullable(data.body, json.string)), #("commit_id", json.nullable(data.commit_id, json.string)), #("pull_request_url", json.nullable(data.pull_request_url, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("state", json.nullable(data.state, json.string)), #("submitted_at", json.nullable(data.submitted_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn pull_request_review_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use pull_request_url <- zero.optional_field( "pull_request_url", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use submitted_at <- zero.optional_field( "submitted_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(PullRequestReview( body: body, commit_id: commit_id, pull_request_url: pull_request_url, body_html: body_html, body_text: body_text, user: user, author_association: author_association, state: state, submitted_at: submitted_at, node_id: node_id, links: links, id: id, html_url: html_url, )) } pub fn webhook_project_created_to_json(data: WebhookProjectCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("project", json.null()), #("installation", json.null()), ]) } pub fn webhook_project_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use project <- zero.optional_field( "project", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, project: project, installation: installation, )) } pub fn license_simple_to_json(data: LicenseSimple) { json.object([ #("spdx_id", json.nullable(data.spdx_id, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn license_simple_decoder() { use spdx_id <- zero.optional_field( "spdx_id", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(LicenseSimple( spdx_id: spdx_id, name: name, url: url, node_id: node_id, html_url: html_url, key: key, )) } pub fn webhook_check_run_rerequested_to_json(data: WebhookCheckRunRerequested) { json.object([ #("repository", json.null()), #("organization", json.null()), #("check_run", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_run_rerequested_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use check_run <- zero.optional_field( "check_run", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckRunRerequested( repository: repository, organization: organization, check_run: check_run, sender: sender, action: action, installation: installation, )) } pub fn webhook_dependabot_alert_fixed_to_json(data: WebhookDependabotAlertFixed) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_fixed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertFixed( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn search_result_text_matches_decoder() { panic as "unsupported schema" } pub fn branch_restriction_policy_to_json(data: BranchRestrictionPolicy) { json.object([ #("apps_url", json.nullable(data.apps_url, json.string)), #("teams_url", json.nullable(data.teams_url, json.string)), #("users", json.null()), #("url", json.nullable(data.url, json.string)), #("apps", json.null()), #("teams", json.null()), #("users_url", json.nullable(data.users_url, json.string)), ]) } pub fn branch_restriction_policy_decoder() { use apps_url <- zero.optional_field( "apps_url", None, zero.optional(zero.string), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use users <- zero.optional_field( "users", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use apps <- zero.optional_field( "apps", None, zero.optional(zero.success(Nil)), ) use teams <- zero.optional_field( "teams", None, zero.optional(zero.success(Nil)), ) use users_url <- zero.optional_field( "users_url", None, zero.optional(zero.string), ) zero.success(BranchRestrictionPolicy( apps_url: apps_url, teams_url: teams_url, users: users, url: url, apps: apps, teams: teams, users_url: users_url, )) } pub fn code_scanning_analysis_environment_decoder() { zero.string } pub fn webhook_marketplace_purchase_pending_change_cancelled_to_json( data: WebhookMarketplacePurchasePendingChangeCancelled, ) { json.object([ #("enterprise", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("marketplace_purchase", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("previous_marketplace_purchase", json.null()), ]) } pub fn webhook_marketplace_purchase_pending_change_cancelled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use marketplace_purchase <- zero.optional_field( "marketplace_purchase", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use previous_marketplace_purchase <- zero.optional_field( "previous_marketplace_purchase", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMarketplacePurchasePendingChangeCancelled( enterprise: enterprise, effective_date: effective_date, repository: repository, organization: organization, marketplace_purchase: marketplace_purchase, sender: sender, action: action, installation: installation, previous_marketplace_purchase: previous_marketplace_purchase, )) } pub fn webhook_pull_request_auto_merge_enabled_to_json( data: WebhookPullRequestAutoMergeEnabled, ) { json.object([ #("enterprise", json.null()), #("reason", json.nullable(data.reason, json.string)), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_auto_merge_enabled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestAutoMergeEnabled( enterprise: enterprise, reason: reason, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_pull_request_review_request_removed_decoder() { panic as "unsupported schema" } pub fn actions_set_default_workflow_permissions_to_json( data: ActionsSetDefaultWorkflowPermissions, ) { json.object([ #( "default_workflow_permissions", json.nullable(data.default_workflow_permissions, json.string), ), #( "can_approve_pull_request_reviews", json.nullable(data.can_approve_pull_request_reviews, json.bool), ), ]) } pub fn actions_set_default_workflow_permissions_decoder() { use default_workflow_permissions <- zero.optional_field( "default_workflow_permissions", None, zero.optional(zero.string), ) use can_approve_pull_request_reviews <- zero.optional_field( "can_approve_pull_request_reviews", None, zero.optional(zero.bool), ) zero.success(ActionsSetDefaultWorkflowPermissions( default_workflow_permissions: default_workflow_permissions, can_approve_pull_request_reviews: can_approve_pull_request_reviews, )) } pub fn job_to_json(data: Job) { json.object([ #("head_branch", json.nullable(data.head_branch, json.string)), #("check_run_url", json.nullable(data.check_run_url, json.string)), #("completed_at", json.nullable(data.completed_at, json.string)), #("steps", json.null()), #("runner_id", json.nullable(data.runner_id, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("runner_group_id", json.nullable(data.runner_group_id, json.int)), #("name", json.nullable(data.name, json.string)), #("workflow_name", json.nullable(data.workflow_name, json.string)), #("head_sha", json.nullable(data.head_sha, json.string)), #("url", json.nullable(data.url, json.string)), #("run_id", json.nullable(data.run_id, json.int)), #("started_at", json.nullable(data.started_at, json.string)), #("status", json.nullable(data.status, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("run_attempt", json.nullable(data.run_attempt, json.int)), #("runner_group_name", json.nullable(data.runner_group_name, json.string)), #("runner_name", json.nullable(data.runner_name, json.string)), #("id", json.nullable(data.id, json.int)), #("run_url", json.nullable(data.run_url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("conclusion", json.nullable(data.conclusion, json.string)), #("labels", json.null()), ]) } pub fn job_decoder() { use head_branch <- zero.optional_field( "head_branch", None, zero.optional(zero.string), ) use check_run_url <- zero.optional_field( "check_run_url", None, zero.optional(zero.string), ) use completed_at <- zero.optional_field( "completed_at", None, zero.optional(zero.string), ) use steps <- zero.optional_field( "steps", None, zero.optional(zero.success(Nil)), ) use runner_id <- zero.optional_field( "runner_id", None, zero.optional(zero.int), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use runner_group_id <- zero.optional_field( "runner_group_id", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use workflow_name <- zero.optional_field( "workflow_name", None, zero.optional(zero.string), ) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use run_id <- zero.optional_field("run_id", None, zero.optional(zero.int)) use started_at <- zero.optional_field( "started_at", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use run_attempt <- zero.optional_field( "run_attempt", None, zero.optional(zero.int), ) use runner_group_name <- zero.optional_field( "runner_group_name", None, zero.optional(zero.string), ) use runner_name <- zero.optional_field( "runner_name", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use run_url <- zero.optional_field( "run_url", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use conclusion <- zero.optional_field( "conclusion", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.list(zero.string)), ) zero.success(Job( head_branch: head_branch, check_run_url: check_run_url, completed_at: completed_at, steps: steps, runner_id: runner_id, created_at: created_at, runner_group_id: runner_group_id, name: name, workflow_name: workflow_name, head_sha: head_sha, url: url, run_id: run_id, started_at: started_at, status: status, node_id: node_id, run_attempt: run_attempt, runner_group_name: runner_group_name, runner_name: runner_name, id: id, run_url: run_url, html_url: html_url, conclusion: conclusion, labels: labels, )) } pub fn blob_to_json(data: Blob) { json.object([ #("size", json.nullable(data.size, json.int)), #("sha", json.nullable(data.sha, json.string)), #( "highlighted_content", json.nullable(data.highlighted_content, json.string), ), #("url", json.nullable(data.url, json.string)), #("encoding", json.nullable(data.encoding, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("content", json.nullable(data.content, json.string)), ]) } pub fn blob_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use highlighted_content <- zero.optional_field( "highlighted_content", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use encoding <- zero.optional_field( "encoding", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use content <- zero.optional_field( "content", None, zero.optional(zero.string), ) zero.success(Blob( size: size, sha: sha, highlighted_content: highlighted_content, url: url, encoding: encoding, node_id: node_id, content: content, )) } pub fn timeline_committed_event_to_json(data: TimelineCommittedEvent) { json.object([ #("message", json.nullable(data.message, json.string)), #("parents", json.null()), #("committer", json.null()), #("author", json.null()), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("verification", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #("tree", json.null()), ]) } pub fn timeline_committed_event_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use parents <- zero.optional_field( "parents", None, zero.optional(zero.success(Nil)), ) use committer <- zero.optional_field( "committer", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use verification <- zero.optional_field( "verification", None, zero.optional(zero.success(Nil)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use tree <- zero.optional_field( "tree", None, zero.optional(zero.success(Nil)), ) zero.success(TimelineCommittedEvent( message: message, parents: parents, committer: committer, author: author, sha: sha, url: url, node_id: node_id, event: event, verification: verification, html_url: html_url, tree: tree, )) } pub fn workflow_run_to_json(data: WorkflowRun) { json.object([ #("triggering_actor", json.null()), #("head_branch", json.nullable(data.head_branch, json.string)), #("path", json.nullable(data.path_, json.string)), #("run_started_at", json.nullable(data.run_started_at, json.string)), #("jobs_url", json.nullable(data.jobs_url, json.string)), #("rerun_url", json.nullable(data.rerun_url, json.string)), #("head_repository", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("cancel_url", json.nullable(data.cancel_url, json.string)), #("repository", json.null()), #("name", json.nullable(data.name, json.string)), #("head_sha", json.nullable(data.head_sha, json.string)), #("referenced_workflows", json.null()), #("workflow_url", json.nullable(data.workflow_url, json.string)), #("url", json.nullable(data.url, json.string)), #("artifacts_url", json.nullable(data.artifacts_url, json.string)), #("check_suite_url", json.nullable(data.check_suite_url, json.string)), #("head_repository_id", json.nullable(data.head_repository_id, json.int)), #("status", json.nullable(data.status, json.string)), #("actor", json.null()), #( "previous_attempt_url", json.nullable(data.previous_attempt_url, json.string), ), #("head_commit", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("check_suite_id", json.nullable(data.check_suite_id, json.int)), #("run_attempt", json.nullable(data.run_attempt, json.int)), #("event", json.nullable(data.event, json.string)), #( "check_suite_node_id", json.nullable(data.check_suite_node_id, json.string), ), #("display_title", json.nullable(data.display_title, json.string)), #("id", json.nullable(data.id, json.int)), #("workflow_id", json.nullable(data.workflow_id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("run_number", json.nullable(data.run_number, json.int)), #("pull_requests", json.null()), #("conclusion", json.nullable(data.conclusion, json.string)), #("logs_url", json.nullable(data.logs_url, json.string)), ]) } pub fn workflow_run_decoder() { use triggering_actor <- zero.optional_field( "triggering_actor", None, zero.optional(zero.success(Nil)), ) use head_branch <- zero.optional_field( "head_branch", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use run_started_at <- zero.optional_field( "run_started_at", None, zero.optional(zero.string), ) use jobs_url <- zero.optional_field( "jobs_url", None, zero.optional(zero.string), ) use rerun_url <- zero.optional_field( "rerun_url", None, zero.optional(zero.string), ) use head_repository <- zero.optional_field( "head_repository", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use cancel_url <- zero.optional_field( "cancel_url", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use referenced_workflows <- zero.optional_field( "referenced_workflows", None, zero.optional(zero.success(Nil)), ) use workflow_url <- zero.optional_field( "workflow_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use artifacts_url <- zero.optional_field( "artifacts_url", None, zero.optional(zero.string), ) use check_suite_url <- zero.optional_field( "check_suite_url", None, zero.optional(zero.string), ) use head_repository_id <- zero.optional_field( "head_repository_id", None, zero.optional(zero.int), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use previous_attempt_url <- zero.optional_field( "previous_attempt_url", None, zero.optional(zero.string), ) use head_commit <- zero.optional_field( "head_commit", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use check_suite_id <- zero.optional_field( "check_suite_id", None, zero.optional(zero.int), ) use run_attempt <- zero.optional_field( "run_attempt", None, zero.optional(zero.int), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use check_suite_node_id <- zero.optional_field( "check_suite_node_id", None, zero.optional(zero.string), ) use display_title <- zero.optional_field( "display_title", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use workflow_id <- zero.optional_field( "workflow_id", None, zero.optional(zero.int), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use run_number <- zero.optional_field( "run_number", None, zero.optional(zero.int), ) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.success(Nil)), ) use conclusion <- zero.optional_field( "conclusion", None, zero.optional(zero.string), ) use logs_url <- zero.optional_field( "logs_url", None, zero.optional(zero.string), ) zero.success(WorkflowRun( triggering_actor: triggering_actor, head_branch: head_branch, path_: path_, run_started_at: run_started_at, jobs_url: jobs_url, rerun_url: rerun_url, head_repository: head_repository, created_at: created_at, cancel_url: cancel_url, repository: repository, name: name, head_sha: head_sha, referenced_workflows: referenced_workflows, workflow_url: workflow_url, url: url, artifacts_url: artifacts_url, check_suite_url: check_suite_url, head_repository_id: head_repository_id, status: status, actor: actor, previous_attempt_url: previous_attempt_url, head_commit: head_commit, updated_at: updated_at, node_id: node_id, check_suite_id: check_suite_id, run_attempt: run_attempt, event: event, check_suite_node_id: check_suite_node_id, display_title: display_title, id: id, workflow_id: workflow_id, html_url: html_url, run_number: run_number, pull_requests: pull_requests, conclusion: conclusion, logs_url: logs_url, )) } pub fn webhook_issues_unlabeled_to_json(data: WebhookIssuesUnlabeled) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_unlabeled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesUnlabeled( enterprise: enterprise, repository: repository, organization: organization, label: label, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_repository_vulnerability_alert_resolve_to_json( data: WebhookRepositoryVulnerabilityAlertResolve, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_repository_vulnerability_alert_resolve_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryVulnerabilityAlertResolve( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn alert_fixed_at_decoder() { zero.string } pub fn team_to_json(data: Team) { json.object([ #("permissions", json.null()), #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("parent", json.null()), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn team_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use parent <- zero.optional_field( "parent", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(Team( permissions: permissions, privacy: privacy, members_url: members_url, parent: parent, name: name, slug: slug, url: url, permission: permission, node_id: node_id, repositories_url: repositories_url, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn codespace_export_details_to_json(data: CodespaceExportDetails) { json.object([ #("branch", json.nullable(data.branch, json.string)), #("export_url", json.nullable(data.export_url, json.string)), #("completed_at", json.nullable(data.completed_at, json.string)), #("sha", json.nullable(data.sha, json.string)), #("state", json.nullable(data.state, json.string)), #("id", json.nullable(data.id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn codespace_export_details_decoder() { use branch <- zero.optional_field("branch", None, zero.optional(zero.string)) use export_url <- zero.optional_field( "export_url", None, zero.optional(zero.string), ) use completed_at <- zero.optional_field( "completed_at", None, zero.optional(zero.string), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(CodespaceExportDetails( branch: branch, export_url: export_url, completed_at: completed_at, sha: sha, state: state, id: id, html_url: html_url, )) } pub fn traffic_to_json(data: Traffic) { json.object([ #("uniques", json.nullable(data.uniques, json.int)), #("count", json.nullable(data.count, json.int)), #("timestamp", json.nullable(data.timestamp, json.string)), ]) } pub fn traffic_decoder() { use uniques <- zero.optional_field("uniques", None, zero.optional(zero.int)) use count <- zero.optional_field("count", None, zero.optional(zero.int)) use timestamp <- zero.optional_field( "timestamp", None, zero.optional(zero.string), ) zero.success(Traffic(uniques: uniques, count: count, timestamp: timestamp)) } pub fn organization_simple_webhooks_to_json(data: OrganizationSimpleWebhooks) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("issues_url", json.nullable(data.issues_url, json.string)), #("url", json.nullable(data.url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("public_members_url", json.nullable(data.public_members_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn organization_simple_webhooks_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use public_members_url <- zero.optional_field( "public_members_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(OrganizationSimpleWebhooks( hooks_url: hooks_url, members_url: members_url, events_url: events_url, avatar_url: avatar_url, login: login, issues_url: issues_url, url: url, repos_url: repos_url, public_members_url: public_members_url, node_id: node_id, id: id, description: description, )) } pub fn secret_scanning_alert_to_json(data: SecretScanningAlert) { json.object([ #( "push_protection_bypass_request_html_url", json.nullable(data.push_protection_bypass_request_html_url, json.string), ), #( "push_protection_bypassed", json.nullable(data.push_protection_bypassed, json.bool), ), #("number", json.nullable(data.number, json.int)), #("secret_type", json.nullable(data.secret_type, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #( "push_protection_bypassed_at", json.nullable(data.push_protection_bypassed_at, json.string), ), #("push_protection_bypass_request_reviewer", json.null()), #("publicly_leaked", json.nullable(data.publicly_leaked, json.bool)), #("resolution", json.nullable(data.resolution, json.string)), #("resolution_comment", json.nullable(data.resolution_comment, json.string)), #("locations_url", json.nullable(data.locations_url, json.string)), #("push_protection_bypassed_by", json.null()), #("url", json.nullable(data.url, json.string)), #("secret", json.nullable(data.secret, json.string)), #("state", json.nullable(data.state, json.string)), #("validity", json.nullable(data.validity, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("multi_repo", json.nullable(data.multi_repo, json.bool)), #( "push_protection_bypass_request_comment", json.nullable(data.push_protection_bypass_request_comment, json.string), ), #("resolved_at", json.nullable(data.resolved_at, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #( "secret_type_display_name", json.nullable(data.secret_type_display_name, json.string), ), #("resolved_by", json.null()), ]) } pub fn secret_scanning_alert_decoder() { use push_protection_bypass_request_html_url <- zero.optional_field( "push_protection_bypass_request_html_url", None, zero.optional(zero.string), ) use push_protection_bypassed <- zero.optional_field( "push_protection_bypassed", None, zero.optional(zero.bool), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use secret_type <- zero.optional_field( "secret_type", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use push_protection_bypassed_at <- zero.optional_field( "push_protection_bypassed_at", None, zero.optional(zero.string), ) use push_protection_bypass_request_reviewer <- zero.optional_field( "push_protection_bypass_request_reviewer", None, zero.optional(zero.success(Nil)), ) use publicly_leaked <- zero.optional_field( "publicly_leaked", None, zero.optional(zero.bool), ) use resolution <- zero.optional_field( "resolution", None, zero.optional(zero.string), ) use resolution_comment <- zero.optional_field( "resolution_comment", None, zero.optional(zero.string), ) use locations_url <- zero.optional_field( "locations_url", None, zero.optional(zero.string), ) use push_protection_bypassed_by <- zero.optional_field( "push_protection_bypassed_by", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use secret <- zero.optional_field("secret", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use validity <- zero.optional_field( "validity", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use multi_repo <- zero.optional_field( "multi_repo", None, zero.optional(zero.bool), ) use push_protection_bypass_request_comment <- zero.optional_field( "push_protection_bypass_request_comment", None, zero.optional(zero.string), ) use resolved_at <- zero.optional_field( "resolved_at", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use secret_type_display_name <- zero.optional_field( "secret_type_display_name", None, zero.optional(zero.string), ) use resolved_by <- zero.optional_field( "resolved_by", None, zero.optional(zero.success(Nil)), ) zero.success(SecretScanningAlert( push_protection_bypass_request_html_url: push_protection_bypass_request_html_url, push_protection_bypassed: push_protection_bypassed, number: number, secret_type: secret_type, created_at: created_at, push_protection_bypassed_at: push_protection_bypassed_at, push_protection_bypass_request_reviewer: push_protection_bypass_request_reviewer, publicly_leaked: publicly_leaked, resolution: resolution, resolution_comment: resolution_comment, locations_url: locations_url, push_protection_bypassed_by: push_protection_bypassed_by, url: url, secret: secret, state: state, validity: validity, updated_at: updated_at, multi_repo: multi_repo, push_protection_bypass_request_comment: push_protection_bypass_request_comment, resolved_at: resolved_at, html_url: html_url, secret_type_display_name: secret_type_display_name, resolved_by: resolved_by, )) } pub fn nullable_code_of_conduct_simple_to_json( data: NullableCodeOfConductSimple, ) { json.object([ #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn nullable_code_of_conduct_simple_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(NullableCodeOfConductSimple( name: name, url: url, html_url: html_url, key: key, )) } pub fn webhook_repository_ruleset_edited_to_json( data: WebhookRepositoryRulesetEdited, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("repository_ruleset", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_ruleset_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use repository_ruleset <- zero.optional_field( "repository_ruleset", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryRulesetEdited( enterprise: enterprise, changes: changes, repository: repository, repository_ruleset: repository_ruleset, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_release_deleted_to_json(data: WebhookReleaseDeleted) { json.object([ #("enterprise", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleaseDeleted( enterprise: enterprise, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn nullable_community_health_file_to_json(data: NullableCommunityHealthFile) { json.object([ #("url", json.nullable(data.url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn nullable_community_health_file_decoder() { use url <- zero.optional_field("url", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(NullableCommunityHealthFile(url: url, html_url: html_url)) } pub fn webhook_marketplace_purchase_cancelled_to_json( data: WebhookMarketplacePurchaseCancelled, ) { json.object([ #("enterprise", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("marketplace_purchase", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("previous_marketplace_purchase", json.null()), ]) } pub fn webhook_marketplace_purchase_cancelled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use marketplace_purchase <- zero.optional_field( "marketplace_purchase", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use previous_marketplace_purchase <- zero.optional_field( "previous_marketplace_purchase", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMarketplacePurchaseCancelled( enterprise: enterprise, effective_date: effective_date, repository: repository, organization: organization, marketplace_purchase: marketplace_purchase, sender: sender, action: action, installation: installation, previous_marketplace_purchase: previous_marketplace_purchase, )) } pub fn webhooks_deploy_pusher_type_decoder() { zero.string } pub fn code_scanning_analysis_sarif_file_decoder() { zero.string } pub fn reaction_rollup_to_json(data: ReactionRollup) { json.object([ #("confused", json.nullable(data.confused, json.int)), #("laugh", json.nullable(data.laugh, json.int)), #("eyes", json.nullable(data.eyes, json.int)), #("hooray", json.nullable(data.hooray, json.int)), #("-1", json.nullable(data.one, json.int)), #("heart", json.nullable(data.heart, json.int)), #("+1", json.nullable(data.plusone, json.int)), #("url", json.nullable(data.url, json.string)), #("total_count", json.nullable(data.total_count, json.int)), #("rocket", json.nullable(data.rocket, json.int)), ]) } pub fn reaction_rollup_decoder() { use confused <- zero.optional_field("confused", None, zero.optional(zero.int)) use laugh <- zero.optional_field("laugh", None, zero.optional(zero.int)) use eyes <- zero.optional_field("eyes", None, zero.optional(zero.int)) use hooray <- zero.optional_field("hooray", None, zero.optional(zero.int)) use one <- zero.optional_field("-1", None, zero.optional(zero.int)) use heart <- zero.optional_field("heart", None, zero.optional(zero.int)) use plusone <- zero.optional_field("+1", None, zero.optional(zero.int)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use total_count <- zero.optional_field( "total_count", None, zero.optional(zero.int), ) use rocket <- zero.optional_field("rocket", None, zero.optional(zero.int)) zero.success(ReactionRollup( confused: confused, laugh: laugh, eyes: eyes, hooray: hooray, one: one, heart: heart, plusone: plusone, url: url, total_count: total_count, rocket: rocket, )) } pub fn code_scanning_analysis_sarif_id_decoder() { zero.string } pub fn gist_simple_to_json(data: GistSimple) { json.object([ #("forks_url", json.nullable(data.forks_url, json.string)), #("git_pull_url", json.nullable(data.git_pull_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("public", json.nullable(data.public, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("user", json.nullable(data.user, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("url", json.nullable(data.url, json.string)), #("forks", json.null()), #("owner", json.null()), #("history", json.null()), #("comments", json.nullable(data.comments, json.int)), #("fork_of", json.null()), #("git_push_url", json.nullable(data.git_push_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("files", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), #("truncated", json.nullable(data.truncated, json.bool)), ]) } pub fn gist_simple_decoder() { use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use git_pull_url <- zero.optional_field( "git_pull_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use public <- zero.optional_field("public", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use user <- zero.optional_field("user", None, zero.optional(zero.string)) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use forks <- zero.optional_field( "forks", None, zero.optional(zero.success(Nil)), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use history <- zero.optional_field( "history", None, zero.optional(zero.success(Nil)), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use fork_of <- zero.optional_field( "fork_of", None, zero.optional(zero.success(Nil)), ) use git_push_url <- zero.optional_field( "git_push_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use files <- zero.optional_field( "files", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use truncated <- zero.optional_field( "truncated", None, zero.optional(zero.bool), ) zero.success(GistSimple( forks_url: forks_url, git_pull_url: git_pull_url, comments_url: comments_url, public: public, created_at: created_at, user: user, commits_url: commits_url, url: url, forks: forks, owner: owner, history: history, comments: comments, fork_of: fork_of, git_push_url: git_push_url, updated_at: updated_at, files: files, node_id: node_id, id: id, html_url: html_url, description: description, truncated: truncated, )) } pub fn webhook_milestone_opened_to_json(data: WebhookMilestoneOpened) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_milestone_opened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMilestoneOpened( enterprise: enterprise, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repository_advisory_to_json(data: RepositoryAdvisory) { json.object([ #("cwes", json.null()), #("published_at", json.nullable(data.published_at, json.string)), #("summary", json.nullable(data.summary, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("cvss_severities", json.null()), #("cve_id", json.nullable(data.cve_id, json.string)), #("collaborating_users", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("identifiers", json.null()), #("cwe_ids", json.null()), #("ghsa_id", json.nullable(data.ghsa_id, json.string)), #("author", json.null()), #("submission", json.null()), #("withdrawn_at", json.nullable(data.withdrawn_at, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("cvss", json.null()), #("credits_detailed", json.null()), #("collaborating_teams", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("credits", json.null()), #("vulnerabilities", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #("publisher", json.null()), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), #("private_fork", json.null()), ]) } pub fn repository_advisory_decoder() { use cwes <- zero.optional_field( "cwes", None, zero.optional(zero.success(Nil)), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use cvss_severities <- zero.optional_field( "cvss_severities", None, zero.optional(zero.success(Nil)), ) use cve_id <- zero.optional_field("cve_id", None, zero.optional(zero.string)) use collaborating_users <- zero.optional_field( "collaborating_users", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use identifiers <- zero.optional_field( "identifiers", None, zero.optional(zero.success(Nil)), ) use cwe_ids <- zero.optional_field( "cwe_ids", None, zero.optional(zero.list(zero.string)), ) use ghsa_id <- zero.optional_field( "ghsa_id", None, zero.optional(zero.string), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use submission <- zero.optional_field( "submission", None, zero.optional(zero.success(Nil)), ) use withdrawn_at <- zero.optional_field( "withdrawn_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use cvss <- zero.optional_field( "cvss", None, zero.optional(zero.success(Nil)), ) use credits_detailed <- zero.optional_field( "credits_detailed", None, zero.optional(zero.success(Nil)), ) use collaborating_teams <- zero.optional_field( "collaborating_teams", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use credits <- zero.optional_field( "credits", None, zero.optional(zero.success(Nil)), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use publisher <- zero.optional_field( "publisher", None, zero.optional(zero.success(Nil)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) use private_fork <- zero.optional_field( "private_fork", None, zero.optional(zero.success(Nil)), ) zero.success(RepositoryAdvisory( cwes: cwes, published_at: published_at, summary: summary, closed_at: closed_at, cvss_severities: cvss_severities, cve_id: cve_id, collaborating_users: collaborating_users, created_at: created_at, identifiers: identifiers, cwe_ids: cwe_ids, ghsa_id: ghsa_id, author: author, submission: submission, withdrawn_at: withdrawn_at, url: url, state: state, cvss: cvss, credits_detailed: credits_detailed, collaborating_teams: collaborating_teams, updated_at: updated_at, credits: credits, vulnerabilities: vulnerabilities, html_url: html_url, publisher: publisher, description: description, severity: severity, private_fork: private_fork, )) } pub fn webhook_milestone_edited_to_json(data: WebhookMilestoneEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_milestone_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMilestoneEdited( enterprise: enterprise, changes: changes, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn email_to_json(data: Email) { json.object([ #("primary", json.nullable(data.primary, json.bool)), #("verified", json.nullable(data.verified, json.bool)), #("visibility", json.nullable(data.visibility, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn email_decoder() { use primary <- zero.optional_field("primary", None, zero.optional(zero.bool)) use verified <- zero.optional_field( "verified", None, zero.optional(zero.bool), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(Email( primary: primary, verified: verified, visibility: visibility, email: email, )) } pub fn topic_search_result_item_to_json(data: TopicSearchResultItem) { json.object([ #("text_matches", json.null()), #("display_name", json.nullable(data.display_name, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("related", json.null()), #("name", json.nullable(data.name, json.string)), #("featured", json.nullable(data.featured, json.bool)), #("created_by", json.nullable(data.created_by, json.string)), #("curated", json.nullable(data.curated, json.bool)), #("score", json.nullable(data.score, json.float)), #("updated_at", json.nullable(data.updated_at, json.string)), #("short_description", json.nullable(data.short_description, json.string)), #("repository_count", json.nullable(data.repository_count, json.int)), #("logo_url", json.nullable(data.logo_url, json.string)), #("description", json.nullable(data.description, json.string)), #("released", json.nullable(data.released, json.string)), #("aliases", json.null()), ]) } pub fn topic_search_result_item_decoder() { use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use display_name <- zero.optional_field( "display_name", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use related <- zero.optional_field( "related", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use featured <- zero.optional_field( "featured", None, zero.optional(zero.bool), ) use created_by <- zero.optional_field( "created_by", None, zero.optional(zero.string), ) use curated <- zero.optional_field("curated", None, zero.optional(zero.bool)) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use short_description <- zero.optional_field( "short_description", None, zero.optional(zero.string), ) use repository_count <- zero.optional_field( "repository_count", None, zero.optional(zero.int), ) use logo_url <- zero.optional_field( "logo_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use released <- zero.optional_field( "released", None, zero.optional(zero.string), ) use aliases <- zero.optional_field( "aliases", None, zero.optional(zero.success(Nil)), ) zero.success(TopicSearchResultItem( text_matches: text_matches, display_name: display_name, created_at: created_at, related: related, name: name, featured: featured, created_by: created_by, curated: curated, score: score, updated_at: updated_at, short_description: short_description, repository_count: repository_count, logo_url: logo_url, description: description, released: released, aliases: aliases, )) } pub fn copilot_ide_chat_to_json(data: CopilotIdeChat) { json.object([ #("editors", json.null()), #("total_engaged_users", json.nullable(data.total_engaged_users, json.int)), ]) } pub fn copilot_ide_chat_decoder() { use editors <- zero.optional_field( "editors", None, zero.optional(zero.success(Nil)), ) use total_engaged_users <- zero.optional_field( "total_engaged_users", None, zero.optional(zero.int), ) zero.success(CopilotIdeChat( editors: editors, total_engaged_users: total_engaged_users, )) } pub fn merged_upstream_to_json(data: MergedUpstream) { json.object([ #("merge_type", json.nullable(data.merge_type, json.string)), #("message", json.nullable(data.message, json.string)), #("base_branch", json.nullable(data.base_branch, json.string)), ]) } pub fn merged_upstream_decoder() { use merge_type <- zero.optional_field( "merge_type", None, zero.optional(zero.string), ) use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use base_branch <- zero.optional_field( "base_branch", None, zero.optional(zero.string), ) zero.success(MergedUpstream( merge_type: merge_type, message: message, base_branch: base_branch, )) } pub fn webhook_pull_request_review_comment_edited_to_json( data: WebhookPullRequestReviewCommentEdited, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_pull_request_review_comment_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewCommentEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, comment: comment, )) } pub fn api_insights_route_stats_decoder() { panic as "unsupported schema" } pub fn webhook_secret_scanning_alert_location_created_form_encoded_to_json( data: WebhookSecretScanningAlertLocationCreatedFormEncoded, ) { json.object([#("payload", json.nullable(data.payload, json.string))]) } pub fn webhook_secret_scanning_alert_location_created_form_encoded_decoder() { use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) zero.success(WebhookSecretScanningAlertLocationCreatedFormEncoded( payload: payload, )) } pub fn webhook_pull_request_closed_to_json(data: WebhookPullRequestClosed) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_closed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestClosed( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn secret_scanning_alert_resolution_decoder() { zero.string } pub fn repository_rule_deletion_to_json(data: RepositoryRuleDeletion) { json.object([#("type", json.nullable(data.type_, json.string))]) } pub fn repository_rule_deletion_decoder() { use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleDeletion(type_: type_)) } pub fn removed_from_project_issue_event_to_json( data: RemovedFromProjectIssueEvent, ) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("project_card", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn removed_from_project_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(RemovedFromProjectIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, actor: actor, performed_via_github_app: performed_via_github_app, project_card: project_card, node_id: node_id, event: event, id: id, )) } pub fn webhook_issues_deleted_to_json(data: WebhookIssuesDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn repository_invitation_to_json(data: RepositoryInvitation) { json.object([ #("permissions", json.nullable(data.permissions, json.string)), #("expired", json.nullable(data.expired, json.bool)), #("inviter", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("invitee", json.null()), ]) } pub fn repository_invitation_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.string), ) use expired <- zero.optional_field("expired", None, zero.optional(zero.bool)) use inviter <- zero.optional_field( "inviter", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use invitee <- zero.optional_field( "invitee", None, zero.optional(zero.success(Nil)), ) zero.success(RepositoryInvitation( permissions: permissions, expired: expired, inviter: inviter, created_at: created_at, repository: repository, url: url, node_id: node_id, id: id, html_url: html_url, invitee: invitee, )) } pub fn webhooks_comment_to_json(data: WebhooksComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("user", json.null()), #("child_comment_count", json.nullable(data.child_comment_count, json.int)), #("author_association", json.nullable(data.author_association, json.string)), #("parent_id", json.nullable(data.parent_id, json.int)), #("discussion_id", json.nullable(data.discussion_id, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use child_comment_count <- zero.optional_field( "child_comment_count", None, zero.optional(zero.int), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use parent_id <- zero.optional_field( "parent_id", None, zero.optional(zero.int), ) use discussion_id <- zero.optional_field( "discussion_id", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksComment( body: body, created_at: created_at, reactions: reactions, user: user, child_comment_count: child_comment_count, author_association: author_association, parent_id: parent_id, discussion_id: discussion_id, updated_at: updated_at, node_id: node_id, repository_url: repository_url, id: id, html_url: html_url, )) } pub fn webhook_projects_v2_status_update_deleted_to_json( data: WebhookProjectsV2StatusUpdateDeleted, ) { json.object([ #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("projects_v2_status_update", json.null()), #("installation", json.null()), ]) } pub fn webhook_projects_v2_status_update_deleted_decoder() { use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use projects_v2_status_update <- zero.optional_field( "projects_v2_status_update", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2StatusUpdateDeleted( organization: organization, sender: sender, action: action, projects_v2_status_update: projects_v2_status_update, installation: installation, )) } pub fn custom_deployment_rule_app_to_json(data: CustomDeploymentRuleApp) { json.object([ #("integration_url", json.nullable(data.integration_url, json.string)), #("slug", json.nullable(data.slug, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn custom_deployment_rule_app_decoder() { use integration_url <- zero.optional_field( "integration_url", None, zero.optional(zero.string), ) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(CustomDeploymentRuleApp( integration_url: integration_url, slug: slug, node_id: node_id, id: id, )) } pub fn api_insights_user_stats_decoder() { panic as "unsupported schema" } pub fn webhook_installation_deleted_to_json(data: WebhookInstallationDeleted) { json.object([ #("enterprise", json.null()), #("repositories", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_installation_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationDeleted( enterprise: enterprise, repositories: repositories, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_projects_v2_item_restored_to_json( data: WebhookProjectsV2ItemRestored, ) { json.object([ #("changes", json.null()), #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_restored_decoder() { use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemRestored( changes: changes, projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_project_card_edited_to_json(data: WebhookProjectCardEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("project_card", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_project_card_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectCardEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, project_card: project_card, action: action, installation: installation, )) } pub fn vulnerability_to_json(data: Vulnerability) { json.object([ #("vulnerable_functions", json.null()), #("package", json.null()), #( "first_patched_version", json.nullable(data.first_patched_version, json.string), ), #( "vulnerable_version_range", json.nullable(data.vulnerable_version_range, json.string), ), ]) } pub fn vulnerability_decoder() { use vulnerable_functions <- zero.optional_field( "vulnerable_functions", None, zero.optional(zero.list(zero.string)), ) use package <- zero.optional_field( "package", None, zero.optional(zero.success(Nil)), ) use first_patched_version <- zero.optional_field( "first_patched_version", None, zero.optional(zero.string), ) use vulnerable_version_range <- zero.optional_field( "vulnerable_version_range", None, zero.optional(zero.string), ) zero.success(Vulnerability( vulnerable_functions: vulnerable_functions, package: package, first_patched_version: first_patched_version, vulnerable_version_range: vulnerable_version_range, )) } pub fn webhook_discussion_comment_deleted_to_json( data: WebhookDiscussionCommentDeleted, ) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_discussion_comment_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionCommentDeleted( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, comment: comment, )) } pub fn webhook_workflow_job_queued_to_json(data: WebhookWorkflowJobQueued) { json.object([ #("enterprise", json.null()), #("deployment", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow_job", json.null()), ]) } pub fn webhook_workflow_job_queued_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow_job <- zero.optional_field( "workflow_job", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowJobQueued( enterprise: enterprise, deployment: deployment, repository: repository, organization: organization, sender: sender, action: action, installation: installation, workflow_job: workflow_job, )) } pub fn webhook_repository_vulnerability_alert_dismiss_to_json( data: WebhookRepositoryVulnerabilityAlertDismiss, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_repository_vulnerability_alert_dismiss_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryVulnerabilityAlertDismiss( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhook_branch_protection_rule_edited_to_json( data: WebhookBranchProtectionRuleEdited, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("rule", json.null()), ]) } pub fn webhook_branch_protection_rule_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use rule <- zero.optional_field( "rule", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookBranchProtectionRuleEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, rule: rule, )) } pub fn webhook_repository_created_to_json(data: WebhookRepositoryCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repository_rule_required_signatures_to_json( data: RepositoryRuleRequiredSignatures, ) { json.object([#("type", json.nullable(data.type_, json.string))]) } pub fn repository_rule_required_signatures_decoder() { use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleRequiredSignatures(type_: type_)) } pub fn copilot_ide_code_completions_to_json(data: CopilotIdeCodeCompletions) { json.object([ #("editors", json.null()), #("total_engaged_users", json.nullable(data.total_engaged_users, json.int)), #("languages", json.null()), ]) } pub fn copilot_ide_code_completions_decoder() { use editors <- zero.optional_field( "editors", None, zero.optional(zero.success(Nil)), ) use total_engaged_users <- zero.optional_field( "total_engaged_users", None, zero.optional(zero.int), ) use languages <- zero.optional_field( "languages", None, zero.optional(zero.success(Nil)), ) zero.success(CopilotIdeCodeCompletions( editors: editors, total_engaged_users: total_engaged_users, languages: languages, )) } pub fn webhooks_review_comment_to_json(data: WebhooksReviewComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("original_line", json.nullable(data.original_line, json.int)), #("commit_id", json.nullable(data.commit_id, json.string)), #("diff_hunk", json.nullable(data.diff_hunk, json.string)), #("path", json.nullable(data.path_, json.string)), #("pull_request_url", json.nullable(data.pull_request_url, json.string)), #("position", json.nullable(data.position, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("user", json.null()), #("subject_type", json.nullable(data.subject_type, json.string)), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("in_reply_to_id", json.nullable(data.in_reply_to_id, json.int)), #("start_line", json.nullable(data.start_line, json.int)), #("start_side", json.nullable(data.start_side, json.string)), #("line", json.nullable(data.line, json.int)), #("original_commit_id", json.nullable(data.original_commit_id, json.string)), #("side", json.nullable(data.side, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("original_position", json.nullable(data.original_position, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "pull_request_review_id", json.nullable(data.pull_request_review_id, json.int), ), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("original_start_line", json.nullable(data.original_start_line, json.int)), ]) } pub fn webhooks_review_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use original_line <- zero.optional_field( "original_line", None, zero.optional(zero.int), ) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use diff_hunk <- zero.optional_field( "diff_hunk", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use pull_request_url <- zero.optional_field( "pull_request_url", None, zero.optional(zero.string), ) use position <- zero.optional_field("position", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use subject_type <- zero.optional_field( "subject_type", None, zero.optional(zero.string), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use in_reply_to_id <- zero.optional_field( "in_reply_to_id", None, zero.optional(zero.int), ) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.int), ) use start_side <- zero.optional_field( "start_side", None, zero.optional(zero.string), ) use line <- zero.optional_field("line", None, zero.optional(zero.int)) use original_commit_id <- zero.optional_field( "original_commit_id", None, zero.optional(zero.string), ) use side <- zero.optional_field("side", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use original_position <- zero.optional_field( "original_position", None, zero.optional(zero.int), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use pull_request_review_id <- zero.optional_field( "pull_request_review_id", None, zero.optional(zero.int), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use original_start_line <- zero.optional_field( "original_start_line", None, zero.optional(zero.int), ) zero.success(WebhooksReviewComment( body: body, original_line: original_line, commit_id: commit_id, diff_hunk: diff_hunk, path_: path_, pull_request_url: pull_request_url, position: position, created_at: created_at, reactions: reactions, user: user, subject_type: subject_type, author_association: author_association, url: url, in_reply_to_id: in_reply_to_id, start_line: start_line, start_side: start_side, line: line, original_commit_id: original_commit_id, side: side, updated_at: updated_at, original_position: original_position, node_id: node_id, pull_request_review_id: pull_request_review_id, links: links, id: id, html_url: html_url, original_start_line: original_start_line, )) } pub fn webhook_workflow_run_in_progress_to_json( data: WebhookWorkflowRunInProgress, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow", json.null()), ]) } pub fn webhook_workflow_run_in_progress_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow <- zero.optional_field( "workflow", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowRunInProgress( enterprise: enterprise, repository: repository, workflow_run: workflow_run, organization: organization, sender: sender, action: action, installation: installation, workflow: workflow, )) } pub fn verification_to_json(data: Verification) { json.object([ #("reason", json.nullable(data.reason, json.string)), #("verified", json.nullable(data.verified, json.bool)), #("payload", json.nullable(data.payload, json.string)), #("signature", json.nullable(data.signature, json.string)), ]) } pub fn verification_decoder() { use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use verified <- zero.optional_field( "verified", None, zero.optional(zero.bool), ) use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) use signature <- zero.optional_field( "signature", None, zero.optional(zero.string), ) zero.success(Verification( reason: reason, verified: verified, payload: payload, signature: signature, )) } pub fn dependabot_alert_security_vulnerability_to_json( data: DependabotAlertSecurityVulnerability, ) { json.object([ #("package", json.null()), #("first_patched_version", json.null()), #("severity", json.nullable(data.severity, json.string)), #( "vulnerable_version_range", json.nullable(data.vulnerable_version_range, json.string), ), ]) } pub fn dependabot_alert_security_vulnerability_decoder() { use package <- zero.optional_field( "package", None, zero.optional(zero.success(Nil)), ) use first_patched_version <- zero.optional_field( "first_patched_version", None, zero.optional(zero.success(Nil)), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) use vulnerable_version_range <- zero.optional_field( "vulnerable_version_range", None, zero.optional(zero.string), ) zero.success(DependabotAlertSecurityVulnerability( package: package, first_patched_version: first_patched_version, severity: severity, vulnerable_version_range: vulnerable_version_range, )) } pub fn webhook_deploy_key_deleted_to_json(data: WebhookDeployKeyDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("key", json.null()), ]) } pub fn webhook_deploy_key_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use key <- zero.optional_field("key", None, zero.optional(zero.success(Nil))) zero.success(WebhookDeployKeyDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, key: key, )) } pub fn webhook_personal_access_token_request_approved_to_json( data: WebhookPersonalAccessTokenRequestApproved, ) { json.object([ #("enterprise", json.null()), #("personal_access_token_request", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_personal_access_token_request_approved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use personal_access_token_request <- zero.optional_field( "personal_access_token_request", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPersonalAccessTokenRequestApproved( enterprise: enterprise, personal_access_token_request: personal_access_token_request, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn secret_scanning_location_wiki_commit_to_json( data: SecretScanningLocationWikiCommit, ) { json.object([ #("commit_sha", json.nullable(data.commit_sha, json.string)), #("path", json.nullable(data.path_, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("blob_sha", json.nullable(data.blob_sha, json.string)), #("start_line", json.nullable(data.start_line, json.float)), #("start_column", json.nullable(data.start_column, json.float)), #("end_line", json.nullable(data.end_line, json.float)), #("end_column", json.nullable(data.end_column, json.float)), #("page_url", json.nullable(data.page_url, json.string)), ]) } pub fn secret_scanning_location_wiki_commit_decoder() { use commit_sha <- zero.optional_field( "commit_sha", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use blob_sha <- zero.optional_field( "blob_sha", None, zero.optional(zero.string), ) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.float), ) use start_column <- zero.optional_field( "start_column", None, zero.optional(zero.float), ) use end_line <- zero.optional_field( "end_line", None, zero.optional(zero.float), ) use end_column <- zero.optional_field( "end_column", None, zero.optional(zero.float), ) use page_url <- zero.optional_field( "page_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationWikiCommit( commit_sha: commit_sha, path_: path_, commit_url: commit_url, blob_sha: blob_sha, start_line: start_line, start_column: start_column, end_line: end_line, end_column: end_column, page_url: page_url, )) } pub fn pull_request_minimal_to_json(data: PullRequestMinimal) { json.object([ #("head", json.null()), #("number", json.nullable(data.number, json.int)), #("url", json.nullable(data.url, json.string)), #("base", json.null()), #("id", json.nullable(data.id, json.int)), ]) } pub fn pull_request_minimal_decoder() { use head <- zero.optional_field( "head", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use base_ <- zero.optional_field( "base", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(PullRequestMinimal( head: head, number: number, url: url, base_: base_, id: id, )) } pub fn repository_ruleset_conditions_repository_name_target_to_json( data: RepositoryRulesetConditionsRepositoryNameTarget, ) { json.object([#("repository_name", json.null())]) } pub fn repository_ruleset_conditions_repository_name_target_decoder() { use repository_name <- zero.optional_field( "repository_name", None, zero.optional(zero.success(Nil)), ) zero.success(RepositoryRulesetConditionsRepositoryNameTarget( repository_name: repository_name, )) } pub fn contributor_to_json(data: Contributor) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("contributions", json.nullable(data.contributions, json.int)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn contributor_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use contributions <- zero.optional_field( "contributions", None, zero.optional(zero.int), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(Contributor( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, contributions: contributions, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn copilot_seat_details_to_json(data: CopilotSeatDetails) { json.object([ #( "pending_cancellation_date", json.nullable(data.pending_cancellation_date, json.string), ), #("assigning_team", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("assignee", json.null()), #("plan_type", json.nullable(data.plan_type, json.string)), #("organization", json.null()), #( "last_activity_editor", json.nullable(data.last_activity_editor, json.string), ), #("updated_at", json.nullable(data.updated_at, json.string)), #("last_activity_at", json.nullable(data.last_activity_at, json.string)), ]) } pub fn copilot_seat_details_decoder() { use pending_cancellation_date <- zero.optional_field( "pending_cancellation_date", None, zero.optional(zero.string), ) use assigning_team <- zero.optional_field( "assigning_team", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use plan_type <- zero.optional_field( "plan_type", None, zero.optional(zero.string), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use last_activity_editor <- zero.optional_field( "last_activity_editor", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use last_activity_at <- zero.optional_field( "last_activity_at", None, zero.optional(zero.string), ) zero.success(CopilotSeatDetails( pending_cancellation_date: pending_cancellation_date, assigning_team: assigning_team, created_at: created_at, assignee: assignee, plan_type: plan_type, organization: organization, last_activity_editor: last_activity_editor, updated_at: updated_at, last_activity_at: last_activity_at, )) } pub fn webhook_discussion_closed_to_json(data: WebhookDiscussionClosed) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_closed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionClosed( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_project_column_created_to_json(data: WebhookProjectColumnCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("project_column", json.null()), ]) } pub fn webhook_project_column_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use project_column <- zero.optional_field( "project_column", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectColumnCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, project_column: project_column, )) } pub fn pending_deployment_to_json(data: PendingDeployment) { json.object([ #("reviewers", json.null()), #( "current_user_can_approve", json.nullable(data.current_user_can_approve, json.bool), ), #("environment", json.null()), #( "wait_timer_started_at", json.nullable(data.wait_timer_started_at, json.string), ), #("wait_timer", json.nullable(data.wait_timer, json.int)), ]) } pub fn pending_deployment_decoder() { use reviewers <- zero.optional_field( "reviewers", None, zero.optional(zero.success(Nil)), ) use current_user_can_approve <- zero.optional_field( "current_user_can_approve", None, zero.optional(zero.bool), ) use environment <- zero.optional_field( "environment", None, zero.optional(zero.success(Nil)), ) use wait_timer_started_at <- zero.optional_field( "wait_timer_started_at", None, zero.optional(zero.string), ) use wait_timer <- zero.optional_field( "wait_timer", None, zero.optional(zero.int), ) zero.success(PendingDeployment( reviewers: reviewers, current_user_can_approve: current_user_can_approve, environment: environment, wait_timer_started_at: wait_timer_started_at, wait_timer: wait_timer, )) } pub fn repository_ruleset_conditions_repository_property_spec_to_json( data: RepositoryRulesetConditionsRepositoryPropertySpec, ) { json.object([ #("name", json.nullable(data.name, json.string)), #("property_values", json.null()), #("source", json.nullable(data.source, json.string)), ]) } pub fn repository_ruleset_conditions_repository_property_spec_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use property_values <- zero.optional_field( "property_values", None, zero.optional(zero.list(zero.string)), ) use source <- zero.optional_field("source", None, zero.optional(zero.string)) zero.success(RepositoryRulesetConditionsRepositoryPropertySpec( name: name, property_values: property_values, source: source, )) } pub fn stargazer_to_json(data: Stargazer) { json.object([ #("user", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), ]) } pub fn stargazer_decoder() { use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) zero.success(Stargazer(user: user, starred_at: starred_at)) } pub fn deployment_branch_policy_settings_to_json( data: DeploymentBranchPolicySettings, ) { json.object([ #("protected_branches", json.nullable(data.protected_branches, json.bool)), #( "custom_branch_policies", json.nullable(data.custom_branch_policies, json.bool), ), ]) } pub fn deployment_branch_policy_settings_decoder() { use protected_branches <- zero.optional_field( "protected_branches", None, zero.optional(zero.bool), ) use custom_branch_policies <- zero.optional_field( "custom_branch_policies", None, zero.optional(zero.bool), ) zero.success(DeploymentBranchPolicySettings( protected_branches: protected_branches, custom_branch_policies: custom_branch_policies, )) } pub fn webhook_check_suite_completed_to_json(data: WebhookCheckSuiteCompleted) { json.object([ #("check_suite", json.null()), #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_suite_completed_decoder() { use check_suite <- zero.optional_field( "check_suite", None, zero.optional(zero.success(Nil)), ) use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckSuiteCompleted( check_suite: check_suite, enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhooks_review_to_json(data: WebhooksReview) { json.object([ #("body", json.nullable(data.body, json.string)), #("commit_id", json.nullable(data.commit_id, json.string)), #("pull_request_url", json.nullable(data.pull_request_url, json.string)), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("state", json.nullable(data.state, json.string)), #("submitted_at", json.nullable(data.submitted_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_review_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use pull_request_url <- zero.optional_field( "pull_request_url", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use submitted_at <- zero.optional_field( "submitted_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksReview( body: body, commit_id: commit_id, pull_request_url: pull_request_url, user: user, author_association: author_association, state: state, submitted_at: submitted_at, node_id: node_id, links: links, id: id, html_url: html_url, )) } pub fn webhook_sponsorship_created_to_json(data: WebhookSponsorshipCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("sponsorship", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_sponsorship_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use sponsorship <- zero.optional_field( "sponsorship", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSponsorshipCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, sponsorship: sponsorship, action: action, installation: installation, )) } pub fn deployment_status_to_json(data: DeploymentStatus) { json.object([ #("target_url", json.nullable(data.target_url, json.string)), #("environment_url", json.nullable(data.environment_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("environment", json.nullable(data.environment, json.string)), #("log_url", json.nullable(data.log_url, json.string)), #("deployment_url", json.nullable(data.deployment_url, json.string)), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn deployment_status_decoder() { use target_url <- zero.optional_field( "target_url", None, zero.optional(zero.string), ) use environment_url <- zero.optional_field( "environment_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use log_url <- zero.optional_field( "log_url", None, zero.optional(zero.string), ) use deployment_url <- zero.optional_field( "deployment_url", None, zero.optional(zero.string), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(DeploymentStatus( target_url: target_url, environment_url: environment_url, created_at: created_at, creator: creator, url: url, state: state, environment: environment, log_url: log_url, deployment_url: deployment_url, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, repository_url: repository_url, id: id, description: description, )) } pub fn link_to_json(data: Link) { json.object([#("href", json.nullable(data.href, json.string))]) } pub fn link_decoder() { use href <- zero.optional_field("href", None, zero.optional(zero.string)) zero.success(Link(href: href)) } pub fn repository_advisory_update_to_json(data: RepositoryAdvisoryUpdate) { json.object([ #("cvss_vector_string", json.nullable(data.cvss_vector_string, json.string)), #("summary", json.nullable(data.summary, json.string)), #("cve_id", json.nullable(data.cve_id, json.string)), #("collaborating_users", json.null()), #("cwe_ids", json.null()), #("state", json.nullable(data.state, json.string)), #("collaborating_teams", json.null()), #("credits", json.null()), #("vulnerabilities", json.null()), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn repository_advisory_update_decoder() { use cvss_vector_string <- zero.optional_field( "cvss_vector_string", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use cve_id <- zero.optional_field("cve_id", None, zero.optional(zero.string)) use collaborating_users <- zero.optional_field( "collaborating_users", None, zero.optional(zero.list(zero.string)), ) use cwe_ids <- zero.optional_field( "cwe_ids", None, zero.optional(zero.list(zero.string)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use collaborating_teams <- zero.optional_field( "collaborating_teams", None, zero.optional(zero.list(zero.string)), ) use credits <- zero.optional_field( "credits", None, zero.optional(zero.success(Nil)), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(RepositoryAdvisoryUpdate( cvss_vector_string: cvss_vector_string, summary: summary, cve_id: cve_id, collaborating_users: collaborating_users, cwe_ids: cwe_ids, state: state, collaborating_teams: collaborating_teams, credits: credits, vulnerabilities: vulnerabilities, description: description, severity: severity, )) } pub fn dependabot_alert_security_advisory_to_json( data: DependabotAlertSecurityAdvisory, ) { json.object([ #("cwes", json.null()), #("published_at", json.nullable(data.published_at, json.string)), #("summary", json.nullable(data.summary, json.string)), #("cvss_severities", json.null()), #("cve_id", json.nullable(data.cve_id, json.string)), #("references", json.null()), #("identifiers", json.null()), #("ghsa_id", json.nullable(data.ghsa_id, json.string)), #("withdrawn_at", json.nullable(data.withdrawn_at, json.string)), #("cvss", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("vulnerabilities", json.null()), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn dependabot_alert_security_advisory_decoder() { use cwes <- zero.optional_field( "cwes", None, zero.optional(zero.success(Nil)), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use cvss_severities <- zero.optional_field( "cvss_severities", None, zero.optional(zero.success(Nil)), ) use cve_id <- zero.optional_field("cve_id", None, zero.optional(zero.string)) use references <- zero.optional_field( "references", None, zero.optional(zero.success(Nil)), ) use identifiers <- zero.optional_field( "identifiers", None, zero.optional(zero.success(Nil)), ) use ghsa_id <- zero.optional_field( "ghsa_id", None, zero.optional(zero.string), ) use withdrawn_at <- zero.optional_field( "withdrawn_at", None, zero.optional(zero.string), ) use cvss <- zero.optional_field( "cvss", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(DependabotAlertSecurityAdvisory( cwes: cwes, published_at: published_at, summary: summary, cvss_severities: cvss_severities, cve_id: cve_id, references: references, identifiers: identifiers, ghsa_id: ghsa_id, withdrawn_at: withdrawn_at, cvss: cvss, updated_at: updated_at, vulnerabilities: vulnerabilities, description: description, severity: severity, )) } pub fn webhook_deployment_review_approved_to_json( data: WebhookDeploymentReviewApproved, ) { json.object([ #("enterprise", json.null()), #("approver", json.null()), #("workflow_job_run", json.null()), #("workflow_job_runs", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("reviewers", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("since", json.nullable(data.since, json.string)), #("comment", json.nullable(data.comment, json.string)), ]) } pub fn webhook_deployment_review_approved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use approver <- zero.optional_field( "approver", None, zero.optional(zero.success(Nil)), ) use workflow_job_run <- zero.optional_field( "workflow_job_run", None, zero.optional(zero.success(Nil)), ) use workflow_job_runs <- zero.optional_field( "workflow_job_runs", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use reviewers <- zero.optional_field( "reviewers", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use since <- zero.optional_field("since", None, zero.optional(zero.string)) use comment <- zero.optional_field( "comment", None, zero.optional(zero.string), ) zero.success(WebhookDeploymentReviewApproved( enterprise: enterprise, approver: approver, workflow_job_run: workflow_job_run, workflow_job_runs: workflow_job_runs, repository: repository, workflow_run: workflow_run, reviewers: reviewers, organization: organization, sender: sender, action: action, installation: installation, since: since, comment: comment, )) } pub fn tag_to_json(data: Tag) { json.object([ #("name", json.nullable(data.name, json.string)), #("zipball_url", json.nullable(data.zipball_url, json.string)), #("tarball_url", json.nullable(data.tarball_url, json.string)), #("commit", json.null()), #("node_id", json.nullable(data.node_id, json.string)), ]) } pub fn tag_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use zipball_url <- zero.optional_field( "zipball_url", None, zero.optional(zero.string), ) use tarball_url <- zero.optional_field( "tarball_url", None, zero.optional(zero.string), ) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) zero.success(Tag( name: name, zipball_url: zipball_url, tarball_url: tarball_url, commit: commit, node_id: node_id, )) } pub fn webhook_repository_advisory_reported_to_json( data: WebhookRepositoryAdvisoryReported, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("repository_advisory", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_advisory_reported_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use repository_advisory <- zero.optional_field( "repository_advisory", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryAdvisoryReported( enterprise: enterprise, repository: repository, repository_advisory: repository_advisory, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_registry_package_updated_to_json( data: WebhookRegistryPackageUpdated, ) { json.object([ #("enterprise", json.null()), #("registry_package", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_registry_package_updated_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use registry_package <- zero.optional_field( "registry_package", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRegistryPackageUpdated( enterprise: enterprise, registry_package: registry_package, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn security_advisory_ecosystems_decoder() { zero.string } pub fn private_vulnerability_report_create_to_json( data: PrivateVulnerabilityReportCreate, ) { json.object([ #("cvss_vector_string", json.nullable(data.cvss_vector_string, json.string)), #("summary", json.nullable(data.summary, json.string)), #("cwe_ids", json.null()), #("vulnerabilities", json.null()), #("start_private_fork", json.nullable(data.start_private_fork, json.bool)), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn private_vulnerability_report_create_decoder() { use cvss_vector_string <- zero.optional_field( "cvss_vector_string", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use cwe_ids <- zero.optional_field( "cwe_ids", None, zero.optional(zero.list(zero.string)), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use start_private_fork <- zero.optional_field( "start_private_fork", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(PrivateVulnerabilityReportCreate( cvss_vector_string: cvss_vector_string, summary: summary, cwe_ids: cwe_ids, vulnerabilities: vulnerabilities, start_private_fork: start_private_fork, description: description, severity: severity, )) } pub fn webhook_pull_request_converted_to_draft_to_json( data: WebhookPullRequestConvertedToDraft, ) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_converted_to_draft_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestConvertedToDraft( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn code_scanning_analysis_url_decoder() { zero.string } pub fn event_to_json(data: Event) { json.object([ #("org", json.null()), #("public", json.nullable(data.public, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("payload", json.null()), #("repo", json.null()), #("actor", json.null()), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.string)), ]) } pub fn event_decoder() { use org <- zero.optional_field("org", None, zero.optional(zero.success(Nil))) use public <- zero.optional_field("public", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use payload <- zero.optional_field( "payload", None, zero.optional(zero.success(Nil)), ) use repo <- zero.optional_field( "repo", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.string)) zero.success(Event( org: org, public: public, created_at: created_at, payload: payload, repo: repo, actor: actor, type_: type_, id: id, )) } pub fn nullable_simple_user_to_json(data: NullableSimpleUser) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("starred_at", json.nullable(data.starred_at, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn nullable_simple_user_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(NullableSimpleUser( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, starred_at: starred_at, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn auto_merge_to_json(data: AutoMerge) { json.object([ #("merge_method", json.nullable(data.merge_method, json.string)), #("commit_title", json.nullable(data.commit_title, json.string)), #("enabled_by", json.null()), #("commit_message", json.nullable(data.commit_message, json.string)), ]) } pub fn auto_merge_decoder() { use merge_method <- zero.optional_field( "merge_method", None, zero.optional(zero.string), ) use commit_title <- zero.optional_field( "commit_title", None, zero.optional(zero.string), ) use enabled_by <- zero.optional_field( "enabled_by", None, zero.optional(zero.success(Nil)), ) use commit_message <- zero.optional_field( "commit_message", None, zero.optional(zero.string), ) zero.success(AutoMerge( merge_method: merge_method, commit_title: commit_title, enabled_by: enabled_by, commit_message: commit_message, )) } pub fn copilot_seat_breakdown_to_json(data: CopilotSeatBreakdown) { json.object([ #("pending_invitation", json.nullable(data.pending_invitation, json.int)), #("added_this_cycle", json.nullable(data.added_this_cycle, json.int)), #("total", json.nullable(data.total, json.int)), #( "pending_cancellation", json.nullable(data.pending_cancellation, json.int), ), #("inactive_this_cycle", json.nullable(data.inactive_this_cycle, json.int)), #("active_this_cycle", json.nullable(data.active_this_cycle, json.int)), ]) } pub fn copilot_seat_breakdown_decoder() { use pending_invitation <- zero.optional_field( "pending_invitation", None, zero.optional(zero.int), ) use added_this_cycle <- zero.optional_field( "added_this_cycle", None, zero.optional(zero.int), ) use total <- zero.optional_field("total", None, zero.optional(zero.int)) use pending_cancellation <- zero.optional_field( "pending_cancellation", None, zero.optional(zero.int), ) use inactive_this_cycle <- zero.optional_field( "inactive_this_cycle", None, zero.optional(zero.int), ) use active_this_cycle <- zero.optional_field( "active_this_cycle", None, zero.optional(zero.int), ) zero.success(CopilotSeatBreakdown( pending_invitation: pending_invitation, added_this_cycle: added_this_cycle, total: total, pending_cancellation: pending_cancellation, inactive_this_cycle: inactive_this_cycle, active_this_cycle: active_this_cycle, )) } pub fn webhooks_repository_selection_decoder() { zero.string } pub fn webhook_installation_new_permissions_accepted_to_json( data: WebhookInstallationNewPermissionsAccepted, ) { json.object([ #("enterprise", json.null()), #("repositories", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_installation_new_permissions_accepted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationNewPermissionsAccepted( enterprise: enterprise, repositories: repositories, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn installation_to_json(data: Installation) { json.object([ #("single_file_paths", json.null()), #("permissions", json.null()), #("access_tokens_url", json.nullable(data.access_tokens_url, json.string)), #("target_type", json.nullable(data.target_type, json.string)), #("app_slug", json.nullable(data.app_slug, json.string)), #("target_id", json.nullable(data.target_id, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #( "has_multiple_single_files", json.nullable(data.has_multiple_single_files, json.bool), ), #("account", json.null()), #("single_file_name", json.nullable(data.single_file_name, json.string)), #("suspended_at", json.nullable(data.suspended_at, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("events", json.null()), #("app_id", json.nullable(data.app_id, json.int)), #("id", json.nullable(data.id, json.int)), #("suspended_by", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #("contact_email", json.nullable(data.contact_email, json.string)), ]) } pub fn installation_decoder() { use single_file_paths <- zero.optional_field( "single_file_paths", None, zero.optional(zero.list(zero.string)), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use access_tokens_url <- zero.optional_field( "access_tokens_url", None, zero.optional(zero.string), ) use target_type <- zero.optional_field( "target_type", None, zero.optional(zero.string), ) use app_slug <- zero.optional_field( "app_slug", None, zero.optional(zero.string), ) use target_id <- zero.optional_field( "target_id", None, zero.optional(zero.int), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use has_multiple_single_files <- zero.optional_field( "has_multiple_single_files", None, zero.optional(zero.bool), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use single_file_name <- zero.optional_field( "single_file_name", None, zero.optional(zero.string), ) use suspended_at <- zero.optional_field( "suspended_at", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use events <- zero.optional_field( "events", None, zero.optional(zero.list(zero.string)), ) use app_id <- zero.optional_field("app_id", None, zero.optional(zero.int)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use suspended_by <- zero.optional_field( "suspended_by", None, zero.optional(zero.success(Nil)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use contact_email <- zero.optional_field( "contact_email", None, zero.optional(zero.string), ) zero.success(Installation( single_file_paths: single_file_paths, permissions: permissions, access_tokens_url: access_tokens_url, target_type: target_type, app_slug: app_slug, target_id: target_id, created_at: created_at, has_multiple_single_files: has_multiple_single_files, account: account, single_file_name: single_file_name, suspended_at: suspended_at, updated_at: updated_at, repository_selection: repository_selection, repositories_url: repositories_url, events: events, app_id: app_id, id: id, suspended_by: suspended_by, html_url: html_url, contact_email: contact_email, )) } pub fn webhooks_project_changes_to_json(data: WebhooksProjectChanges) { json.object([#("archived_at", json.null())]) } pub fn webhooks_project_changes_decoder() { use archived_at <- zero.optional_field( "archived_at", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksProjectChanges(archived_at: archived_at)) } pub fn repository_ruleset_bypass_actor_to_json( data: RepositoryRulesetBypassActor, ) { json.object([ #("actor_type", json.nullable(data.actor_type, json.string)), #("actor_id", json.nullable(data.actor_id, json.int)), #("bypass_mode", json.nullable(data.bypass_mode, json.string)), ]) } pub fn repository_ruleset_bypass_actor_decoder() { use actor_type <- zero.optional_field( "actor_type", None, zero.optional(zero.string), ) use actor_id <- zero.optional_field("actor_id", None, zero.optional(zero.int)) use bypass_mode <- zero.optional_field( "bypass_mode", None, zero.optional(zero.string), ) zero.success(RepositoryRulesetBypassActor( actor_type: actor_type, actor_id: actor_id, bypass_mode: bypass_mode, )) } pub fn deployment_simple_to_json(data: DeploymentSimple) { json.object([ #( "original_environment", json.nullable(data.original_environment, json.string), ), #("task", json.nullable(data.task, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #( "production_environment", json.nullable(data.production_environment, json.bool), ), #("url", json.nullable(data.url, json.string)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("environment", json.nullable(data.environment, json.string)), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), #( "transient_environment", json.nullable(data.transient_environment, json.bool), ), ]) } pub fn deployment_simple_decoder() { use original_environment <- zero.optional_field( "original_environment", None, zero.optional(zero.string), ) use task <- zero.optional_field("task", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use production_environment <- zero.optional_field( "production_environment", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use transient_environment <- zero.optional_field( "transient_environment", None, zero.optional(zero.bool), ) zero.success(DeploymentSimple( original_environment: original_environment, task: task, created_at: created_at, production_environment: production_environment, url: url, statuses_url: statuses_url, environment: environment, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, repository_url: repository_url, id: id, description: description, transient_environment: transient_environment, )) } pub fn actions_organization_permissions_to_json( data: ActionsOrganizationPermissions, ) { json.object([ #("allowed_actions", json.nullable(data.allowed_actions, json.string)), #( "enabled_repositories", json.nullable(data.enabled_repositories, json.string), ), #( "selected_actions_url", json.nullable(data.selected_actions_url, json.string), ), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), ]) } pub fn actions_organization_permissions_decoder() { use allowed_actions <- zero.optional_field( "allowed_actions", None, zero.optional(zero.string), ) use enabled_repositories <- zero.optional_field( "enabled_repositories", None, zero.optional(zero.string), ) use selected_actions_url <- zero.optional_field( "selected_actions_url", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) zero.success(ActionsOrganizationPermissions( allowed_actions: allowed_actions, enabled_repositories: enabled_repositories, selected_actions_url: selected_actions_url, selected_repositories_url: selected_repositories_url, )) } pub fn webhook_config_url_decoder() { zero.string } pub fn organization_actions_secret_to_json(data: OrganizationActionsSecret) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), ]) } pub fn organization_actions_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) zero.success(OrganizationActionsSecret( created_at: created_at, name: name, visibility: visibility, updated_at: updated_at, selected_repositories_url: selected_repositories_url, )) } pub fn deployment_branch_policy_name_pattern_with_type_to_json( data: DeploymentBranchPolicyNamePatternWithType, ) { json.object([ #("name", json.nullable(data.name, json.string)), #("type", json.nullable(data.type_, json.string)), ]) } pub fn deployment_branch_policy_name_pattern_with_type_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(DeploymentBranchPolicyNamePatternWithType( name: name, type_: type_, )) } pub fn webhook_marketplace_purchase_pending_change_to_json( data: WebhookMarketplacePurchasePendingChange, ) { json.object([ #("enterprise", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("marketplace_purchase", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("previous_marketplace_purchase", json.null()), ]) } pub fn webhook_marketplace_purchase_pending_change_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use marketplace_purchase <- zero.optional_field( "marketplace_purchase", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use previous_marketplace_purchase <- zero.optional_field( "previous_marketplace_purchase", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMarketplacePurchasePendingChange( enterprise: enterprise, effective_date: effective_date, repository: repository, organization: organization, marketplace_purchase: marketplace_purchase, sender: sender, action: action, installation: installation, previous_marketplace_purchase: previous_marketplace_purchase, )) } pub fn deployment_reviewer_type_decoder() { zero.string } pub fn webhook_commit_comment_created_to_json(data: WebhookCommitCommentCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_commit_comment_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCommitCommentCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, comment: comment, )) } pub fn alert_number_decoder() { panic as "unsupported schema" } pub fn team_repository_to_json(data: TeamRepository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #("teams_url", json.nullable(data.teams_url, json.string)), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("owner", json.null()), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("role_name", json.nullable(data.role_name, json.string)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("subscribers_count", json.nullable(data.subscribers_count, json.int)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("network_count", json.nullable(data.network_count, json.int)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn team_repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use role_name <- zero.optional_field( "role_name", None, zero.optional(zero.string), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use subscribers_count <- zero.optional_field( "subscribers_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use network_count <- zero.optional_field( "network_count", None, zero.optional(zero.int), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(TeamRepository( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, forks_count: forks_count, fork: fork, git_url: git_url, archived: archived, private: private, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, teams_url: teams_url, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, allow_squash_merge: allow_squash_merge, homepage: homepage, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, owner: owner, allow_merge_commit: allow_merge_commit, role_name: role_name, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, updated_at: updated_at, watchers: watchers, node_id: node_id, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, subscribers_count: subscribers_count, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, network_count: network_count, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhooks_previous_marketplace_purchase_to_json( data: WebhooksPreviousMarketplacePurchase, ) { json.object([ #("billing_cycle", json.nullable(data.billing_cycle, json.string)), #("on_free_trial", json.nullable(data.on_free_trial, json.bool)), #("plan", json.null()), #("account", json.null()), #("unit_count", json.nullable(data.unit_count, json.int)), #("next_billing_date", json.nullable(data.next_billing_date, json.string)), ]) } pub fn webhooks_previous_marketplace_purchase_decoder() { use billing_cycle <- zero.optional_field( "billing_cycle", None, zero.optional(zero.string), ) use on_free_trial <- zero.optional_field( "on_free_trial", None, zero.optional(zero.bool), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use unit_count <- zero.optional_field( "unit_count", None, zero.optional(zero.int), ) use next_billing_date <- zero.optional_field( "next_billing_date", None, zero.optional(zero.string), ) zero.success(WebhooksPreviousMarketplacePurchase( billing_cycle: billing_cycle, on_free_trial: on_free_trial, plan: plan, account: account, unit_count: unit_count, next_billing_date: next_billing_date, )) } pub fn dependabot_alert_package_to_json(data: DependabotAlertPackage) { json.object([ #("ecosystem", json.nullable(data.ecosystem, json.string)), #("name", json.nullable(data.name, json.string)), ]) } pub fn dependabot_alert_package_decoder() { use ecosystem <- zero.optional_field( "ecosystem", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) zero.success(DependabotAlertPackage(ecosystem: ecosystem, name: name)) } pub fn secret_scanning_push_protection_bypass_placeholder_id_decoder() { zero.string } pub fn webhook_pull_request_locked_to_json(data: WebhookPullRequestLocked) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_locked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestLocked( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn actions_cache_usage_by_repository_to_json( data: ActionsCacheUsageByRepository, ) { json.object([ #( "active_caches_size_in_bytes", json.nullable(data.active_caches_size_in_bytes, json.int), ), #("active_caches_count", json.nullable(data.active_caches_count, json.int)), #("full_name", json.nullable(data.full_name, json.string)), ]) } pub fn actions_cache_usage_by_repository_decoder() { use active_caches_size_in_bytes <- zero.optional_field( "active_caches_size_in_bytes", None, zero.optional(zero.int), ) use active_caches_count <- zero.optional_field( "active_caches_count", None, zero.optional(zero.int), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) zero.success(ActionsCacheUsageByRepository( active_caches_size_in_bytes: active_caches_size_in_bytes, active_caches_count: active_caches_count, full_name: full_name, )) } pub fn review_custom_gates_comment_required_to_json( data: ReviewCustomGatesCommentRequired, ) { json.object([ #("environment_name", json.nullable(data.environment_name, json.string)), #("comment", json.nullable(data.comment, json.string)), ]) } pub fn review_custom_gates_comment_required_decoder() { use environment_name <- zero.optional_field( "environment_name", None, zero.optional(zero.string), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.string), ) zero.success(ReviewCustomGatesCommentRequired( environment_name: environment_name, comment: comment, )) } pub fn webhook_sub_issues_parent_issue_removed_to_json( data: WebhookSubIssuesParentIssueRemoved, ) { json.object([ #("sub_issue_id", json.nullable(data.sub_issue_id, json.float)), #("parent_issue", json.null()), #("repository", json.null()), #("parent_issue_repo", json.null()), #("organization", json.null()), #("sender", json.null()), #("parent_issue_id", json.nullable(data.parent_issue_id, json.float)), #("action", json.nullable(data.action, json.string)), #("sub_issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_sub_issues_parent_issue_removed_decoder() { use sub_issue_id <- zero.optional_field( "sub_issue_id", None, zero.optional(zero.float), ) use parent_issue <- zero.optional_field( "parent_issue", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use parent_issue_repo <- zero.optional_field( "parent_issue_repo", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use parent_issue_id <- zero.optional_field( "parent_issue_id", None, zero.optional(zero.float), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use sub_issue <- zero.optional_field( "sub_issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSubIssuesParentIssueRemoved( sub_issue_id: sub_issue_id, parent_issue: parent_issue, repository: repository, parent_issue_repo: parent_issue_repo, organization: organization, sender: sender, parent_issue_id: parent_issue_id, action: action, sub_issue: sub_issue, installation: installation, )) } pub fn codespace_to_json(data: Codespace) { json.object([ #( "idle_timeout_notice", json.nullable(data.idle_timeout_notice, json.string), ), #("recent_folders", json.null()), #( "retention_period_minutes", json.nullable(data.retention_period_minutes, json.int), ), #("web_url", json.nullable(data.web_url, json.string)), #("machine", json.null()), #( "pending_operation_disabled_reason", json.nullable(data.pending_operation_disabled_reason, json.string), ), #("environment_id", json.nullable(data.environment_id, json.string)), #("display_name", json.nullable(data.display_name, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("prebuild", json.nullable(data.prebuild, json.bool)), #("name", json.nullable(data.name, json.string)), #("last_used_at", json.nullable(data.last_used_at, json.string)), #("runtime_constraints", json.null()), #("url", json.nullable(data.url, json.string)), #( "last_known_stop_notice", json.nullable(data.last_known_stop_notice, json.string), ), #("state", json.nullable(data.state, json.string)), #("start_url", json.nullable(data.start_url, json.string)), #("stop_url", json.nullable(data.stop_url, json.string)), #("owner", json.null()), #("billable_owner", json.null()), #("location", json.nullable(data.location, json.string)), #( "idle_timeout_minutes", json.nullable(data.idle_timeout_minutes, json.int), ), #("updated_at", json.nullable(data.updated_at, json.string)), #("devcontainer_path", json.nullable(data.devcontainer_path, json.string)), #("id", json.nullable(data.id, json.int)), #("machines_url", json.nullable(data.machines_url, json.string)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("pending_operation", json.nullable(data.pending_operation, json.bool)), #( "retention_expires_at", json.nullable(data.retention_expires_at, json.string), ), #("git_status", json.null()), #("publish_url", json.nullable(data.publish_url, json.string)), ]) } pub fn codespace_decoder() { use idle_timeout_notice <- zero.optional_field( "idle_timeout_notice", None, zero.optional(zero.string), ) use recent_folders <- zero.optional_field( "recent_folders", None, zero.optional(zero.list(zero.string)), ) use retention_period_minutes <- zero.optional_field( "retention_period_minutes", None, zero.optional(zero.int), ) use web_url <- zero.optional_field( "web_url", None, zero.optional(zero.string), ) use machine <- zero.optional_field( "machine", None, zero.optional(zero.success(Nil)), ) use pending_operation_disabled_reason <- zero.optional_field( "pending_operation_disabled_reason", None, zero.optional(zero.string), ) use environment_id <- zero.optional_field( "environment_id", None, zero.optional(zero.string), ) use display_name <- zero.optional_field( "display_name", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use prebuild <- zero.optional_field( "prebuild", None, zero.optional(zero.bool), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use last_used_at <- zero.optional_field( "last_used_at", None, zero.optional(zero.string), ) use runtime_constraints <- zero.optional_field( "runtime_constraints", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use last_known_stop_notice <- zero.optional_field( "last_known_stop_notice", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use start_url <- zero.optional_field( "start_url", None, zero.optional(zero.string), ) use stop_url <- zero.optional_field( "stop_url", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use billable_owner <- zero.optional_field( "billable_owner", None, zero.optional(zero.success(Nil)), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use idle_timeout_minutes <- zero.optional_field( "idle_timeout_minutes", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use devcontainer_path <- zero.optional_field( "devcontainer_path", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use machines_url <- zero.optional_field( "machines_url", None, zero.optional(zero.string), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use pending_operation <- zero.optional_field( "pending_operation", None, zero.optional(zero.bool), ) use retention_expires_at <- zero.optional_field( "retention_expires_at", None, zero.optional(zero.string), ) use git_status <- zero.optional_field( "git_status", None, zero.optional(zero.success(Nil)), ) use publish_url <- zero.optional_field( "publish_url", None, zero.optional(zero.string), ) zero.success(Codespace( idle_timeout_notice: idle_timeout_notice, recent_folders: recent_folders, retention_period_minutes: retention_period_minutes, web_url: web_url, machine: machine, pending_operation_disabled_reason: pending_operation_disabled_reason, environment_id: environment_id, display_name: display_name, created_at: created_at, repository: repository, prebuild: prebuild, name: name, last_used_at: last_used_at, runtime_constraints: runtime_constraints, url: url, last_known_stop_notice: last_known_stop_notice, state: state, start_url: start_url, stop_url: stop_url, owner: owner, billable_owner: billable_owner, location: location, idle_timeout_minutes: idle_timeout_minutes, updated_at: updated_at, devcontainer_path: devcontainer_path, id: id, machines_url: machines_url, pulls_url: pulls_url, pending_operation: pending_operation, retention_expires_at: retention_expires_at, git_status: git_status, publish_url: publish_url, )) } pub fn project_to_json(data: Project) { json.object([ #("body", json.nullable(data.body, json.string)), #("private", json.nullable(data.private, json.bool)), #("owner_url", json.nullable(data.owner_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("creator", json.null()), #("columns_url", json.nullable(data.columns_url, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #( "organization_permission", json.nullable(data.organization_permission, json.string), ), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn project_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use owner_url <- zero.optional_field( "owner_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use columns_url <- zero.optional_field( "columns_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use organization_permission <- zero.optional_field( "organization_permission", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(Project( body: body, private: private, owner_url: owner_url, number: number, created_at: created_at, name: name, creator: creator, columns_url: columns_url, url: url, state: state, updated_at: updated_at, node_id: node_id, organization_permission: organization_permission, id: id, html_url: html_url, )) } pub fn webhooks_membership_to_json(data: WebhooksMembership) { json.object([ #("organization_url", json.nullable(data.organization_url, json.string)), #("user", json.null()), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("role", json.nullable(data.role, json.string)), ]) } pub fn webhooks_membership_decoder() { use organization_url <- zero.optional_field( "organization_url", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use role <- zero.optional_field("role", None, zero.optional(zero.string)) zero.success(WebhooksMembership( organization_url: organization_url, user: user, url: url, state: state, role: role, )) } pub fn code_scanning_alert_set_state_decoder() { zero.string } pub fn webhooks_project_card_to_json(data: WebhooksProjectCard) { json.object([ #("archived", json.nullable(data.archived, json.bool)), #("column_id", json.nullable(data.column_id, json.int)), #("column_url", json.nullable(data.column_url, json.string)), #("content_url", json.nullable(data.content_url, json.string)), #("project_url", json.nullable(data.project_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("url", json.nullable(data.url, json.string)), #("note", json.nullable(data.note, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("after_id", json.nullable(data.after_id, json.int)), ]) } pub fn webhooks_project_card_decoder() { use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use column_id <- zero.optional_field( "column_id", None, zero.optional(zero.int), ) use column_url <- zero.optional_field( "column_url", None, zero.optional(zero.string), ) use content_url <- zero.optional_field( "content_url", None, zero.optional(zero.string), ) use project_url <- zero.optional_field( "project_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use note <- zero.optional_field("note", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use after_id <- zero.optional_field("after_id", None, zero.optional(zero.int)) zero.success(WebhooksProjectCard( archived: archived, column_id: column_id, column_url: column_url, content_url: content_url, project_url: project_url, created_at: created_at, creator: creator, url: url, note: note, updated_at: updated_at, node_id: node_id, id: id, after_id: after_id, )) } pub fn webhook_repository_transferred_to_json( data: WebhookRepositoryTransferred, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_transferred_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryTransferred( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn actions_cache_list_to_json(data: ActionsCacheList) { json.object([ #("actions_caches", json.null()), #("total_count", json.nullable(data.total_count, json.int)), ]) } pub fn actions_cache_list_decoder() { use actions_caches <- zero.optional_field( "actions_caches", None, zero.optional(zero.success(Nil)), ) use total_count <- zero.optional_field( "total_count", None, zero.optional(zero.int), ) zero.success(ActionsCacheList( actions_caches: actions_caches, total_count: total_count, )) } pub fn webhook_issues_reopened_to_json(data: WebhookIssuesReopened) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesReopened( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn timeline_issue_events_to_json(data: TimelineIssueEvents) { json.object([]) } pub fn timeline_issue_events_decoder() { zero.success(TimelineIssueEvents) } pub fn webhook_discussion_locked_to_json(data: WebhookDiscussionLocked) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_locked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionLocked( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn api_insights_summary_stats_to_json(data: ApiInsightsSummaryStats) { json.object([ #("total_request_count", json.nullable(data.total_request_count, json.int)), #( "rate_limited_request_count", json.nullable(data.rate_limited_request_count, json.int), ), ]) } pub fn api_insights_summary_stats_decoder() { use total_request_count <- zero.optional_field( "total_request_count", None, zero.optional(zero.int), ) use rate_limited_request_count <- zero.optional_field( "rate_limited_request_count", None, zero.optional(zero.int), ) zero.success(ApiInsightsSummaryStats( total_request_count: total_request_count, rate_limited_request_count: rate_limited_request_count, )) } pub fn webhook_release_unpublished_to_json(data: WebhookReleaseUnpublished) { json.object([ #("enterprise", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_unpublished_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleaseUnpublished( enterprise: enterprise, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn classroom_accepted_assignment_to_json(data: ClassroomAcceptedAssignment) { json.object([ #("commit_count", json.nullable(data.commit_count, json.int)), #("repository", json.null()), #("assignment", json.null()), #("passing", json.nullable(data.passing, json.bool)), #("grade", json.nullable(data.grade, json.string)), #("students", json.null()), #("submitted", json.nullable(data.submitted, json.bool)), #("id", json.nullable(data.id, json.int)), ]) } pub fn classroom_accepted_assignment_decoder() { use commit_count <- zero.optional_field( "commit_count", None, zero.optional(zero.int), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use assignment <- zero.optional_field( "assignment", None, zero.optional(zero.success(Nil)), ) use passing <- zero.optional_field("passing", None, zero.optional(zero.bool)) use grade <- zero.optional_field("grade", None, zero.optional(zero.string)) use students <- zero.optional_field( "students", None, zero.optional(zero.success(Nil)), ) use submitted <- zero.optional_field( "submitted", None, zero.optional(zero.bool), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ClassroomAcceptedAssignment( commit_count: commit_count, repository: repository, assignment: assignment, passing: passing, grade: grade, students: students, submitted: submitted, id: id, )) } pub fn webhook_sub_issues_parent_issue_added_to_json( data: WebhookSubIssuesParentIssueAdded, ) { json.object([ #("sub_issue_id", json.nullable(data.sub_issue_id, json.float)), #("parent_issue", json.null()), #("repository", json.null()), #("parent_issue_repo", json.null()), #("organization", json.null()), #("sender", json.null()), #("parent_issue_id", json.nullable(data.parent_issue_id, json.float)), #("action", json.nullable(data.action, json.string)), #("sub_issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_sub_issues_parent_issue_added_decoder() { use sub_issue_id <- zero.optional_field( "sub_issue_id", None, zero.optional(zero.float), ) use parent_issue <- zero.optional_field( "parent_issue", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use parent_issue_repo <- zero.optional_field( "parent_issue_repo", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use parent_issue_id <- zero.optional_field( "parent_issue_id", None, zero.optional(zero.float), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use sub_issue <- zero.optional_field( "sub_issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSubIssuesParentIssueAdded( sub_issue_id: sub_issue_id, parent_issue: parent_issue, repository: repository, parent_issue_repo: parent_issue_repo, organization: organization, sender: sender, parent_issue_id: parent_issue_id, action: action, sub_issue: sub_issue, installation: installation, )) } pub fn webhooks_changes8_to_json(data: WebhooksChanges8) { json.object([#("tier", json.null())]) } pub fn webhooks_changes8_decoder() { use tier <- zero.optional_field( "tier", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksChanges8(tier: tier)) } pub fn content_directory_decoder() { panic as "unsupported schema" } pub fn webhook_pull_request_opened_to_json(data: WebhookPullRequestOpened) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_opened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestOpened( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_pull_request_edited_to_json(data: WebhookPullRequestEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestEdited( enterprise: enterprise, changes: changes, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_discussion_created_to_json(data: WebhookDiscussionCreated) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionCreated( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_release_released_to_json(data: WebhookReleaseReleased) { json.object([ #("enterprise", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_released_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleaseReleased( enterprise: enterprise, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn issue_to_json(data: Issue) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("number", json.nullable(data.number, json.int)), #("closed_by", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("repository", json.null()), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("milestone", json.null()), #("timeline_url", json.nullable(data.timeline_url, json.string)), #("state", json.nullable(data.state, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("comments", json.nullable(data.comments, json.int)), #("pull_request", json.null()), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn issue_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use closed_by <- zero.optional_field( "closed_by", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(Issue( draft: draft, body: body, assignees: assignees, comments_url: comments_url, closed_at: closed_at, body_html: body_html, events_url: events_url, number: number, closed_by: closed_by, created_at: created_at, body_text: body_text, locked: locked, repository: repository, reactions: reactions, user: user, author_association: author_association, labels_url: labels_url, url: url, assignee: assignee, milestone: milestone, timeline_url: timeline_url, state: state, state_reason: state_reason, comments: comments, pull_request: pull_request, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, title: title, repository_url: repository_url, id: id, html_url: html_url, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn git_tree_to_json(data: GitTree) { json.object([ #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("tree", json.null()), #("truncated", json.nullable(data.truncated, json.bool)), ]) } pub fn git_tree_decoder() { use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use tree <- zero.optional_field( "tree", None, zero.optional(zero.success(Nil)), ) use truncated <- zero.optional_field( "truncated", None, zero.optional(zero.bool), ) zero.success(GitTree(sha: sha, url: url, tree: tree, truncated: truncated)) } pub fn code_scanning_sarifs_receipt_to_json(data: CodeScanningSarifsReceipt) { json.object([ #("url", json.nullable(data.url, json.string)), #("id", json.nullable(data.id, json.string)), ]) } pub fn code_scanning_sarifs_receipt_decoder() { use url <- zero.optional_field("url", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.string)) zero.success(CodeScanningSarifsReceipt(url: url, id: id)) } pub fn authorization_to_json(data: Authorization) { json.object([ #("app", json.null()), #("note_url", json.nullable(data.note_url, json.string)), #("fingerprint", json.nullable(data.fingerprint, json.string)), #("hashed_token", json.nullable(data.hashed_token, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("user", json.null()), #("token_last_eight", json.nullable(data.token_last_eight, json.string)), #("url", json.nullable(data.url, json.string)), #("note", json.nullable(data.note, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("token", json.nullable(data.token_, json.string)), #("installation", json.null()), #("id", json.nullable(data.id, json.int)), #("expires_at", json.nullable(data.expires_at, json.string)), #("scopes", json.null()), ]) } pub fn authorization_decoder() { use app <- zero.optional_field("app", None, zero.optional(zero.success(Nil))) use note_url <- zero.optional_field( "note_url", None, zero.optional(zero.string), ) use fingerprint <- zero.optional_field( "fingerprint", None, zero.optional(zero.string), ) use hashed_token <- zero.optional_field( "hashed_token", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use token_last_eight <- zero.optional_field( "token_last_eight", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use note <- zero.optional_field("note", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use token_ <- zero.optional_field("token", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) use scopes <- zero.optional_field( "scopes", None, zero.optional(zero.list(zero.string)), ) zero.success(Authorization( app: app, note_url: note_url, fingerprint: fingerprint, hashed_token: hashed_token, created_at: created_at, user: user, token_last_eight: token_last_eight, url: url, note: note, updated_at: updated_at, token_: token_, installation: installation, id: id, expires_at: expires_at, scopes: scopes, )) } pub fn deploy_key_to_json(data: DeployKey) { json.object([ #("enabled", json.nullable(data.enabled, json.bool)), #("last_used", json.nullable(data.last_used, json.string)), #("verified", json.nullable(data.verified, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("read_only", json.nullable(data.read_only, json.bool)), #("added_by", json.nullable(data.added_by, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("key", json.nullable(data.key, json.string)), ]) } pub fn deploy_key_decoder() { use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use last_used <- zero.optional_field( "last_used", None, zero.optional(zero.string), ) use verified <- zero.optional_field( "verified", None, zero.optional(zero.bool), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use read_only <- zero.optional_field( "read_only", None, zero.optional(zero.bool), ) use added_by <- zero.optional_field( "added_by", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(DeployKey( enabled: enabled, last_used: last_used, verified: verified, created_at: created_at, url: url, read_only: read_only, added_by: added_by, title: title, id: id, key: key, )) } pub fn webhook_repository_renamed_to_json(data: WebhookRepositoryRenamed) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_renamed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryRenamed( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repo_search_result_item_to_json(data: RepoSearchResultItem) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("text_matches", json.null()), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("score", json.nullable(data.score, json.float)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("owner", json.null()), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn repo_search_result_item_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(RepoSearchResultItem( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, text_matches: text_matches, license: license, delete_branch_on_merge: delete_branch_on_merge, forks_count: forks_count, fork: fork, git_url: git_url, archived: archived, private: private, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, has_discussions: has_discussions, teams_url: teams_url, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, allow_squash_merge: allow_squash_merge, homepage: homepage, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, forks: forks, archive_url: archive_url, score: score, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, owner: owner, allow_merge_commit: allow_merge_commit, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, updated_at: updated_at, watchers: watchers, node_id: node_id, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhook_label_created_to_json(data: WebhookLabelCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_label_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookLabelCreated( enterprise: enterprise, repository: repository, organization: organization, label: label, sender: sender, action: action, installation: installation, )) } pub fn webhooks_alert_to_json(data: WebhooksAlert) { json.object([ #("number", json.nullable(data.number, json.int)), #("dismissed_at", json.nullable(data.dismissed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("ghsa_id", json.nullable(data.ghsa_id, json.string)), #("fix_reason", json.nullable(data.fix_reason, json.string)), #( "affected_package_name", json.nullable(data.affected_package_name, json.string), ), #("fixed_in", json.nullable(data.fixed_in, json.string)), #("state", json.nullable(data.state, json.string)), #("affected_range", json.nullable(data.affected_range, json.string)), #("dismisser", json.null()), #("external_reference", json.nullable(data.external_reference, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("dismiss_reason", json.nullable(data.dismiss_reason, json.string)), #("id", json.nullable(data.id, json.int)), #( "external_identifier", json.nullable(data.external_identifier, json.string), ), #("severity", json.nullable(data.severity, json.string)), #("fixed_at", json.nullable(data.fixed_at, json.string)), ]) } pub fn webhooks_alert_decoder() { use number <- zero.optional_field("number", None, zero.optional(zero.int)) use dismissed_at <- zero.optional_field( "dismissed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use ghsa_id <- zero.optional_field( "ghsa_id", None, zero.optional(zero.string), ) use fix_reason <- zero.optional_field( "fix_reason", None, zero.optional(zero.string), ) use affected_package_name <- zero.optional_field( "affected_package_name", None, zero.optional(zero.string), ) use fixed_in <- zero.optional_field( "fixed_in", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use affected_range <- zero.optional_field( "affected_range", None, zero.optional(zero.string), ) use dismisser <- zero.optional_field( "dismisser", None, zero.optional(zero.success(Nil)), ) use external_reference <- zero.optional_field( "external_reference", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use dismiss_reason <- zero.optional_field( "dismiss_reason", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use external_identifier <- zero.optional_field( "external_identifier", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) use fixed_at <- zero.optional_field( "fixed_at", None, zero.optional(zero.string), ) zero.success(WebhooksAlert( number: number, dismissed_at: dismissed_at, created_at: created_at, ghsa_id: ghsa_id, fix_reason: fix_reason, affected_package_name: affected_package_name, fixed_in: fixed_in, state: state, affected_range: affected_range, dismisser: dismisser, external_reference: external_reference, node_id: node_id, dismiss_reason: dismiss_reason, id: id, external_identifier: external_identifier, severity: severity, fixed_at: fixed_at, )) } pub fn simple_classroom_to_json(data: SimpleClassroom) { json.object([ #("archived", json.nullable(data.archived, json.bool)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn simple_classroom_decoder() { use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(SimpleClassroom(archived: archived, name: name, url: url, id: id)) } pub fn webhooks_marketplace_purchase_to_json(data: WebhooksMarketplacePurchase) { json.object([ #("billing_cycle", json.nullable(data.billing_cycle, json.string)), #("on_free_trial", json.nullable(data.on_free_trial, json.bool)), #("plan", json.null()), #("free_trial_ends_on", json.nullable(data.free_trial_ends_on, json.string)), #("account", json.null()), #("unit_count", json.nullable(data.unit_count, json.int)), #("next_billing_date", json.nullable(data.next_billing_date, json.string)), ]) } pub fn webhooks_marketplace_purchase_decoder() { use billing_cycle <- zero.optional_field( "billing_cycle", None, zero.optional(zero.string), ) use on_free_trial <- zero.optional_field( "on_free_trial", None, zero.optional(zero.bool), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use free_trial_ends_on <- zero.optional_field( "free_trial_ends_on", None, zero.optional(zero.string), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use unit_count <- zero.optional_field( "unit_count", None, zero.optional(zero.int), ) use next_billing_date <- zero.optional_field( "next_billing_date", None, zero.optional(zero.string), ) zero.success(WebhooksMarketplacePurchase( billing_cycle: billing_cycle, on_free_trial: on_free_trial, plan: plan, free_trial_ends_on: free_trial_ends_on, account: account, unit_count: unit_count, next_billing_date: next_billing_date, )) } pub fn rate_limit_overview_to_json(data: RateLimitOverview) { json.object([#("rate", json.null()), #("resources", json.null())]) } pub fn rate_limit_overview_decoder() { use rate <- zero.optional_field( "rate", None, zero.optional(zero.success(Nil)), ) use resources <- zero.optional_field( "resources", None, zero.optional(zero.success(Nil)), ) zero.success(RateLimitOverview(rate: rate, resources: resources)) } pub fn webhook_discussion_edited_to_json(data: WebhookDiscussionEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionEdited( enterprise: enterprise, changes: changes, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_installation_repositories_added_to_json( data: WebhookInstallationRepositoriesAdded, ) { json.object([ #("enterprise", json.null()), #("repositories_removed", json.null()), #("repositories_added", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("installation", json.null()), #("requester", json.null()), ]) } pub fn webhook_installation_repositories_added_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories_removed <- zero.optional_field( "repositories_removed", None, zero.optional(zero.success(Nil)), ) use repositories_added <- zero.optional_field( "repositories_added", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use requester <- zero.optional_field( "requester", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationRepositoriesAdded( enterprise: enterprise, repositories_removed: repositories_removed, repositories_added: repositories_added, repository: repository, organization: organization, sender: sender, action: action, repository_selection: repository_selection, installation: installation, requester: requester, )) } pub fn webhook_sponsorship_pending_tier_change_to_json( data: WebhookSponsorshipPendingTierChange, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("sponsorship", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_sponsorship_pending_tier_change_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use sponsorship <- zero.optional_field( "sponsorship", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSponsorshipPendingTierChange( enterprise: enterprise, changes: changes, effective_date: effective_date, repository: repository, organization: organization, sender: sender, sponsorship: sponsorship, action: action, installation: installation, )) } pub fn webhook_config_to_json(data: WebhookConfig) { json.object([ #("content_type", json.nullable(data.content_type, json.string)), #("insecure_ssl", json.null()), #("url", json.nullable(data.url, json.string)), #("secret", json.nullable(data.secret, json.string)), ]) } pub fn webhook_config_decoder() { use content_type <- zero.optional_field( "content_type", None, zero.optional(zero.string), ) use insecure_ssl <- zero.optional_field( "insecure_ssl", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use secret <- zero.optional_field("secret", None, zero.optional(zero.string)) zero.success(WebhookConfig( content_type: content_type, insecure_ssl: insecure_ssl, url: url, secret: secret, )) } pub fn language_to_json(data: Language) { json.object([]) } pub fn language_decoder() { zero.success(Language) } pub fn pull_request_simple_to_json(data: PullRequestSimple) { json.object([ #("head", json.null()), #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("requested_teams", json.null()), #("merged_at", json.nullable(data.merged_at, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("review_comment_url", json.nullable(data.review_comment_url, json.string)), #("auto_merge", json.null()), #("issue_url", json.nullable(data.issue_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("merge_commit_sha", json.nullable(data.merge_commit_sha, json.string)), #( "review_comments_url", json.nullable(data.review_comments_url, json.string), ), #("user", json.null()), #("commits_url", json.nullable(data.commits_url, json.string)), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("milestone", json.null()), #("state", json.nullable(data.state, json.string)), #("base", json.null()), #("diff_url", json.nullable(data.diff_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("patch_url", json.nullable(data.patch_url, json.string)), #("title", json.nullable(data.title, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("requested_reviewers", json.null()), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn pull_request_simple_decoder() { use head <- zero.optional_field( "head", None, zero.optional(zero.success(Nil)), ) use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use requested_teams <- zero.optional_field( "requested_teams", None, zero.optional(zero.success(Nil)), ) use merged_at <- zero.optional_field( "merged_at", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use review_comment_url <- zero.optional_field( "review_comment_url", None, zero.optional(zero.string), ) use auto_merge <- zero.optional_field( "auto_merge", None, zero.optional(zero.success(Nil)), ) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use merge_commit_sha <- zero.optional_field( "merge_commit_sha", None, zero.optional(zero.string), ) use review_comments_url <- zero.optional_field( "review_comments_url", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use base_ <- zero.optional_field( "base", None, zero.optional(zero.success(Nil)), ) use diff_url <- zero.optional_field( "diff_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use patch_url <- zero.optional_field( "patch_url", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use requested_reviewers <- zero.optional_field( "requested_reviewers", None, zero.optional(zero.success(Nil)), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(PullRequestSimple( head: head, draft: draft, body: body, assignees: assignees, comments_url: comments_url, requested_teams: requested_teams, merged_at: merged_at, closed_at: closed_at, review_comment_url: review_comment_url, auto_merge: auto_merge, issue_url: issue_url, number: number, created_at: created_at, locked: locked, merge_commit_sha: merge_commit_sha, review_comments_url: review_comments_url, user: user, commits_url: commits_url, author_association: author_association, url: url, assignee: assignee, statuses_url: statuses_url, milestone: milestone, state: state, base_: base_, diff_url: diff_url, updated_at: updated_at, node_id: node_id, patch_url: patch_url, title: title, links: links, id: id, html_url: html_url, requested_reviewers: requested_reviewers, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn app_permissions_to_json(data: AppPermissions) { json.object([ #("statuses", json.nullable(data.statuses, json.string)), #("environments", json.nullable(data.environments, json.string)), #( "organization_custom_org_roles", json.nullable(data.organization_custom_org_roles, json.string), ), #( "organization_personal_access_tokens", json.nullable(data.organization_personal_access_tokens, json.string), ), #("starring", json.nullable(data.starring, json.string)), #("secrets", json.nullable(data.secrets, json.string)), #("organization_hooks", json.nullable(data.organization_hooks, json.string)), #("pages", json.nullable(data.pages, json.string)), #( "organization_events", json.nullable(data.organization_events, json.string), ), #("interaction_limits", json.nullable(data.interaction_limits, json.string)), #( "organization_projects", json.nullable(data.organization_projects, json.string), ), #("profile", json.nullable(data.profile, json.string)), #("team_discussions", json.nullable(data.team_discussions, json.string)), #( "organization_administration", json.nullable(data.organization_administration, json.string), ), #("checks", json.nullable(data.checks, json.string)), #( "repository_custom_properties", json.nullable(data.repository_custom_properties, json.string), ), #("packages", json.nullable(data.packages, json.string)), #("deployments", json.nullable(data.deployments, json.string)), #( "repository_projects", json.nullable(data.repository_projects, json.string), ), #("metadata", json.nullable(data.metadata, json.string)), #( "organization_personal_access_token_requests", json.nullable( data.organization_personal_access_token_requests, json.string, ), ), #( "organization_self_hosted_runners", json.nullable(data.organization_self_hosted_runners, json.string), ), #("single_file", json.nullable(data.single_file, json.string)), #("workflows", json.nullable(data.workflows, json.string)), #("followers", json.nullable(data.followers, json.string)), #("gpg_keys", json.nullable(data.gpg_keys, json.string)), #( "organization_custom_properties", json.nullable(data.organization_custom_properties, json.string), ), #("organization_plan", json.nullable(data.organization_plan, json.string)), #( "secret_scanning_alerts", json.nullable(data.secret_scanning_alerts, json.string), ), #("dependabot_secrets", json.nullable(data.dependabot_secrets, json.string)), #( "organization_secrets", json.nullable(data.organization_secrets, json.string), ), #("security_events", json.nullable(data.security_events, json.string)), #("git_ssh_keys", json.nullable(data.git_ssh_keys, json.string)), #("members", json.nullable(data.members, json.string)), #( "organization_packages", json.nullable(data.organization_packages, json.string), ), #("codespaces", json.nullable(data.codespaces, json.string)), #("issues", json.nullable(data.issues, json.string)), #("contents", json.nullable(data.contents, json.string)), #( "vulnerability_alerts", json.nullable(data.vulnerability_alerts, json.string), ), #("repository_hooks", json.nullable(data.repository_hooks, json.string)), #( "organization_announcement_banners", json.nullable(data.organization_announcement_banners, json.string), ), #( "organization_custom_roles", json.nullable(data.organization_custom_roles, json.string), ), #( "organization_user_blocking", json.nullable(data.organization_user_blocking, json.string), ), #("actions", json.nullable(data.actions, json.string)), #("administration", json.nullable(data.administration, json.string)), #("pull_requests", json.nullable(data.pull_requests, json.string)), #( "organization_copilot_seat_management", json.nullable(data.organization_copilot_seat_management, json.string), ), #("email_addresses", json.nullable(data.email_addresses, json.string)), ]) } pub fn app_permissions_decoder() { use statuses <- zero.optional_field( "statuses", None, zero.optional(zero.string), ) use environments <- zero.optional_field( "environments", None, zero.optional(zero.string), ) use organization_custom_org_roles <- zero.optional_field( "organization_custom_org_roles", None, zero.optional(zero.string), ) use organization_personal_access_tokens <- zero.optional_field( "organization_personal_access_tokens", None, zero.optional(zero.string), ) use starring <- zero.optional_field( "starring", None, zero.optional(zero.string), ) use secrets <- zero.optional_field( "secrets", None, zero.optional(zero.string), ) use organization_hooks <- zero.optional_field( "organization_hooks", None, zero.optional(zero.string), ) use pages <- zero.optional_field("pages", None, zero.optional(zero.string)) use organization_events <- zero.optional_field( "organization_events", None, zero.optional(zero.string), ) use interaction_limits <- zero.optional_field( "interaction_limits", None, zero.optional(zero.string), ) use organization_projects <- zero.optional_field( "organization_projects", None, zero.optional(zero.string), ) use profile <- zero.optional_field( "profile", None, zero.optional(zero.string), ) use team_discussions <- zero.optional_field( "team_discussions", None, zero.optional(zero.string), ) use organization_administration <- zero.optional_field( "organization_administration", None, zero.optional(zero.string), ) use checks <- zero.optional_field("checks", None, zero.optional(zero.string)) use repository_custom_properties <- zero.optional_field( "repository_custom_properties", None, zero.optional(zero.string), ) use packages <- zero.optional_field( "packages", None, zero.optional(zero.string), ) use deployments <- zero.optional_field( "deployments", None, zero.optional(zero.string), ) use repository_projects <- zero.optional_field( "repository_projects", None, zero.optional(zero.string), ) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.string), ) use organization_personal_access_token_requests <- zero.optional_field( "organization_personal_access_token_requests", None, zero.optional(zero.string), ) use organization_self_hosted_runners <- zero.optional_field( "organization_self_hosted_runners", None, zero.optional(zero.string), ) use single_file <- zero.optional_field( "single_file", None, zero.optional(zero.string), ) use workflows <- zero.optional_field( "workflows", None, zero.optional(zero.string), ) use followers <- zero.optional_field( "followers", None, zero.optional(zero.string), ) use gpg_keys <- zero.optional_field( "gpg_keys", None, zero.optional(zero.string), ) use organization_custom_properties <- zero.optional_field( "organization_custom_properties", None, zero.optional(zero.string), ) use organization_plan <- zero.optional_field( "organization_plan", None, zero.optional(zero.string), ) use secret_scanning_alerts <- zero.optional_field( "secret_scanning_alerts", None, zero.optional(zero.string), ) use dependabot_secrets <- zero.optional_field( "dependabot_secrets", None, zero.optional(zero.string), ) use organization_secrets <- zero.optional_field( "organization_secrets", None, zero.optional(zero.string), ) use security_events <- zero.optional_field( "security_events", None, zero.optional(zero.string), ) use git_ssh_keys <- zero.optional_field( "git_ssh_keys", None, zero.optional(zero.string), ) use members <- zero.optional_field( "members", None, zero.optional(zero.string), ) use organization_packages <- zero.optional_field( "organization_packages", None, zero.optional(zero.string), ) use codespaces <- zero.optional_field( "codespaces", None, zero.optional(zero.string), ) use issues <- zero.optional_field("issues", None, zero.optional(zero.string)) use contents <- zero.optional_field( "contents", None, zero.optional(zero.string), ) use vulnerability_alerts <- zero.optional_field( "vulnerability_alerts", None, zero.optional(zero.string), ) use repository_hooks <- zero.optional_field( "repository_hooks", None, zero.optional(zero.string), ) use organization_announcement_banners <- zero.optional_field( "organization_announcement_banners", None, zero.optional(zero.string), ) use organization_custom_roles <- zero.optional_field( "organization_custom_roles", None, zero.optional(zero.string), ) use organization_user_blocking <- zero.optional_field( "organization_user_blocking", None, zero.optional(zero.string), ) use actions <- zero.optional_field( "actions", None, zero.optional(zero.string), ) use administration <- zero.optional_field( "administration", None, zero.optional(zero.string), ) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.string), ) use organization_copilot_seat_management <- zero.optional_field( "organization_copilot_seat_management", None, zero.optional(zero.string), ) use email_addresses <- zero.optional_field( "email_addresses", None, zero.optional(zero.string), ) zero.success(AppPermissions( statuses: statuses, environments: environments, organization_custom_org_roles: organization_custom_org_roles, organization_personal_access_tokens: organization_personal_access_tokens, starring: starring, secrets: secrets, organization_hooks: organization_hooks, pages: pages, organization_events: organization_events, interaction_limits: interaction_limits, organization_projects: organization_projects, profile: profile, team_discussions: team_discussions, organization_administration: organization_administration, checks: checks, repository_custom_properties: repository_custom_properties, packages: packages, deployments: deployments, repository_projects: repository_projects, metadata: metadata, organization_personal_access_token_requests: organization_personal_access_token_requests, organization_self_hosted_runners: organization_self_hosted_runners, single_file: single_file, workflows: workflows, followers: followers, gpg_keys: gpg_keys, organization_custom_properties: organization_custom_properties, organization_plan: organization_plan, secret_scanning_alerts: secret_scanning_alerts, dependabot_secrets: dependabot_secrets, organization_secrets: organization_secrets, security_events: security_events, git_ssh_keys: git_ssh_keys, members: members, organization_packages: organization_packages, codespaces: codespaces, issues: issues, contents: contents, vulnerability_alerts: vulnerability_alerts, repository_hooks: repository_hooks, organization_announcement_banners: organization_announcement_banners, organization_custom_roles: organization_custom_roles, organization_user_blocking: organization_user_blocking, actions: actions, administration: administration, pull_requests: pull_requests, organization_copilot_seat_management: organization_copilot_seat_management, email_addresses: email_addresses, )) } pub fn simple_check_suite_to_json(data: SimpleCheckSuite) { json.object([ #("head_branch", json.nullable(data.head_branch, json.string)), #("app", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("head_sha", json.nullable(data.head_sha, json.string)), #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("after", json.nullable(data.after, json.string)), #("pull_requests", json.null()), #("conclusion", json.nullable(data.conclusion, json.string)), #("before", json.nullable(data.before, json.string)), ]) } pub fn simple_check_suite_decoder() { use head_branch <- zero.optional_field( "head_branch", None, zero.optional(zero.string), ) use app <- zero.optional_field("app", None, zero.optional(zero.success(Nil))) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use after <- zero.optional_field("after", None, zero.optional(zero.string)) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.success(Nil)), ) use conclusion <- zero.optional_field( "conclusion", None, zero.optional(zero.string), ) use before <- zero.optional_field("before", None, zero.optional(zero.string)) zero.success(SimpleCheckSuite( head_branch: head_branch, app: app, created_at: created_at, repository: repository, head_sha: head_sha, url: url, status: status, updated_at: updated_at, node_id: node_id, id: id, after: after, pull_requests: pull_requests, conclusion: conclusion, before: before, )) } pub fn webhook_fork_to_json(data: WebhookFork) { json.object([ #("enterprise", json.null()), #("forkee", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), ]) } pub fn webhook_fork_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use forkee <- zero.optional_field( "forkee", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookFork( enterprise: enterprise, forkee: forkee, repository: repository, organization: organization, sender: sender, installation: installation, )) } pub fn check_run_with_simple_check_suite_to_json( data: CheckRunWithSimpleCheckSuite, ) { json.object([ #("output", json.null()), #("check_suite", json.null()), #("app", json.null()), #("deployment", json.null()), #("completed_at", json.nullable(data.completed_at, json.string)), #("name", json.nullable(data.name, json.string)), #("head_sha", json.nullable(data.head_sha, json.string)), #("url", json.nullable(data.url, json.string)), #("external_id", json.nullable(data.external_id, json.string)), #("started_at", json.nullable(data.started_at, json.string)), #("details_url", json.nullable(data.details_url, json.string)), #("status", json.nullable(data.status, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("pull_requests", json.null()), #("conclusion", json.nullable(data.conclusion, json.string)), ]) } pub fn check_run_with_simple_check_suite_decoder() { use output <- zero.optional_field( "output", None, zero.optional(zero.success(Nil)), ) use check_suite <- zero.optional_field( "check_suite", None, zero.optional(zero.success(Nil)), ) use app <- zero.optional_field("app", None, zero.optional(zero.success(Nil))) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use completed_at <- zero.optional_field( "completed_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use external_id <- zero.optional_field( "external_id", None, zero.optional(zero.string), ) use started_at <- zero.optional_field( "started_at", None, zero.optional(zero.string), ) use details_url <- zero.optional_field( "details_url", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.success(Nil)), ) use conclusion <- zero.optional_field( "conclusion", None, zero.optional(zero.string), ) zero.success(CheckRunWithSimpleCheckSuite( output: output, check_suite: check_suite, app: app, deployment: deployment, completed_at: completed_at, name: name, head_sha: head_sha, url: url, external_id: external_id, started_at: started_at, details_url: details_url, status: status, node_id: node_id, id: id, html_url: html_url, pull_requests: pull_requests, conclusion: conclusion, )) } pub fn copilot_dotcom_pull_requests_to_json(data: CopilotDotcomPullRequests) { json.object([ #("repositories", json.null()), #("total_engaged_users", json.nullable(data.total_engaged_users, json.int)), ]) } pub fn copilot_dotcom_pull_requests_decoder() { use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use total_engaged_users <- zero.optional_field( "total_engaged_users", None, zero.optional(zero.int), ) zero.success(CopilotDotcomPullRequests( repositories: repositories, total_engaged_users: total_engaged_users, )) } pub fn allowed_actions_decoder() { zero.string } pub fn check_automated_security_fixes_to_json(data: CheckAutomatedSecurityFixes) { json.object([ #("enabled", json.nullable(data.enabled, json.bool)), #("paused", json.nullable(data.paused, json.bool)), ]) } pub fn check_automated_security_fixes_decoder() { use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use paused <- zero.optional_field("paused", None, zero.optional(zero.bool)) zero.success(CheckAutomatedSecurityFixes(enabled: enabled, paused: paused)) } pub fn team_discussion_to_json(data: TeamDiscussion) { json.object([ #("last_edited_at", json.nullable(data.last_edited_at, json.string)), #("body", json.nullable(data.body, json.string)), #("private", json.nullable(data.private, json.bool)), #("comments_url", json.nullable(data.comments_url, json.string)), #("comments_count", json.nullable(data.comments_count, json.int)), #("body_html", json.nullable(data.body_html, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("author", json.null()), #("team_url", json.nullable(data.team_url, json.string)), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("pinned", json.nullable(data.pinned, json.bool)), #("html_url", json.nullable(data.html_url, json.string)), #("body_version", json.nullable(data.body_version, json.string)), ]) } pub fn team_discussion_decoder() { use last_edited_at <- zero.optional_field( "last_edited_at", None, zero.optional(zero.string), ) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use comments_count <- zero.optional_field( "comments_count", None, zero.optional(zero.int), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use team_url <- zero.optional_field( "team_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use pinned <- zero.optional_field("pinned", None, zero.optional(zero.bool)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use body_version <- zero.optional_field( "body_version", None, zero.optional(zero.string), ) zero.success(TeamDiscussion( last_edited_at: last_edited_at, body: body, private: private, comments_url: comments_url, comments_count: comments_count, body_html: body_html, number: number, created_at: created_at, reactions: reactions, author: author, team_url: team_url, url: url, updated_at: updated_at, node_id: node_id, title: title, pinned: pinned, html_url: html_url, body_version: body_version, )) } pub fn webhook_installation_repositories_removed_to_json( data: WebhookInstallationRepositoriesRemoved, ) { json.object([ #("enterprise", json.null()), #("repositories_removed", json.null()), #("repositories_added", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("installation", json.null()), #("requester", json.null()), ]) } pub fn webhook_installation_repositories_removed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories_removed <- zero.optional_field( "repositories_removed", None, zero.optional(zero.success(Nil)), ) use repositories_added <- zero.optional_field( "repositories_added", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use requester <- zero.optional_field( "requester", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationRepositoriesRemoved( enterprise: enterprise, repositories_removed: repositories_removed, repositories_added: repositories_added, repository: repository, organization: organization, sender: sender, action: action, repository_selection: repository_selection, installation: installation, requester: requester, )) } pub fn starred_repository_to_json(data: StarredRepository) { json.object([ #("repo", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), ]) } pub fn starred_repository_decoder() { use repo <- zero.optional_field( "repo", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) zero.success(StarredRepository(repo: repo, starred_at: starred_at)) } pub fn code_scanning_analysis_tool_version_decoder() { zero.string } pub fn webhook_label_edited_to_json(data: WebhookLabelEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_label_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookLabelEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, label: label, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_analysis_to_json(data: CodeScanningAnalysis) { json.object([ #("commit_sha", json.nullable(data.commit_sha, json.string)), #("results_count", json.nullable(data.results_count, json.int)), #("rules_count", json.nullable(data.rules_count, json.int)), #("error", json.nullable(data.error, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("ref", json.nullable(data.ref, json.string)), #("environment", json.nullable(data.environment, json.string)), #("deletable", json.nullable(data.deletable, json.bool)), #("tool", json.null()), #("sarif_id", json.nullable(data.sarif_id, json.string)), #("id", json.nullable(data.id, json.int)), #("analysis_key", json.nullable(data.analysis_key, json.string)), #("warning", json.nullable(data.warning, json.string)), #("category", json.nullable(data.category, json.string)), ]) } pub fn code_scanning_analysis_decoder() { use commit_sha <- zero.optional_field( "commit_sha", None, zero.optional(zero.string), ) use results_count <- zero.optional_field( "results_count", None, zero.optional(zero.int), ) use rules_count <- zero.optional_field( "rules_count", None, zero.optional(zero.int), ) use error <- zero.optional_field("error", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use deletable <- zero.optional_field( "deletable", None, zero.optional(zero.bool), ) use tool <- zero.optional_field( "tool", None, zero.optional(zero.success(Nil)), ) use sarif_id <- zero.optional_field( "sarif_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use analysis_key <- zero.optional_field( "analysis_key", None, zero.optional(zero.string), ) use warning <- zero.optional_field( "warning", None, zero.optional(zero.string), ) use category <- zero.optional_field( "category", None, zero.optional(zero.string), ) zero.success(CodeScanningAnalysis( commit_sha: commit_sha, results_count: results_count, rules_count: rules_count, error: error, created_at: created_at, url: url, ref: ref, environment: environment, deletable: deletable, tool: tool, sarif_id: sarif_id, id: id, analysis_key: analysis_key, warning: warning, category: category, )) } pub fn pull_request_merge_result_to_json(data: PullRequestMergeResult) { json.object([ #("message", json.nullable(data.message, json.string)), #("sha", json.nullable(data.sha, json.string)), #("merged", json.nullable(data.merged, json.bool)), ]) } pub fn pull_request_merge_result_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use merged <- zero.optional_field("merged", None, zero.optional(zero.bool)) zero.success(PullRequestMergeResult( message: message, sha: sha, merged: merged, )) } pub fn oidc_custom_sub_to_json(data: OidcCustomSub) { json.object([#("include_claim_keys", json.null())]) } pub fn oidc_custom_sub_decoder() { use include_claim_keys <- zero.optional_field( "include_claim_keys", None, zero.optional(zero.list(zero.string)), ) zero.success(OidcCustomSub(include_claim_keys: include_claim_keys)) } pub fn content_submodule_to_json(data: ContentSubmodule) { json.object([ #("size", json.nullable(data.size, json.int)), #("git_url", json.nullable(data.git_url, json.string)), #("path", json.nullable(data.path_, json.string)), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("submodule_git_url", json.nullable(data.submodule_git_url, json.string)), #("download_url", json.nullable(data.download_url, json.string)), #("_links", json.null()), #("type", json.nullable(data.type_, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn content_submodule_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use submodule_git_url <- zero.optional_field( "submodule_git_url", None, zero.optional(zero.string), ) use download_url <- zero.optional_field( "download_url", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(ContentSubmodule( size: size, git_url: git_url, path_: path_, name: name, sha: sha, url: url, submodule_git_url: submodule_git_url, download_url: download_url, links: links, type_: type_, html_url: html_url, )) } pub fn git_ref_to_json(data: GitRef) { json.object([ #("url", json.nullable(data.url, json.string)), #("ref", json.nullable(data.ref, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("object", json.null()), ]) } pub fn git_ref_decoder() { use url <- zero.optional_field("url", None, zero.optional(zero.string)) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use object <- zero.optional_field( "object", None, zero.optional(zero.success(Nil)), ) zero.success(GitRef(url: url, ref: ref, node_id: node_id, object: object)) } pub fn pages_source_hash_to_json(data: PagesSourceHash) { json.object([ #("branch", json.nullable(data.branch, json.string)), #("path", json.nullable(data.path_, json.string)), ]) } pub fn pages_source_hash_decoder() { use branch <- zero.optional_field("branch", None, zero.optional(zero.string)) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) zero.success(PagesSourceHash(branch: branch, path_: path_)) } pub fn webhook_discussion_transferred_to_json( data: WebhookDiscussionTransferred, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_transferred_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionTransferred( enterprise: enterprise, changes: changes, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repository_rule_update_to_json(data: RepositoryRuleUpdate) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_update_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleUpdate(parameters: parameters, type_: type_)) } pub fn code_scanning_variant_analysis_repository_to_json( data: CodeScanningVariantAnalysisRepository, ) { json.object([ #("private", json.nullable(data.private, json.bool)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("name", json.nullable(data.name, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("id", json.nullable(data.id, json.int)), #("full_name", json.nullable(data.full_name, json.string)), ]) } pub fn code_scanning_variant_analysis_repository_decoder() { use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) zero.success(CodeScanningVariantAnalysisRepository( private: private, stargazers_count: stargazers_count, name: name, updated_at: updated_at, id: id, full_name: full_name, )) } pub fn runner_label_to_json(data: RunnerLabel) { json.object([ #("name", json.nullable(data.name, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn runner_label_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(RunnerLabel(name: name, type_: type_, id: id)) } pub fn secret_scanning_location_pull_request_review_comment_to_json( data: SecretScanningLocationPullRequestReviewComment, ) { json.object([ #( "pull_request_review_comment_url", json.nullable(data.pull_request_review_comment_url, json.string), ), ]) } pub fn secret_scanning_location_pull_request_review_comment_decoder() { use pull_request_review_comment_url <- zero.optional_field( "pull_request_review_comment_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationPullRequestReviewComment( pull_request_review_comment_url: pull_request_review_comment_url, )) } pub fn label_search_result_item_to_json(data: LabelSearchResultItem) { json.object([ #("text_matches", json.null()), #("default", json.nullable(data.default, json.bool)), #("color", json.nullable(data.color, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("score", json.nullable(data.score, json.float)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn label_search_result_item_decoder() { use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use default <- zero.optional_field("default", None, zero.optional(zero.bool)) use color <- zero.optional_field("color", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(LabelSearchResultItem( text_matches: text_matches, default: default, color: color, name: name, url: url, score: score, node_id: node_id, id: id, description: description, )) } pub fn code_scanning_ref_decoder() { zero.string } pub fn commit_to_json(data: Commit) { json.object([ #("comments_url", json.nullable(data.comments_url, json.string)), #("parents", json.null()), #("committer", json.null()), #("author", json.null()), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("commit", json.null()), #("files", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("stats", json.null()), ]) } pub fn commit_decoder() { use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use parents <- zero.optional_field( "parents", None, zero.optional(zero.success(Nil)), ) use committer <- zero.optional_field( "committer", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use files <- zero.optional_field( "files", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use stats <- zero.optional_field( "stats", None, zero.optional(zero.success(Nil)), ) zero.success(Commit( comments_url: comments_url, parents: parents, committer: committer, author: author, sha: sha, url: url, commit: commit, files: files, node_id: node_id, html_url: html_url, stats: stats, )) } pub fn webhook_pull_request_unassigned_to_json( data: WebhookPullRequestUnassigned, ) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("assignee", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_unassigned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestUnassigned( enterprise: enterprise, number: number, repository: repository, assignee: assignee, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_project_column_edited_to_json(data: WebhookProjectColumnEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("project_column", json.null()), ]) } pub fn webhook_project_column_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use project_column <- zero.optional_field( "project_column", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectColumnEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, project_column: project_column, )) } pub fn webhooks_issue_to_json(data: WebhooksIssue) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("milestone", json.null()), #("timeline_url", json.nullable(data.timeline_url, json.string)), #("state", json.nullable(data.state, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("comments", json.nullable(data.comments, json.int)), #("pull_request", json.null()), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn webhooks_issue_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksIssue( draft: draft, body: body, assignees: assignees, comments_url: comments_url, closed_at: closed_at, events_url: events_url, number: number, created_at: created_at, locked: locked, reactions: reactions, user: user, author_association: author_association, labels_url: labels_url, url: url, assignee: assignee, milestone: milestone, timeline_url: timeline_url, state: state, state_reason: state_reason, comments: comments, pull_request: pull_request, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, title: title, repository_url: repository_url, id: id, html_url: html_url, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn alert_updated_at_decoder() { zero.string } pub fn dependabot_public_key_to_json(data: DependabotPublicKey) { json.object([ #("key_id", json.nullable(data.key_id, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn dependabot_public_key_decoder() { use key_id <- zero.optional_field("key_id", None, zero.optional(zero.string)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(DependabotPublicKey(key_id: key_id, key: key)) } pub fn environment_approvals_to_json(data: EnvironmentApprovals) { json.object([ #("environments", json.null()), #("user", json.null()), #("state", json.nullable(data.state, json.string)), #("comment", json.nullable(data.comment, json.string)), ]) } pub fn environment_approvals_decoder() { use environments <- zero.optional_field( "environments", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use comment <- zero.optional_field( "comment", None, zero.optional(zero.string), ) zero.success(EnvironmentApprovals( environments: environments, user: user, state: state, comment: comment, )) } pub fn webhook_deployment_created_to_json(data: WebhookDeploymentCreated) { json.object([ #("enterprise", json.null()), #("deployment", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow", json.null()), ]) } pub fn webhook_deployment_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow <- zero.optional_field( "workflow", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDeploymentCreated( enterprise: enterprise, deployment: deployment, repository: repository, workflow_run: workflow_run, organization: organization, sender: sender, action: action, installation: installation, workflow: workflow, )) } pub fn minimal_repository_to_json(data: MinimalRepository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("security_and_analysis", json.null()), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("code_of_conduct", json.null()), #("homepage", json.nullable(data.homepage, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("owner", json.null()), #("role_name", json.nullable(data.role_name, json.string)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("subscribers_count", json.nullable(data.subscribers_count, json.int)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("network_count", json.nullable(data.network_count, json.int)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn minimal_repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use security_and_analysis <- zero.optional_field( "security_and_analysis", None, zero.optional(zero.success(Nil)), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use code_of_conduct <- zero.optional_field( "code_of_conduct", None, zero.optional(zero.success(Nil)), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use role_name <- zero.optional_field( "role_name", None, zero.optional(zero.string), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use subscribers_count <- zero.optional_field( "subscribers_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use network_count <- zero.optional_field( "network_count", None, zero.optional(zero.int), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(MinimalRepository( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, forks_count: forks_count, fork: fork, git_url: git_url, archived: archived, private: private, security_and_analysis: security_and_analysis, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, has_discussions: has_discussions, teams_url: teams_url, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, code_of_conduct: code_of_conduct, homepage: homepage, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, owner: owner, role_name: role_name, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, updated_at: updated_at, watchers: watchers, node_id: node_id, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, subscribers_count: subscribers_count, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, pulls_url: pulls_url, network_count: network_count, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhooks_issue_comment_to_json(data: WebhooksIssueComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("issue_url", json.nullable(data.issue_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_issue_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksIssueComment( body: body, issue_url: issue_url, created_at: created_at, reactions: reactions, user: user, author_association: author_association, url: url, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, )) } pub fn webhook_secret_scanning_alert_location_created_to_json( data: WebhookSecretScanningAlertLocationCreated, ) { json.object([ #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("location", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_secret_scanning_alert_location_created_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use location <- zero.optional_field( "location", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecretScanningAlertLocationCreated( repository: repository, organization: organization, sender: sender, location: location, action: action, installation: installation, alert: alert, )) } pub fn nullable_team_simple_to_json(data: NullableTeamSimple) { json.object([ #("ldap_dn", json.nullable(data.ldap_dn, json.string)), #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn nullable_team_simple_decoder() { use ldap_dn <- zero.optional_field( "ldap_dn", None, zero.optional(zero.string), ) use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(NullableTeamSimple( ldap_dn: ldap_dn, privacy: privacy, members_url: members_url, name: name, slug: slug, url: url, permission: permission, node_id: node_id, repositories_url: repositories_url, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn webhooks_project_to_json(data: WebhooksProject) { json.object([ #("body", json.nullable(data.body, json.string)), #("owner_url", json.nullable(data.owner_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("creator", json.null()), #("columns_url", json.nullable(data.columns_url, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_project_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use owner_url <- zero.optional_field( "owner_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use columns_url <- zero.optional_field( "columns_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksProject( body: body, owner_url: owner_url, number: number, created_at: created_at, name: name, creator: creator, columns_url: columns_url, url: url, state: state, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, )) } pub fn webhook_branch_protection_rule_created_to_json( data: WebhookBranchProtectionRuleCreated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("rule", json.null()), ]) } pub fn webhook_branch_protection_rule_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use rule <- zero.optional_field( "rule", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookBranchProtectionRuleCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, rule: rule, )) } pub fn copilot_usage_metrics_to_json(data: CopilotUsageMetrics) { json.object([ #("breakdown", json.null()), #( "total_lines_accepted", json.nullable(data.total_lines_accepted, json.int), ), #( "total_suggestions_count", json.nullable(data.total_suggestions_count, json.int), ), #( "total_lines_suggested", json.nullable(data.total_lines_suggested, json.int), ), #("total_active_users", json.nullable(data.total_active_users, json.int)), #("total_chat_turns", json.nullable(data.total_chat_turns, json.int)), #( "total_chat_acceptances", json.nullable(data.total_chat_acceptances, json.int), ), #( "total_acceptances_count", json.nullable(data.total_acceptances_count, json.int), ), #("day", json.nullable(data.day, json.string)), #( "total_active_chat_users", json.nullable(data.total_active_chat_users, json.int), ), ]) } pub fn copilot_usage_metrics_decoder() { use breakdown <- zero.optional_field( "breakdown", None, zero.optional(zero.success(Nil)), ) use total_lines_accepted <- zero.optional_field( "total_lines_accepted", None, zero.optional(zero.int), ) use total_suggestions_count <- zero.optional_field( "total_suggestions_count", None, zero.optional(zero.int), ) use total_lines_suggested <- zero.optional_field( "total_lines_suggested", None, zero.optional(zero.int), ) use total_active_users <- zero.optional_field( "total_active_users", None, zero.optional(zero.int), ) use total_chat_turns <- zero.optional_field( "total_chat_turns", None, zero.optional(zero.int), ) use total_chat_acceptances <- zero.optional_field( "total_chat_acceptances", None, zero.optional(zero.int), ) use total_acceptances_count <- zero.optional_field( "total_acceptances_count", None, zero.optional(zero.int), ) use day <- zero.optional_field("day", None, zero.optional(zero.string)) use total_active_chat_users <- zero.optional_field( "total_active_chat_users", None, zero.optional(zero.int), ) zero.success(CopilotUsageMetrics( breakdown: breakdown, total_lines_accepted: total_lines_accepted, total_suggestions_count: total_suggestions_count, total_lines_suggested: total_lines_suggested, total_active_users: total_active_users, total_chat_turns: total_chat_turns, total_chat_acceptances: total_chat_acceptances, total_acceptances_count: total_acceptances_count, day: day, total_active_chat_users: total_active_chat_users, )) } pub fn webhooks_releaseone_to_json(data: WebhooksRelease1) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assets", json.null()), #("prerelease", json.nullable(data.prerelease, json.bool)), #("published_at", json.nullable(data.published_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("author", json.null()), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("tag_name", json.nullable(data.tag_name, json.string)), #("zipball_url", json.nullable(data.zipball_url, json.string)), #("upload_url", json.nullable(data.upload_url, json.string)), #("assets_url", json.nullable(data.assets_url, json.string)), #("tarball_url", json.nullable(data.tarball_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("discussion_url", json.nullable(data.discussion_url, json.string)), #("target_commitish", json.nullable(data.target_commitish, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_releaseone_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assets <- zero.optional_field( "assets", None, zero.optional(zero.success(Nil)), ) use prerelease <- zero.optional_field( "prerelease", None, zero.optional(zero.bool), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use tag_name <- zero.optional_field( "tag_name", None, zero.optional(zero.string), ) use zipball_url <- zero.optional_field( "zipball_url", None, zero.optional(zero.string), ) use upload_url <- zero.optional_field( "upload_url", None, zero.optional(zero.string), ) use assets_url <- zero.optional_field( "assets_url", None, zero.optional(zero.string), ) use tarball_url <- zero.optional_field( "tarball_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use discussion_url <- zero.optional_field( "discussion_url", None, zero.optional(zero.string), ) use target_commitish <- zero.optional_field( "target_commitish", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksRelease1( draft: draft, body: body, assets: assets, prerelease: prerelease, published_at: published_at, created_at: created_at, reactions: reactions, author: author, name: name, url: url, tag_name: tag_name, zipball_url: zipball_url, upload_url: upload_url, assets_url: assets_url, tarball_url: tarball_url, node_id: node_id, discussion_url: discussion_url, target_commitish: target_commitish, id: id, html_url: html_url, )) } pub fn webhook_repository_edited_to_json(data: WebhookRepositoryEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_pull_request_review_submitted_to_json( data: WebhookPullRequestReviewSubmitted, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("review", json.null()), #("installation", json.null()), ]) } pub fn webhook_pull_request_review_submitted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use review <- zero.optional_field( "review", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewSubmitted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, review: review, installation: installation, )) } pub fn nullable_repository_to_json(data: NullableRepository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("allow_update_branch", json.nullable(data.allow_update_branch, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #( "squash_merge_commit_message", json.nullable(data.squash_merge_commit_message, json.string), ), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #( "merge_commit_message", json.nullable(data.merge_commit_message, json.string), ), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #( "use_squash_pr_title_as_default", json.nullable(data.use_squash_pr_title_as_default, json.bool), ), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("owner", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #( "squash_merge_commit_title", json.nullable(data.squash_merge_commit_title, json.string), ), #("merge_commit_title", json.nullable(data.merge_commit_title, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "anonymous_access_enabled", json.nullable(data.anonymous_access_enabled, json.bool), ), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn nullable_repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use allow_update_branch <- zero.optional_field( "allow_update_branch", None, zero.optional(zero.bool), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use squash_merge_commit_message <- zero.optional_field( "squash_merge_commit_message", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use merge_commit_message <- zero.optional_field( "merge_commit_message", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use use_squash_pr_title_as_default <- zero.optional_field( "use_squash_pr_title_as_default", None, zero.optional(zero.bool), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use squash_merge_commit_title <- zero.optional_field( "squash_merge_commit_title", None, zero.optional(zero.string), ) use merge_commit_title <- zero.optional_field( "merge_commit_title", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use anonymous_access_enabled <- zero.optional_field( "anonymous_access_enabled", None, zero.optional(zero.bool), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(NullableRepository( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, forks_count: forks_count, fork: fork, allow_update_branch: allow_update_branch, git_url: git_url, archived: archived, private: private, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, squash_merge_commit_message: squash_merge_commit_message, has_discussions: has_discussions, teams_url: teams_url, merge_commit_message: merge_commit_message, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, allow_squash_merge: allow_squash_merge, homepage: homepage, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, use_squash_pr_title_as_default: use_squash_pr_title_as_default, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, owner: owner, starred_at: starred_at, allow_merge_commit: allow_merge_commit, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, squash_merge_commit_title: squash_merge_commit_title, merge_commit_title: merge_commit_title, updated_at: updated_at, watchers: watchers, node_id: node_id, anonymous_access_enabled: anonymous_access_enabled, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhook_pull_request_review_thread_resolved_to_json( data: WebhookPullRequestReviewThreadResolved, ) { json.object([ #("enterprise", json.null()), #("thread", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_review_thread_resolved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use thread <- zero.optional_field( "thread", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewThreadResolved( enterprise: enterprise, thread: thread, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_gollum_to_json(data: WebhookGollum) { json.object([ #("enterprise", json.null()), #("pages", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), ]) } pub fn webhook_gollum_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use pages <- zero.optional_field( "pages", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookGollum( enterprise: enterprise, pages: pages, repository: repository, organization: organization, sender: sender, installation: installation, )) } pub fn webhook_project_closed_to_json(data: WebhookProjectClosed) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("project", json.null()), #("installation", json.null()), ]) } pub fn webhook_project_closed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use project <- zero.optional_field( "project", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectClosed( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, project: project, installation: installation, )) } pub fn code_security_default_configurations_decoder() { panic as "unsupported schema" } pub fn webhook_issues_labeled_to_json(data: WebhookIssuesLabeled) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_labeled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesLabeled( enterprise: enterprise, repository: repository, organization: organization, label: label, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_sponsorship_edited_to_json(data: WebhookSponsorshipEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("sponsorship", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_sponsorship_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use sponsorship <- zero.optional_field( "sponsorship", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSponsorshipEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, sponsorship: sponsorship, action: action, installation: installation, )) } pub fn webhook_sponsorship_tier_changed_to_json( data: WebhookSponsorshipTierChanged, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("sponsorship", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_sponsorship_tier_changed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use sponsorship <- zero.optional_field( "sponsorship", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSponsorshipTierChanged( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, sponsorship: sponsorship, action: action, installation: installation, )) } pub fn webhook_pull_request_ready_for_review_to_json( data: WebhookPullRequestReadyForReview, ) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_ready_for_review_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReadyForReview( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_custom_property_created_to_json( data: WebhookCustomPropertyCreated, ) { json.object([ #("enterprise", json.null()), #("organization", json.null()), #("definition", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_custom_property_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use definition <- zero.optional_field( "definition", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCustomPropertyCreated( enterprise: enterprise, organization: organization, definition: definition, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_default_setup_to_json(data: CodeScanningDefaultSetup) { json.object([ #("query_suite", json.nullable(data.query_suite, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("schedule", json.nullable(data.schedule, json.string)), #("languages", json.null()), ]) } pub fn code_scanning_default_setup_decoder() { use query_suite <- zero.optional_field( "query_suite", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use schedule <- zero.optional_field( "schedule", None, zero.optional(zero.string), ) use languages <- zero.optional_field( "languages", None, zero.optional(zero.list(zero.string)), ) zero.success(CodeScanningDefaultSetup( query_suite: query_suite, state: state, updated_at: updated_at, schedule: schedule, languages: languages, )) } pub fn webhook_organization_deleted_to_json(data: WebhookOrganizationDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("membership", json.null()), #("installation", json.null()), ]) } pub fn webhook_organization_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use membership <- zero.optional_field( "membership", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrganizationDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, membership: membership, installation: installation, )) } pub fn webhook_team_added_to_repository_to_json( data: WebhookTeamAddedToRepository, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("team", json.null()), ]) } pub fn webhook_team_added_to_repository_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookTeamAddedToRepository( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, team: team, )) } pub fn view_traffic_to_json(data: ViewTraffic) { json.object([ #("uniques", json.nullable(data.uniques, json.int)), #("views", json.null()), #("count", json.nullable(data.count, json.int)), ]) } pub fn view_traffic_decoder() { use uniques <- zero.optional_field("uniques", None, zero.optional(zero.int)) use views <- zero.optional_field( "views", None, zero.optional(zero.success(Nil)), ) use count <- zero.optional_field("count", None, zero.optional(zero.int)) zero.success(ViewTraffic(uniques: uniques, views: views, count: count)) } pub fn deployment_branch_policy_to_json(data: DeploymentBranchPolicy) { json.object([ #("name", json.nullable(data.name, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn deployment_branch_policy_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(DeploymentBranchPolicy( name: name, node_id: node_id, type_: type_, id: id, )) } pub fn repository_rule_pull_request_to_json(data: RepositoryRulePullRequest) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_pull_request_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRulePullRequest(parameters: parameters, type_: type_)) } pub fn simple_installation_to_json(data: SimpleInstallation) { json.object([ #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn simple_installation_decoder() { use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(SimpleInstallation(node_id: node_id, id: id)) } pub fn webhooks_security_advisory_to_json(data: WebhooksSecurityAdvisory) { json.object([ #("cwes", json.null()), #("published_at", json.nullable(data.published_at, json.string)), #("summary", json.nullable(data.summary, json.string)), #("cvss_severities", json.null()), #("references", json.null()), #("identifiers", json.null()), #("ghsa_id", json.nullable(data.ghsa_id, json.string)), #("withdrawn_at", json.nullable(data.withdrawn_at, json.string)), #("cvss", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("vulnerabilities", json.null()), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn webhooks_security_advisory_decoder() { use cwes <- zero.optional_field( "cwes", None, zero.optional(zero.success(Nil)), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use cvss_severities <- zero.optional_field( "cvss_severities", None, zero.optional(zero.success(Nil)), ) use references <- zero.optional_field( "references", None, zero.optional(zero.success(Nil)), ) use identifiers <- zero.optional_field( "identifiers", None, zero.optional(zero.success(Nil)), ) use ghsa_id <- zero.optional_field( "ghsa_id", None, zero.optional(zero.string), ) use withdrawn_at <- zero.optional_field( "withdrawn_at", None, zero.optional(zero.string), ) use cvss <- zero.optional_field( "cvss", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(WebhooksSecurityAdvisory( cwes: cwes, published_at: published_at, summary: summary, cvss_severities: cvss_severities, references: references, identifiers: identifiers, ghsa_id: ghsa_id, withdrawn_at: withdrawn_at, cvss: cvss, updated_at: updated_at, vulnerabilities: vulnerabilities, description: description, severity: severity, )) } pub fn webhook_pull_request_review_comment_created_to_json( data: WebhookPullRequestReviewCommentCreated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_pull_request_review_comment_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewCommentCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, comment: comment, )) } pub fn actor_to_json(data: Actor) { json.object([ #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("display_login", json.nullable(data.display_login, json.string)), #("url", json.nullable(data.url, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn actor_decoder() { use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use display_login <- zero.optional_field( "display_login", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(Actor( avatar_url: avatar_url, login: login, display_login: display_login, url: url, gravatar_id: gravatar_id, id: id, )) } pub fn private_user_to_json(data: PrivateUser) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("ldap_dn", json.nullable(data.ldap_dn, json.string)), #("twitter_username", json.nullable(data.twitter_username, json.string)), #("blog", json.nullable(data.blog, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("bio", json.nullable(data.bio, json.string)), #("notification_email", json.nullable(data.notification_email, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("plan", json.null()), #("login", json.nullable(data.login, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("total_private_repos", json.nullable(data.total_private_repos, json.int)), #("owned_private_repos", json.nullable(data.owned_private_repos, json.int)), #("public_repos", json.nullable(data.public_repos, json.int)), #("name", json.nullable(data.name, json.string)), #("collaborators", json.nullable(data.collaborators, json.int)), #("hireable", json.nullable(data.hireable, json.bool)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("following", json.nullable(data.following, json.int)), #("repos_url", json.nullable(data.repos_url, json.string)), #("private_gists", json.nullable(data.private_gists, json.int)), #("followers", json.nullable(data.followers, json.int)), #( "two_factor_authentication", json.nullable(data.two_factor_authentication, json.bool), ), #("location", json.nullable(data.location, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("business_plus", json.nullable(data.business_plus, json.bool)), #("public_gists", json.nullable(data.public_gists, json.int)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), #("company", json.nullable(data.company, json.string)), #("disk_usage", json.nullable(data.disk_usage, json.int)), ]) } pub fn private_user_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use ldap_dn <- zero.optional_field( "ldap_dn", None, zero.optional(zero.string), ) use twitter_username <- zero.optional_field( "twitter_username", None, zero.optional(zero.string), ) use blog <- zero.optional_field("blog", None, zero.optional(zero.string)) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use bio <- zero.optional_field("bio", None, zero.optional(zero.string)) use notification_email <- zero.optional_field( "notification_email", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use total_private_repos <- zero.optional_field( "total_private_repos", None, zero.optional(zero.int), ) use owned_private_repos <- zero.optional_field( "owned_private_repos", None, zero.optional(zero.int), ) use public_repos <- zero.optional_field( "public_repos", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use collaborators <- zero.optional_field( "collaborators", None, zero.optional(zero.int), ) use hireable <- zero.optional_field( "hireable", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use following <- zero.optional_field( "following", None, zero.optional(zero.int), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use private_gists <- zero.optional_field( "private_gists", None, zero.optional(zero.int), ) use followers <- zero.optional_field( "followers", None, zero.optional(zero.int), ) use two_factor_authentication <- zero.optional_field( "two_factor_authentication", None, zero.optional(zero.bool), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use business_plus <- zero.optional_field( "business_plus", None, zero.optional(zero.bool), ) use public_gists <- zero.optional_field( "public_gists", None, zero.optional(zero.int), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) use company <- zero.optional_field( "company", None, zero.optional(zero.string), ) use disk_usage <- zero.optional_field( "disk_usage", None, zero.optional(zero.int), ) zero.success(PrivateUser( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, ldap_dn: ldap_dn, twitter_username: twitter_username, blog: blog, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, bio: bio, notification_email: notification_email, events_url: events_url, avatar_url: avatar_url, plan: plan, login: login, created_at: created_at, total_private_repos: total_private_repos, owned_private_repos: owned_private_repos, public_repos: public_repos, name: name, collaborators: collaborators, hireable: hireable, url: url, starred_url: starred_url, organizations_url: organizations_url, following: following, repos_url: repos_url, private_gists: private_gists, followers: followers, two_factor_authentication: two_factor_authentication, location: location, gravatar_id: gravatar_id, site_admin: site_admin, updated_at: updated_at, node_id: node_id, business_plus: business_plus, public_gists: public_gists, type_: type_, id: id, html_url: html_url, email: email, company: company, disk_usage: disk_usage, )) } pub fn webhook_milestone_created_to_json(data: WebhookMilestoneCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_milestone_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMilestoneCreated( enterprise: enterprise, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_issues_pinned_to_json(data: WebhookIssuesPinned) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_pinned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesPinned( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn gist_comment_to_json(data: GistComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn gist_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(GistComment( body: body, created_at: created_at, user: user, author_association: author_association, url: url, updated_at: updated_at, node_id: node_id, id: id, )) } pub fn custom_property_value_to_json(data: CustomPropertyValue) { json.object([ #("value", json.null()), #("property_name", json.nullable(data.property_name, json.string)), ]) } pub fn custom_property_value_decoder() { use value <- zero.optional_field( "value", None, zero.optional(zero.success(Nil)), ) use property_name <- zero.optional_field( "property_name", None, zero.optional(zero.string), ) zero.success(CustomPropertyValue(value: value, property_name: property_name)) } pub fn webhook_project_card_created_to_json(data: WebhookProjectCardCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("project_card", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_project_card_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectCardCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, project_card: project_card, action: action, installation: installation, )) } pub fn check_suite_preference_to_json(data: CheckSuitePreference) { json.object([#("repository", json.null()), #("preferences", json.null())]) } pub fn check_suite_preference_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use preferences <- zero.optional_field( "preferences", None, zero.optional(zero.success(Nil)), ) zero.success(CheckSuitePreference( repository: repository, preferences: preferences, )) } pub fn code_scanning_alert_dismissed_reason_decoder() { zero.string } pub fn codespace_with_full_repository_to_json(data: CodespaceWithFullRepository) { json.object([ #( "idle_timeout_notice", json.nullable(data.idle_timeout_notice, json.string), ), #("recent_folders", json.null()), #( "retention_period_minutes", json.nullable(data.retention_period_minutes, json.int), ), #("web_url", json.nullable(data.web_url, json.string)), #("machine", json.null()), #( "pending_operation_disabled_reason", json.nullable(data.pending_operation_disabled_reason, json.string), ), #("environment_id", json.nullable(data.environment_id, json.string)), #("display_name", json.nullable(data.display_name, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("prebuild", json.nullable(data.prebuild, json.bool)), #("name", json.nullable(data.name, json.string)), #("last_used_at", json.nullable(data.last_used_at, json.string)), #("runtime_constraints", json.null()), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("start_url", json.nullable(data.start_url, json.string)), #("stop_url", json.nullable(data.stop_url, json.string)), #("owner", json.null()), #("billable_owner", json.null()), #("location", json.nullable(data.location, json.string)), #( "idle_timeout_minutes", json.nullable(data.idle_timeout_minutes, json.int), ), #("updated_at", json.nullable(data.updated_at, json.string)), #("devcontainer_path", json.nullable(data.devcontainer_path, json.string)), #("id", json.nullable(data.id, json.int)), #("machines_url", json.nullable(data.machines_url, json.string)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("pending_operation", json.nullable(data.pending_operation, json.bool)), #( "retention_expires_at", json.nullable(data.retention_expires_at, json.string), ), #("git_status", json.null()), #("publish_url", json.nullable(data.publish_url, json.string)), ]) } pub fn codespace_with_full_repository_decoder() { use idle_timeout_notice <- zero.optional_field( "idle_timeout_notice", None, zero.optional(zero.string), ) use recent_folders <- zero.optional_field( "recent_folders", None, zero.optional(zero.list(zero.string)), ) use retention_period_minutes <- zero.optional_field( "retention_period_minutes", None, zero.optional(zero.int), ) use web_url <- zero.optional_field( "web_url", None, zero.optional(zero.string), ) use machine <- zero.optional_field( "machine", None, zero.optional(zero.success(Nil)), ) use pending_operation_disabled_reason <- zero.optional_field( "pending_operation_disabled_reason", None, zero.optional(zero.string), ) use environment_id <- zero.optional_field( "environment_id", None, zero.optional(zero.string), ) use display_name <- zero.optional_field( "display_name", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use prebuild <- zero.optional_field( "prebuild", None, zero.optional(zero.bool), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use last_used_at <- zero.optional_field( "last_used_at", None, zero.optional(zero.string), ) use runtime_constraints <- zero.optional_field( "runtime_constraints", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use start_url <- zero.optional_field( "start_url", None, zero.optional(zero.string), ) use stop_url <- zero.optional_field( "stop_url", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use billable_owner <- zero.optional_field( "billable_owner", None, zero.optional(zero.success(Nil)), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use idle_timeout_minutes <- zero.optional_field( "idle_timeout_minutes", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use devcontainer_path <- zero.optional_field( "devcontainer_path", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use machines_url <- zero.optional_field( "machines_url", None, zero.optional(zero.string), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use pending_operation <- zero.optional_field( "pending_operation", None, zero.optional(zero.bool), ) use retention_expires_at <- zero.optional_field( "retention_expires_at", None, zero.optional(zero.string), ) use git_status <- zero.optional_field( "git_status", None, zero.optional(zero.success(Nil)), ) use publish_url <- zero.optional_field( "publish_url", None, zero.optional(zero.string), ) zero.success(CodespaceWithFullRepository( idle_timeout_notice: idle_timeout_notice, recent_folders: recent_folders, retention_period_minutes: retention_period_minutes, web_url: web_url, machine: machine, pending_operation_disabled_reason: pending_operation_disabled_reason, environment_id: environment_id, display_name: display_name, created_at: created_at, repository: repository, prebuild: prebuild, name: name, last_used_at: last_used_at, runtime_constraints: runtime_constraints, url: url, state: state, start_url: start_url, stop_url: stop_url, owner: owner, billable_owner: billable_owner, location: location, idle_timeout_minutes: idle_timeout_minutes, updated_at: updated_at, devcontainer_path: devcontainer_path, id: id, machines_url: machines_url, pulls_url: pulls_url, pending_operation: pending_operation, retention_expires_at: retention_expires_at, git_status: git_status, publish_url: publish_url, )) } pub fn cvss_severities_to_json(data: CvssSeverities) { json.object([#("cvss_v3", json.null()), #("cvss_v4", json.null())]) } pub fn cvss_severities_decoder() { use cvss_v3 <- zero.optional_field( "cvss_v3", None, zero.optional(zero.success(Nil)), ) use cvss_v4 <- zero.optional_field( "cvss_v4", None, zero.optional(zero.success(Nil)), ) zero.success(CvssSeverities(cvss_v3: cvss_v3, cvss_v4: cvss_v4)) } pub fn integration_installation_request_to_json( data: IntegrationInstallationRequest, ) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("account", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("requester", json.null()), ]) } pub fn integration_installation_request_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use requester <- zero.optional_field( "requester", None, zero.optional(zero.success(Nil)), ) zero.success(IntegrationInstallationRequest( created_at: created_at, account: account, node_id: node_id, id: id, requester: requester, )) } pub fn branch_with_protection_to_json(data: BranchWithProtection) { json.object([ #("protection_url", json.nullable(data.protection_url, json.string)), #("name", json.nullable(data.name, json.string)), #("protected", json.nullable(data.protected, json.bool)), #("pattern", json.nullable(data.pattern, json.string)), #("commit", json.null()), #("protection", json.null()), #("_links", json.null()), #( "required_approving_review_count", json.nullable(data.required_approving_review_count, json.int), ), ]) } pub fn branch_with_protection_decoder() { use protection_url <- zero.optional_field( "protection_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use protected <- zero.optional_field( "protected", None, zero.optional(zero.bool), ) use pattern <- zero.optional_field( "pattern", None, zero.optional(zero.string), ) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use protection <- zero.optional_field( "protection", None, zero.optional(zero.success(Nil)), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use required_approving_review_count <- zero.optional_field( "required_approving_review_count", None, zero.optional(zero.int), ) zero.success(BranchWithProtection( protection_url: protection_url, name: name, protected: protected, pattern: pattern, commit: commit, protection: protection, links: links, required_approving_review_count: required_approving_review_count, )) } pub fn validation_error_to_json(data: ValidationError) { json.object([ #("message", json.nullable(data.message, json.string)), #("documentation_url", json.nullable(data.documentation_url, json.string)), #("errors", json.null()), ]) } pub fn validation_error_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use documentation_url <- zero.optional_field( "documentation_url", None, zero.optional(zero.string), ) use errors <- zero.optional_field( "errors", None, zero.optional(zero.success(Nil)), ) zero.success(ValidationError( message: message, documentation_url: documentation_url, errors: errors, )) } pub fn webhook_code_scanning_alert_appeared_in_branch_to_json( data: WebhookCodeScanningAlertAppearedInBranch, ) { json.object([ #("enterprise", json.null()), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_code_scanning_alert_appeared_in_branch_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCodeScanningAlertAppearedInBranch( enterprise: enterprise, commit_oid: commit_oid, repository: repository, ref: ref, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn secret_scanning_location_to_json(data: SecretScanningLocation) { json.object([ #("details", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn secret_scanning_location_decoder() { use details <- zero.optional_field( "details", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(SecretScanningLocation(details: details, type_: type_)) } pub fn webhook_star_deleted_to_json(data: WebhookStarDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_star_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookStarDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn label_to_json(data: Label) { json.object([ #("default", json.nullable(data.default, json.bool)), #("color", json.nullable(data.color, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn label_decoder() { use default <- zero.optional_field("default", None, zero.optional(zero.bool)) use color <- zero.optional_field("color", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(Label( default: default, color: color, name: name, url: url, node_id: node_id, id: id, description: description, )) } pub fn webhook_org_block_unblocked_to_json(data: WebhookOrgBlockUnblocked) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("blocked_user", json.null()), ]) } pub fn webhook_org_block_unblocked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use blocked_user <- zero.optional_field( "blocked_user", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrgBlockUnblocked( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, blocked_user: blocked_user, )) } pub fn webhook_projects_v2_item_reordered_to_json( data: WebhookProjectsV2ItemReordered, ) { json.object([ #("changes", json.null()), #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_reordered_decoder() { use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemReordered( changes: changes, projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn commit_search_result_item_to_json(data: CommitSearchResultItem) { json.object([ #("text_matches", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("parents", json.null()), #("repository", json.null()), #("committer", json.null()), #("author", json.null()), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("score", json.nullable(data.score, json.float)), #("commit", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn commit_search_result_item_decoder() { use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use parents <- zero.optional_field( "parents", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use committer <- zero.optional_field( "committer", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(CommitSearchResultItem( text_matches: text_matches, comments_url: comments_url, parents: parents, repository: repository, committer: committer, author: author, sha: sha, url: url, score: score, commit: commit, node_id: node_id, html_url: html_url, )) } pub fn integration_to_json(data: Integration) { json.object([ #("permissions", json.null()), #("client_secret", json.nullable(data.client_secret, json.string)), #("installations_count", json.nullable(data.installations_count, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("client_id", json.nullable(data.client_id, json.string)), #("owner", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("pem", json.nullable(data.pem, json.string)), #("webhook_secret", json.nullable(data.webhook_secret, json.string)), #("events", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("external_url", json.nullable(data.external_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn integration_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use client_secret <- zero.optional_field( "client_secret", None, zero.optional(zero.string), ) use installations_count <- zero.optional_field( "installations_count", None, zero.optional(zero.int), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use client_id <- zero.optional_field( "client_id", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use pem <- zero.optional_field("pem", None, zero.optional(zero.string)) use webhook_secret <- zero.optional_field( "webhook_secret", None, zero.optional(zero.string), ) use events <- zero.optional_field( "events", None, zero.optional(zero.list(zero.string)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use external_url <- zero.optional_field( "external_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(Integration( permissions: permissions, client_secret: client_secret, installations_count: installations_count, created_at: created_at, name: name, slug: slug, client_id: client_id, owner: owner, updated_at: updated_at, node_id: node_id, pem: pem, webhook_secret: webhook_secret, events: events, id: id, html_url: html_url, external_url: external_url, description: description, )) } pub fn webhook_check_run_rerequested_form_encoded_to_json( data: WebhookCheckRunRerequestedFormEncoded, ) { json.object([#("payload", json.nullable(data.payload, json.string))]) } pub fn webhook_check_run_rerequested_form_encoded_decoder() { use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) zero.success(WebhookCheckRunRerequestedFormEncoded(payload: payload)) } pub fn webhook_discussion_category_changed_to_json( data: WebhookDiscussionCategoryChanged, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_category_changed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionCategoryChanged( enterprise: enterprise, changes: changes, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_workflow_run_requested_to_json(data: WebhookWorkflowRunRequested) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow", json.null()), ]) } pub fn webhook_workflow_run_requested_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow <- zero.optional_field( "workflow", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowRunRequested( enterprise: enterprise, repository: repository, workflow_run: workflow_run, organization: organization, sender: sender, action: action, installation: installation, workflow: workflow, )) } pub fn check_annotation_to_json(data: CheckAnnotation) { json.object([ #("path", json.nullable(data.path_, json.string)), #("message", json.nullable(data.message, json.string)), #("raw_details", json.nullable(data.raw_details, json.string)), #("blob_href", json.nullable(data.blob_href, json.string)), #("start_line", json.nullable(data.start_line, json.int)), #("start_column", json.nullable(data.start_column, json.int)), #("annotation_level", json.nullable(data.annotation_level, json.string)), #("end_line", json.nullable(data.end_line, json.int)), #("title", json.nullable(data.title, json.string)), #("end_column", json.nullable(data.end_column, json.int)), ]) } pub fn check_annotation_decoder() { use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use raw_details <- zero.optional_field( "raw_details", None, zero.optional(zero.string), ) use blob_href <- zero.optional_field( "blob_href", None, zero.optional(zero.string), ) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.int), ) use start_column <- zero.optional_field( "start_column", None, zero.optional(zero.int), ) use annotation_level <- zero.optional_field( "annotation_level", None, zero.optional(zero.string), ) use end_line <- zero.optional_field("end_line", None, zero.optional(zero.int)) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use end_column <- zero.optional_field( "end_column", None, zero.optional(zero.int), ) zero.success(CheckAnnotation( path_: path_, message: message, raw_details: raw_details, blob_href: blob_href, start_line: start_line, start_column: start_column, annotation_level: annotation_level, end_line: end_line, title: title, end_column: end_column, )) } pub fn marketplace_listing_plan_to_json(data: MarketplaceListingPlan) { json.object([ #("unit_name", json.nullable(data.unit_name, json.string)), #("has_free_trial", json.nullable(data.has_free_trial, json.bool)), #("number", json.nullable(data.number, json.int)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("bullets", json.null()), #("price_model", json.nullable(data.price_model, json.string)), #("accounts_url", json.nullable(data.accounts_url, json.string)), #( "monthly_price_in_cents", json.nullable(data.monthly_price_in_cents, json.int), ), #("id", json.nullable(data.id, json.int)), #( "yearly_price_in_cents", json.nullable(data.yearly_price_in_cents, json.int), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn marketplace_listing_plan_decoder() { use unit_name <- zero.optional_field( "unit_name", None, zero.optional(zero.string), ) use has_free_trial <- zero.optional_field( "has_free_trial", None, zero.optional(zero.bool), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use bullets <- zero.optional_field( "bullets", None, zero.optional(zero.list(zero.string)), ) use price_model <- zero.optional_field( "price_model", None, zero.optional(zero.string), ) use accounts_url <- zero.optional_field( "accounts_url", None, zero.optional(zero.string), ) use monthly_price_in_cents <- zero.optional_field( "monthly_price_in_cents", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use yearly_price_in_cents <- zero.optional_field( "yearly_price_in_cents", None, zero.optional(zero.int), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(MarketplaceListingPlan( unit_name: unit_name, has_free_trial: has_free_trial, number: number, name: name, url: url, state: state, bullets: bullets, price_model: price_model, accounts_url: accounts_url, monthly_price_in_cents: monthly_price_in_cents, id: id, yearly_price_in_cents: yearly_price_in_cents, description: description, )) } pub fn team_role_assignment_to_json(data: TeamRoleAssignment) { json.object([ #("permissions", json.null()), #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("parent", json.null()), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("assignment", json.nullable(data.assignment, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn team_role_assignment_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use parent <- zero.optional_field( "parent", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use assignment <- zero.optional_field( "assignment", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(TeamRoleAssignment( permissions: permissions, privacy: privacy, members_url: members_url, parent: parent, name: name, slug: slug, assignment: assignment, url: url, permission: permission, node_id: node_id, repositories_url: repositories_url, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn webhook_projects_v2_project_closed_to_json( data: WebhookProjectsV2ProjectClosed, ) { json.object([ #("projects_v2", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_project_closed_decoder() { use projects_v2 <- zero.optional_field( "projects_v2", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ProjectClosed( projects_v2: projects_v2, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_repository_ruleset_created_to_json( data: WebhookRepositoryRulesetCreated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("repository_ruleset", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_ruleset_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use repository_ruleset <- zero.optional_field( "repository_ruleset", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryRulesetCreated( enterprise: enterprise, repository: repository, repository_ruleset: repository_ruleset, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhooks_code_scanning_ref_decoder() { zero.string } pub fn enabled_repositories_decoder() { zero.string } pub fn nullable_repository_webhooks_to_json(data: NullableRepositoryWebhooks) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("custom_properties", json.null()), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("allow_update_branch", json.nullable(data.allow_update_branch, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #( "squash_merge_commit_message", json.nullable(data.squash_merge_commit_message, json.string), ), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #( "merge_commit_message", json.nullable(data.merge_commit_message, json.string), ), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("template_repository", json.null()), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #( "use_squash_pr_title_as_default", json.nullable(data.use_squash_pr_title_as_default, json.bool), ), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("organization", json.null()), #("owner", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #( "squash_merge_commit_title", json.nullable(data.squash_merge_commit_title, json.string), ), #("merge_commit_title", json.nullable(data.merge_commit_title, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "anonymous_access_enabled", json.nullable(data.anonymous_access_enabled, json.bool), ), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("subscribers_count", json.nullable(data.subscribers_count, json.int)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("network_count", json.nullable(data.network_count, json.int)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn nullable_repository_webhooks_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use custom_properties <- zero.optional_field( "custom_properties", None, zero.optional(zero.success(Nil)), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use allow_update_branch <- zero.optional_field( "allow_update_branch", None, zero.optional(zero.bool), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use squash_merge_commit_message <- zero.optional_field( "squash_merge_commit_message", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use merge_commit_message <- zero.optional_field( "merge_commit_message", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use template_repository <- zero.optional_field( "template_repository", None, zero.optional(zero.success(Nil)), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use use_squash_pr_title_as_default <- zero.optional_field( "use_squash_pr_title_as_default", None, zero.optional(zero.bool), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use squash_merge_commit_title <- zero.optional_field( "squash_merge_commit_title", None, zero.optional(zero.string), ) use merge_commit_title <- zero.optional_field( "merge_commit_title", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use anonymous_access_enabled <- zero.optional_field( "anonymous_access_enabled", None, zero.optional(zero.bool), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use subscribers_count <- zero.optional_field( "subscribers_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use network_count <- zero.optional_field( "network_count", None, zero.optional(zero.int), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(NullableRepositoryWebhooks( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, custom_properties: custom_properties, forks_count: forks_count, fork: fork, allow_update_branch: allow_update_branch, git_url: git_url, archived: archived, private: private, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, squash_merge_commit_message: squash_merge_commit_message, has_discussions: has_discussions, teams_url: teams_url, merge_commit_message: merge_commit_message, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, allow_squash_merge: allow_squash_merge, homepage: homepage, template_repository: template_repository, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, use_squash_pr_title_as_default: use_squash_pr_title_as_default, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, organization: organization, owner: owner, starred_at: starred_at, allow_merge_commit: allow_merge_commit, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, squash_merge_commit_title: squash_merge_commit_title, merge_commit_title: merge_commit_title, updated_at: updated_at, watchers: watchers, node_id: node_id, anonymous_access_enabled: anonymous_access_enabled, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, subscribers_count: subscribers_count, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, network_count: network_count, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhook_project_edited_to_json(data: WebhookProjectEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("project", json.null()), #("installation", json.null()), ]) } pub fn webhook_project_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use project <- zero.optional_field( "project", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, project: project, installation: installation, )) } pub fn code_scanning_analysis_category_decoder() { zero.string } pub fn classroom_to_json(data: Classroom) { json.object([ #("archived", json.nullable(data.archived, json.bool)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("organization", json.null()), #("id", json.nullable(data.id, json.int)), ]) } pub fn classroom_decoder() { use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(Classroom( archived: archived, name: name, url: url, organization: organization, id: id, )) } pub fn webhook_projects_v2_item_deleted_to_json( data: WebhookProjectsV2ItemDeleted, ) { json.object([ #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_deleted_decoder() { use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemDeleted( projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_variant_analysis_repo_task_to_json( data: CodeScanningVariantAnalysisRepoTask, ) { json.object([ #("artifact_url", json.nullable(data.artifact_url, json.string)), #( "artifact_size_in_bytes", json.nullable(data.artifact_size_in_bytes, json.int), ), #( "database_commit_sha", json.nullable(data.database_commit_sha, json.string), ), #("repository", json.null()), #("result_count", json.nullable(data.result_count, json.int)), #("failure_message", json.nullable(data.failure_message, json.string)), #("analysis_status", json.nullable(data.analysis_status, json.string)), #( "source_location_prefix", json.nullable(data.source_location_prefix, json.string), ), ]) } pub fn code_scanning_variant_analysis_repo_task_decoder() { use artifact_url <- zero.optional_field( "artifact_url", None, zero.optional(zero.string), ) use artifact_size_in_bytes <- zero.optional_field( "artifact_size_in_bytes", None, zero.optional(zero.int), ) use database_commit_sha <- zero.optional_field( "database_commit_sha", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use result_count <- zero.optional_field( "result_count", None, zero.optional(zero.int), ) use failure_message <- zero.optional_field( "failure_message", None, zero.optional(zero.string), ) use analysis_status <- zero.optional_field( "analysis_status", None, zero.optional(zero.string), ) use source_location_prefix <- zero.optional_field( "source_location_prefix", None, zero.optional(zero.string), ) zero.success(CodeScanningVariantAnalysisRepoTask( artifact_url: artifact_url, artifact_size_in_bytes: artifact_size_in_bytes, database_commit_sha: database_commit_sha, repository: repository, result_count: result_count, failure_message: failure_message, analysis_status: analysis_status, source_location_prefix: source_location_prefix, )) } pub fn runner_application_to_json(data: RunnerApplication) { json.object([ #("os", json.nullable(data.os, json.string)), #("filename", json.nullable(data.filename, json.string)), #( "temp_download_token", json.nullable(data.temp_download_token, json.string), ), #("architecture", json.nullable(data.architecture, json.string)), #("download_url", json.nullable(data.download_url, json.string)), #("sha256_checksum", json.nullable(data.sha256_checksum, json.string)), ]) } pub fn runner_application_decoder() { use os <- zero.optional_field("os", None, zero.optional(zero.string)) use filename <- zero.optional_field( "filename", None, zero.optional(zero.string), ) use temp_download_token <- zero.optional_field( "temp_download_token", None, zero.optional(zero.string), ) use architecture <- zero.optional_field( "architecture", None, zero.optional(zero.string), ) use download_url <- zero.optional_field( "download_url", None, zero.optional(zero.string), ) use sha256_checksum <- zero.optional_field( "sha256_checksum", None, zero.optional(zero.string), ) zero.success(RunnerApplication( os: os, filename: filename, temp_download_token: temp_download_token, architecture: architecture, download_url: download_url, sha256_checksum: sha256_checksum, )) } pub fn workflow_usage_to_json(data: WorkflowUsage) { json.object([#("billable", json.null())]) } pub fn workflow_usage_decoder() { use billable <- zero.optional_field( "billable", None, zero.optional(zero.success(Nil)), ) zero.success(WorkflowUsage(billable: billable)) } pub fn environment_to_json(data: Environment) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("protection_rules", json.null()), #("deployment_branch_policy", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn environment_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use protection_rules <- zero.optional_field( "protection_rules", None, zero.optional(zero.success(Nil)), ) use deployment_branch_policy <- zero.optional_field( "deployment_branch_policy", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(Environment( created_at: created_at, name: name, url: url, protection_rules: protection_rules, deployment_branch_policy: deployment_branch_policy, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, )) } pub fn check_suite_to_json(data: CheckSuite) { json.object([ #("head_branch", json.nullable(data.head_branch, json.string)), #("app", json.null()), #( "latest_check_runs_count", json.nullable(data.latest_check_runs_count, json.int), ), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("head_sha", json.nullable(data.head_sha, json.string)), #("check_runs_url", json.nullable(data.check_runs_url, json.string)), #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), #("rerequestable", json.nullable(data.rerequestable, json.bool)), #("head_commit", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("after", json.nullable(data.after, json.string)), #("pull_requests", json.null()), #("conclusion", json.nullable(data.conclusion, json.string)), #("before", json.nullable(data.before, json.string)), #("runs_rerequestable", json.nullable(data.runs_rerequestable, json.bool)), ]) } pub fn check_suite_decoder() { use head_branch <- zero.optional_field( "head_branch", None, zero.optional(zero.string), ) use app <- zero.optional_field("app", None, zero.optional(zero.success(Nil))) use latest_check_runs_count <- zero.optional_field( "latest_check_runs_count", None, zero.optional(zero.int), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use check_runs_url <- zero.optional_field( "check_runs_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use rerequestable <- zero.optional_field( "rerequestable", None, zero.optional(zero.bool), ) use head_commit <- zero.optional_field( "head_commit", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use after <- zero.optional_field("after", None, zero.optional(zero.string)) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.success(Nil)), ) use conclusion <- zero.optional_field( "conclusion", None, zero.optional(zero.string), ) use before <- zero.optional_field("before", None, zero.optional(zero.string)) use runs_rerequestable <- zero.optional_field( "runs_rerequestable", None, zero.optional(zero.bool), ) zero.success(CheckSuite( head_branch: head_branch, app: app, latest_check_runs_count: latest_check_runs_count, created_at: created_at, repository: repository, head_sha: head_sha, check_runs_url: check_runs_url, url: url, status: status, rerequestable: rerequestable, head_commit: head_commit, updated_at: updated_at, node_id: node_id, id: id, after: after, pull_requests: pull_requests, conclusion: conclusion, before: before, runs_rerequestable: runs_rerequestable, )) } pub fn codespace_machine_to_json(data: CodespaceMachine) { json.object([ #("display_name", json.nullable(data.display_name, json.string)), #("name", json.nullable(data.name, json.string)), #("cpus", json.nullable(data.cpus, json.int)), #("operating_system", json.nullable(data.operating_system, json.string)), #("memory_in_bytes", json.nullable(data.memory_in_bytes, json.int)), #( "prebuild_availability", json.nullable(data.prebuild_availability, json.string), ), #("storage_in_bytes", json.nullable(data.storage_in_bytes, json.int)), ]) } pub fn codespace_machine_decoder() { use display_name <- zero.optional_field( "display_name", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use cpus <- zero.optional_field("cpus", None, zero.optional(zero.int)) use operating_system <- zero.optional_field( "operating_system", None, zero.optional(zero.string), ) use memory_in_bytes <- zero.optional_field( "memory_in_bytes", None, zero.optional(zero.int), ) use prebuild_availability <- zero.optional_field( "prebuild_availability", None, zero.optional(zero.string), ) use storage_in_bytes <- zero.optional_field( "storage_in_bytes", None, zero.optional(zero.int), ) zero.success(CodespaceMachine( display_name: display_name, name: name, cpus: cpus, operating_system: operating_system, memory_in_bytes: memory_in_bytes, prebuild_availability: prebuild_availability, storage_in_bytes: storage_in_bytes, )) } pub fn webhook_code_scanning_alert_reopened_by_user_to_json( data: WebhookCodeScanningAlertReopenedByUser, ) { json.object([ #("enterprise", json.null()), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_code_scanning_alert_reopened_by_user_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCodeScanningAlertReopenedByUser( enterprise: enterprise, commit_oid: commit_oid, repository: repository, ref: ref, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhooks_sponsorship_to_json(data: WebhooksSponsorship) { json.object([ #("tier", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("privacy_level", json.nullable(data.privacy_level, json.string)), #("sponsorable", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("maintainer", json.null()), #("sponsor", json.null()), ]) } pub fn webhooks_sponsorship_decoder() { use tier <- zero.optional_field( "tier", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use privacy_level <- zero.optional_field( "privacy_level", None, zero.optional(zero.string), ) use sponsorable <- zero.optional_field( "sponsorable", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use maintainer <- zero.optional_field( "maintainer", None, zero.optional(zero.success(Nil)), ) use sponsor <- zero.optional_field( "sponsor", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksSponsorship( tier: tier, created_at: created_at, privacy_level: privacy_level, sponsorable: sponsorable, node_id: node_id, maintainer: maintainer, sponsor: sponsor, )) } pub fn timeline_assigned_issue_event_to_json(data: TimelineAssignedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn timeline_assigned_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(TimelineAssignedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, assignee: assignee, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn unlabeled_issue_event_to_json(data: UnlabeledIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("label", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn unlabeled_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(UnlabeledIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, label: label, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn participation_stats_to_json(data: ParticipationStats) { json.object([#("all", json.null()), #("owner", json.null())]) } pub fn participation_stats_decoder() { use all <- zero.optional_field("all", None, zero.optional(zero.success(Nil))) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) zero.success(ParticipationStats(all: all, owner: owner)) } pub fn webhook_dependabot_alert_dismissed_to_json( data: WebhookDependabotAlertDismissed, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_dismissed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertDismissed( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn code_scanning_alert_items_to_json(data: CodeScanningAlertItems) { json.object([ #("dismissed_comment", json.nullable(data.dismissed_comment, json.string)), #("number", json.nullable(data.number, json.int)), #("dismissed_at", json.nullable(data.dismissed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("dismissed_by", json.null()), #("instances_url", json.nullable(data.instances_url, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("tool", json.null()), #("dismissed_reason", json.nullable(data.dismissed_reason, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("rule", json.null()), #("most_recent_instance", json.null()), #("fixed_at", json.nullable(data.fixed_at, json.string)), ]) } pub fn code_scanning_alert_items_decoder() { use dismissed_comment <- zero.optional_field( "dismissed_comment", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use dismissed_at <- zero.optional_field( "dismissed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use dismissed_by <- zero.optional_field( "dismissed_by", None, zero.optional(zero.success(Nil)), ) use instances_url <- zero.optional_field( "instances_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use tool <- zero.optional_field( "tool", None, zero.optional(zero.success(Nil)), ) use dismissed_reason <- zero.optional_field( "dismissed_reason", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use rule <- zero.optional_field( "rule", None, zero.optional(zero.success(Nil)), ) use most_recent_instance <- zero.optional_field( "most_recent_instance", None, zero.optional(zero.success(Nil)), ) use fixed_at <- zero.optional_field( "fixed_at", None, zero.optional(zero.string), ) zero.success(CodeScanningAlertItems( dismissed_comment: dismissed_comment, number: number, dismissed_at: dismissed_at, created_at: created_at, dismissed_by: dismissed_by, instances_url: instances_url, url: url, state: state, updated_at: updated_at, tool: tool, dismissed_reason: dismissed_reason, html_url: html_url, rule: rule, most_recent_instance: most_recent_instance, fixed_at: fixed_at, )) } pub fn secret_scanning_location_discussion_comment_to_json( data: SecretScanningLocationDiscussionComment, ) { json.object([ #( "discussion_comment_url", json.nullable(data.discussion_comment_url, json.string), ), ]) } pub fn secret_scanning_location_discussion_comment_decoder() { use discussion_comment_url <- zero.optional_field( "discussion_comment_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationDiscussionComment( discussion_comment_url: discussion_comment_url, )) } pub fn referenced_workflow_to_json(data: ReferencedWorkflow) { json.object([ #("path", json.nullable(data.path_, json.string)), #("sha", json.nullable(data.sha, json.string)), #("ref", json.nullable(data.ref, json.string)), ]) } pub fn referenced_workflow_decoder() { use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) zero.success(ReferencedWorkflow(path_: path_, sha: sha, ref: ref)) } pub fn webhook_secret_scanning_alert_publicly_leaked_to_json( data: WebhookSecretScanningAlertPubliclyLeaked, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_secret_scanning_alert_publicly_leaked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecretScanningAlertPubliclyLeaked( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn repository_collaborator_permission_to_json( data: RepositoryCollaboratorPermission, ) { json.object([ #("user", json.null()), #("permission", json.nullable(data.permission, json.string)), #("role_name", json.nullable(data.role_name, json.string)), ]) } pub fn repository_collaborator_permission_decoder() { use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use role_name <- zero.optional_field( "role_name", None, zero.optional(zero.string), ) zero.success(RepositoryCollaboratorPermission( user: user, permission: permission, role_name: role_name, )) } pub fn organization_invitation_to_json(data: OrganizationInvitation) { json.object([ #( "invitation_teams_url", json.nullable(data.invitation_teams_url, json.string), ), #("invitation_source", json.nullable(data.invitation_source, json.string)), #("failed_reason", json.nullable(data.failed_reason, json.string)), #("inviter", json.null()), #("login", json.nullable(data.login, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("team_count", json.nullable(data.team_count, json.int)), #("failed_at", json.nullable(data.failed_at, json.string)), #("role", json.nullable(data.role, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("email", json.nullable(data.email, json.string)), ]) } pub fn organization_invitation_decoder() { use invitation_teams_url <- zero.optional_field( "invitation_teams_url", None, zero.optional(zero.string), ) use invitation_source <- zero.optional_field( "invitation_source", None, zero.optional(zero.string), ) use failed_reason <- zero.optional_field( "failed_reason", None, zero.optional(zero.string), ) use inviter <- zero.optional_field( "inviter", None, zero.optional(zero.success(Nil)), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use team_count <- zero.optional_field( "team_count", None, zero.optional(zero.int), ) use failed_at <- zero.optional_field( "failed_at", None, zero.optional(zero.string), ) use role <- zero.optional_field("role", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(OrganizationInvitation( invitation_teams_url: invitation_teams_url, invitation_source: invitation_source, failed_reason: failed_reason, inviter: inviter, login: login, created_at: created_at, team_count: team_count, failed_at: failed_at, role: role, node_id: node_id, id: id, email: email, )) } pub fn code_scanning_alert_classification_decoder() { zero.string } pub fn short_branch_to_json(data: ShortBranch) { json.object([ #("protection_url", json.nullable(data.protection_url, json.string)), #("name", json.nullable(data.name, json.string)), #("protected", json.nullable(data.protected, json.bool)), #("commit", json.null()), #("protection", json.null()), ]) } pub fn short_branch_decoder() { use protection_url <- zero.optional_field( "protection_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use protected <- zero.optional_field( "protected", None, zero.optional(zero.bool), ) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use protection <- zero.optional_field( "protection", None, zero.optional(zero.success(Nil)), ) zero.success(ShortBranch( protection_url: protection_url, name: name, protected: protected, commit: commit, protection: protection, )) } pub fn webhook_pull_request_unlocked_to_json(data: WebhookPullRequestUnlocked) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_unlocked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestUnlocked( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn status_to_json(data: Status) { json.object([ #("target_url", json.nullable(data.target_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("url", json.nullable(data.url, json.string)), #("context", json.nullable(data.context, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn status_decoder() { use target_url <- zero.optional_field( "target_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use context <- zero.optional_field( "context", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(Status( target_url: target_url, avatar_url: avatar_url, created_at: created_at, creator: creator, url: url, context: context, state: state, updated_at: updated_at, node_id: node_id, id: id, description: description, )) } pub fn git_commit_to_json(data: GitCommit) { json.object([ #("message", json.nullable(data.message, json.string)), #("parents", json.null()), #("committer", json.null()), #("author", json.null()), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("verification", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #("tree", json.null()), ]) } pub fn git_commit_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use parents <- zero.optional_field( "parents", None, zero.optional(zero.success(Nil)), ) use committer <- zero.optional_field( "committer", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use verification <- zero.optional_field( "verification", None, zero.optional(zero.success(Nil)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use tree <- zero.optional_field( "tree", None, zero.optional(zero.success(Nil)), ) zero.success(GitCommit( message: message, parents: parents, committer: committer, author: author, sha: sha, url: url, node_id: node_id, verification: verification, html_url: html_url, tree: tree, )) } pub fn webhooks_teamone_to_json(data: WebhooksTeam1) { json.object([ #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("parent", json.null()), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("deleted", json.nullable(data.deleted, json.bool)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhooks_teamone_decoder() { use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use parent <- zero.optional_field( "parent", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use deleted <- zero.optional_field("deleted", None, zero.optional(zero.bool)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhooksTeam1( privacy: privacy, members_url: members_url, parent: parent, name: name, slug: slug, url: url, permission: permission, node_id: node_id, repositories_url: repositories_url, deleted: deleted, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn issue_search_result_item_to_json(data: IssueSearchResultItem) { json.object([ #("text_matches", json.null()), #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("repository", json.null()), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("milestone", json.null()), #("timeline_url", json.nullable(data.timeline_url, json.string)), #("state", json.nullable(data.state, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("score", json.nullable(data.score, json.float)), #("comments", json.nullable(data.comments, json.int)), #("pull_request", json.null()), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn issue_search_result_item_decoder() { use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(IssueSearchResultItem( text_matches: text_matches, draft: draft, body: body, assignees: assignees, comments_url: comments_url, closed_at: closed_at, body_html: body_html, events_url: events_url, number: number, created_at: created_at, body_text: body_text, locked: locked, repository: repository, reactions: reactions, user: user, author_association: author_association, labels_url: labels_url, url: url, assignee: assignee, milestone: milestone, timeline_url: timeline_url, state: state, state_reason: state_reason, score: score, comments: comments, pull_request: pull_request, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, title: title, repository_url: repository_url, id: id, html_url: html_url, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn status_check_policy_to_json(data: StatusCheckPolicy) { json.object([ #("contexts", json.null()), #("strict", json.nullable(data.strict, json.bool)), #("checks", json.null()), #("url", json.nullable(data.url, json.string)), #("contexts_url", json.nullable(data.contexts_url, json.string)), ]) } pub fn status_check_policy_decoder() { use contexts <- zero.optional_field( "contexts", None, zero.optional(zero.list(zero.string)), ) use strict <- zero.optional_field("strict", None, zero.optional(zero.bool)) use checks <- zero.optional_field( "checks", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use contexts_url <- zero.optional_field( "contexts_url", None, zero.optional(zero.string), ) zero.success(StatusCheckPolicy( contexts: contexts, strict: strict, checks: checks, url: url, contexts_url: contexts_url, )) } pub fn repository_rule_enforcement_decoder() { zero.string } pub fn organization_programmatic_access_grant_request_to_json( data: OrganizationProgrammaticAccessGrantRequest, ) { json.object([ #("token_id", json.nullable(data.token_id, json.int)), #("permissions", json.null()), #("reason", json.nullable(data.reason, json.string)), #("token_expires_at", json.nullable(data.token_expires_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("token_name", json.nullable(data.token_name, json.string)), #("token_last_used_at", json.nullable(data.token_last_used_at, json.string)), #("owner", json.null()), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("token_expired", json.nullable(data.token_expired, json.bool)), ]) } pub fn organization_programmatic_access_grant_request_decoder() { use token_id <- zero.optional_field("token_id", None, zero.optional(zero.int)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use token_expires_at <- zero.optional_field( "token_expires_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use token_name <- zero.optional_field( "token_name", None, zero.optional(zero.string), ) use token_last_used_at <- zero.optional_field( "token_last_used_at", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use token_expired <- zero.optional_field( "token_expired", None, zero.optional(zero.bool), ) zero.success(OrganizationProgrammaticAccessGrantRequest( token_id: token_id, permissions: permissions, reason: reason, token_expires_at: token_expires_at, created_at: created_at, token_name: token_name, token_last_used_at: token_last_used_at, owner: owner, repository_selection: repository_selection, repositories_url: repositories_url, id: id, token_expired: token_expired, )) } pub fn nullable_collaborator_to_json(data: NullableCollaborator) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("permissions", json.null()), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("role_name", json.nullable(data.role_name, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn nullable_collaborator_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use role_name <- zero.optional_field( "role_name", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(NullableCollaborator( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, permissions: permissions, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, role_name: role_name, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn webhook_dependabot_alert_reopened_to_json( data: WebhookDependabotAlertReopened, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertReopened( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn secret_scanning_location_issue_comment_to_json( data: SecretScanningLocationIssueComment, ) { json.object([ #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), ]) } pub fn secret_scanning_location_issue_comment_decoder() { use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationIssueComment( issue_comment_url: issue_comment_url, )) } pub fn webhook_discussion_unlocked_to_json(data: WebhookDiscussionUnlocked) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_unlocked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionUnlocked( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn actions_default_workflow_permissions_decoder() { zero.string } pub fn secret_scanning_location_pull_request_comment_to_json( data: SecretScanningLocationPullRequestComment, ) { json.object([ #( "pull_request_comment_url", json.nullable(data.pull_request_comment_url, json.string), ), ]) } pub fn secret_scanning_location_pull_request_comment_decoder() { use pull_request_comment_url <- zero.optional_field( "pull_request_comment_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationPullRequestComment( pull_request_comment_url: pull_request_comment_url, )) } pub fn webhook_release_published_to_json(data: WebhookReleasePublished) { json.object([ #("enterprise", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_published_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleasePublished( enterprise: enterprise, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn nullable_git_user_to_json(data: NullableGitUser) { json.object([ #("name", json.nullable(data.name, json.string)), #("date", json.nullable(data.date, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn nullable_git_user_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use date <- zero.optional_field("date", None, zero.optional(zero.string)) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(NullableGitUser(name: name, date: date, email: email)) } pub fn artifact_to_json(data: Artifact) { json.object([ #("expired", json.nullable(data.expired, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("workflow_run", json.null()), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("size_in_bytes", json.nullable(data.size_in_bytes, json.int)), #( "archive_download_url", json.nullable(data.archive_download_url, json.string), ), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("expires_at", json.nullable(data.expires_at, json.string)), ]) } pub fn artifact_decoder() { use expired <- zero.optional_field("expired", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use size_in_bytes <- zero.optional_field( "size_in_bytes", None, zero.optional(zero.int), ) use archive_download_url <- zero.optional_field( "archive_download_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) zero.success(Artifact( expired: expired, created_at: created_at, workflow_run: workflow_run, name: name, url: url, size_in_bytes: size_in_bytes, archive_download_url: archive_download_url, updated_at: updated_at, node_id: node_id, id: id, expires_at: expires_at, )) } pub fn simple_commit_to_json(data: SimpleCommit) { json.object([ #("message", json.nullable(data.message, json.string)), #("committer", json.null()), #("author", json.null()), #("timestamp", json.nullable(data.timestamp, json.string)), #("id", json.nullable(data.id, json.string)), #("tree_id", json.nullable(data.tree_id, json.string)), ]) } pub fn simple_commit_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use committer <- zero.optional_field( "committer", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use timestamp <- zero.optional_field( "timestamp", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use tree_id <- zero.optional_field( "tree_id", None, zero.optional(zero.string), ) zero.success(SimpleCommit( message: message, committer: committer, author: author, timestamp: timestamp, id: id, tree_id: tree_id, )) } pub fn webhook_dependabot_alert_created_to_json( data: WebhookDependabotAlertCreated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhook_repository_import_to_json(data: WebhookRepositoryImport) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("status", json.nullable(data.status, json.string)), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), ]) } pub fn webhook_repository_import_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryImport( enterprise: enterprise, repository: repository, status: status, organization: organization, sender: sender, installation: installation, )) } pub fn protected_branch_pull_request_review_to_json( data: ProtectedBranchPullRequestReview, ) { json.object([ #( "dismiss_stale_reviews", json.nullable(data.dismiss_stale_reviews, json.bool), ), #("bypass_pull_request_allowances", json.null()), #("url", json.nullable(data.url, json.string)), #("dismissal_restrictions", json.null()), #( "require_code_owner_reviews", json.nullable(data.require_code_owner_reviews, json.bool), ), #( "require_last_push_approval", json.nullable(data.require_last_push_approval, json.bool), ), #( "required_approving_review_count", json.nullable(data.required_approving_review_count, json.int), ), ]) } pub fn protected_branch_pull_request_review_decoder() { use dismiss_stale_reviews <- zero.optional_field( "dismiss_stale_reviews", None, zero.optional(zero.bool), ) use bypass_pull_request_allowances <- zero.optional_field( "bypass_pull_request_allowances", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use dismissal_restrictions <- zero.optional_field( "dismissal_restrictions", None, zero.optional(zero.success(Nil)), ) use require_code_owner_reviews <- zero.optional_field( "require_code_owner_reviews", None, zero.optional(zero.bool), ) use require_last_push_approval <- zero.optional_field( "require_last_push_approval", None, zero.optional(zero.bool), ) use required_approving_review_count <- zero.optional_field( "required_approving_review_count", None, zero.optional(zero.int), ) zero.success(ProtectedBranchPullRequestReview( dismiss_stale_reviews: dismiss_stale_reviews, bypass_pull_request_allowances: bypass_pull_request_allowances, url: url, dismissal_restrictions: dismissal_restrictions, require_code_owner_reviews: require_code_owner_reviews, require_last_push_approval: require_last_push_approval, required_approving_review_count: required_approving_review_count, )) } pub fn ssh_signing_key_to_json(data: SshSigningKey) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("key", json.nullable(data.key, json.string)), ]) } pub fn ssh_signing_key_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(SshSigningKey( created_at: created_at, title: title, id: id, key: key, )) } pub fn webhook_check_run_requested_action_to_json( data: WebhookCheckRunRequestedAction, ) { json.object([ #("requested_action", json.null()), #("repository", json.null()), #("organization", json.null()), #("check_run", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_run_requested_action_decoder() { use requested_action <- zero.optional_field( "requested_action", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use check_run <- zero.optional_field( "check_run", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckRunRequestedAction( requested_action: requested_action, repository: repository, organization: organization, check_run: check_run, sender: sender, action: action, installation: installation, )) } pub fn repository_rule_violation_error_to_json( data: RepositoryRuleViolationError, ) { json.object([ #("message", json.nullable(data.message, json.string)), #("documentation_url", json.nullable(data.documentation_url, json.string)), #("metadata", json.null()), #("status", json.nullable(data.status, json.string)), ]) } pub fn repository_rule_violation_error_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use documentation_url <- zero.optional_field( "documentation_url", None, zero.optional(zero.string), ) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.success(Nil)), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) zero.success(RepositoryRuleViolationError( message: message, documentation_url: documentation_url, metadata: metadata, status: status, )) } pub fn webhook_create_to_json(data: WebhookCreate) { json.object([ #("enterprise", json.null()), #("ref_type", json.nullable(data.ref_type, json.string)), #("repository", json.null()), #("pusher_type", json.nullable(data.pusher_type, json.string)), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), #("description", json.nullable(data.description, json.string)), #("master_branch", json.nullable(data.master_branch, json.string)), ]) } pub fn webhook_create_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use ref_type <- zero.optional_field( "ref_type", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use pusher_type <- zero.optional_field( "pusher_type", None, zero.optional(zero.string), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) zero.success(WebhookCreate( enterprise: enterprise, ref_type: ref_type, repository: repository, pusher_type: pusher_type, ref: ref, organization: organization, sender: sender, installation: installation, description: description, master_branch: master_branch, )) } pub fn webhook_workflow_dispatch_to_json(data: WebhookWorkflowDispatch) { json.object([ #("enterprise", json.null()), #("inputs", json.null()), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), #("workflow", json.nullable(data.workflow, json.string)), ]) } pub fn webhook_workflow_dispatch_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use inputs <- zero.optional_field( "inputs", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow <- zero.optional_field( "workflow", None, zero.optional(zero.string), ) zero.success(WebhookWorkflowDispatch( enterprise: enterprise, inputs: inputs, repository: repository, ref: ref, organization: organization, sender: sender, installation: installation, workflow: workflow, )) } pub fn content_tree_to_json(data: ContentTree) { json.object([ #("size", json.nullable(data.size, json.int)), #("git_url", json.nullable(data.git_url, json.string)), #("path", json.nullable(data.path_, json.string)), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("entries", json.null()), #("download_url", json.nullable(data.download_url, json.string)), #("content", json.nullable(data.content, json.string)), #("_links", json.null()), #("type", json.nullable(data.type_, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn content_tree_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use entries <- zero.optional_field( "entries", None, zero.optional(zero.success(Nil)), ) use download_url <- zero.optional_field( "download_url", None, zero.optional(zero.string), ) use content <- zero.optional_field( "content", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(ContentTree( size: size, git_url: git_url, path_: path_, name: name, sha: sha, url: url, entries: entries, download_url: download_url, content: content, links: links, type_: type_, html_url: html_url, )) } pub fn webhook_branch_protection_configuration_disabled_to_json( data: WebhookBranchProtectionConfigurationDisabled, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_branch_protection_configuration_disabled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookBranchProtectionConfigurationDisabled( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_issues_demilestoned_to_json(data: WebhookIssuesDemilestoned) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_demilestoned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesDemilestoned( enterprise: enterprise, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn code_security_configuration_for_repository_to_json( data: CodeSecurityConfigurationForRepository, ) { json.object([ #("status", json.nullable(data.status, json.string)), #("configuration", json.null()), ]) } pub fn code_security_configuration_for_repository_decoder() { use status <- zero.optional_field("status", None, zero.optional(zero.string)) use configuration <- zero.optional_field( "configuration", None, zero.optional(zero.success(Nil)), ) zero.success(CodeSecurityConfigurationForRepository( status: status, configuration: configuration, )) } pub fn review_requested_issue_event_to_json(data: ReviewRequestedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("requested_team", json.null()), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("review_requester", json.null()), #("requested_reviewer", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn review_requested_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use requested_team <- zero.optional_field( "requested_team", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use review_requester <- zero.optional_field( "review_requester", None, zero.optional(zero.success(Nil)), ) use requested_reviewer <- zero.optional_field( "requested_reviewer", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ReviewRequestedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, requested_team: requested_team, url: url, actor: actor, performed_via_github_app: performed_via_github_app, review_requester: review_requester, requested_reviewer: requested_reviewer, node_id: node_id, event: event, id: id, )) } pub fn actions_cache_usage_org_enterprise_to_json( data: ActionsCacheUsageOrgEnterprise, ) { json.object([ #( "total_active_caches_size_in_bytes", json.nullable(data.total_active_caches_size_in_bytes, json.int), ), #( "total_active_caches_count", json.nullable(data.total_active_caches_count, json.int), ), ]) } pub fn actions_cache_usage_org_enterprise_decoder() { use total_active_caches_size_in_bytes <- zero.optional_field( "total_active_caches_size_in_bytes", None, zero.optional(zero.int), ) use total_active_caches_count <- zero.optional_field( "total_active_caches_count", None, zero.optional(zero.int), ) zero.success(ActionsCacheUsageOrgEnterprise( total_active_caches_size_in_bytes: total_active_caches_size_in_bytes, total_active_caches_count: total_active_caches_count, )) } pub fn workflow_run_usage_to_json(data: WorkflowRunUsage) { json.object([ #("billable", json.null()), #("run_duration_ms", json.nullable(data.run_duration_ms, json.int)), ]) } pub fn workflow_run_usage_decoder() { use billable <- zero.optional_field( "billable", None, zero.optional(zero.success(Nil)), ) use run_duration_ms <- zero.optional_field( "run_duration_ms", None, zero.optional(zero.int), ) zero.success(WorkflowRunUsage( billable: billable, run_duration_ms: run_duration_ms, )) } pub fn webhook_package_published_to_json(data: WebhookPackagePublished) { json.object([ #("enterprise", json.null()), #("package", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_package_published_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use package <- zero.optional_field( "package", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPackagePublished( enterprise: enterprise, package: package, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_projects_v2_project_edited_to_json( data: WebhookProjectsV2ProjectEdited, ) { json.object([ #("projects_v2", json.null()), #("changes", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_project_edited_decoder() { use projects_v2 <- zero.optional_field( "projects_v2", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ProjectEdited( projects_v2: projects_v2, changes: changes, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_security_advisory_published_to_json( data: WebhookSecurityAdvisoryPublished, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("security_advisory", json.null()), #("installation", json.null()), ]) } pub fn webhook_security_advisory_published_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use security_advisory <- zero.optional_field( "security_advisory", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecurityAdvisoryPublished( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, security_advisory: security_advisory, installation: installation, )) } pub fn webhook_organization_member_added_to_json( data: WebhookOrganizationMemberAdded, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("membership", json.null()), #("installation", json.null()), ]) } pub fn webhook_organization_member_added_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use membership <- zero.optional_field( "membership", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrganizationMemberAdded( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, membership: membership, installation: installation, )) } pub fn codespaces_permissions_check_for_devcontainer_to_json( data: CodespacesPermissionsCheckForDevcontainer, ) { json.object([#("accepted", json.nullable(data.accepted, json.bool))]) } pub fn codespaces_permissions_check_for_devcontainer_decoder() { use accepted <- zero.optional_field( "accepted", None, zero.optional(zero.bool), ) zero.success(CodespacesPermissionsCheckForDevcontainer(accepted: accepted)) } pub fn actions_enabled_decoder() { zero.bool } pub fn repository_ruleset_conditions_repository_property_target_to_json( data: RepositoryRulesetConditionsRepositoryPropertyTarget, ) { json.object([#("repository_property", json.null())]) } pub fn repository_ruleset_conditions_repository_property_target_decoder() { use repository_property <- zero.optional_field( "repository_property", None, zero.optional(zero.success(Nil)), ) zero.success(RepositoryRulesetConditionsRepositoryPropertyTarget( repository_property: repository_property, )) } pub fn package_version_to_json(data: PackageVersion) { json.object([ #("license", json.nullable(data.license, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("metadata", json.null()), #("package_html_url", json.nullable(data.package_html_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("deleted_at", json.nullable(data.deleted_at, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn package_version_decoder() { use license <- zero.optional_field( "license", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.success(Nil)), ) use package_html_url <- zero.optional_field( "package_html_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use deleted_at <- zero.optional_field( "deleted_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(PackageVersion( license: license, created_at: created_at, name: name, url: url, metadata: metadata, package_html_url: package_html_url, updated_at: updated_at, deleted_at: deleted_at, id: id, html_url: html_url, description: description, )) } pub fn pages_deployment_status_to_json(data: PagesDeploymentStatus) { json.object([#("status", json.nullable(data.status, json.string))]) } pub fn pages_deployment_status_decoder() { use status <- zero.optional_field("status", None, zero.optional(zero.string)) zero.success(PagesDeploymentStatus(status: status)) } pub fn webhook_projects_v2_project_deleted_to_json( data: WebhookProjectsV2ProjectDeleted, ) { json.object([ #("projects_v2", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_project_deleted_decoder() { use projects_v2 <- zero.optional_field( "projects_v2", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ProjectDeleted( projects_v2: projects_v2, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhooks_label_to_json(data: WebhooksLabel) { json.object([ #("default", json.nullable(data.default, json.bool)), #("color", json.nullable(data.color, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhooks_label_decoder() { use default <- zero.optional_field("default", None, zero.optional(zero.bool)) use color <- zero.optional_field("color", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhooksLabel( default: default, color: color, name: name, url: url, node_id: node_id, id: id, description: description, )) } pub fn pull_request_webhook_to_json(data: PullRequestWebhook) { json.object([ #("head", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("allow_update_branch", json.nullable(data.allow_update_branch, json.bool)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("mergeable_state", json.nullable(data.mergeable_state, json.string)), #("requested_teams", json.null()), #("deletions", json.nullable(data.deletions, json.int)), #("merged_at", json.nullable(data.merged_at, json.string)), #( "squash_merge_commit_message", json.nullable(data.squash_merge_commit_message, json.string), ), #("closed_at", json.nullable(data.closed_at, json.string)), #( "merge_commit_message", json.nullable(data.merge_commit_message, json.string), ), #("review_comment_url", json.nullable(data.review_comment_url, json.string)), #("auto_merge", json.null()), #("issue_url", json.nullable(data.issue_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("merged_by", json.null()), #("locked", json.nullable(data.locked, json.bool)), #("merge_commit_sha", json.nullable(data.merge_commit_sha, json.string)), #( "review_comments_url", json.nullable(data.review_comments_url, json.string), ), #("user", json.null()), #("commits_url", json.nullable(data.commits_url, json.string)), #("changed_files", json.nullable(data.changed_files, json.int)), #("merged", json.nullable(data.merged, json.bool)), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("milestone", json.null()), #( "use_squash_pr_title_as_default", json.nullable(data.use_squash_pr_title_as_default, json.bool), ), #( "maintainer_can_modify", json.nullable(data.maintainer_can_modify, json.bool), ), #("state", json.nullable(data.state, json.string)), #("base", json.null()), #("mergeable", json.nullable(data.mergeable, json.bool)), #("comments", json.nullable(data.comments, json.int)), #("diff_url", json.nullable(data.diff_url, json.string)), #( "squash_merge_commit_title", json.nullable(data.squash_merge_commit_title, json.string), ), #("additions", json.nullable(data.additions, json.int)), #("merge_commit_title", json.nullable(data.merge_commit_title, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("patch_url", json.nullable(data.patch_url, json.string)), #("title", json.nullable(data.title, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("review_comments", json.nullable(data.review_comments, json.int)), #("commits", json.nullable(data.commits, json.int)), #("requested_reviewers", json.null()), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("rebaseable", json.nullable(data.rebaseable, json.bool)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn pull_request_webhook_decoder() { use head <- zero.optional_field( "head", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use allow_update_branch <- zero.optional_field( "allow_update_branch", None, zero.optional(zero.bool), ) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use mergeable_state <- zero.optional_field( "mergeable_state", None, zero.optional(zero.string), ) use requested_teams <- zero.optional_field( "requested_teams", None, zero.optional(zero.success(Nil)), ) use deletions <- zero.optional_field( "deletions", None, zero.optional(zero.int), ) use merged_at <- zero.optional_field( "merged_at", None, zero.optional(zero.string), ) use squash_merge_commit_message <- zero.optional_field( "squash_merge_commit_message", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use merge_commit_message <- zero.optional_field( "merge_commit_message", None, zero.optional(zero.string), ) use review_comment_url <- zero.optional_field( "review_comment_url", None, zero.optional(zero.string), ) use auto_merge <- zero.optional_field( "auto_merge", None, zero.optional(zero.success(Nil)), ) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use merged_by <- zero.optional_field( "merged_by", None, zero.optional(zero.success(Nil)), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use merge_commit_sha <- zero.optional_field( "merge_commit_sha", None, zero.optional(zero.string), ) use review_comments_url <- zero.optional_field( "review_comments_url", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use changed_files <- zero.optional_field( "changed_files", None, zero.optional(zero.int), ) use merged <- zero.optional_field("merged", None, zero.optional(zero.bool)) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use use_squash_pr_title_as_default <- zero.optional_field( "use_squash_pr_title_as_default", None, zero.optional(zero.bool), ) use maintainer_can_modify <- zero.optional_field( "maintainer_can_modify", None, zero.optional(zero.bool), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use base_ <- zero.optional_field( "base", None, zero.optional(zero.success(Nil)), ) use mergeable <- zero.optional_field( "mergeable", None, zero.optional(zero.bool), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use diff_url <- zero.optional_field( "diff_url", None, zero.optional(zero.string), ) use squash_merge_commit_title <- zero.optional_field( "squash_merge_commit_title", None, zero.optional(zero.string), ) use additions <- zero.optional_field( "additions", None, zero.optional(zero.int), ) use merge_commit_title <- zero.optional_field( "merge_commit_title", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use patch_url <- zero.optional_field( "patch_url", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use review_comments <- zero.optional_field( "review_comments", None, zero.optional(zero.int), ) use commits <- zero.optional_field("commits", None, zero.optional(zero.int)) use requested_reviewers <- zero.optional_field( "requested_reviewers", None, zero.optional(zero.success(Nil)), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use rebaseable <- zero.optional_field( "rebaseable", None, zero.optional(zero.bool), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(PullRequestWebhook( head: head, delete_branch_on_merge: delete_branch_on_merge, draft: draft, body: body, allow_update_branch: allow_update_branch, assignees: assignees, comments_url: comments_url, mergeable_state: mergeable_state, requested_teams: requested_teams, deletions: deletions, merged_at: merged_at, squash_merge_commit_message: squash_merge_commit_message, closed_at: closed_at, merge_commit_message: merge_commit_message, review_comment_url: review_comment_url, auto_merge: auto_merge, issue_url: issue_url, number: number, created_at: created_at, merged_by: merged_by, locked: locked, merge_commit_sha: merge_commit_sha, review_comments_url: review_comments_url, user: user, commits_url: commits_url, changed_files: changed_files, merged: merged, author_association: author_association, url: url, assignee: assignee, statuses_url: statuses_url, milestone: milestone, use_squash_pr_title_as_default: use_squash_pr_title_as_default, maintainer_can_modify: maintainer_can_modify, state: state, base_: base_, mergeable: mergeable, comments: comments, diff_url: diff_url, squash_merge_commit_title: squash_merge_commit_title, additions: additions, merge_commit_title: merge_commit_title, updated_at: updated_at, node_id: node_id, patch_url: patch_url, title: title, links: links, id: id, html_url: html_url, review_comments: review_comments, commits: commits, requested_reviewers: requested_reviewers, allow_auto_merge: allow_auto_merge, rebaseable: rebaseable, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn actions_workflow_access_to_repository_to_json( data: ActionsWorkflowAccessToRepository, ) { json.object([#("access_level", json.nullable(data.access_level, json.string))]) } pub fn actions_workflow_access_to_repository_decoder() { use access_level <- zero.optional_field( "access_level", None, zero.optional(zero.string), ) zero.success(ActionsWorkflowAccessToRepository(access_level: access_level)) } pub fn webhook_organization_member_removed_to_json( data: WebhookOrganizationMemberRemoved, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("membership", json.null()), #("installation", json.null()), ]) } pub fn webhook_organization_member_removed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use membership <- zero.optional_field( "membership", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrganizationMemberRemoved( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, membership: membership, installation: installation, )) } pub fn projects_v2_item_to_json(data: ProjectsV2Item) { json.object([ #("content_type", json.nullable(data.content_type, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("archived_at", json.nullable(data.archived_at, json.string)), #("project_node_id", json.nullable(data.project_node_id, json.string)), #("content_node_id", json.nullable(data.content_node_id, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.float)), ]) } pub fn projects_v2_item_decoder() { use content_type <- zero.optional_field( "content_type", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use archived_at <- zero.optional_field( "archived_at", None, zero.optional(zero.string), ) use project_node_id <- zero.optional_field( "project_node_id", None, zero.optional(zero.string), ) use content_node_id <- zero.optional_field( "content_node_id", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.float)) zero.success(ProjectsV2Item( content_type: content_type, created_at: created_at, creator: creator, archived_at: archived_at, project_node_id: project_node_id, content_node_id: content_node_id, updated_at: updated_at, node_id: node_id, id: id, )) } pub fn code_scanning_sarifs_status_to_json(data: CodeScanningSarifsStatus) { json.object([ #("errors", json.null()), #("analyses_url", json.nullable(data.analyses_url, json.string)), #("processing_status", json.nullable(data.processing_status, json.string)), ]) } pub fn code_scanning_sarifs_status_decoder() { use errors <- zero.optional_field( "errors", None, zero.optional(zero.list(zero.string)), ) use analyses_url <- zero.optional_field( "analyses_url", None, zero.optional(zero.string), ) use processing_status <- zero.optional_field( "processing_status", None, zero.optional(zero.string), ) zero.success(CodeScanningSarifsStatus( errors: errors, analyses_url: analyses_url, processing_status: processing_status, )) } pub fn actions_repository_permissions_to_json( data: ActionsRepositoryPermissions, ) { json.object([ #("enabled", json.nullable(data.enabled, json.bool)), #("allowed_actions", json.nullable(data.allowed_actions, json.string)), #( "selected_actions_url", json.nullable(data.selected_actions_url, json.string), ), ]) } pub fn actions_repository_permissions_decoder() { use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use allowed_actions <- zero.optional_field( "allowed_actions", None, zero.optional(zero.string), ) use selected_actions_url <- zero.optional_field( "selected_actions_url", None, zero.optional(zero.string), ) zero.success(ActionsRepositoryPermissions( enabled: enabled, allowed_actions: allowed_actions, selected_actions_url: selected_actions_url, )) } pub fn code_of_conduct_simple_to_json(data: CodeOfConductSimple) { json.object([ #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn code_of_conduct_simple_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(CodeOfConductSimple( name: name, url: url, html_url: html_url, key: key, )) } pub fn classroom_assignment_grade_to_json(data: ClassroomAssignmentGrade) { json.object([ #("points_awarded", json.nullable(data.points_awarded, json.int)), #( "submission_timestamp", json.nullable(data.submission_timestamp, json.string), ), #("group_name", json.nullable(data.group_name, json.string)), #("starter_code_url", json.nullable(data.starter_code_url, json.string)), #("points_available", json.nullable(data.points_available, json.int)), #("github_username", json.nullable(data.github_username, json.string)), #( "student_repository_name", json.nullable(data.student_repository_name, json.string), ), #("assignment_name", json.nullable(data.assignment_name, json.string)), #("assignment_url", json.nullable(data.assignment_url, json.string)), #("roster_identifier", json.nullable(data.roster_identifier, json.string)), #( "student_repository_url", json.nullable(data.student_repository_url, json.string), ), ]) } pub fn classroom_assignment_grade_decoder() { use points_awarded <- zero.optional_field( "points_awarded", None, zero.optional(zero.int), ) use submission_timestamp <- zero.optional_field( "submission_timestamp", None, zero.optional(zero.string), ) use group_name <- zero.optional_field( "group_name", None, zero.optional(zero.string), ) use starter_code_url <- zero.optional_field( "starter_code_url", None, zero.optional(zero.string), ) use points_available <- zero.optional_field( "points_available", None, zero.optional(zero.int), ) use github_username <- zero.optional_field( "github_username", None, zero.optional(zero.string), ) use student_repository_name <- zero.optional_field( "student_repository_name", None, zero.optional(zero.string), ) use assignment_name <- zero.optional_field( "assignment_name", None, zero.optional(zero.string), ) use assignment_url <- zero.optional_field( "assignment_url", None, zero.optional(zero.string), ) use roster_identifier <- zero.optional_field( "roster_identifier", None, zero.optional(zero.string), ) use student_repository_url <- zero.optional_field( "student_repository_url", None, zero.optional(zero.string), ) zero.success(ClassroomAssignmentGrade( points_awarded: points_awarded, submission_timestamp: submission_timestamp, group_name: group_name, starter_code_url: starter_code_url, points_available: points_available, github_username: github_username, student_repository_name: student_repository_name, assignment_name: assignment_name, assignment_url: assignment_url, roster_identifier: roster_identifier, student_repository_url: student_repository_url, )) } pub fn webhook_code_scanning_alert_fixed_to_json( data: WebhookCodeScanningAlertFixed, ) { json.object([ #("enterprise", json.null()), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_code_scanning_alert_fixed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCodeScanningAlertFixed( enterprise: enterprise, commit_oid: commit_oid, repository: repository, ref: ref, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn custom_property_to_json(data: CustomProperty) { json.object([ #("value_type", json.nullable(data.value_type, json.string)), #("url", json.nullable(data.url, json.string)), #("default_value", json.null()), #("values_editable_by", json.nullable(data.values_editable_by, json.string)), #("property_name", json.nullable(data.property_name, json.string)), #("allowed_values", json.null()), #("description", json.nullable(data.description, json.string)), #("source_type", json.nullable(data.source_type, json.string)), #("required", json.nullable(data.required, json.bool)), ]) } pub fn custom_property_decoder() { use value_type <- zero.optional_field( "value_type", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use default_value <- zero.optional_field( "default_value", None, zero.optional(zero.success(Nil)), ) use values_editable_by <- zero.optional_field( "values_editable_by", None, zero.optional(zero.string), ) use property_name <- zero.optional_field( "property_name", None, zero.optional(zero.string), ) use allowed_values <- zero.optional_field( "allowed_values", None, zero.optional(zero.list(zero.string)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use source_type <- zero.optional_field( "source_type", None, zero.optional(zero.string), ) use required <- zero.optional_field( "required", None, zero.optional(zero.bool), ) zero.success(CustomProperty( value_type: value_type, url: url, default_value: default_value, values_editable_by: values_editable_by, property_name: property_name, allowed_values: allowed_values, description: description, source_type: source_type, required: required, )) } pub fn branch_short_to_json(data: BranchShort) { json.object([ #("name", json.nullable(data.name, json.string)), #("protected", json.nullable(data.protected, json.bool)), #("commit", json.null()), ]) } pub fn branch_short_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use protected <- zero.optional_field( "protected", None, zero.optional(zero.bool), ) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) zero.success(BranchShort(name: name, protected: protected, commit: commit)) } pub fn organization_dependabot_secret_to_json( data: OrganizationDependabotSecret, ) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), ]) } pub fn organization_dependabot_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) zero.success(OrganizationDependabotSecret( created_at: created_at, name: name, visibility: visibility, updated_at: updated_at, selected_repositories_url: selected_repositories_url, )) } pub fn code_scanning_organization_alert_items_to_json( data: CodeScanningOrganizationAlertItems, ) { json.object([ #("dismissed_comment", json.nullable(data.dismissed_comment, json.string)), #("number", json.nullable(data.number, json.int)), #("dismissed_at", json.nullable(data.dismissed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("dismissed_by", json.null()), #("instances_url", json.nullable(data.instances_url, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("tool", json.null()), #("dismissed_reason", json.nullable(data.dismissed_reason, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("rule", json.null()), #("most_recent_instance", json.null()), #("fixed_at", json.nullable(data.fixed_at, json.string)), ]) } pub fn code_scanning_organization_alert_items_decoder() { use dismissed_comment <- zero.optional_field( "dismissed_comment", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use dismissed_at <- zero.optional_field( "dismissed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use dismissed_by <- zero.optional_field( "dismissed_by", None, zero.optional(zero.success(Nil)), ) use instances_url <- zero.optional_field( "instances_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use tool <- zero.optional_field( "tool", None, zero.optional(zero.success(Nil)), ) use dismissed_reason <- zero.optional_field( "dismissed_reason", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use rule <- zero.optional_field( "rule", None, zero.optional(zero.success(Nil)), ) use most_recent_instance <- zero.optional_field( "most_recent_instance", None, zero.optional(zero.success(Nil)), ) use fixed_at <- zero.optional_field( "fixed_at", None, zero.optional(zero.string), ) zero.success(CodeScanningOrganizationAlertItems( dismissed_comment: dismissed_comment, number: number, dismissed_at: dismissed_at, created_at: created_at, repository: repository, dismissed_by: dismissed_by, instances_url: instances_url, url: url, state: state, updated_at: updated_at, tool: tool, dismissed_reason: dismissed_reason, html_url: html_url, rule: rule, most_recent_instance: most_recent_instance, fixed_at: fixed_at, )) } pub fn webhook_issues_milestoned_to_json(data: WebhookIssuesMilestoned) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_milestoned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesMilestoned( enterprise: enterprise, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_workflow_run_completed_to_json(data: WebhookWorkflowRunCompleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow", json.null()), ]) } pub fn webhook_workflow_run_completed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow <- zero.optional_field( "workflow", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowRunCompleted( enterprise: enterprise, repository: repository, workflow_run: workflow_run, organization: organization, sender: sender, action: action, installation: installation, workflow: workflow, )) } pub fn runner_to_json(data: Runner) { json.object([ #("os", json.nullable(data.os, json.string)), #("runner_group_id", json.nullable(data.runner_group_id, json.int)), #("name", json.nullable(data.name, json.string)), #("status", json.nullable(data.status, json.string)), #("busy", json.nullable(data.busy, json.bool)), #("id", json.nullable(data.id, json.int)), #("labels", json.null()), ]) } pub fn runner_decoder() { use os <- zero.optional_field("os", None, zero.optional(zero.string)) use runner_group_id <- zero.optional_field( "runner_group_id", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use busy <- zero.optional_field("busy", None, zero.optional(zero.bool)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(Runner( os: os, runner_group_id: runner_group_id, name: name, status: status, busy: busy, id: id, labels: labels, )) } pub fn org_repo_custom_property_values_to_json( data: OrgRepoCustomPropertyValues, ) { json.object([ #("repository_name", json.nullable(data.repository_name, json.string)), #( "repository_full_name", json.nullable(data.repository_full_name, json.string), ), #("repository_id", json.nullable(data.repository_id, json.int)), #("properties", json.null()), ]) } pub fn org_repo_custom_property_values_decoder() { use repository_name <- zero.optional_field( "repository_name", None, zero.optional(zero.string), ) use repository_full_name <- zero.optional_field( "repository_full_name", None, zero.optional(zero.string), ) use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.int), ) use properties <- zero.optional_field( "properties", None, zero.optional(zero.success(Nil)), ) zero.success(OrgRepoCustomPropertyValues( repository_name: repository_name, repository_full_name: repository_full_name, repository_id: repository_id, properties: properties, )) } pub fn webhook_repository_dispatch_sample_to_json( data: WebhookRepositoryDispatchSample, ) { json.object([ #("enterprise", json.null()), #("branch", json.nullable(data.branch, json.string)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("client_payload", json.null()), #("installation", json.null()), ]) } pub fn webhook_repository_dispatch_sample_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use branch <- zero.optional_field("branch", None, zero.optional(zero.string)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use client_payload <- zero.optional_field( "client_payload", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryDispatchSample( enterprise: enterprise, branch: branch, repository: repository, organization: organization, sender: sender, action: action, client_payload: client_payload, installation: installation, )) } pub fn content_file_to_json(data: ContentFile) { json.object([ #("size", json.nullable(data.size, json.int)), #("git_url", json.nullable(data.git_url, json.string)), #("path", json.nullable(data.path_, json.string)), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("submodule_git_url", json.nullable(data.submodule_git_url, json.string)), #("target", json.nullable(data.target, json.string)), #("encoding", json.nullable(data.encoding, json.string)), #("download_url", json.nullable(data.download_url, json.string)), #("content", json.nullable(data.content, json.string)), #("_links", json.null()), #("type", json.nullable(data.type_, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn content_file_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use submodule_git_url <- zero.optional_field( "submodule_git_url", None, zero.optional(zero.string), ) use target <- zero.optional_field("target", None, zero.optional(zero.string)) use encoding <- zero.optional_field( "encoding", None, zero.optional(zero.string), ) use download_url <- zero.optional_field( "download_url", None, zero.optional(zero.string), ) use content <- zero.optional_field( "content", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(ContentFile( size: size, git_url: git_url, path_: path_, name: name, sha: sha, url: url, submodule_git_url: submodule_git_url, target: target, encoding: encoding, download_url: download_url, content: content, links: links, type_: type_, html_url: html_url, )) } pub fn timeline_reviewed_event_to_json(data: TimelineReviewedEvent) { json.object([ #("body", json.nullable(data.body, json.string)), #("commit_id", json.nullable(data.commit_id, json.string)), #("pull_request_url", json.nullable(data.pull_request_url, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("state", json.nullable(data.state, json.string)), #("submitted_at", json.nullable(data.submitted_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn timeline_reviewed_event_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use pull_request_url <- zero.optional_field( "pull_request_url", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use submitted_at <- zero.optional_field( "submitted_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(TimelineReviewedEvent( body: body, commit_id: commit_id, pull_request_url: pull_request_url, body_html: body_html, body_text: body_text, user: user, author_association: author_association, state: state, submitted_at: submitted_at, node_id: node_id, event: event, links: links, id: id, html_url: html_url, )) } pub fn webhook_config_insecure_ssl_decoder() { panic as "unsupported schema" } pub fn webhook_issue_comment_created_to_json(data: WebhookIssueCommentCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_issue_comment_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssueCommentCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, comment: comment, )) } pub fn page_build_to_json(data: PageBuild) { json.object([ #("pusher", json.null()), #("error", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), #("duration", json.nullable(data.duration, json.int)), #("commit", json.nullable(data.commit, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), ]) } pub fn page_build_decoder() { use pusher <- zero.optional_field( "pusher", None, zero.optional(zero.success(Nil)), ) use error <- zero.optional_field( "error", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use duration <- zero.optional_field("duration", None, zero.optional(zero.int)) use commit <- zero.optional_field("commit", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) zero.success(PageBuild( pusher: pusher, error: error, created_at: created_at, url: url, status: status, duration: duration, commit: commit, updated_at: updated_at, )) } pub fn secret_scanning_location_commit_to_json( data: SecretScanningLocationCommit, ) { json.object([ #("commit_sha", json.nullable(data.commit_sha, json.string)), #("path", json.nullable(data.path_, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("blob_sha", json.nullable(data.blob_sha, json.string)), #("blob_url", json.nullable(data.blob_url, json.string)), #("start_line", json.nullable(data.start_line, json.float)), #("start_column", json.nullable(data.start_column, json.float)), #("end_line", json.nullable(data.end_line, json.float)), #("end_column", json.nullable(data.end_column, json.float)), ]) } pub fn secret_scanning_location_commit_decoder() { use commit_sha <- zero.optional_field( "commit_sha", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use blob_sha <- zero.optional_field( "blob_sha", None, zero.optional(zero.string), ) use blob_url <- zero.optional_field( "blob_url", None, zero.optional(zero.string), ) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.float), ) use start_column <- zero.optional_field( "start_column", None, zero.optional(zero.float), ) use end_line <- zero.optional_field( "end_line", None, zero.optional(zero.float), ) use end_column <- zero.optional_field( "end_column", None, zero.optional(zero.float), ) zero.success(SecretScanningLocationCommit( commit_sha: commit_sha, path_: path_, commit_url: commit_url, blob_sha: blob_sha, blob_url: blob_url, start_line: start_line, start_column: start_column, end_line: end_line, end_column: end_column, )) } pub fn milestone_to_json(data: Milestone) { json.object([ #("closed_at", json.nullable(data.closed_at, json.string)), #("number", json.nullable(data.number, json.int)), #("due_on", json.nullable(data.due_on, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("closed_issues", json.nullable(data.closed_issues, json.int)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn milestone_decoder() { use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use due_on <- zero.optional_field("due_on", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use closed_issues <- zero.optional_field( "closed_issues", None, zero.optional(zero.int), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(Milestone( closed_at: closed_at, number: number, due_on: due_on, created_at: created_at, creator: creator, closed_issues: closed_issues, labels_url: labels_url, url: url, open_issues: open_issues, state: state, updated_at: updated_at, node_id: node_id, title: title, id: id, html_url: html_url, description: description, )) } pub fn organization_programmatic_access_grant_to_json( data: OrganizationProgrammaticAccessGrant, ) { json.object([ #("token_id", json.nullable(data.token_id, json.int)), #("permissions", json.null()), #("token_expires_at", json.nullable(data.token_expires_at, json.string)), #("token_name", json.nullable(data.token_name, json.string)), #("access_granted_at", json.nullable(data.access_granted_at, json.string)), #("token_last_used_at", json.nullable(data.token_last_used_at, json.string)), #("owner", json.null()), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("token_expired", json.nullable(data.token_expired, json.bool)), ]) } pub fn organization_programmatic_access_grant_decoder() { use token_id <- zero.optional_field("token_id", None, zero.optional(zero.int)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use token_expires_at <- zero.optional_field( "token_expires_at", None, zero.optional(zero.string), ) use token_name <- zero.optional_field( "token_name", None, zero.optional(zero.string), ) use access_granted_at <- zero.optional_field( "access_granted_at", None, zero.optional(zero.string), ) use token_last_used_at <- zero.optional_field( "token_last_used_at", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use token_expired <- zero.optional_field( "token_expired", None, zero.optional(zero.bool), ) zero.success(OrganizationProgrammaticAccessGrant( token_id: token_id, permissions: permissions, token_expires_at: token_expires_at, token_name: token_name, access_granted_at: access_granted_at, token_last_used_at: token_last_used_at, owner: owner, repository_selection: repository_selection, repositories_url: repositories_url, id: id, token_expired: token_expired, )) } pub fn organization_role_to_json(data: OrganizationRole) { json.object([ #("permissions", json.null()), #("base_role", json.nullable(data.base_role, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("organization", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("source", json.nullable(data.source, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn organization_role_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.list(zero.string)), ) use base_role <- zero.optional_field( "base_role", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use source <- zero.optional_field("source", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(OrganizationRole( permissions: permissions, base_role: base_role, created_at: created_at, name: name, organization: organization, updated_at: updated_at, source: source, id: id, description: description, )) } pub fn webhook_push_to_json(data: WebhookPush) { json.object([ #("enterprise", json.null()), #("compare", json.nullable(data.compare, json.string)), #("base_ref", json.nullable(data.base_ref, json.string)), #("pusher", json.null()), #("created", json.nullable(data.created, json.bool)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("head_commit", json.null()), #("deleted", json.nullable(data.deleted, json.bool)), #("forced", json.nullable(data.forced, json.bool)), #("installation", json.null()), #("after", json.nullable(data.after, json.string)), #("commits", json.null()), #("before", json.nullable(data.before, json.string)), ]) } pub fn webhook_push_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use compare <- zero.optional_field( "compare", None, zero.optional(zero.string), ) use base_ref <- zero.optional_field( "base_ref", None, zero.optional(zero.string), ) use pusher <- zero.optional_field( "pusher", None, zero.optional(zero.success(Nil)), ) use created <- zero.optional_field("created", None, zero.optional(zero.bool)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use head_commit <- zero.optional_field( "head_commit", None, zero.optional(zero.success(Nil)), ) use deleted <- zero.optional_field("deleted", None, zero.optional(zero.bool)) use forced <- zero.optional_field("forced", None, zero.optional(zero.bool)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use after <- zero.optional_field("after", None, zero.optional(zero.string)) use commits <- zero.optional_field( "commits", None, zero.optional(zero.success(Nil)), ) use before <- zero.optional_field("before", None, zero.optional(zero.string)) zero.success(WebhookPush( enterprise: enterprise, compare: compare, base_ref: base_ref, pusher: pusher, created: created, repository: repository, ref: ref, organization: organization, sender: sender, head_commit: head_commit, deleted: deleted, forced: forced, installation: installation, after: after, commits: commits, before: before, )) } pub fn gpg_key_to_json(data: GpgKey) { json.object([ #("raw_key", json.nullable(data.raw_key, json.string)), #("can_certify", json.nullable(data.can_certify, json.bool)), #("public_key", json.nullable(data.public_key, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("can_sign", json.nullable(data.can_sign, json.bool)), #("can_encrypt_storage", json.nullable(data.can_encrypt_storage, json.bool)), #("subkeys", json.null()), #("emails", json.null()), #("primary_key_id", json.nullable(data.primary_key_id, json.int)), #("id", json.nullable(data.id, json.int)), #("key_id", json.nullable(data.key_id, json.string)), #("expires_at", json.nullable(data.expires_at, json.string)), #("can_encrypt_comms", json.nullable(data.can_encrypt_comms, json.bool)), #("revoked", json.nullable(data.revoked, json.bool)), ]) } pub fn gpg_key_decoder() { use raw_key <- zero.optional_field( "raw_key", None, zero.optional(zero.string), ) use can_certify <- zero.optional_field( "can_certify", None, zero.optional(zero.bool), ) use public_key <- zero.optional_field( "public_key", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use can_sign <- zero.optional_field( "can_sign", None, zero.optional(zero.bool), ) use can_encrypt_storage <- zero.optional_field( "can_encrypt_storage", None, zero.optional(zero.bool), ) use subkeys <- zero.optional_field( "subkeys", None, zero.optional(zero.success(Nil)), ) use emails <- zero.optional_field( "emails", None, zero.optional(zero.success(Nil)), ) use primary_key_id <- zero.optional_field( "primary_key_id", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key_id <- zero.optional_field("key_id", None, zero.optional(zero.string)) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) use can_encrypt_comms <- zero.optional_field( "can_encrypt_comms", None, zero.optional(zero.bool), ) use revoked <- zero.optional_field("revoked", None, zero.optional(zero.bool)) zero.success(GpgKey( raw_key: raw_key, can_certify: can_certify, public_key: public_key, created_at: created_at, name: name, can_sign: can_sign, can_encrypt_storage: can_encrypt_storage, subkeys: subkeys, emails: emails, primary_key_id: primary_key_id, id: id, key_id: key_id, expires_at: expires_at, can_encrypt_comms: can_encrypt_comms, revoked: revoked, )) } pub fn pull_request_review_comment_to_json(data: PullRequestReviewComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("original_line", json.nullable(data.original_line, json.int)), #("commit_id", json.nullable(data.commit_id, json.string)), #("diff_hunk", json.nullable(data.diff_hunk, json.string)), #("path", json.nullable(data.path_, json.string)), #("pull_request_url", json.nullable(data.pull_request_url, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("position", json.nullable(data.position, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("reactions", json.null()), #("user", json.null()), #("subject_type", json.nullable(data.subject_type, json.string)), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("in_reply_to_id", json.nullable(data.in_reply_to_id, json.int)), #("start_line", json.nullable(data.start_line, json.int)), #("start_side", json.nullable(data.start_side, json.string)), #("line", json.nullable(data.line, json.int)), #("original_commit_id", json.nullable(data.original_commit_id, json.string)), #("side", json.nullable(data.side, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("original_position", json.nullable(data.original_position, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "pull_request_review_id", json.nullable(data.pull_request_review_id, json.int), ), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("original_start_line", json.nullable(data.original_start_line, json.int)), ]) } pub fn pull_request_review_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use original_line <- zero.optional_field( "original_line", None, zero.optional(zero.int), ) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use diff_hunk <- zero.optional_field( "diff_hunk", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use pull_request_url <- zero.optional_field( "pull_request_url", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use position <- zero.optional_field("position", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use subject_type <- zero.optional_field( "subject_type", None, zero.optional(zero.string), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use in_reply_to_id <- zero.optional_field( "in_reply_to_id", None, zero.optional(zero.int), ) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.int), ) use start_side <- zero.optional_field( "start_side", None, zero.optional(zero.string), ) use line <- zero.optional_field("line", None, zero.optional(zero.int)) use original_commit_id <- zero.optional_field( "original_commit_id", None, zero.optional(zero.string), ) use side <- zero.optional_field("side", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use original_position <- zero.optional_field( "original_position", None, zero.optional(zero.int), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use pull_request_review_id <- zero.optional_field( "pull_request_review_id", None, zero.optional(zero.int), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use original_start_line <- zero.optional_field( "original_start_line", None, zero.optional(zero.int), ) zero.success(PullRequestReviewComment( body: body, original_line: original_line, commit_id: commit_id, diff_hunk: diff_hunk, path_: path_, pull_request_url: pull_request_url, body_html: body_html, position: position, created_at: created_at, body_text: body_text, reactions: reactions, user: user, subject_type: subject_type, author_association: author_association, url: url, in_reply_to_id: in_reply_to_id, start_line: start_line, start_side: start_side, line: line, original_commit_id: original_commit_id, side: side, updated_at: updated_at, original_position: original_position, node_id: node_id, pull_request_review_id: pull_request_review_id, links: links, id: id, html_url: html_url, original_start_line: original_start_line, )) } pub fn metadata_to_json(data: Metadata) { json.object([]) } pub fn metadata_decoder() { zero.success(Metadata) } pub fn webhook_pull_request_review_thread_unresolved_to_json( data: WebhookPullRequestReviewThreadUnresolved, ) { json.object([ #("enterprise", json.null()), #("thread", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_review_thread_unresolved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use thread <- zero.optional_field( "thread", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewThreadUnresolved( enterprise: enterprise, thread: thread, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn activity_to_json(data: Activity) { json.object([ #("activity_type", json.nullable(data.activity_type, json.string)), #("ref", json.nullable(data.ref, json.string)), #("actor", json.null()), #("timestamp", json.nullable(data.timestamp, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("after", json.nullable(data.after, json.string)), #("before", json.nullable(data.before, json.string)), ]) } pub fn activity_decoder() { use activity_type <- zero.optional_field( "activity_type", None, zero.optional(zero.string), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use timestamp <- zero.optional_field( "timestamp", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use after <- zero.optional_field("after", None, zero.optional(zero.string)) use before <- zero.optional_field("before", None, zero.optional(zero.string)) zero.success(Activity( activity_type: activity_type, ref: ref, actor: actor, timestamp: timestamp, node_id: node_id, id: id, after: after, before: before, )) } pub fn packages_billing_usage_to_json(data: PackagesBillingUsage) { json.object([ #( "total_paid_gigabytes_bandwidth_used", json.nullable(data.total_paid_gigabytes_bandwidth_used, json.int), ), #( "total_gigabytes_bandwidth_used", json.nullable(data.total_gigabytes_bandwidth_used, json.int), ), #( "included_gigabytes_bandwidth", json.nullable(data.included_gigabytes_bandwidth, json.int), ), ]) } pub fn packages_billing_usage_decoder() { use total_paid_gigabytes_bandwidth_used <- zero.optional_field( "total_paid_gigabytes_bandwidth_used", None, zero.optional(zero.int), ) use total_gigabytes_bandwidth_used <- zero.optional_field( "total_gigabytes_bandwidth_used", None, zero.optional(zero.int), ) use included_gigabytes_bandwidth <- zero.optional_field( "included_gigabytes_bandwidth", None, zero.optional(zero.int), ) zero.success(PackagesBillingUsage( total_paid_gigabytes_bandwidth_used: total_paid_gigabytes_bandwidth_used, total_gigabytes_bandwidth_used: total_gigabytes_bandwidth_used, included_gigabytes_bandwidth: included_gigabytes_bandwidth, )) } pub fn alert_instances_url_decoder() { zero.string } pub fn webhook_projects_v2_item_edited_to_json( data: WebhookProjectsV2ItemEdited, ) { json.object([ #("changes", json.null()), #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_edited_decoder() { use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemEdited( changes: changes, projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_repository_archived_to_json(data: WebhookRepositoryArchived) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_archived_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryArchived( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn page_build_status_to_json(data: PageBuildStatus) { json.object([ #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), ]) } pub fn page_build_status_decoder() { use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) zero.success(PageBuildStatus(url: url, status: status)) } pub fn protected_branch_required_status_check_to_json( data: ProtectedBranchRequiredStatusCheck, ) { json.object([ #("contexts", json.null()), #("enforcement_level", json.nullable(data.enforcement_level, json.string)), #("strict", json.nullable(data.strict, json.bool)), #("checks", json.null()), #("url", json.nullable(data.url, json.string)), #("contexts_url", json.nullable(data.contexts_url, json.string)), ]) } pub fn protected_branch_required_status_check_decoder() { use contexts <- zero.optional_field( "contexts", None, zero.optional(zero.list(zero.string)), ) use enforcement_level <- zero.optional_field( "enforcement_level", None, zero.optional(zero.string), ) use strict <- zero.optional_field("strict", None, zero.optional(zero.bool)) use checks <- zero.optional_field( "checks", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use contexts_url <- zero.optional_field( "contexts_url", None, zero.optional(zero.string), ) zero.success(ProtectedBranchRequiredStatusCheck( contexts: contexts, enforcement_level: enforcement_level, strict: strict, checks: checks, url: url, contexts_url: contexts_url, )) } pub fn page_to_json(data: Page) { json.object([ #("https_certificate", json.null()), #( "protected_domain_state", json.nullable(data.protected_domain_state, json.string), ), #("public", json.nullable(data.public, json.bool)), #("custom_404", json.nullable(data.custom_404, json.bool)), #("build_type", json.nullable(data.build_type, json.string)), #("cname", json.nullable(data.cname, json.string)), #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), #("https_enforced", json.nullable(data.https_enforced, json.bool)), #("source", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #( "pending_domain_unverified_at", json.nullable(data.pending_domain_unverified_at, json.string), ), ]) } pub fn page_decoder() { use https_certificate <- zero.optional_field( "https_certificate", None, zero.optional(zero.success(Nil)), ) use protected_domain_state <- zero.optional_field( "protected_domain_state", None, zero.optional(zero.string), ) use public <- zero.optional_field("public", None, zero.optional(zero.bool)) use custom_404 <- zero.optional_field( "custom_404", None, zero.optional(zero.bool), ) use build_type <- zero.optional_field( "build_type", None, zero.optional(zero.string), ) use cname <- zero.optional_field("cname", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use https_enforced <- zero.optional_field( "https_enforced", None, zero.optional(zero.bool), ) use source <- zero.optional_field( "source", None, zero.optional(zero.success(Nil)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use pending_domain_unverified_at <- zero.optional_field( "pending_domain_unverified_at", None, zero.optional(zero.string), ) zero.success(Page( https_certificate: https_certificate, protected_domain_state: protected_domain_state, public: public, custom_404: custom_404, build_type: build_type, cname: cname, url: url, status: status, https_enforced: https_enforced, source: source, html_url: html_url, pending_domain_unverified_at: pending_domain_unverified_at, )) } pub fn webhook_marketplace_purchase_purchased_to_json( data: WebhookMarketplacePurchasePurchased, ) { json.object([ #("enterprise", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("marketplace_purchase", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("previous_marketplace_purchase", json.null()), ]) } pub fn webhook_marketplace_purchase_purchased_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use marketplace_purchase <- zero.optional_field( "marketplace_purchase", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use previous_marketplace_purchase <- zero.optional_field( "previous_marketplace_purchase", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMarketplacePurchasePurchased( enterprise: enterprise, effective_date: effective_date, repository: repository, organization: organization, marketplace_purchase: marketplace_purchase, sender: sender, action: action, installation: installation, previous_marketplace_purchase: previous_marketplace_purchase, )) } pub fn secret_scanning_location_pull_request_body_to_json( data: SecretScanningLocationPullRequestBody, ) { json.object([ #( "pull_request_body_url", json.nullable(data.pull_request_body_url, json.string), ), ]) } pub fn secret_scanning_location_pull_request_body_decoder() { use pull_request_body_url <- zero.optional_field( "pull_request_body_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationPullRequestBody( pull_request_body_url: pull_request_body_url, )) } pub fn scim_error_to_json(data: ScimError) { json.object([ #("message", json.nullable(data.message, json.string)), #("documentation_url", json.nullable(data.documentation_url, json.string)), #("scimType", json.nullable(data.scim_type, json.string)), #("detail", json.nullable(data.detail, json.string)), #("schemas", json.null()), #("status", json.nullable(data.status, json.int)), ]) } pub fn scim_error_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use documentation_url <- zero.optional_field( "documentation_url", None, zero.optional(zero.string), ) use scim_type <- zero.optional_field( "scimType", None, zero.optional(zero.string), ) use detail <- zero.optional_field("detail", None, zero.optional(zero.string)) use schemas <- zero.optional_field( "schemas", None, zero.optional(zero.list(zero.string)), ) use status <- zero.optional_field("status", None, zero.optional(zero.int)) zero.success(ScimError( message: message, documentation_url: documentation_url, scim_type: scim_type, detail: detail, schemas: schemas, status: status, )) } pub fn referrer_traffic_to_json(data: ReferrerTraffic) { json.object([ #("uniques", json.nullable(data.uniques, json.int)), #("count", json.nullable(data.count, json.int)), #("referrer", json.nullable(data.referrer, json.string)), ]) } pub fn referrer_traffic_decoder() { use uniques <- zero.optional_field("uniques", None, zero.optional(zero.int)) use count <- zero.optional_field("count", None, zero.optional(zero.int)) use referrer <- zero.optional_field( "referrer", None, zero.optional(zero.string), ) zero.success(ReferrerTraffic( uniques: uniques, count: count, referrer: referrer, )) } pub fn manifest_to_json(data: Manifest) { json.object([ #("name", json.nullable(data.name, json.string)), #("metadata", json.null()), #("resolved", json.null()), #("file", json.null()), ]) } pub fn manifest_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.success(Nil)), ) use resolved <- zero.optional_field( "resolved", None, zero.optional(zero.success(Nil)), ) use file <- zero.optional_field( "file", None, zero.optional(zero.success(Nil)), ) zero.success(Manifest( name: name, metadata: metadata, resolved: resolved, file: file, )) } pub fn webhook_project_deleted_to_json(data: WebhookProjectDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("project", json.null()), #("installation", json.null()), ]) } pub fn webhook_project_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use project <- zero.optional_field( "project", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, project: project, installation: installation, )) } pub fn repository_rule_tag_name_pattern_to_json( data: RepositoryRuleTagNamePattern, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_tag_name_pattern_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleTagNamePattern( parameters: parameters, type_: type_, )) } pub fn secret_scanning_location_issue_body_to_json( data: SecretScanningLocationIssueBody, ) { json.object([ #("issue_body_url", json.nullable(data.issue_body_url, json.string)), ]) } pub fn secret_scanning_location_issue_body_decoder() { use issue_body_url <- zero.optional_field( "issue_body_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationIssueBody(issue_body_url: issue_body_url)) } pub fn webhook_sub_issues_sub_issue_added_to_json( data: WebhookSubIssuesSubIssueAdded, ) { json.object([ #("sub_issue_id", json.nullable(data.sub_issue_id, json.float)), #("parent_issue", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("parent_issue_id", json.nullable(data.parent_issue_id, json.float)), #("action", json.nullable(data.action, json.string)), #("sub_issue_repo", json.null()), #("sub_issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_sub_issues_sub_issue_added_decoder() { use sub_issue_id <- zero.optional_field( "sub_issue_id", None, zero.optional(zero.float), ) use parent_issue <- zero.optional_field( "parent_issue", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use parent_issue_id <- zero.optional_field( "parent_issue_id", None, zero.optional(zero.float), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use sub_issue_repo <- zero.optional_field( "sub_issue_repo", None, zero.optional(zero.success(Nil)), ) use sub_issue <- zero.optional_field( "sub_issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSubIssuesSubIssueAdded( sub_issue_id: sub_issue_id, parent_issue: parent_issue, repository: repository, organization: organization, sender: sender, parent_issue_id: parent_issue_id, action: action, sub_issue_repo: sub_issue_repo, sub_issue: sub_issue, installation: installation, )) } pub fn topic_to_json(data: Topic) { json.object([#("names", json.null())]) } pub fn topic_decoder() { use names <- zero.optional_field( "names", None, zero.optional(zero.list(zero.string)), ) zero.success(Topic(names: names)) } pub fn webhook_sub_issues_sub_issue_removed_to_json( data: WebhookSubIssuesSubIssueRemoved, ) { json.object([ #("sub_issue_id", json.nullable(data.sub_issue_id, json.float)), #("parent_issue", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("parent_issue_id", json.nullable(data.parent_issue_id, json.float)), #("action", json.nullable(data.action, json.string)), #("sub_issue_repo", json.null()), #("sub_issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_sub_issues_sub_issue_removed_decoder() { use sub_issue_id <- zero.optional_field( "sub_issue_id", None, zero.optional(zero.float), ) use parent_issue <- zero.optional_field( "parent_issue", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use parent_issue_id <- zero.optional_field( "parent_issue_id", None, zero.optional(zero.float), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use sub_issue_repo <- zero.optional_field( "sub_issue_repo", None, zero.optional(zero.success(Nil)), ) use sub_issue <- zero.optional_field( "sub_issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSubIssuesSubIssueRemoved( sub_issue_id: sub_issue_id, parent_issue: parent_issue, repository: repository, organization: organization, sender: sender, parent_issue_id: parent_issue_id, action: action, sub_issue_repo: sub_issue_repo, sub_issue: sub_issue, installation: installation, )) } pub fn public_user_to_json(data: PublicUser) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("twitter_username", json.nullable(data.twitter_username, json.string)), #("blog", json.nullable(data.blog, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("bio", json.nullable(data.bio, json.string)), #("notification_email", json.nullable(data.notification_email, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("plan", json.null()), #("login", json.nullable(data.login, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("total_private_repos", json.nullable(data.total_private_repos, json.int)), #("owned_private_repos", json.nullable(data.owned_private_repos, json.int)), #("public_repos", json.nullable(data.public_repos, json.int)), #("name", json.nullable(data.name, json.string)), #("collaborators", json.nullable(data.collaborators, json.int)), #("hireable", json.nullable(data.hireable, json.bool)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("following", json.nullable(data.following, json.int)), #("repos_url", json.nullable(data.repos_url, json.string)), #("private_gists", json.nullable(data.private_gists, json.int)), #("followers", json.nullable(data.followers, json.int)), #("location", json.nullable(data.location, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("public_gists", json.nullable(data.public_gists, json.int)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), #("company", json.nullable(data.company, json.string)), #("disk_usage", json.nullable(data.disk_usage, json.int)), ]) } pub fn public_user_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use twitter_username <- zero.optional_field( "twitter_username", None, zero.optional(zero.string), ) use blog <- zero.optional_field("blog", None, zero.optional(zero.string)) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use bio <- zero.optional_field("bio", None, zero.optional(zero.string)) use notification_email <- zero.optional_field( "notification_email", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use total_private_repos <- zero.optional_field( "total_private_repos", None, zero.optional(zero.int), ) use owned_private_repos <- zero.optional_field( "owned_private_repos", None, zero.optional(zero.int), ) use public_repos <- zero.optional_field( "public_repos", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use collaborators <- zero.optional_field( "collaborators", None, zero.optional(zero.int), ) use hireable <- zero.optional_field( "hireable", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use following <- zero.optional_field( "following", None, zero.optional(zero.int), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use private_gists <- zero.optional_field( "private_gists", None, zero.optional(zero.int), ) use followers <- zero.optional_field( "followers", None, zero.optional(zero.int), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use public_gists <- zero.optional_field( "public_gists", None, zero.optional(zero.int), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) use company <- zero.optional_field( "company", None, zero.optional(zero.string), ) use disk_usage <- zero.optional_field( "disk_usage", None, zero.optional(zero.int), ) zero.success(PublicUser( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, twitter_username: twitter_username, blog: blog, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, bio: bio, notification_email: notification_email, events_url: events_url, avatar_url: avatar_url, plan: plan, login: login, created_at: created_at, total_private_repos: total_private_repos, owned_private_repos: owned_private_repos, public_repos: public_repos, name: name, collaborators: collaborators, hireable: hireable, url: url, starred_url: starred_url, organizations_url: organizations_url, following: following, repos_url: repos_url, private_gists: private_gists, followers: followers, location: location, gravatar_id: gravatar_id, site_admin: site_admin, updated_at: updated_at, node_id: node_id, public_gists: public_gists, type_: type_, id: id, html_url: html_url, email: email, company: company, disk_usage: disk_usage, )) } pub fn repository_rule_params_workflow_file_reference_to_json( data: RepositoryRuleParamsWorkflowFileReference, ) { json.object([ #("path", json.nullable(data.path_, json.string)), #("sha", json.nullable(data.sha, json.string)), #("repository_id", json.nullable(data.repository_id, json.int)), #("ref", json.nullable(data.ref, json.string)), ]) } pub fn repository_rule_params_workflow_file_reference_decoder() { use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.int), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) zero.success(RepositoryRuleParamsWorkflowFileReference( path_: path_, sha: sha, repository_id: repository_id, ref: ref, )) } pub fn projects_v2_to_json(data: ProjectsV2) { json.object([ #("closed_at", json.nullable(data.closed_at, json.string)), #("public", json.nullable(data.public, json.bool)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("owner", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("short_description", json.nullable(data.short_description, json.string)), #("deleted_at", json.nullable(data.deleted_at, json.string)), #("id", json.nullable(data.id, json.float)), #("description", json.nullable(data.description, json.string)), #("deleted_by", json.null()), ]) } pub fn projects_v2_decoder() { use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use public <- zero.optional_field("public", None, zero.optional(zero.bool)) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use short_description <- zero.optional_field( "short_description", None, zero.optional(zero.string), ) use deleted_at <- zero.optional_field( "deleted_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.float)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use deleted_by <- zero.optional_field( "deleted_by", None, zero.optional(zero.success(Nil)), ) zero.success(ProjectsV2( closed_at: closed_at, public: public, number: number, created_at: created_at, creator: creator, owner: owner, updated_at: updated_at, node_id: node_id, title: title, short_description: short_description, deleted_at: deleted_at, id: id, description: description, deleted_by: deleted_by, )) } pub fn repository_rule_params_status_check_configuration_to_json( data: RepositoryRuleParamsStatusCheckConfiguration, ) { json.object([ #("integration_id", json.nullable(data.integration_id, json.int)), #("context", json.nullable(data.context, json.string)), ]) } pub fn repository_rule_params_status_check_configuration_decoder() { use integration_id <- zero.optional_field( "integration_id", None, zero.optional(zero.int), ) use context <- zero.optional_field( "context", None, zero.optional(zero.string), ) zero.success(RepositoryRuleParamsStatusCheckConfiguration( integration_id: integration_id, context: context, )) } pub fn secret_scanning_location_discussion_body_to_json( data: SecretScanningLocationDiscussionBody, ) { json.object([ #( "discussion_body_url", json.nullable(data.discussion_body_url, json.string), ), ]) } pub fn secret_scanning_location_discussion_body_decoder() { use discussion_body_url <- zero.optional_field( "discussion_body_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationDiscussionBody( discussion_body_url: discussion_body_url, )) } pub fn migration_to_json(data: Migration) { json.object([ #("org_metadata_only", json.nullable(data.org_metadata_only, json.bool)), #("repositories", json.null()), #("guid", json.nullable(data.guid, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("exclude_attachments", json.nullable(data.exclude_attachments, json.bool)), #( "exclude_owner_projects", json.nullable(data.exclude_owner_projects, json.bool), ), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("exclude_releases", json.nullable(data.exclude_releases, json.bool)), #("archive_url", json.nullable(data.archive_url, json.string)), #("owner", json.null()), #("exclude_metadata", json.nullable(data.exclude_metadata, json.bool)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("exclude", json.null()), #("id", json.nullable(data.id, json.int)), #("exclude_git_data", json.nullable(data.exclude_git_data, json.bool)), #("lock_repositories", json.nullable(data.lock_repositories, json.bool)), ]) } pub fn migration_decoder() { use org_metadata_only <- zero.optional_field( "org_metadata_only", None, zero.optional(zero.bool), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use guid <- zero.optional_field("guid", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use exclude_attachments <- zero.optional_field( "exclude_attachments", None, zero.optional(zero.bool), ) use exclude_owner_projects <- zero.optional_field( "exclude_owner_projects", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use exclude_releases <- zero.optional_field( "exclude_releases", None, zero.optional(zero.bool), ) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use exclude_metadata <- zero.optional_field( "exclude_metadata", None, zero.optional(zero.bool), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use exclude <- zero.optional_field( "exclude", None, zero.optional(zero.list(zero.string)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use exclude_git_data <- zero.optional_field( "exclude_git_data", None, zero.optional(zero.bool), ) use lock_repositories <- zero.optional_field( "lock_repositories", None, zero.optional(zero.bool), ) zero.success(Migration( org_metadata_only: org_metadata_only, repositories: repositories, guid: guid, created_at: created_at, exclude_attachments: exclude_attachments, exclude_owner_projects: exclude_owner_projects, url: url, state: state, exclude_releases: exclude_releases, archive_url: archive_url, owner: owner, exclude_metadata: exclude_metadata, updated_at: updated_at, node_id: node_id, exclude: exclude, id: id, exclude_git_data: exclude_git_data, lock_repositories: lock_repositories, )) } pub fn code_of_conduct_to_json(data: CodeOfConduct) { json.object([ #("body", json.nullable(data.body, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn code_of_conduct_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(CodeOfConduct( body: body, name: name, url: url, html_url: html_url, key: key, )) } pub fn interaction_limit_response_to_json(data: InteractionLimitResponse) { json.object([ #("origin", json.nullable(data.origin, json.string)), #("limit", json.nullable(data.limit, json.string)), #("expires_at", json.nullable(data.expires_at, json.string)), ]) } pub fn interaction_limit_response_decoder() { use origin <- zero.optional_field("origin", None, zero.optional(zero.string)) use limit <- zero.optional_field("limit", None, zero.optional(zero.string)) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) zero.success(InteractionLimitResponse( origin: origin, limit: limit, expires_at: expires_at, )) } pub fn webhook_team_created_to_json(data: WebhookTeamCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("team", json.null()), ]) } pub fn webhook_team_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookTeamCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, team: team, )) } pub fn demilestoned_issue_event_to_json(data: DemilestonedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("milestone", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn demilestoned_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(DemilestonedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, milestone: milestone, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn webhooks_pull_request5_to_json(data: WebhooksPullRequest5) { json.object([ #("head", json.null()), #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("mergeable_state", json.nullable(data.mergeable_state, json.string)), #("requested_teams", json.null()), #("deletions", json.nullable(data.deletions, json.int)), #("merged_at", json.nullable(data.merged_at, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("review_comment_url", json.nullable(data.review_comment_url, json.string)), #("auto_merge", json.null()), #("issue_url", json.nullable(data.issue_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("merged_by", json.null()), #("locked", json.nullable(data.locked, json.bool)), #("merge_commit_sha", json.nullable(data.merge_commit_sha, json.string)), #( "review_comments_url", json.nullable(data.review_comments_url, json.string), ), #("user", json.null()), #("commits_url", json.nullable(data.commits_url, json.string)), #("changed_files", json.nullable(data.changed_files, json.int)), #("merged", json.nullable(data.merged, json.bool)), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("milestone", json.null()), #( "maintainer_can_modify", json.nullable(data.maintainer_can_modify, json.bool), ), #("state", json.nullable(data.state, json.string)), #("base", json.null()), #("mergeable", json.nullable(data.mergeable, json.bool)), #("comments", json.nullable(data.comments, json.int)), #("diff_url", json.nullable(data.diff_url, json.string)), #("additions", json.nullable(data.additions, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("patch_url", json.nullable(data.patch_url, json.string)), #("title", json.nullable(data.title, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("review_comments", json.nullable(data.review_comments, json.int)), #("commits", json.nullable(data.commits, json.int)), #("requested_reviewers", json.null()), #("rebaseable", json.nullable(data.rebaseable, json.bool)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn webhooks_pull_request5_decoder() { use head <- zero.optional_field( "head", None, zero.optional(zero.success(Nil)), ) use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use mergeable_state <- zero.optional_field( "mergeable_state", None, zero.optional(zero.string), ) use requested_teams <- zero.optional_field( "requested_teams", None, zero.optional(zero.success(Nil)), ) use deletions <- zero.optional_field( "deletions", None, zero.optional(zero.int), ) use merged_at <- zero.optional_field( "merged_at", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use review_comment_url <- zero.optional_field( "review_comment_url", None, zero.optional(zero.string), ) use auto_merge <- zero.optional_field( "auto_merge", None, zero.optional(zero.success(Nil)), ) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use merged_by <- zero.optional_field( "merged_by", None, zero.optional(zero.success(Nil)), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use merge_commit_sha <- zero.optional_field( "merge_commit_sha", None, zero.optional(zero.string), ) use review_comments_url <- zero.optional_field( "review_comments_url", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use changed_files <- zero.optional_field( "changed_files", None, zero.optional(zero.int), ) use merged <- zero.optional_field("merged", None, zero.optional(zero.bool)) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use maintainer_can_modify <- zero.optional_field( "maintainer_can_modify", None, zero.optional(zero.bool), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use base_ <- zero.optional_field( "base", None, zero.optional(zero.success(Nil)), ) use mergeable <- zero.optional_field( "mergeable", None, zero.optional(zero.bool), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use diff_url <- zero.optional_field( "diff_url", None, zero.optional(zero.string), ) use additions <- zero.optional_field( "additions", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use patch_url <- zero.optional_field( "patch_url", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use review_comments <- zero.optional_field( "review_comments", None, zero.optional(zero.int), ) use commits <- zero.optional_field("commits", None, zero.optional(zero.int)) use requested_reviewers <- zero.optional_field( "requested_reviewers", None, zero.optional(zero.success(Nil)), ) use rebaseable <- zero.optional_field( "rebaseable", None, zero.optional(zero.bool), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksPullRequest5( head: head, draft: draft, body: body, assignees: assignees, comments_url: comments_url, mergeable_state: mergeable_state, requested_teams: requested_teams, deletions: deletions, merged_at: merged_at, closed_at: closed_at, review_comment_url: review_comment_url, auto_merge: auto_merge, issue_url: issue_url, number: number, created_at: created_at, merged_by: merged_by, locked: locked, merge_commit_sha: merge_commit_sha, review_comments_url: review_comments_url, user: user, commits_url: commits_url, changed_files: changed_files, merged: merged, author_association: author_association, url: url, assignee: assignee, statuses_url: statuses_url, milestone: milestone, maintainer_can_modify: maintainer_can_modify, state: state, base_: base_, mergeable: mergeable, comments: comments, diff_url: diff_url, additions: additions, updated_at: updated_at, node_id: node_id, patch_url: patch_url, title: title, links: links, id: id, html_url: html_url, review_comments: review_comments, commits: commits, requested_reviewers: requested_reviewers, rebaseable: rebaseable, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn repository_rule_required_deployments_to_json( data: RepositoryRuleRequiredDeployments, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_required_deployments_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleRequiredDeployments( parameters: parameters, type_: type_, )) } pub fn issue_event_for_issue_decoder() { panic as "unsupported schema" } pub fn short_blob_to_json(data: ShortBlob) { json.object([ #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), ]) } pub fn short_blob_decoder() { use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) zero.success(ShortBlob(sha: sha, url: url)) } pub fn repository_rule_merge_queue_to_json(data: RepositoryRuleMergeQueue) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_merge_queue_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleMergeQueue(parameters: parameters, type_: type_)) } pub fn webhook_issues_unpinned_to_json(data: WebhookIssuesUnpinned) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_unpinned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesUnpinned( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn link_with_type_to_json(data: LinkWithType) { json.object([ #("href", json.nullable(data.href, json.string)), #("type", json.nullable(data.type_, json.string)), ]) } pub fn link_with_type_decoder() { use href <- zero.optional_field("href", None, zero.optional(zero.string)) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(LinkWithType(href: href, type_: type_)) } pub fn code_scanning_alert_dismissed_comment_decoder() { zero.string } pub fn webhooks_user_to_json(data: WebhooksUser) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("deleted", json.nullable(data.deleted, json.bool)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn webhooks_user_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use deleted <- zero.optional_field("deleted", None, zero.optional(zero.bool)) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(WebhooksUser( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, deleted: deleted, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn interaction_expiry_decoder() { zero.string } pub fn repository_rule_committer_email_pattern_to_json( data: RepositoryRuleCommitterEmailPattern, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_committer_email_pattern_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleCommitterEmailPattern( parameters: parameters, type_: type_, )) } pub fn code_scanning_variant_analysis_skipped_repo_group_to_json( data: CodeScanningVariantAnalysisSkippedRepoGroup, ) { json.object([ #("repositories", json.null()), #("repository_count", json.nullable(data.repository_count, json.int)), ]) } pub fn code_scanning_variant_analysis_skipped_repo_group_decoder() { use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use repository_count <- zero.optional_field( "repository_count", None, zero.optional(zero.int), ) zero.success(CodeScanningVariantAnalysisSkippedRepoGroup( repositories: repositories, repository_count: repository_count, )) } pub fn webhook_check_run_completed_to_json(data: WebhookCheckRunCompleted) { json.object([ #("repository", json.null()), #("organization", json.null()), #("check_run", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_run_completed_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use check_run <- zero.optional_field( "check_run", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckRunCompleted( repository: repository, organization: organization, check_run: check_run, sender: sender, action: action, installation: installation, )) } pub fn webhook_pull_request_review_edited_to_json( data: WebhookPullRequestReviewEdited, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("review", json.null()), #("installation", json.null()), ]) } pub fn webhook_pull_request_review_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use review <- zero.optional_field( "review", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, review: review, installation: installation, )) } pub fn webhook_dependabot_alert_reintroduced_to_json( data: WebhookDependabotAlertReintroduced, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_reintroduced_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertReintroduced( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn rate_limit_to_json(data: RateLimit) { json.object([ #("reset", json.nullable(data.reset, json.int)), #("remaining", json.nullable(data.remaining, json.int)), #("limit", json.nullable(data.limit, json.int)), #("used", json.nullable(data.used, json.int)), ]) } pub fn rate_limit_decoder() { use reset <- zero.optional_field("reset", None, zero.optional(zero.int)) use remaining <- zero.optional_field( "remaining", None, zero.optional(zero.int), ) use limit <- zero.optional_field("limit", None, zero.optional(zero.int)) use used <- zero.optional_field("used", None, zero.optional(zero.int)) zero.success(RateLimit( reset: reset, remaining: remaining, limit: limit, used: used, )) } pub fn codespaces_public_key_to_json(data: CodespacesPublicKey) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("key_id", json.nullable(data.key_id, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn codespaces_public_key_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key_id <- zero.optional_field("key_id", None, zero.optional(zero.string)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(CodespacesPublicKey( created_at: created_at, url: url, title: title, id: id, key_id: key_id, key: key, )) } pub fn secret_scanning_alert_resolution_comment_decoder() { zero.string } pub fn social_account_to_json(data: SocialAccount) { json.object([ #("url", json.nullable(data.url, json.string)), #("provider", json.nullable(data.provider, json.string)), ]) } pub fn social_account_decoder() { use url <- zero.optional_field("url", None, zero.optional(zero.string)) use provider <- zero.optional_field( "provider", None, zero.optional(zero.string), ) zero.success(SocialAccount(url: url, provider: provider)) } pub fn webhook_org_block_blocked_to_json(data: WebhookOrgBlockBlocked) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("blocked_user", json.null()), ]) } pub fn webhook_org_block_blocked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use blocked_user <- zero.optional_field( "blocked_user", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrgBlockBlocked( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, blocked_user: blocked_user, )) } pub fn nullable_issue_to_json(data: NullableIssue) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("number", json.nullable(data.number, json.int)), #("closed_by", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("repository", json.null()), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("milestone", json.null()), #("timeline_url", json.nullable(data.timeline_url, json.string)), #("state", json.nullable(data.state, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("comments", json.nullable(data.comments, json.int)), #("pull_request", json.null()), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn nullable_issue_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use closed_by <- zero.optional_field( "closed_by", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(NullableIssue( draft: draft, body: body, assignees: assignees, comments_url: comments_url, closed_at: closed_at, body_html: body_html, events_url: events_url, number: number, closed_by: closed_by, created_at: created_at, body_text: body_text, locked: locked, repository: repository, reactions: reactions, user: user, author_association: author_association, labels_url: labels_url, url: url, assignee: assignee, milestone: milestone, timeline_url: timeline_url, state: state, state_reason: state_reason, comments: comments, pull_request: pull_request, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, title: title, repository_url: repository_url, id: id, html_url: html_url, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn webhook_personal_access_token_request_cancelled_to_json( data: WebhookPersonalAccessTokenRequestCancelled, ) { json.object([ #("enterprise", json.null()), #("personal_access_token_request", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_personal_access_token_request_cancelled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use personal_access_token_request <- zero.optional_field( "personal_access_token_request", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPersonalAccessTokenRequestCancelled( enterprise: enterprise, personal_access_token_request: personal_access_token_request, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn issue_event_label_to_json(data: IssueEventLabel) { json.object([ #("color", json.nullable(data.color, json.string)), #("name", json.nullable(data.name, json.string)), ]) } pub fn issue_event_label_decoder() { use color <- zero.optional_field("color", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) zero.success(IssueEventLabel(color: color, name: name)) } pub fn porter_large_file_to_json(data: PorterLargeFile) { json.object([ #("size", json.nullable(data.size, json.int)), #("path", json.nullable(data.path_, json.string)), #("oid", json.nullable(data.oid, json.string)), #("ref_name", json.nullable(data.ref_name, json.string)), ]) } pub fn porter_large_file_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use oid <- zero.optional_field("oid", None, zero.optional(zero.string)) use ref_name <- zero.optional_field( "ref_name", None, zero.optional(zero.string), ) zero.success(PorterLargeFile( size: size, path_: path_, oid: oid, ref_name: ref_name, )) } pub fn license_content_to_json(data: LicenseContent) { json.object([ #("size", json.nullable(data.size, json.int)), #("license", json.null()), #("git_url", json.nullable(data.git_url, json.string)), #("path", json.nullable(data.path_, json.string)), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("encoding", json.nullable(data.encoding, json.string)), #("download_url", json.nullable(data.download_url, json.string)), #("content", json.nullable(data.content, json.string)), #("_links", json.null()), #("type", json.nullable(data.type_, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn license_content_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use encoding <- zero.optional_field( "encoding", None, zero.optional(zero.string), ) use download_url <- zero.optional_field( "download_url", None, zero.optional(zero.string), ) use content <- zero.optional_field( "content", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(LicenseContent( size: size, license: license, git_url: git_url, path_: path_, name: name, sha: sha, url: url, encoding: encoding, download_url: download_url, content: content, links: links, type_: type_, html_url: html_url, )) } pub fn code_scanning_default_setup_update_response_to_json( data: CodeScanningDefaultSetupUpdateResponse, ) { json.object([ #("run_id", json.nullable(data.run_id, json.int)), #("run_url", json.nullable(data.run_url, json.string)), ]) } pub fn code_scanning_default_setup_update_response_decoder() { use run_id <- zero.optional_field("run_id", None, zero.optional(zero.int)) use run_url <- zero.optional_field( "run_url", None, zero.optional(zero.string), ) zero.success(CodeScanningDefaultSetupUpdateResponse( run_id: run_id, run_url: run_url, )) } pub fn content_symlink_to_json(data: ContentSymlink) { json.object([ #("size", json.nullable(data.size, json.int)), #("git_url", json.nullable(data.git_url, json.string)), #("path", json.nullable(data.path_, json.string)), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("target", json.nullable(data.target, json.string)), #("download_url", json.nullable(data.download_url, json.string)), #("_links", json.null()), #("type", json.nullable(data.type_, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn content_symlink_decoder() { use size <- zero.optional_field("size", None, zero.optional(zero.int)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use target <- zero.optional_field("target", None, zero.optional(zero.string)) use download_url <- zero.optional_field( "download_url", None, zero.optional(zero.string), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(ContentSymlink( size: size, git_url: git_url, path_: path_, name: name, sha: sha, url: url, target: target, download_url: download_url, links: links, type_: type_, html_url: html_url, )) } pub fn webhooks_milestone_to_json(data: WebhooksMilestone) { json.object([ #("closed_at", json.nullable(data.closed_at, json.string)), #("number", json.nullable(data.number, json.int)), #("due_on", json.nullable(data.due_on, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("closed_issues", json.nullable(data.closed_issues, json.int)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhooks_milestone_decoder() { use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use due_on <- zero.optional_field("due_on", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use closed_issues <- zero.optional_field( "closed_issues", None, zero.optional(zero.int), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhooksMilestone( closed_at: closed_at, number: number, due_on: due_on, created_at: created_at, creator: creator, closed_issues: closed_issues, labels_url: labels_url, url: url, open_issues: open_issues, state: state, updated_at: updated_at, node_id: node_id, title: title, id: id, html_url: html_url, description: description, )) } pub fn code_scanning_analysis_tool_to_json(data: CodeScanningAnalysisTool) { json.object([ #("guid", json.nullable(data.guid, json.string)), #("name", json.nullable(data.name, json.string)), #("version", json.nullable(data.version, json.string)), ]) } pub fn code_scanning_analysis_tool_decoder() { use guid <- zero.optional_field("guid", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use version <- zero.optional_field( "version", None, zero.optional(zero.string), ) zero.success(CodeScanningAnalysisTool( guid: guid, name: name, version: version, )) } pub fn code_scanning_analysis_created_at_decoder() { zero.string } pub fn clone_traffic_to_json(data: CloneTraffic) { json.object([ #("uniques", json.nullable(data.uniques, json.int)), #("count", json.nullable(data.count, json.int)), #("clones", json.null()), ]) } pub fn clone_traffic_decoder() { use uniques <- zero.optional_field("uniques", None, zero.optional(zero.int)) use count <- zero.optional_field("count", None, zero.optional(zero.int)) use clones <- zero.optional_field( "clones", None, zero.optional(zero.success(Nil)), ) zero.success(CloneTraffic(uniques: uniques, count: count, clones: clones)) } pub fn milestoned_issue_event_to_json(data: MilestonedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("milestone", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn milestoned_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(MilestonedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, milestone: milestone, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn repository_rule_creation_to_json(data: RepositoryRuleCreation) { json.object([#("type", json.nullable(data.type_, json.string))]) } pub fn repository_rule_creation_decoder() { use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleCreation(type_: type_)) } pub fn added_to_project_issue_event_to_json(data: AddedToProjectIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("project_card", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn added_to_project_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(AddedToProjectIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, actor: actor, performed_via_github_app: performed_via_github_app, project_card: project_card, node_id: node_id, event: event, id: id, )) } pub fn wait_timer_decoder() { panic as "unsupported schema" } pub fn review_dismissed_issue_event_to_json(data: ReviewDismissedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("dismissed_review", json.null()), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn review_dismissed_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use dismissed_review <- zero.optional_field( "dismissed_review", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ReviewDismissedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, dismissed_review: dismissed_review, url: url, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn webhook_registry_package_published_to_json( data: WebhookRegistryPackagePublished, ) { json.object([ #("enterprise", json.null()), #("registry_package", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_registry_package_published_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use registry_package <- zero.optional_field( "registry_package", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRegistryPackagePublished( enterprise: enterprise, registry_package: registry_package, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_watch_started_to_json(data: WebhookWatchStarted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_watch_started_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWatchStarted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn simple_commit_status_to_json(data: SimpleCommitStatus) { json.object([ #("target_url", json.nullable(data.target_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("context", json.nullable(data.context, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), #("required", json.nullable(data.required, json.bool)), ]) } pub fn simple_commit_status_decoder() { use target_url <- zero.optional_field( "target_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use context <- zero.optional_field( "context", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use required <- zero.optional_field( "required", None, zero.optional(zero.bool), ) zero.success(SimpleCommitStatus( target_url: target_url, avatar_url: avatar_url, created_at: created_at, url: url, context: context, state: state, updated_at: updated_at, node_id: node_id, id: id, description: description, required: required, )) } pub fn selected_actions_url_decoder() { zero.string } pub fn repository_rule_params_code_scanning_tool_to_json( data: RepositoryRuleParamsCodeScanningTool, ) { json.object([ #( "security_alerts_threshold", json.nullable(data.security_alerts_threshold, json.string), ), #("alerts_threshold", json.nullable(data.alerts_threshold, json.string)), #("tool", json.nullable(data.tool, json.string)), ]) } pub fn repository_rule_params_code_scanning_tool_decoder() { use security_alerts_threshold <- zero.optional_field( "security_alerts_threshold", None, zero.optional(zero.string), ) use alerts_threshold <- zero.optional_field( "alerts_threshold", None, zero.optional(zero.string), ) use tool <- zero.optional_field("tool", None, zero.optional(zero.string)) zero.success(RepositoryRuleParamsCodeScanningTool( security_alerts_threshold: security_alerts_threshold, alerts_threshold: alerts_threshold, tool: tool, )) } pub fn webhook_workflow_job_in_progress_to_json( data: WebhookWorkflowJobInProgress, ) { json.object([ #("enterprise", json.null()), #("deployment", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow_job", json.null()), ]) } pub fn webhook_workflow_job_in_progress_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow_job <- zero.optional_field( "workflow_job", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowJobInProgress( enterprise: enterprise, deployment: deployment, repository: repository, organization: organization, sender: sender, action: action, installation: installation, workflow_job: workflow_job, )) } pub fn repository_advisory_create_to_json(data: RepositoryAdvisoryCreate) { json.object([ #("cvss_vector_string", json.nullable(data.cvss_vector_string, json.string)), #("summary", json.nullable(data.summary, json.string)), #("cve_id", json.nullable(data.cve_id, json.string)), #("cwe_ids", json.null()), #("credits", json.null()), #("vulnerabilities", json.null()), #("start_private_fork", json.nullable(data.start_private_fork, json.bool)), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn repository_advisory_create_decoder() { use cvss_vector_string <- zero.optional_field( "cvss_vector_string", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use cve_id <- zero.optional_field("cve_id", None, zero.optional(zero.string)) use cwe_ids <- zero.optional_field( "cwe_ids", None, zero.optional(zero.list(zero.string)), ) use credits <- zero.optional_field( "credits", None, zero.optional(zero.success(Nil)), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use start_private_fork <- zero.optional_field( "start_private_fork", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(RepositoryAdvisoryCreate( cvss_vector_string: cvss_vector_string, summary: summary, cve_id: cve_id, cwe_ids: cwe_ids, credits: credits, vulnerabilities: vulnerabilities, start_private_fork: start_private_fork, description: description, severity: severity, )) } pub fn webhook_repository_vulnerability_alert_reopen_to_json( data: WebhookRepositoryVulnerabilityAlertReopen, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_repository_vulnerability_alert_reopen_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryVulnerabilityAlertReopen( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhook_release_created_to_json(data: WebhookReleaseCreated) { json.object([ #("enterprise", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleaseCreated( enterprise: enterprise, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn api_overview_to_json(data: ApiOverview) { json.object([ #( "verifiable_password_authentication", json.nullable(data.verifiable_password_authentication, json.bool), ), #("pages", json.null()), #("ssh_key_fingerprints", json.null()), #("ssh_keys", json.null()), #("copilot", json.null()), #("packages", json.null()), #("domains", json.null()), #("hooks", json.null()), #("actions_macos", json.null()), #("dependabot", json.null()), #("importer", json.null()), #("git", json.null()), #("web", json.null()), #("github_enterprise_importer", json.null()), #("codespaces", json.null()), #("api", json.null()), #("actions", json.null()), ]) } pub fn api_overview_decoder() { use verifiable_password_authentication <- zero.optional_field( "verifiable_password_authentication", None, zero.optional(zero.bool), ) use pages <- zero.optional_field( "pages", None, zero.optional(zero.list(zero.string)), ) use ssh_key_fingerprints <- zero.optional_field( "ssh_key_fingerprints", None, zero.optional(zero.success(Nil)), ) use ssh_keys <- zero.optional_field( "ssh_keys", None, zero.optional(zero.list(zero.string)), ) use copilot <- zero.optional_field( "copilot", None, zero.optional(zero.list(zero.string)), ) use packages <- zero.optional_field( "packages", None, zero.optional(zero.list(zero.string)), ) use domains <- zero.optional_field( "domains", None, zero.optional(zero.success(Nil)), ) use hooks <- zero.optional_field( "hooks", None, zero.optional(zero.list(zero.string)), ) use actions_macos <- zero.optional_field( "actions_macos", None, zero.optional(zero.list(zero.string)), ) use dependabot <- zero.optional_field( "dependabot", None, zero.optional(zero.list(zero.string)), ) use importer <- zero.optional_field( "importer", None, zero.optional(zero.list(zero.string)), ) use git <- zero.optional_field( "git", None, zero.optional(zero.list(zero.string)), ) use web <- zero.optional_field( "web", None, zero.optional(zero.list(zero.string)), ) use github_enterprise_importer <- zero.optional_field( "github_enterprise_importer", None, zero.optional(zero.list(zero.string)), ) use codespaces <- zero.optional_field( "codespaces", None, zero.optional(zero.list(zero.string)), ) use api <- zero.optional_field( "api", None, zero.optional(zero.list(zero.string)), ) use actions <- zero.optional_field( "actions", None, zero.optional(zero.list(zero.string)), ) zero.success(ApiOverview( verifiable_password_authentication: verifiable_password_authentication, pages: pages, ssh_key_fingerprints: ssh_key_fingerprints, ssh_keys: ssh_keys, copilot: copilot, packages: packages, domains: domains, hooks: hooks, actions_macos: actions_macos, dependabot: dependabot, importer: importer, git: git, web: web, github_enterprise_importer: github_enterprise_importer, codespaces: codespaces, api: api, actions: actions, )) } pub fn webhook_organization_member_invited_to_json( data: WebhookOrganizationMemberInvited, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("user", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("invitation", json.null()), #("installation", json.null()), ]) } pub fn webhook_organization_member_invited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use invitation <- zero.optional_field( "invitation", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrganizationMemberInvited( enterprise: enterprise, repository: repository, user: user, organization: organization, sender: sender, action: action, invitation: invitation, installation: installation, )) } pub fn code_security_configuration_repositories_to_json( data: CodeSecurityConfigurationRepositories, ) { json.object([ #("repository", json.null()), #("status", json.nullable(data.status, json.string)), ]) } pub fn code_security_configuration_repositories_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) zero.success(CodeSecurityConfigurationRepositories( repository: repository, status: status, )) } pub fn webhooks_repositories_added_decoder() { panic as "unsupported schema" } pub fn webhook_repository_deleted_to_json(data: WebhookRepositoryDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn organization_simple_to_json(data: OrganizationSimple) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("issues_url", json.nullable(data.issues_url, json.string)), #("url", json.nullable(data.url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("public_members_url", json.nullable(data.public_members_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn organization_simple_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use public_members_url <- zero.optional_field( "public_members_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(OrganizationSimple( hooks_url: hooks_url, members_url: members_url, events_url: events_url, avatar_url: avatar_url, login: login, issues_url: issues_url, url: url, repos_url: repos_url, public_members_url: public_members_url, node_id: node_id, id: id, description: description, )) } pub fn webhooks_workflow_job_run_to_json(data: WebhooksWorkflowJobRun) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("status", json.nullable(data.status, json.string)), #("environment", json.nullable(data.environment, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_workflow_job_run_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksWorkflowJobRun( created_at: created_at, status: status, environment: environment, updated_at: updated_at, id: id, html_url: html_url, )) } pub fn tag_protection_to_json(data: TagProtection) { json.object([ #("enabled", json.nullable(data.enabled, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("pattern", json.nullable(data.pattern, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn tag_protection_decoder() { use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use pattern <- zero.optional_field( "pattern", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(TagProtection( enabled: enabled, created_at: created_at, pattern: pattern, updated_at: updated_at, id: id, )) } pub fn security_advisory_credit_types_decoder() { zero.string } pub fn org_hook_to_json(data: OrgHook) { json.object([ #("ping_url", json.nullable(data.ping_url, json.string)), #("config", json.null()), #("deliveries_url", json.nullable(data.deliveries_url, json.string)), #("active", json.nullable(data.active, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("events", json.null()), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn org_hook_decoder() { use ping_url <- zero.optional_field( "ping_url", None, zero.optional(zero.string), ) use config <- zero.optional_field( "config", None, zero.optional(zero.success(Nil)), ) use deliveries_url <- zero.optional_field( "deliveries_url", None, zero.optional(zero.string), ) use active <- zero.optional_field("active", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use events <- zero.optional_field( "events", None, zero.optional(zero.list(zero.string)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(OrgHook( ping_url: ping_url, config: config, deliveries_url: deliveries_url, active: active, created_at: created_at, name: name, url: url, updated_at: updated_at, events: events, type_: type_, id: id, )) } pub fn timeline_unassigned_issue_event_to_json( data: TimelineUnassignedIssueEvent, ) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn timeline_unassigned_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(TimelineUnassignedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, assignee: assignee, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn hovercard_to_json(data: Hovercard) { json.object([#("contexts", json.null())]) } pub fn hovercard_decoder() { use contexts <- zero.optional_field( "contexts", None, zero.optional(zero.success(Nil)), ) zero.success(Hovercard(contexts: contexts)) } pub fn copilot_dotcom_chat_to_json(data: CopilotDotcomChat) { json.object([ #("models", json.null()), #("total_engaged_users", json.nullable(data.total_engaged_users, json.int)), ]) } pub fn copilot_dotcom_chat_decoder() { use models <- zero.optional_field( "models", None, zero.optional(zero.success(Nil)), ) use total_engaged_users <- zero.optional_field( "total_engaged_users", None, zero.optional(zero.int), ) zero.success(CopilotDotcomChat( models: models, total_engaged_users: total_engaged_users, )) } pub fn pages_https_certificate_to_json(data: PagesHttpsCertificate) { json.object([ #("domains", json.null()), #("state", json.nullable(data.state, json.string)), #("description", json.nullable(data.description, json.string)), #("expires_at", json.nullable(data.expires_at, json.string)), ]) } pub fn pages_https_certificate_decoder() { use domains <- zero.optional_field( "domains", None, zero.optional(zero.list(zero.string)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) zero.success(PagesHttpsCertificate( domains: domains, state: state, description: description, expires_at: expires_at, )) } pub fn webhook_project_column_deleted_to_json(data: WebhookProjectColumnDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("project_column", json.null()), ]) } pub fn webhook_project_column_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use project_column <- zero.optional_field( "project_column", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectColumnDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, project_column: project_column, )) } pub fn secret_scanning_location_discussion_title_to_json( data: SecretScanningLocationDiscussionTitle, ) { json.object([ #( "discussion_title_url", json.nullable(data.discussion_title_url, json.string), ), ]) } pub fn secret_scanning_location_discussion_title_decoder() { use discussion_title_url <- zero.optional_field( "discussion_title_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationDiscussionTitle( discussion_title_url: discussion_title_url, )) } pub fn repository_rule_required_linear_history_to_json( data: RepositoryRuleRequiredLinearHistory, ) { json.object([#("type", json.nullable(data.type_, json.string))]) } pub fn repository_rule_required_linear_history_decoder() { use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleRequiredLinearHistory(type_: type_)) } pub fn webhook_pull_request_reopened_to_json(data: WebhookPullRequestReopened) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReopened( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_projects_v2_item_converted_to_json( data: WebhookProjectsV2ItemConverted, ) { json.object([ #("changes", json.null()), #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_converted_decoder() { use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemConverted( changes: changes, projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn actions_variable_to_json(data: ActionsVariable) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("value", json.nullable(data.value, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), ]) } pub fn actions_variable_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use value <- zero.optional_field("value", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) zero.success(ActionsVariable( created_at: created_at, name: name, value: value, updated_at: updated_at, )) } pub fn webhooks_nullable_string_decoder() { zero.string } pub fn codespaces_org_secret_to_json(data: CodespacesOrgSecret) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), ]) } pub fn codespaces_org_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) zero.success(CodespacesOrgSecret( created_at: created_at, name: name, visibility: visibility, updated_at: updated_at, selected_repositories_url: selected_repositories_url, )) } pub fn webhook_pull_request_enqueued_to_json(data: WebhookPullRequestEnqueued) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_enqueued_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestEnqueued( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_discussion_answered_to_json(data: WebhookDiscussionAnswered) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("answer", json.null()), ]) } pub fn webhook_discussion_answered_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use answer <- zero.optional_field( "answer", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionAnswered( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, answer: answer, )) } pub fn labeled_issue_event_to_json(data: LabeledIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("label", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn labeled_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(LabeledIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, label: label, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn rule_suites_decoder() { panic as "unsupported schema" } pub fn protected_branch_admin_enforced_to_json( data: ProtectedBranchAdminEnforced, ) { json.object([ #("enabled", json.nullable(data.enabled, json.bool)), #("url", json.nullable(data.url, json.string)), ]) } pub fn protected_branch_admin_enforced_decoder() { use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) zero.success(ProtectedBranchAdminEnforced(enabled: enabled, url: url)) } pub fn webhooks_number_decoder() { panic as "unsupported schema" } pub fn webhooks_repositories_decoder() { panic as "unsupported schema" } pub fn nullable_scoped_installation_to_json(data: NullableScopedInstallation) { json.object([ #("single_file_paths", json.null()), #("permissions", json.null()), #( "has_multiple_single_files", json.nullable(data.has_multiple_single_files, json.bool), ), #("account", json.null()), #("single_file_name", json.nullable(data.single_file_name, json.string)), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("repositories_url", json.nullable(data.repositories_url, json.string)), ]) } pub fn nullable_scoped_installation_decoder() { use single_file_paths <- zero.optional_field( "single_file_paths", None, zero.optional(zero.list(zero.string)), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use has_multiple_single_files <- zero.optional_field( "has_multiple_single_files", None, zero.optional(zero.bool), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use single_file_name <- zero.optional_field( "single_file_name", None, zero.optional(zero.string), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) zero.success(NullableScopedInstallation( single_file_paths: single_file_paths, permissions: permissions, has_multiple_single_files: has_multiple_single_files, account: account, single_file_name: single_file_name, repository_selection: repository_selection, repositories_url: repositories_url, )) } pub fn webhook_installation_created_to_json(data: WebhookInstallationCreated) { json.object([ #("enterprise", json.null()), #("repositories", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("requester", json.null()), ]) } pub fn webhook_installation_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use requester <- zero.optional_field( "requester", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationCreated( enterprise: enterprise, repositories: repositories, repository: repository, organization: organization, sender: sender, action: action, installation: installation, requester: requester, )) } pub fn actions_public_key_to_json(data: ActionsPublicKey) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("key_id", json.nullable(data.key_id, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn actions_public_key_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key_id <- zero.optional_field("key_id", None, zero.optional(zero.string)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(ActionsPublicKey( created_at: created_at, url: url, title: title, id: id, key_id: key_id, key: key, )) } pub fn selected_actions_to_json(data: SelectedActions) { json.object([ #("patterns_allowed", json.null()), #("verified_allowed", json.nullable(data.verified_allowed, json.bool)), #( "github_owned_allowed", json.nullable(data.github_owned_allowed, json.bool), ), ]) } pub fn selected_actions_decoder() { use patterns_allowed <- zero.optional_field( "patterns_allowed", None, zero.optional(zero.list(zero.string)), ) use verified_allowed <- zero.optional_field( "verified_allowed", None, zero.optional(zero.bool), ) use github_owned_allowed <- zero.optional_field( "github_owned_allowed", None, zero.optional(zero.bool), ) zero.success(SelectedActions( patterns_allowed: patterns_allowed, verified_allowed: verified_allowed, github_owned_allowed: github_owned_allowed, )) } pub fn secret_scanning_location_issue_title_to_json( data: SecretScanningLocationIssueTitle, ) { json.object([ #("issue_title_url", json.nullable(data.issue_title_url, json.string)), ]) } pub fn secret_scanning_location_issue_title_decoder() { use issue_title_url <- zero.optional_field( "issue_title_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationIssueTitle( issue_title_url: issue_title_url, )) } pub fn code_scanning_analysis_commit_sha_decoder() { zero.string } pub fn webhooks_reviewers_decoder() { panic as "unsupported schema" } pub fn dependency_to_json(data: Dependency) { json.object([ #("dependencies", json.null()), #("metadata", json.null()), #("scope", json.nullable(data.scope, json.string)), #("package_url", json.nullable(data.package_url, json.string)), #("relationship", json.nullable(data.relationship, json.string)), ]) } pub fn dependency_decoder() { use dependencies <- zero.optional_field( "dependencies", None, zero.optional(zero.list(zero.string)), ) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.success(Nil)), ) use scope <- zero.optional_field("scope", None, zero.optional(zero.string)) use package_url <- zero.optional_field( "package_url", None, zero.optional(zero.string), ) use relationship <- zero.optional_field( "relationship", None, zero.optional(zero.string), ) zero.success(Dependency( dependencies: dependencies, metadata: metadata, scope: scope, package_url: package_url, relationship: relationship, )) } pub fn issue_event_project_card_to_json(data: IssueEventProjectCard) { json.object([ #("project_id", json.nullable(data.project_id, json.int)), #("project_url", json.nullable(data.project_url, json.string)), #( "previous_column_name", json.nullable(data.previous_column_name, json.string), ), #("url", json.nullable(data.url, json.string)), #("column_name", json.nullable(data.column_name, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn issue_event_project_card_decoder() { use project_id <- zero.optional_field( "project_id", None, zero.optional(zero.int), ) use project_url <- zero.optional_field( "project_url", None, zero.optional(zero.string), ) use previous_column_name <- zero.optional_field( "previous_column_name", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use column_name <- zero.optional_field( "column_name", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(IssueEventProjectCard( project_id: project_id, project_url: project_url, previous_column_name: previous_column_name, url: url, column_name: column_name, id: id, )) } pub fn secret_scanning_location_pull_request_title_to_json( data: SecretScanningLocationPullRequestTitle, ) { json.object([ #( "pull_request_title_url", json.nullable(data.pull_request_title_url, json.string), ), ]) } pub fn secret_scanning_location_pull_request_title_decoder() { use pull_request_title_url <- zero.optional_field( "pull_request_title_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationPullRequestTitle( pull_request_title_url: pull_request_title_url, )) } pub fn webhook_branch_protection_configuration_enabled_to_json( data: WebhookBranchProtectionConfigurationEnabled, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_branch_protection_configuration_enabled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookBranchProtectionConfigurationEnabled( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_deployment_review_requested_to_json( data: WebhookDeploymentReviewRequested, ) { json.object([ #("enterprise", json.null()), #("workflow_job_run", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("reviewers", json.null()), #("requestor", json.null()), #("organization", json.null()), #("environment", json.nullable(data.environment, json.string)), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("since", json.nullable(data.since, json.string)), ]) } pub fn webhook_deployment_review_requested_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use workflow_job_run <- zero.optional_field( "workflow_job_run", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use reviewers <- zero.optional_field( "reviewers", None, zero.optional(zero.success(Nil)), ) use requestor <- zero.optional_field( "requestor", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use since <- zero.optional_field("since", None, zero.optional(zero.string)) zero.success(WebhookDeploymentReviewRequested( enterprise: enterprise, workflow_job_run: workflow_job_run, repository: repository, workflow_run: workflow_run, reviewers: reviewers, requestor: requestor, organization: organization, environment: environment, sender: sender, action: action, installation: installation, since: since, )) } pub fn webhook_discussion_comment_created_to_json( data: WebhookDiscussionCommentCreated, ) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_discussion_comment_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionCommentCreated( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, comment: comment, )) } pub fn dependabot_secret_to_json(data: DependabotSecret) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), ]) } pub fn dependabot_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) zero.success(DependabotSecret( created_at: created_at, name: name, updated_at: updated_at, )) } pub fn code_scanning_analysis_tool_name_decoder() { zero.string } pub fn webhook_check_run_created_to_json(data: WebhookCheckRunCreated) { json.object([ #("repository", json.null()), #("organization", json.null()), #("check_run", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_run_created_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use check_run <- zero.optional_field( "check_run", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckRunCreated( repository: repository, organization: organization, check_run: check_run, sender: sender, action: action, installation: installation, )) } pub fn repository_ruleset_conditions_repository_id_target_to_json( data: RepositoryRulesetConditionsRepositoryIdTarget, ) { json.object([#("repository_id", json.null())]) } pub fn repository_ruleset_conditions_repository_id_target_decoder() { use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.success(Nil)), ) zero.success(RepositoryRulesetConditionsRepositoryIdTarget( repository_id: repository_id, )) } pub fn validation_error_simple_to_json(data: ValidationErrorSimple) { json.object([ #("message", json.nullable(data.message, json.string)), #("documentation_url", json.nullable(data.documentation_url, json.string)), #("errors", json.null()), ]) } pub fn validation_error_simple_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use documentation_url <- zero.optional_field( "documentation_url", None, zero.optional(zero.string), ) use errors <- zero.optional_field( "errors", None, zero.optional(zero.list(zero.string)), ) zero.success(ValidationErrorSimple( message: message, documentation_url: documentation_url, errors: errors, )) } pub fn webhook_repository_vulnerability_alert_create_to_json( data: WebhookRepositoryVulnerabilityAlertCreate, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_repository_vulnerability_alert_create_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryVulnerabilityAlertCreate( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn hook_response_to_json(data: HookResponse) { json.object([ #("message", json.nullable(data.message, json.string)), #("code", json.nullable(data.code, json.int)), #("status", json.nullable(data.status, json.string)), ]) } pub fn hook_response_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use code <- zero.optional_field("code", None, zero.optional(zero.int)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) zero.success(HookResponse(message: message, code: code, status: status)) } pub fn repository_rule_branch_name_pattern_to_json( data: RepositoryRuleBranchNamePattern, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_branch_name_pattern_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleBranchNamePattern( parameters: parameters, type_: type_, )) } pub fn issue_comment_to_json(data: IssueComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("issue_url", json.nullable(data.issue_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn issue_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(IssueComment( body: body, body_html: body_html, issue_url: issue_url, created_at: created_at, body_text: body_text, reactions: reactions, user: user, author_association: author_association, url: url, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, )) } pub fn codeowners_errors_to_json(data: CodeownersErrors) { json.object([#("errors", json.null())]) } pub fn codeowners_errors_decoder() { use errors <- zero.optional_field( "errors", None, zero.optional(zero.success(Nil)), ) zero.success(CodeownersErrors(errors: errors)) } pub fn marketplace_account_to_json(data: MarketplaceAccount) { json.object([ #("login", json.nullable(data.login, json.string)), #( "organization_billing_email", json.nullable(data.organization_billing_email, json.string), ), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("email", json.nullable(data.email, json.string)), ]) } pub fn marketplace_account_decoder() { use login <- zero.optional_field("login", None, zero.optional(zero.string)) use organization_billing_email <- zero.optional_field( "organization_billing_email", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(MarketplaceAccount( login: login, organization_billing_email: organization_billing_email, url: url, node_id: node_id, type_: type_, id: id, email: email, )) } pub fn webhook_projects_v2_status_update_created_to_json( data: WebhookProjectsV2StatusUpdateCreated, ) { json.object([ #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("projects_v2_status_update", json.null()), #("installation", json.null()), ]) } pub fn webhook_projects_v2_status_update_created_decoder() { use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use projects_v2_status_update <- zero.optional_field( "projects_v2_status_update", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2StatusUpdateCreated( organization: organization, sender: sender, action: action, projects_v2_status_update: projects_v2_status_update, installation: installation, )) } pub fn webhook_check_suite_rerequested_to_json( data: WebhookCheckSuiteRerequested, ) { json.object([ #("check_suite", json.null()), #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_check_suite_rerequested_decoder() { use check_suite <- zero.optional_field( "check_suite", None, zero.optional(zero.success(Nil)), ) use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCheckSuiteRerequested( check_suite: check_suite, enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repository_advisory_vulnerability_to_json( data: RepositoryAdvisoryVulnerability, ) { json.object([ #("vulnerable_functions", json.null()), #("package", json.null()), #("patched_versions", json.nullable(data.patched_versions, json.string)), #( "vulnerable_version_range", json.nullable(data.vulnerable_version_range, json.string), ), ]) } pub fn repository_advisory_vulnerability_decoder() { use vulnerable_functions <- zero.optional_field( "vulnerable_functions", None, zero.optional(zero.list(zero.string)), ) use package <- zero.optional_field( "package", None, zero.optional(zero.success(Nil)), ) use patched_versions <- zero.optional_field( "patched_versions", None, zero.optional(zero.string), ) use vulnerable_version_range <- zero.optional_field( "vulnerable_version_range", None, zero.optional(zero.string), ) zero.success(RepositoryAdvisoryVulnerability( vulnerable_functions: vulnerable_functions, package: package, patched_versions: patched_versions, vulnerable_version_range: vulnerable_version_range, )) } pub fn webhook_issues_assigned_to_json(data: WebhookIssuesAssigned) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("assignee", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_assigned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesAssigned( enterprise: enterprise, repository: repository, assignee: assignee, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_discussion_reopened_to_json(data: WebhookDiscussionReopened) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionReopened( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_discussion_unlabeled_to_json(data: WebhookDiscussionUnlabeled) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_unlabeled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionUnlabeled( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, label: label, sender: sender, action: action, installation: installation, )) } pub fn webhook_ping_form_encoded_to_json(data: WebhookPingFormEncoded) { json.object([#("payload", json.nullable(data.payload, json.string))]) } pub fn webhook_ping_form_encoded_decoder() { use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) zero.success(WebhookPingFormEncoded(payload: payload)) } pub fn gist_history_to_json(data: GistHistory) { json.object([ #("change_status", json.null()), #("user", json.null()), #("url", json.nullable(data.url, json.string)), #("committed_at", json.nullable(data.committed_at, json.string)), #("version", json.nullable(data.version, json.string)), ]) } pub fn gist_history_decoder() { use change_status <- zero.optional_field( "change_status", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use committed_at <- zero.optional_field( "committed_at", None, zero.optional(zero.string), ) use version <- zero.optional_field( "version", None, zero.optional(zero.string), ) zero.success(GistHistory( change_status: change_status, user: user, url: url, committed_at: committed_at, version: version, )) } pub fn repository_to_json(data: Repository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("allow_update_branch", json.nullable(data.allow_update_branch, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #( "squash_merge_commit_message", json.nullable(data.squash_merge_commit_message, json.string), ), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #( "merge_commit_message", json.nullable(data.merge_commit_message, json.string), ), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #( "use_squash_pr_title_as_default", json.nullable(data.use_squash_pr_title_as_default, json.bool), ), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("owner", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #( "squash_merge_commit_title", json.nullable(data.squash_merge_commit_title, json.string), ), #("merge_commit_title", json.nullable(data.merge_commit_title, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "anonymous_access_enabled", json.nullable(data.anonymous_access_enabled, json.bool), ), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use allow_update_branch <- zero.optional_field( "allow_update_branch", None, zero.optional(zero.bool), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use squash_merge_commit_message <- zero.optional_field( "squash_merge_commit_message", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use merge_commit_message <- zero.optional_field( "merge_commit_message", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use use_squash_pr_title_as_default <- zero.optional_field( "use_squash_pr_title_as_default", None, zero.optional(zero.bool), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use squash_merge_commit_title <- zero.optional_field( "squash_merge_commit_title", None, zero.optional(zero.string), ) use merge_commit_title <- zero.optional_field( "merge_commit_title", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use anonymous_access_enabled <- zero.optional_field( "anonymous_access_enabled", None, zero.optional(zero.bool), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(Repository( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, forks_count: forks_count, fork: fork, allow_update_branch: allow_update_branch, git_url: git_url, archived: archived, private: private, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, squash_merge_commit_message: squash_merge_commit_message, has_discussions: has_discussions, teams_url: teams_url, merge_commit_message: merge_commit_message, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, allow_squash_merge: allow_squash_merge, homepage: homepage, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, use_squash_pr_title_as_default: use_squash_pr_title_as_default, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, owner: owner, starred_at: starred_at, allow_merge_commit: allow_merge_commit, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, squash_merge_commit_title: squash_merge_commit_title, merge_commit_title: merge_commit_title, updated_at: updated_at, watchers: watchers, node_id: node_id, anonymous_access_enabled: anonymous_access_enabled, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn porter_author_to_json(data: PorterAuthor) { json.object([ #("remote_name", json.nullable(data.remote_name, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("remote_id", json.nullable(data.remote_id, json.string)), #("import_url", json.nullable(data.import_url, json.string)), #("id", json.nullable(data.id, json.int)), #("email", json.nullable(data.email, json.string)), ]) } pub fn porter_author_decoder() { use remote_name <- zero.optional_field( "remote_name", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use remote_id <- zero.optional_field( "remote_id", None, zero.optional(zero.string), ) use import_url <- zero.optional_field( "import_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(PorterAuthor( remote_name: remote_name, name: name, url: url, remote_id: remote_id, import_url: import_url, id: id, email: email, )) } pub fn team_discussion_comment_to_json(data: TeamDiscussionComment) { json.object([ #("last_edited_at", json.nullable(data.last_edited_at, json.string)), #("body", json.nullable(data.body, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("author", json.null()), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("discussion_url", json.nullable(data.discussion_url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("body_version", json.nullable(data.body_version, json.string)), ]) } pub fn team_discussion_comment_decoder() { use last_edited_at <- zero.optional_field( "last_edited_at", None, zero.optional(zero.string), ) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use discussion_url <- zero.optional_field( "discussion_url", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use body_version <- zero.optional_field( "body_version", None, zero.optional(zero.string), ) zero.success(TeamDiscussionComment( last_edited_at: last_edited_at, body: body, body_html: body_html, number: number, created_at: created_at, reactions: reactions, author: author, url: url, updated_at: updated_at, node_id: node_id, discussion_url: discussion_url, html_url: html_url, body_version: body_version, )) } pub fn projects_v2_item_content_type_decoder() { zero.string } pub fn webhook_pull_request_unlabeled_to_json(data: WebhookPullRequestUnlabeled) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_unlabeled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestUnlabeled( enterprise: enterprise, number: number, repository: repository, organization: organization, label: label, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn webhook_discussion_deleted_to_json(data: WebhookDiscussionDeleted) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionDeleted( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhooks_deploy_key_to_json(data: WebhooksDeployKey) { json.object([ #("enabled", json.nullable(data.enabled, json.bool)), #("last_used", json.nullable(data.last_used, json.string)), #("verified", json.nullable(data.verified, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("read_only", json.nullable(data.read_only, json.bool)), #("added_by", json.nullable(data.added_by, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("key", json.nullable(data.key, json.string)), ]) } pub fn webhooks_deploy_key_decoder() { use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use last_used <- zero.optional_field( "last_used", None, zero.optional(zero.string), ) use verified <- zero.optional_field( "verified", None, zero.optional(zero.bool), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use read_only <- zero.optional_field( "read_only", None, zero.optional(zero.bool), ) use added_by <- zero.optional_field( "added_by", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(WebhooksDeployKey( enabled: enabled, last_used: last_used, verified: verified, created_at: created_at, url: url, read_only: read_only, added_by: added_by, title: title, id: id, key: key, )) } pub fn repository_advisory_credit_to_json(data: RepositoryAdvisoryCredit) { json.object([ #("user", json.null()), #("state", json.nullable(data.state, json.string)), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_advisory_credit_decoder() { use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryAdvisoryCredit(user: user, state: state, type_: type_)) } pub fn thread_to_json(data: Thread) { json.object([ #("reason", json.nullable(data.reason, json.string)), #("repository", json.null()), #("subject", json.null()), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("url", json.nullable(data.url, json.string)), #("unread", json.nullable(data.unread, json.bool)), #("last_read_at", json.nullable(data.last_read_at, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("id", json.nullable(data.id, json.string)), ]) } pub fn thread_decoder() { use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use subject <- zero.optional_field( "subject", None, zero.optional(zero.success(Nil)), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use unread <- zero.optional_field("unread", None, zero.optional(zero.bool)) use last_read_at <- zero.optional_field( "last_read_at", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) zero.success(Thread( reason: reason, repository: repository, subject: subject, subscription_url: subscription_url, url: url, unread: unread, last_read_at: last_read_at, updated_at: updated_at, id: id, )) } pub fn webhook_github_app_authorization_revoked_to_json( data: WebhookGithubAppAuthorizationRevoked, ) { json.object([ #("sender", json.null()), #("action", json.nullable(data.action, json.string)), ]) } pub fn webhook_github_app_authorization_revoked_decoder() { use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) zero.success(WebhookGithubAppAuthorizationRevoked( sender: sender, action: action, )) } pub fn release_asset_to_json(data: ReleaseAsset) { json.object([ #("content_type", json.nullable(data.content_type, json.string)), #("size", json.nullable(data.size, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("uploader", json.null()), #( "browser_download_url", json.nullable(data.browser_download_url, json.string), ), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("label", json.nullable(data.label, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("download_count", json.nullable(data.download_count, json.int)), #("id", json.nullable(data.id, json.int)), ]) } pub fn release_asset_decoder() { use content_type <- zero.optional_field( "content_type", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use uploader <- zero.optional_field( "uploader", None, zero.optional(zero.success(Nil)), ) use browser_download_url <- zero.optional_field( "browser_download_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use label <- zero.optional_field("label", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use download_count <- zero.optional_field( "download_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ReleaseAsset( content_type: content_type, size: size, created_at: created_at, name: name, uploader: uploader, browser_download_url: browser_download_url, url: url, state: state, label: label, updated_at: updated_at, node_id: node_id, download_count: download_count, id: id, )) } pub fn webhook_label_deleted_to_json(data: WebhookLabelDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_label_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookLabelDeleted( enterprise: enterprise, repository: repository, organization: organization, label: label, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_alert_severity_decoder() { zero.string } pub fn review_comment_to_json(data: ReviewComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("original_line", json.nullable(data.original_line, json.int)), #("commit_id", json.nullable(data.commit_id, json.string)), #("diff_hunk", json.nullable(data.diff_hunk, json.string)), #("path", json.nullable(data.path_, json.string)), #("pull_request_url", json.nullable(data.pull_request_url, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("position", json.nullable(data.position, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("in_reply_to_id", json.nullable(data.in_reply_to_id, json.int)), #("start_line", json.nullable(data.start_line, json.int)), #("start_side", json.nullable(data.start_side, json.string)), #("line", json.nullable(data.line, json.int)), #("original_commit_id", json.nullable(data.original_commit_id, json.string)), #("side", json.nullable(data.side, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("original_position", json.nullable(data.original_position, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "pull_request_review_id", json.nullable(data.pull_request_review_id, json.int), ), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("original_start_line", json.nullable(data.original_start_line, json.int)), ]) } pub fn review_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use original_line <- zero.optional_field( "original_line", None, zero.optional(zero.int), ) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use diff_hunk <- zero.optional_field( "diff_hunk", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use pull_request_url <- zero.optional_field( "pull_request_url", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use position <- zero.optional_field("position", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use in_reply_to_id <- zero.optional_field( "in_reply_to_id", None, zero.optional(zero.int), ) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.int), ) use start_side <- zero.optional_field( "start_side", None, zero.optional(zero.string), ) use line <- zero.optional_field("line", None, zero.optional(zero.int)) use original_commit_id <- zero.optional_field( "original_commit_id", None, zero.optional(zero.string), ) use side <- zero.optional_field("side", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use original_position <- zero.optional_field( "original_position", None, zero.optional(zero.int), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use pull_request_review_id <- zero.optional_field( "pull_request_review_id", None, zero.optional(zero.int), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use original_start_line <- zero.optional_field( "original_start_line", None, zero.optional(zero.int), ) zero.success(ReviewComment( body: body, original_line: original_line, commit_id: commit_id, diff_hunk: diff_hunk, path_: path_, pull_request_url: pull_request_url, body_html: body_html, position: position, created_at: created_at, body_text: body_text, reactions: reactions, user: user, author_association: author_association, url: url, in_reply_to_id: in_reply_to_id, start_line: start_line, start_side: start_side, line: line, original_commit_id: original_commit_id, side: side, updated_at: updated_at, original_position: original_position, node_id: node_id, pull_request_review_id: pull_request_review_id, links: links, id: id, html_url: html_url, original_start_line: original_start_line, )) } pub fn codespaces_user_public_key_to_json(data: CodespacesUserPublicKey) { json.object([ #("key_id", json.nullable(data.key_id, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn codespaces_user_public_key_decoder() { use key_id <- zero.optional_field("key_id", None, zero.optional(zero.string)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(CodespacesUserPublicKey(key_id: key_id, key: key)) } pub fn diff_entry_to_json(data: DiffEntry) { json.object([ #("changes", json.nullable(data.changes, json.int)), #("deletions", json.nullable(data.deletions, json.int)), #("filename", json.nullable(data.filename, json.string)), #("patch", json.nullable(data.patch, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("sha", json.nullable(data.sha, json.string)), #("blob_url", json.nullable(data.blob_url, json.string)), #("previous_filename", json.nullable(data.previous_filename, json.string)), #("status", json.nullable(data.status, json.string)), #("additions", json.nullable(data.additions, json.int)), #("raw_url", json.nullable(data.raw_url, json.string)), ]) } pub fn diff_entry_decoder() { use changes <- zero.optional_field("changes", None, zero.optional(zero.int)) use deletions <- zero.optional_field( "deletions", None, zero.optional(zero.int), ) use filename <- zero.optional_field( "filename", None, zero.optional(zero.string), ) use patch <- zero.optional_field("patch", None, zero.optional(zero.string)) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use blob_url <- zero.optional_field( "blob_url", None, zero.optional(zero.string), ) use previous_filename <- zero.optional_field( "previous_filename", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use additions <- zero.optional_field( "additions", None, zero.optional(zero.int), ) use raw_url <- zero.optional_field( "raw_url", None, zero.optional(zero.string), ) zero.success(DiffEntry( changes: changes, deletions: deletions, filename: filename, patch: patch, contents_url: contents_url, sha: sha, blob_url: blob_url, previous_filename: previous_filename, status: status, additions: additions, raw_url: raw_url, )) } pub fn webhook_deploy_key_created_to_json(data: WebhookDeployKeyCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("key", json.null()), ]) } pub fn webhook_deploy_key_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use key <- zero.optional_field("key", None, zero.optional(zero.success(Nil))) zero.success(WebhookDeployKeyCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, key: key, )) } pub fn merge_group_to_json(data: MergeGroup) { json.object([ #("base_ref", json.nullable(data.base_ref, json.string)), #("head_sha", json.nullable(data.head_sha, json.string)), #("head_ref", json.nullable(data.head_ref, json.string)), #("head_commit", json.null()), #("base_sha", json.nullable(data.base_sha, json.string)), ]) } pub fn merge_group_decoder() { use base_ref <- zero.optional_field( "base_ref", None, zero.optional(zero.string), ) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use head_ref <- zero.optional_field( "head_ref", None, zero.optional(zero.string), ) use head_commit <- zero.optional_field( "head_commit", None, zero.optional(zero.success(Nil)), ) use base_sha <- zero.optional_field( "base_sha", None, zero.optional(zero.string), ) zero.success(MergeGroup( base_ref: base_ref, head_sha: head_sha, head_ref: head_ref, head_commit: head_commit, base_sha: base_sha, )) } pub fn nullable_license_simple_to_json(data: NullableLicenseSimple) { json.object([ #("spdx_id", json.nullable(data.spdx_id, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn nullable_license_simple_decoder() { use spdx_id <- zero.optional_field( "spdx_id", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(NullableLicenseSimple( spdx_id: spdx_id, name: name, url: url, node_id: node_id, html_url: html_url, key: key, )) } pub fn project_column_to_json(data: ProjectColumn) { json.object([ #("project_url", json.nullable(data.project_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("cards_url", json.nullable(data.cards_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn project_column_decoder() { use project_url <- zero.optional_field( "project_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use cards_url <- zero.optional_field( "cards_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ProjectColumn( project_url: project_url, created_at: created_at, name: name, url: url, cards_url: cards_url, updated_at: updated_at, node_id: node_id, id: id, )) } pub fn secret_scanning_push_protection_bypass_reason_decoder() { zero.string } pub fn commit_comment_to_json(data: CommitComment) { json.object([ #("body", json.nullable(data.body, json.string)), #("commit_id", json.nullable(data.commit_id, json.string)), #("path", json.nullable(data.path_, json.string)), #("position", json.nullable(data.position, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("line", json.nullable(data.line, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn commit_comment_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use position <- zero.optional_field("position", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use line <- zero.optional_field("line", None, zero.optional(zero.int)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(CommitComment( body: body, commit_id: commit_id, path_: path_, position: position, created_at: created_at, reactions: reactions, user: user, author_association: author_association, url: url, line: line, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, )) } pub fn basic_error_to_json(data: BasicError) { json.object([ #("message", json.nullable(data.message, json.string)), #("documentation_url", json.nullable(data.documentation_url, json.string)), #("url", json.nullable(data.url, json.string)), #("status", json.nullable(data.status, json.string)), ]) } pub fn basic_error_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use documentation_url <- zero.optional_field( "documentation_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use status <- zero.optional_field("status", None, zero.optional(zero.string)) zero.success(BasicError( message: message, documentation_url: documentation_url, url: url, status: status, )) } pub fn team_project_to_json(data: TeamProject) { json.object([ #("body", json.nullable(data.body, json.string)), #("private", json.nullable(data.private, json.bool)), #("owner_url", json.nullable(data.owner_url, json.string)), #("permissions", json.null()), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("creator", json.null()), #("columns_url", json.nullable(data.columns_url, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #( "organization_permission", json.nullable(data.organization_permission, json.string), ), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn team_project_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use owner_url <- zero.optional_field( "owner_url", None, zero.optional(zero.string), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use columns_url <- zero.optional_field( "columns_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use organization_permission <- zero.optional_field( "organization_permission", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(TeamProject( body: body, private: private, owner_url: owner_url, permissions: permissions, number: number, created_at: created_at, name: name, creator: creator, columns_url: columns_url, url: url, state: state, updated_at: updated_at, node_id: node_id, organization_permission: organization_permission, id: id, html_url: html_url, )) } pub fn code_scanning_alert_rule_to_json(data: CodeScanningAlertRule) { json.object([ #( "security_severity_level", json.nullable(data.security_severity_level, json.string), ), #("help", json.nullable(data.help, json.string)), #("name", json.nullable(data.name, json.string)), #("full_description", json.nullable(data.full_description, json.string)), #("help_uri", json.nullable(data.help_uri, json.string)), #("tags", json.null()), #("id", json.nullable(data.id, json.string)), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn code_scanning_alert_rule_decoder() { use security_severity_level <- zero.optional_field( "security_severity_level", None, zero.optional(zero.string), ) use help <- zero.optional_field("help", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use full_description <- zero.optional_field( "full_description", None, zero.optional(zero.string), ) use help_uri <- zero.optional_field( "help_uri", None, zero.optional(zero.string), ) use tags <- zero.optional_field( "tags", None, zero.optional(zero.list(zero.string)), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(CodeScanningAlertRule( security_severity_level: security_severity_level, help: help, name: name, full_description: full_description, help_uri: help_uri, tags: tags, id: id, description: description, severity: severity, )) } pub fn webhook_issues_closed_to_json(data: WebhookIssuesClosed) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_closed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesClosed( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn organization_full_to_json(data: OrganizationFull) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #( "dependency_graph_enabled_for_new_repositories", json.nullable( data.dependency_graph_enabled_for_new_repositories, json.bool, ), ), #( "has_organization_projects", json.nullable(data.has_organization_projects, json.bool), ), #("twitter_username", json.nullable(data.twitter_username, json.string)), #( "members_allowed_repository_creation_type", json.nullable(data.members_allowed_repository_creation_type, json.string), ), #( "dependabot_security_updates_enabled_for_new_repositories", json.nullable( data.dependabot_security_updates_enabled_for_new_repositories, json.bool, ), ), #("blog", json.nullable(data.blog, json.string)), #( "default_repository_permission", json.nullable(data.default_repository_permission, json.string), ), #( "secret_scanning_push_protection_custom_link", json.nullable( data.secret_scanning_push_protection_custom_link, json.string, ), ), #( "two_factor_requirement_enabled", json.nullable(data.two_factor_requirement_enabled, json.bool), ), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("members_url", json.nullable(data.members_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("plan", json.null()), #("login", json.nullable(data.login, json.string)), #( "has_repository_projects", json.nullable(data.has_repository_projects, json.bool), ), #("created_at", json.nullable(data.created_at, json.string)), #( "secret_scanning_push_protection_custom_link_enabled", json.nullable( data.secret_scanning_push_protection_custom_link_enabled, json.bool, ), ), #("issues_url", json.nullable(data.issues_url, json.string)), #("total_private_repos", json.nullable(data.total_private_repos, json.int)), #("owned_private_repos", json.nullable(data.owned_private_repos, json.int)), #("public_repos", json.nullable(data.public_repos, json.int)), #("name", json.nullable(data.name, json.string)), #( "members_can_fork_private_repositories", json.nullable(data.members_can_fork_private_repositories, json.bool), ), #("collaborators", json.nullable(data.collaborators, json.int)), #( "deploy_keys_enabled_for_repositories", json.nullable(data.deploy_keys_enabled_for_repositories, json.bool), ), #("url", json.nullable(data.url, json.string)), #( "members_can_create_public_repositories", json.nullable(data.members_can_create_public_repositories, json.bool), ), #("archived_at", json.nullable(data.archived_at, json.string)), #("following", json.nullable(data.following, json.int)), #("repos_url", json.nullable(data.repos_url, json.string)), #( "members_can_create_private_repositories", json.nullable(data.members_can_create_private_repositories, json.bool), ), #("public_members_url", json.nullable(data.public_members_url, json.string)), #("private_gists", json.nullable(data.private_gists, json.int)), #("followers", json.nullable(data.followers, json.int)), #("location", json.nullable(data.location, json.string)), #( "members_can_create_pages", json.nullable(data.members_can_create_pages, json.bool), ), #( "dependabot_alerts_enabled_for_new_repositories", json.nullable( data.dependabot_alerts_enabled_for_new_repositories, json.bool, ), ), #( "members_can_create_repositories", json.nullable(data.members_can_create_repositories, json.bool), ), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("billing_email", json.nullable(data.billing_email, json.string)), #("public_gists", json.nullable(data.public_gists, json.int)), #( "members_can_create_private_pages", json.nullable(data.members_can_create_private_pages, json.bool), ), #( "secret_scanning_enabled_for_new_repositories", json.nullable( data.secret_scanning_enabled_for_new_repositories, json.bool, ), ), #("type", json.nullable(data.type_, json.string)), #( "secret_scanning_push_protection_enabled_for_new_repositories", json.nullable( data.secret_scanning_push_protection_enabled_for_new_repositories, json.bool, ), ), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "members_can_create_public_pages", json.nullable(data.members_can_create_public_pages, json.bool), ), #( "members_can_create_internal_repositories", json.nullable(data.members_can_create_internal_repositories, json.bool), ), #("email", json.nullable(data.email, json.string)), #("description", json.nullable(data.description, json.string)), #("company", json.nullable(data.company, json.string)), #("is_verified", json.nullable(data.is_verified, json.bool)), #( "advanced_security_enabled_for_new_repositories", json.nullable( data.advanced_security_enabled_for_new_repositories, json.bool, ), ), #("disk_usage", json.nullable(data.disk_usage, json.int)), ]) } pub fn organization_full_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use dependency_graph_enabled_for_new_repositories <- zero.optional_field( "dependency_graph_enabled_for_new_repositories", None, zero.optional(zero.bool), ) use has_organization_projects <- zero.optional_field( "has_organization_projects", None, zero.optional(zero.bool), ) use twitter_username <- zero.optional_field( "twitter_username", None, zero.optional(zero.string), ) use members_allowed_repository_creation_type <- zero.optional_field( "members_allowed_repository_creation_type", None, zero.optional(zero.string), ) use dependabot_security_updates_enabled_for_new_repositories <- zero.optional_field( "dependabot_security_updates_enabled_for_new_repositories", None, zero.optional(zero.bool), ) use blog <- zero.optional_field("blog", None, zero.optional(zero.string)) use default_repository_permission <- zero.optional_field( "default_repository_permission", None, zero.optional(zero.string), ) use secret_scanning_push_protection_custom_link <- zero.optional_field( "secret_scanning_push_protection_custom_link", None, zero.optional(zero.string), ) use two_factor_requirement_enabled <- zero.optional_field( "two_factor_requirement_enabled", None, zero.optional(zero.bool), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use has_repository_projects <- zero.optional_field( "has_repository_projects", None, zero.optional(zero.bool), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use secret_scanning_push_protection_custom_link_enabled <- zero.optional_field( "secret_scanning_push_protection_custom_link_enabled", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use total_private_repos <- zero.optional_field( "total_private_repos", None, zero.optional(zero.int), ) use owned_private_repos <- zero.optional_field( "owned_private_repos", None, zero.optional(zero.int), ) use public_repos <- zero.optional_field( "public_repos", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use members_can_fork_private_repositories <- zero.optional_field( "members_can_fork_private_repositories", None, zero.optional(zero.bool), ) use collaborators <- zero.optional_field( "collaborators", None, zero.optional(zero.int), ) use deploy_keys_enabled_for_repositories <- zero.optional_field( "deploy_keys_enabled_for_repositories", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use members_can_create_public_repositories <- zero.optional_field( "members_can_create_public_repositories", None, zero.optional(zero.bool), ) use archived_at <- zero.optional_field( "archived_at", None, zero.optional(zero.string), ) use following <- zero.optional_field( "following", None, zero.optional(zero.int), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use members_can_create_private_repositories <- zero.optional_field( "members_can_create_private_repositories", None, zero.optional(zero.bool), ) use public_members_url <- zero.optional_field( "public_members_url", None, zero.optional(zero.string), ) use private_gists <- zero.optional_field( "private_gists", None, zero.optional(zero.int), ) use followers <- zero.optional_field( "followers", None, zero.optional(zero.int), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use members_can_create_pages <- zero.optional_field( "members_can_create_pages", None, zero.optional(zero.bool), ) use dependabot_alerts_enabled_for_new_repositories <- zero.optional_field( "dependabot_alerts_enabled_for_new_repositories", None, zero.optional(zero.bool), ) use members_can_create_repositories <- zero.optional_field( "members_can_create_repositories", None, zero.optional(zero.bool), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use billing_email <- zero.optional_field( "billing_email", None, zero.optional(zero.string), ) use public_gists <- zero.optional_field( "public_gists", None, zero.optional(zero.int), ) use members_can_create_private_pages <- zero.optional_field( "members_can_create_private_pages", None, zero.optional(zero.bool), ) use secret_scanning_enabled_for_new_repositories <- zero.optional_field( "secret_scanning_enabled_for_new_repositories", None, zero.optional(zero.bool), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use secret_scanning_push_protection_enabled_for_new_repositories <- zero.optional_field( "secret_scanning_push_protection_enabled_for_new_repositories", None, zero.optional(zero.bool), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use members_can_create_public_pages <- zero.optional_field( "members_can_create_public_pages", None, zero.optional(zero.bool), ) use members_can_create_internal_repositories <- zero.optional_field( "members_can_create_internal_repositories", None, zero.optional(zero.bool), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use company <- zero.optional_field( "company", None, zero.optional(zero.string), ) use is_verified <- zero.optional_field( "is_verified", None, zero.optional(zero.bool), ) use advanced_security_enabled_for_new_repositories <- zero.optional_field( "advanced_security_enabled_for_new_repositories", None, zero.optional(zero.bool), ) use disk_usage <- zero.optional_field( "disk_usage", None, zero.optional(zero.int), ) zero.success(OrganizationFull( hooks_url: hooks_url, dependency_graph_enabled_for_new_repositories: dependency_graph_enabled_for_new_repositories, has_organization_projects: has_organization_projects, twitter_username: twitter_username, members_allowed_repository_creation_type: members_allowed_repository_creation_type, dependabot_security_updates_enabled_for_new_repositories: dependabot_security_updates_enabled_for_new_repositories, blog: blog, default_repository_permission: default_repository_permission, secret_scanning_push_protection_custom_link: secret_scanning_push_protection_custom_link, two_factor_requirement_enabled: two_factor_requirement_enabled, web_commit_signoff_required: web_commit_signoff_required, members_url: members_url, events_url: events_url, avatar_url: avatar_url, plan: plan, login: login, has_repository_projects: has_repository_projects, created_at: created_at, secret_scanning_push_protection_custom_link_enabled: secret_scanning_push_protection_custom_link_enabled, issues_url: issues_url, total_private_repos: total_private_repos, owned_private_repos: owned_private_repos, public_repos: public_repos, name: name, members_can_fork_private_repositories: members_can_fork_private_repositories, collaborators: collaborators, deploy_keys_enabled_for_repositories: deploy_keys_enabled_for_repositories, url: url, members_can_create_public_repositories: members_can_create_public_repositories, archived_at: archived_at, following: following, repos_url: repos_url, members_can_create_private_repositories: members_can_create_private_repositories, public_members_url: public_members_url, private_gists: private_gists, followers: followers, location: location, members_can_create_pages: members_can_create_pages, dependabot_alerts_enabled_for_new_repositories: dependabot_alerts_enabled_for_new_repositories, members_can_create_repositories: members_can_create_repositories, updated_at: updated_at, node_id: node_id, billing_email: billing_email, public_gists: public_gists, members_can_create_private_pages: members_can_create_private_pages, secret_scanning_enabled_for_new_repositories: secret_scanning_enabled_for_new_repositories, type_: type_, secret_scanning_push_protection_enabled_for_new_repositories: secret_scanning_push_protection_enabled_for_new_repositories, id: id, html_url: html_url, members_can_create_public_pages: members_can_create_public_pages, members_can_create_internal_repositories: members_can_create_internal_repositories, email: email, description: description, company: company, is_verified: is_verified, advanced_security_enabled_for_new_repositories: advanced_security_enabled_for_new_repositories, disk_usage: disk_usage, )) } pub fn code_scanning_analysis_tool_guid_decoder() { zero.string } pub fn alert_created_at_decoder() { zero.string } pub fn webhook_custom_property_updated_to_json( data: WebhookCustomPropertyUpdated, ) { json.object([ #("enterprise", json.null()), #("organization", json.null()), #("definition", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_custom_property_updated_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use definition <- zero.optional_field( "definition", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCustomPropertyUpdated( enterprise: enterprise, organization: organization, definition: definition, sender: sender, action: action, installation: installation, )) } pub fn reaction_to_json(data: Reaction) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("user", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("content", json.nullable(data.content, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn reaction_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use content <- zero.optional_field( "content", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(Reaction( created_at: created_at, user: user, node_id: node_id, content: content, id: id, )) } pub fn autolink_to_json(data: Autolink) { json.object([ #("is_alphanumeric", json.nullable(data.is_alphanumeric, json.bool)), #("url_template", json.nullable(data.url_template, json.string)), #("key_prefix", json.nullable(data.key_prefix, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn autolink_decoder() { use is_alphanumeric <- zero.optional_field( "is_alphanumeric", None, zero.optional(zero.bool), ) use url_template <- zero.optional_field( "url_template", None, zero.optional(zero.string), ) use key_prefix <- zero.optional_field( "key_prefix", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(Autolink( is_alphanumeric: is_alphanumeric, url_template: url_template, key_prefix: key_prefix, id: id, )) } pub fn webhooks_issue2_to_json(data: WebhooksIssue2) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("milestone", json.null()), #("timeline_url", json.nullable(data.timeline_url, json.string)), #("state", json.nullable(data.state, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("comments", json.nullable(data.comments, json.int)), #("pull_request", json.null()), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn webhooks_issue2_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksIssue2( draft: draft, body: body, assignees: assignees, comments_url: comments_url, closed_at: closed_at, events_url: events_url, number: number, created_at: created_at, locked: locked, reactions: reactions, user: user, author_association: author_association, labels_url: labels_url, url: url, assignee: assignee, milestone: milestone, timeline_url: timeline_url, state: state, state_reason: state_reason, comments: comments, pull_request: pull_request, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, title: title, repository_url: repository_url, id: id, html_url: html_url, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn actions_get_default_workflow_permissions_to_json( data: ActionsGetDefaultWorkflowPermissions, ) { json.object([ #( "default_workflow_permissions", json.nullable(data.default_workflow_permissions, json.string), ), #( "can_approve_pull_request_reviews", json.nullable(data.can_approve_pull_request_reviews, json.bool), ), ]) } pub fn actions_get_default_workflow_permissions_decoder() { use default_workflow_permissions <- zero.optional_field( "default_workflow_permissions", None, zero.optional(zero.string), ) use can_approve_pull_request_reviews <- zero.optional_field( "can_approve_pull_request_reviews", None, zero.optional(zero.bool), ) zero.success(ActionsGetDefaultWorkflowPermissions( default_workflow_permissions: default_workflow_permissions, can_approve_pull_request_reviews: can_approve_pull_request_reviews, )) } pub fn webhook_issues_transferred_to_json(data: WebhookIssuesTransferred) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_transferred_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesTransferred( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn enterprise_team_to_json(data: EnterpriseTeam) { json.object([ #( "sync_to_organizations", json.nullable(data.sync_to_organizations, json.string), ), #("members_url", json.nullable(data.members_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("group_id", json.nullable(data.group_id, json.string)), ]) } pub fn enterprise_team_decoder() { use sync_to_organizations <- zero.optional_field( "sync_to_organizations", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use group_id <- zero.optional_field( "group_id", None, zero.optional(zero.string), ) zero.success(EnterpriseTeam( sync_to_organizations: sync_to_organizations, members_url: members_url, created_at: created_at, name: name, slug: slug, url: url, updated_at: updated_at, id: id, html_url: html_url, group_id: group_id, )) } pub fn copilot_organization_details_to_json(data: CopilotOrganizationDetails) { json.object([ #("cli", json.nullable(data.cli, json.string)), #("platform_chat", json.nullable(data.platform_chat, json.string)), #("seat_breakdown", json.null()), #("ide_chat", json.nullable(data.ide_chat, json.string)), #( "seat_management_setting", json.nullable(data.seat_management_setting, json.string), ), #("plan_type", json.nullable(data.plan_type, json.string)), #( "public_code_suggestions", json.nullable(data.public_code_suggestions, json.string), ), ]) } pub fn copilot_organization_details_decoder() { use cli <- zero.optional_field("cli", None, zero.optional(zero.string)) use platform_chat <- zero.optional_field( "platform_chat", None, zero.optional(zero.string), ) use seat_breakdown <- zero.optional_field( "seat_breakdown", None, zero.optional(zero.success(Nil)), ) use ide_chat <- zero.optional_field( "ide_chat", None, zero.optional(zero.string), ) use seat_management_setting <- zero.optional_field( "seat_management_setting", None, zero.optional(zero.string), ) use plan_type <- zero.optional_field( "plan_type", None, zero.optional(zero.string), ) use public_code_suggestions <- zero.optional_field( "public_code_suggestions", None, zero.optional(zero.string), ) zero.success(CopilotOrganizationDetails( cli: cli, platform_chat: platform_chat, seat_breakdown: seat_breakdown, ide_chat: ide_chat, seat_management_setting: seat_management_setting, plan_type: plan_type, public_code_suggestions: public_code_suggestions, )) } pub fn issue_event_milestone_to_json(data: IssueEventMilestone) { json.object([#("title", json.nullable(data.title, json.string))]) } pub fn issue_event_milestone_decoder() { use title <- zero.optional_field("title", None, zero.optional(zero.string)) zero.success(IssueEventMilestone(title: title)) } pub fn webhooks_effective_date_decoder() { zero.string } pub fn code_security_configuration_to_json(data: CodeSecurityConfiguration) { json.object([ #("enforcement", json.nullable(data.enforcement, json.string)), #("secret_scanning", json.nullable(data.secret_scanning, json.string)), #( "secret_scanning_non_provider_patterns", json.nullable(data.secret_scanning_non_provider_patterns, json.string), ), #( "code_scanning_default_setup", json.nullable(data.code_scanning_default_setup, json.string), ), #("dependabot_alerts", json.nullable(data.dependabot_alerts, json.string)), #("secret_scanning_delegated_bypass_options", json.null()), #( "secret_scanning_delegated_bypass", json.nullable(data.secret_scanning_delegated_bypass, json.string), ), #("target_type", json.nullable(data.target_type, json.string)), #("dependency_graph_autosubmit_action_options", json.null()), #( "dependency_graph_autosubmit_action", json.nullable(data.dependency_graph_autosubmit_action, json.string), ), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #( "private_vulnerability_reporting", json.nullable(data.private_vulnerability_reporting, json.string), ), #("updated_at", json.nullable(data.updated_at, json.string)), #( "dependabot_security_updates", json.nullable(data.dependabot_security_updates, json.string), ), #( "secret_scanning_validity_checks", json.nullable(data.secret_scanning_validity_checks, json.string), ), #("dependency_graph", json.nullable(data.dependency_graph, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), #("advanced_security", json.nullable(data.advanced_security, json.string)), #( "secret_scanning_push_protection", json.nullable(data.secret_scanning_push_protection, json.string), ), ]) } pub fn code_security_configuration_decoder() { use enforcement <- zero.optional_field( "enforcement", None, zero.optional(zero.string), ) use secret_scanning <- zero.optional_field( "secret_scanning", None, zero.optional(zero.string), ) use secret_scanning_non_provider_patterns <- zero.optional_field( "secret_scanning_non_provider_patterns", None, zero.optional(zero.string), ) use code_scanning_default_setup <- zero.optional_field( "code_scanning_default_setup", None, zero.optional(zero.string), ) use dependabot_alerts <- zero.optional_field( "dependabot_alerts", None, zero.optional(zero.string), ) use secret_scanning_delegated_bypass_options <- zero.optional_field( "secret_scanning_delegated_bypass_options", None, zero.optional(zero.success(Nil)), ) use secret_scanning_delegated_bypass <- zero.optional_field( "secret_scanning_delegated_bypass", None, zero.optional(zero.string), ) use target_type <- zero.optional_field( "target_type", None, zero.optional(zero.string), ) use dependency_graph_autosubmit_action_options <- zero.optional_field( "dependency_graph_autosubmit_action_options", None, zero.optional(zero.success(Nil)), ) use dependency_graph_autosubmit_action <- zero.optional_field( "dependency_graph_autosubmit_action", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use private_vulnerability_reporting <- zero.optional_field( "private_vulnerability_reporting", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use dependabot_security_updates <- zero.optional_field( "dependabot_security_updates", None, zero.optional(zero.string), ) use secret_scanning_validity_checks <- zero.optional_field( "secret_scanning_validity_checks", None, zero.optional(zero.string), ) use dependency_graph <- zero.optional_field( "dependency_graph", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use advanced_security <- zero.optional_field( "advanced_security", None, zero.optional(zero.string), ) use secret_scanning_push_protection <- zero.optional_field( "secret_scanning_push_protection", None, zero.optional(zero.string), ) zero.success(CodeSecurityConfiguration( enforcement: enforcement, secret_scanning: secret_scanning, secret_scanning_non_provider_patterns: secret_scanning_non_provider_patterns, code_scanning_default_setup: code_scanning_default_setup, dependabot_alerts: dependabot_alerts, secret_scanning_delegated_bypass_options: secret_scanning_delegated_bypass_options, secret_scanning_delegated_bypass: secret_scanning_delegated_bypass, target_type: target_type, dependency_graph_autosubmit_action_options: dependency_graph_autosubmit_action_options, dependency_graph_autosubmit_action: dependency_graph_autosubmit_action, created_at: created_at, name: name, url: url, private_vulnerability_reporting: private_vulnerability_reporting, updated_at: updated_at, dependabot_security_updates: dependabot_security_updates, secret_scanning_validity_checks: secret_scanning_validity_checks, dependency_graph: dependency_graph, id: id, html_url: html_url, description: description, advanced_security: advanced_security, secret_scanning_push_protection: secret_scanning_push_protection, )) } pub fn webhooks_user_mannequin_to_json(data: WebhooksUserMannequin) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("deleted", json.nullable(data.deleted, json.bool)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn webhooks_user_mannequin_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use deleted <- zero.optional_field("deleted", None, zero.optional(zero.bool)) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(WebhooksUserMannequin( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, deleted: deleted, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn webhook_security_and_analysis_to_json(data: WebhookSecurityAndAnalysis) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), ]) } pub fn webhook_security_and_analysis_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecurityAndAnalysis( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, installation: installation, )) } pub fn content_traffic_to_json(data: ContentTraffic) { json.object([ #("uniques", json.nullable(data.uniques, json.int)), #("path", json.nullable(data.path_, json.string)), #("count", json.nullable(data.count, json.int)), #("title", json.nullable(data.title, json.string)), ]) } pub fn content_traffic_decoder() { use uniques <- zero.optional_field("uniques", None, zero.optional(zero.int)) use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use count <- zero.optional_field("count", None, zero.optional(zero.int)) use title <- zero.optional_field("title", None, zero.optional(zero.string)) zero.success(ContentTraffic( uniques: uniques, path_: path_, count: count, title: title, )) } pub fn webhook_pull_request_review_requested_decoder() { panic as "unsupported schema" } pub fn secret_scanning_push_protection_bypass_to_json( data: SecretScanningPushProtectionBypass, ) { json.object([ #("token_type", json.nullable(data.token_type, json.string)), #("reason", json.nullable(data.reason, json.string)), #("expire_at", json.nullable(data.expire_at, json.string)), ]) } pub fn secret_scanning_push_protection_bypass_decoder() { use token_type <- zero.optional_field( "token_type", None, zero.optional(zero.string), ) use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use expire_at <- zero.optional_field( "expire_at", None, zero.optional(zero.string), ) zero.success(SecretScanningPushProtectionBypass( token_type: token_type, reason: reason, expire_at: expire_at, )) } pub fn webhook_ping_to_json(data: WebhookPing) { json.object([ #("hook", json.null()), #("zen", json.nullable(data.zen, json.string)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("hook_id", json.nullable(data.hook_id, json.int)), ]) } pub fn webhook_ping_decoder() { use hook <- zero.optional_field( "hook", None, zero.optional(zero.success(Nil)), ) use zen <- zero.optional_field("zen", None, zero.optional(zero.string)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use hook_id <- zero.optional_field("hook_id", None, zero.optional(zero.int)) zero.success(WebhookPing( hook: hook, zen: zen, repository: repository, organization: organization, sender: sender, hook_id: hook_id, )) } pub fn webhook_secret_scanning_alert_validated_to_json( data: WebhookSecretScanningAlertValidated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_secret_scanning_alert_validated_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecretScanningAlertValidated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhooks_approver_to_json(data: WebhooksApprover) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_approver_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksApprover( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, )) } pub fn file_commit_to_json(data: FileCommit) { json.object([#("commit", json.null()), #("content", json.null())]) } pub fn file_commit_decoder() { use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use content <- zero.optional_field( "content", None, zero.optional(zero.success(Nil)), ) zero.success(FileCommit(commit: commit, content: content)) } pub fn webhook_rubygems_metadata_to_json(data: WebhookRubygemsMetadata) { json.object([ #("commit_oid", json.nullable(data.commit_oid, json.string)), #("dependencies", json.null()), #("name", json.nullable(data.name, json.string)), #("readme", json.nullable(data.readme, json.string)), #("homepage", json.nullable(data.homepage, json.string)), #("metadata", json.null()), #("repo", json.nullable(data.repo, json.string)), #("platform", json.nullable(data.platform, json.string)), #("version_info", json.null()), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhook_rubygems_metadata_decoder() { use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use dependencies <- zero.optional_field( "dependencies", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use readme <- zero.optional_field("readme", None, zero.optional(zero.string)) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.success(Nil)), ) use repo <- zero.optional_field("repo", None, zero.optional(zero.string)) use platform <- zero.optional_field( "platform", None, zero.optional(zero.string), ) use version_info <- zero.optional_field( "version_info", None, zero.optional(zero.success(Nil)), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhookRubygemsMetadata( commit_oid: commit_oid, dependencies: dependencies, name: name, readme: readme, homepage: homepage, metadata: metadata, repo: repo, platform: platform, version_info: version_info, description: description, )) } pub fn deployment_protection_rule_to_json(data: DeploymentProtectionRule) { json.object([ #("app", json.null()), #("enabled", json.nullable(data.enabled, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn deployment_protection_rule_decoder() { use app <- zero.optional_field("app", None, zero.optional(zero.success(Nil))) use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(DeploymentProtectionRule( app: app, enabled: enabled, node_id: node_id, id: id, )) } pub fn runner_groups_org_to_json(data: RunnerGroupsOrg) { json.object([ #("default", json.nullable(data.default, json.bool)), #( "allows_public_repositories", json.nullable(data.allows_public_repositories, json.bool), ), #("name", json.nullable(data.name, json.string)), #( "inherited_allows_public_repositories", json.nullable(data.inherited_allows_public_repositories, json.bool), ), #("selected_workflows", json.null()), #("visibility", json.nullable(data.visibility, json.string)), #("runners_url", json.nullable(data.runners_url, json.string)), #( "restricted_to_workflows", json.nullable(data.restricted_to_workflows, json.bool), ), #("inherited", json.nullable(data.inherited, json.bool)), #("id", json.nullable(data.id, json.float)), #("hosted_runners_url", json.nullable(data.hosted_runners_url, json.string)), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), #( "workflow_restrictions_read_only", json.nullable(data.workflow_restrictions_read_only, json.bool), ), ]) } pub fn runner_groups_org_decoder() { use default <- zero.optional_field("default", None, zero.optional(zero.bool)) use allows_public_repositories <- zero.optional_field( "allows_public_repositories", None, zero.optional(zero.bool), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use inherited_allows_public_repositories <- zero.optional_field( "inherited_allows_public_repositories", None, zero.optional(zero.bool), ) use selected_workflows <- zero.optional_field( "selected_workflows", None, zero.optional(zero.list(zero.string)), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use runners_url <- zero.optional_field( "runners_url", None, zero.optional(zero.string), ) use restricted_to_workflows <- zero.optional_field( "restricted_to_workflows", None, zero.optional(zero.bool), ) use inherited <- zero.optional_field( "inherited", None, zero.optional(zero.bool), ) use id <- zero.optional_field("id", None, zero.optional(zero.float)) use hosted_runners_url <- zero.optional_field( "hosted_runners_url", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) use workflow_restrictions_read_only <- zero.optional_field( "workflow_restrictions_read_only", None, zero.optional(zero.bool), ) zero.success(RunnerGroupsOrg( default: default, allows_public_repositories: allows_public_repositories, name: name, inherited_allows_public_repositories: inherited_allows_public_repositories, selected_workflows: selected_workflows, visibility: visibility, runners_url: runners_url, restricted_to_workflows: restricted_to_workflows, inherited: inherited, id: id, hosted_runners_url: hosted_runners_url, selected_repositories_url: selected_repositories_url, workflow_restrictions_read_only: workflow_restrictions_read_only, )) } pub fn repo_codespaces_secret_to_json(data: RepoCodespacesSecret) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), ]) } pub fn repo_codespaces_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) zero.success(RepoCodespacesSecret( created_at: created_at, name: name, updated_at: updated_at, )) } pub fn enterprise_webhooks_to_json(data: EnterpriseWebhooks) { json.object([ #("avatar_url", json.nullable(data.avatar_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("website_url", json.nullable(data.website_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn enterprise_webhooks_decoder() { use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use website_url <- zero.optional_field( "website_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(EnterpriseWebhooks( avatar_url: avatar_url, created_at: created_at, name: name, slug: slug, website_url: website_url, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, description: description, )) } pub fn nullable_integration_to_json(data: NullableIntegration) { json.object([ #("permissions", json.null()), #("client_secret", json.nullable(data.client_secret, json.string)), #("installations_count", json.nullable(data.installations_count, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("client_id", json.nullable(data.client_id, json.string)), #("owner", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("pem", json.nullable(data.pem, json.string)), #("webhook_secret", json.nullable(data.webhook_secret, json.string)), #("events", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("external_url", json.nullable(data.external_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn nullable_integration_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use client_secret <- zero.optional_field( "client_secret", None, zero.optional(zero.string), ) use installations_count <- zero.optional_field( "installations_count", None, zero.optional(zero.int), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use client_id <- zero.optional_field( "client_id", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use pem <- zero.optional_field("pem", None, zero.optional(zero.string)) use webhook_secret <- zero.optional_field( "webhook_secret", None, zero.optional(zero.string), ) use events <- zero.optional_field( "events", None, zero.optional(zero.list(zero.string)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use external_url <- zero.optional_field( "external_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(NullableIntegration( permissions: permissions, client_secret: client_secret, installations_count: installations_count, created_at: created_at, name: name, slug: slug, client_id: client_id, owner: owner, updated_at: updated_at, node_id: node_id, pem: pem, webhook_secret: webhook_secret, events: events, id: id, html_url: html_url, external_url: external_url, description: description, )) } pub fn full_repository_to_json(data: FullRepository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("custom_properties", json.null()), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("allow_update_branch", json.nullable(data.allow_update_branch, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("security_and_analysis", json.null()), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #( "squash_merge_commit_message", json.nullable(data.squash_merge_commit_message, json.string), ), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #( "merge_commit_message", json.nullable(data.merge_commit_message, json.string), ), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("parent", json.null()), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("code_of_conduct", json.null()), #("allow_squash_merge", json.nullable(data.allow_squash_merge, json.bool)), #("homepage", json.nullable(data.homepage, json.string)), #("template_repository", json.null()), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #( "use_squash_pr_title_as_default", json.nullable(data.use_squash_pr_title_as_default, json.bool), ), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("allow_rebase_merge", json.nullable(data.allow_rebase_merge, json.bool)), #("organization", json.null()), #("owner", json.null()), #("allow_merge_commit", json.nullable(data.allow_merge_commit, json.bool)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #( "squash_merge_commit_title", json.nullable(data.squash_merge_commit_title, json.string), ), #("merge_commit_title", json.nullable(data.merge_commit_title, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #( "anonymous_access_enabled", json.nullable(data.anonymous_access_enabled, json.bool), ), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("source", json.null()), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("subscribers_count", json.nullable(data.subscribers_count, json.int)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("allow_auto_merge", json.nullable(data.allow_auto_merge, json.bool)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("network_count", json.nullable(data.network_count, json.int)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("master_branch", json.nullable(data.master_branch, json.string)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn full_repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use custom_properties <- zero.optional_field( "custom_properties", None, zero.optional(zero.success(Nil)), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use allow_update_branch <- zero.optional_field( "allow_update_branch", None, zero.optional(zero.bool), ) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use security_and_analysis <- zero.optional_field( "security_and_analysis", None, zero.optional(zero.success(Nil)), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use squash_merge_commit_message <- zero.optional_field( "squash_merge_commit_message", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use merge_commit_message <- zero.optional_field( "merge_commit_message", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use parent <- zero.optional_field( "parent", None, zero.optional(zero.success(Nil)), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use code_of_conduct <- zero.optional_field( "code_of_conduct", None, zero.optional(zero.success(Nil)), ) use allow_squash_merge <- zero.optional_field( "allow_squash_merge", None, zero.optional(zero.bool), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use template_repository <- zero.optional_field( "template_repository", None, zero.optional(zero.success(Nil)), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use use_squash_pr_title_as_default <- zero.optional_field( "use_squash_pr_title_as_default", None, zero.optional(zero.bool), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use allow_rebase_merge <- zero.optional_field( "allow_rebase_merge", None, zero.optional(zero.bool), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use allow_merge_commit <- zero.optional_field( "allow_merge_commit", None, zero.optional(zero.bool), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use squash_merge_commit_title <- zero.optional_field( "squash_merge_commit_title", None, zero.optional(zero.string), ) use merge_commit_title <- zero.optional_field( "merge_commit_title", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use anonymous_access_enabled <- zero.optional_field( "anonymous_access_enabled", None, zero.optional(zero.bool), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use source <- zero.optional_field( "source", None, zero.optional(zero.success(Nil)), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use subscribers_count <- zero.optional_field( "subscribers_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use allow_auto_merge <- zero.optional_field( "allow_auto_merge", None, zero.optional(zero.bool), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use network_count <- zero.optional_field( "network_count", None, zero.optional(zero.int), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use master_branch <- zero.optional_field( "master_branch", None, zero.optional(zero.string), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(FullRepository( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, custom_properties: custom_properties, forks_count: forks_count, fork: fork, allow_update_branch: allow_update_branch, git_url: git_url, archived: archived, private: private, security_and_analysis: security_and_analysis, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, squash_merge_commit_message: squash_merge_commit_message, has_discussions: has_discussions, teams_url: teams_url, merge_commit_message: merge_commit_message, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, parent: parent, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, code_of_conduct: code_of_conduct, allow_squash_merge: allow_squash_merge, homepage: homepage, template_repository: template_repository, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, use_squash_pr_title_as_default: use_squash_pr_title_as_default, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, allow_rebase_merge: allow_rebase_merge, organization: organization, owner: owner, allow_merge_commit: allow_merge_commit, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, squash_merge_commit_title: squash_merge_commit_title, merge_commit_title: merge_commit_title, updated_at: updated_at, watchers: watchers, node_id: node_id, anonymous_access_enabled: anonymous_access_enabled, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, source: source, subscribers_url: subscribers_url, subscribers_count: subscribers_count, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, allow_auto_merge: allow_auto_merge, pulls_url: pulls_url, network_count: network_count, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, master_branch: master_branch, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn webhook_repository_unarchived_to_json(data: WebhookRepositoryUnarchived) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_unarchived_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryUnarchived( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn simple_classroom_organization_to_json(data: SimpleClassroomOrganization) { json.object([ #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn simple_classroom_organization_decoder() { use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(SimpleClassroomOrganization( avatar_url: avatar_url, login: login, name: name, node_id: node_id, id: id, html_url: html_url, )) } pub fn webhook_projects_v2_item_archived_to_json( data: WebhookProjectsV2ItemArchived, ) { json.object([ #("changes", json.null()), #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_archived_decoder() { use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemArchived( changes: changes, projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn dependency_graph_spdx_sbom_to_json(data: DependencyGraphSpdxSbom) { json.object([#("sbom", json.null())]) } pub fn dependency_graph_spdx_sbom_decoder() { use sbom <- zero.optional_field( "sbom", None, zero.optional(zero.success(Nil)), ) zero.success(DependencyGraphSpdxSbom(sbom: sbom)) } pub fn alert_dismissed_at_decoder() { zero.string } pub fn org_ruleset_conditions_to_json(data: OrgRulesetConditions) { json.object([]) } pub fn org_ruleset_conditions_decoder() { zero.success(OrgRulesetConditions) } pub fn discussion_to_json(data: Discussion) { json.object([ #("body", json.nullable(data.body, json.string)), #("answer_chosen_by", json.null()), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("locked", json.nullable(data.locked, json.bool)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("timeline_url", json.nullable(data.timeline_url, json.string)), #("state", json.nullable(data.state, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("comments", json.nullable(data.comments, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("answer_html_url", json.nullable(data.answer_html_url, json.string)), #("category", json.null()), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("answer_chosen_at", json.nullable(data.answer_chosen_at, json.string)), #("labels", json.null()), ]) } pub fn discussion_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use answer_chosen_by <- zero.optional_field( "answer_chosen_by", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use timeline_url <- zero.optional_field( "timeline_url", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use answer_html_url <- zero.optional_field( "answer_html_url", None, zero.optional(zero.string), ) use category <- zero.optional_field( "category", None, zero.optional(zero.success(Nil)), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use answer_chosen_at <- zero.optional_field( "answer_chosen_at", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(Discussion( body: body, answer_chosen_by: answer_chosen_by, number: number, created_at: created_at, locked: locked, reactions: reactions, user: user, author_association: author_association, timeline_url: timeline_url, state: state, state_reason: state_reason, comments: comments, updated_at: updated_at, node_id: node_id, title: title, repository_url: repository_url, id: id, html_url: html_url, answer_html_url: answer_html_url, category: category, active_lock_reason: active_lock_reason, answer_chosen_at: answer_chosen_at, labels: labels, )) } pub fn webhook_status_to_json(data: WebhookStatus) { json.object([ #("target_url", json.nullable(data.target_url, json.string)), #("enterprise", json.null()), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("name", json.nullable(data.name, json.string)), #("sha", json.nullable(data.sha, json.string)), #("context", json.nullable(data.context, json.string)), #("branches", json.null()), #("state", json.nullable(data.state, json.string)), #("organization", json.null()), #("sender", json.null()), #("commit", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("installation", json.null()), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhook_status_decoder() { use target_url <- zero.optional_field( "target_url", None, zero.optional(zero.string), ) use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use context <- zero.optional_field( "context", None, zero.optional(zero.string), ) use branches <- zero.optional_field( "branches", None, zero.optional(zero.success(Nil)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use commit <- zero.optional_field( "commit", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhookStatus( target_url: target_url, enterprise: enterprise, avatar_url: avatar_url, created_at: created_at, repository: repository, name: name, sha: sha, context: context, branches: branches, state: state, organization: organization, sender: sender, commit: commit, updated_at: updated_at, installation: installation, id: id, description: description, )) } pub fn webhook_meta_deleted_to_json(data: WebhookMetaDeleted) { json.object([ #("enterprise", json.null()), #("hook", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("hook_id", json.nullable(data.hook_id, json.int)), #("installation", json.null()), ]) } pub fn webhook_meta_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use hook <- zero.optional_field( "hook", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use hook_id <- zero.optional_field("hook_id", None, zero.optional(zero.int)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMetaDeleted( enterprise: enterprise, hook: hook, repository: repository, organization: organization, sender: sender, action: action, hook_id: hook_id, installation: installation, )) } pub fn webhook_security_advisory_withdrawn_to_json( data: WebhookSecurityAdvisoryWithdrawn, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("security_advisory", json.null()), #("installation", json.null()), ]) } pub fn webhook_security_advisory_withdrawn_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use security_advisory <- zero.optional_field( "security_advisory", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecurityAdvisoryWithdrawn( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, security_advisory: security_advisory, installation: installation, )) } pub fn oidc_custom_sub_repo_to_json(data: OidcCustomSubRepo) { json.object([ #("use_default", json.nullable(data.use_default, json.bool)), #("include_claim_keys", json.null()), ]) } pub fn oidc_custom_sub_repo_decoder() { use use_default <- zero.optional_field( "use_default", None, zero.optional(zero.bool), ) use include_claim_keys <- zero.optional_field( "include_claim_keys", None, zero.optional(zero.list(zero.string)), ) zero.success(OidcCustomSubRepo( use_default: use_default, include_claim_keys: include_claim_keys, )) } pub fn webhook_team_add_to_json(data: WebhookTeamAdd) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), #("team", json.null()), ]) } pub fn webhook_team_add_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookTeamAdd( enterprise: enterprise, repository: repository, organization: organization, sender: sender, installation: installation, team: team, )) } pub fn webhook_branch_protection_rule_deleted_to_json( data: WebhookBranchProtectionRuleDeleted, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("rule", json.null()), ]) } pub fn webhook_branch_protection_rule_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use rule <- zero.optional_field( "rule", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookBranchProtectionRuleDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, rule: rule, )) } pub fn webhook_discussion_pinned_to_json(data: WebhookDiscussionPinned) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_pinned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionPinned( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn assigned_issue_event_to_json(data: AssignedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), #("assigner", json.null()), ]) } pub fn assigned_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use assigner <- zero.optional_field( "assigner", None, zero.optional(zero.success(Nil)), ) zero.success(AssignedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, assignee: assignee, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, assigner: assigner, )) } pub fn pull_request_to_json(data: PullRequest) { json.object([ #("head", json.null()), #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assignees", json.null()), #("comments_url", json.nullable(data.comments_url, json.string)), #("mergeable_state", json.nullable(data.mergeable_state, json.string)), #("requested_teams", json.null()), #("deletions", json.nullable(data.deletions, json.int)), #("merged_at", json.nullable(data.merged_at, json.string)), #("closed_at", json.nullable(data.closed_at, json.string)), #("review_comment_url", json.nullable(data.review_comment_url, json.string)), #("auto_merge", json.null()), #("issue_url", json.nullable(data.issue_url, json.string)), #("number", json.nullable(data.number, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("merged_by", json.null()), #("locked", json.nullable(data.locked, json.bool)), #("merge_commit_sha", json.nullable(data.merge_commit_sha, json.string)), #( "review_comments_url", json.nullable(data.review_comments_url, json.string), ), #("user", json.null()), #("commits_url", json.nullable(data.commits_url, json.string)), #("changed_files", json.nullable(data.changed_files, json.int)), #("merged", json.nullable(data.merged, json.bool)), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("milestone", json.null()), #( "maintainer_can_modify", json.nullable(data.maintainer_can_modify, json.bool), ), #("state", json.nullable(data.state, json.string)), #("base", json.null()), #("mergeable", json.nullable(data.mergeable, json.bool)), #("comments", json.nullable(data.comments, json.int)), #("diff_url", json.nullable(data.diff_url, json.string)), #("additions", json.nullable(data.additions, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("patch_url", json.nullable(data.patch_url, json.string)), #("title", json.nullable(data.title, json.string)), #("_links", json.null()), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("review_comments", json.nullable(data.review_comments, json.int)), #("commits", json.nullable(data.commits, json.int)), #("requested_reviewers", json.null()), #("rebaseable", json.nullable(data.rebaseable, json.bool)), #("active_lock_reason", json.nullable(data.active_lock_reason, json.string)), #("labels", json.null()), ]) } pub fn pull_request_decoder() { use head <- zero.optional_field( "head", None, zero.optional(zero.success(Nil)), ) use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assignees <- zero.optional_field( "assignees", None, zero.optional(zero.success(Nil)), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use mergeable_state <- zero.optional_field( "mergeable_state", None, zero.optional(zero.string), ) use requested_teams <- zero.optional_field( "requested_teams", None, zero.optional(zero.success(Nil)), ) use deletions <- zero.optional_field( "deletions", None, zero.optional(zero.int), ) use merged_at <- zero.optional_field( "merged_at", None, zero.optional(zero.string), ) use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use review_comment_url <- zero.optional_field( "review_comment_url", None, zero.optional(zero.string), ) use auto_merge <- zero.optional_field( "auto_merge", None, zero.optional(zero.success(Nil)), ) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use merged_by <- zero.optional_field( "merged_by", None, zero.optional(zero.success(Nil)), ) use locked <- zero.optional_field("locked", None, zero.optional(zero.bool)) use merge_commit_sha <- zero.optional_field( "merge_commit_sha", None, zero.optional(zero.string), ) use review_comments_url <- zero.optional_field( "review_comments_url", None, zero.optional(zero.string), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use changed_files <- zero.optional_field( "changed_files", None, zero.optional(zero.int), ) use merged <- zero.optional_field("merged", None, zero.optional(zero.bool)) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use maintainer_can_modify <- zero.optional_field( "maintainer_can_modify", None, zero.optional(zero.bool), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use base_ <- zero.optional_field( "base", None, zero.optional(zero.success(Nil)), ) use mergeable <- zero.optional_field( "mergeable", None, zero.optional(zero.bool), ) use comments <- zero.optional_field("comments", None, zero.optional(zero.int)) use diff_url <- zero.optional_field( "diff_url", None, zero.optional(zero.string), ) use additions <- zero.optional_field( "additions", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use patch_url <- zero.optional_field( "patch_url", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use review_comments <- zero.optional_field( "review_comments", None, zero.optional(zero.int), ) use commits <- zero.optional_field("commits", None, zero.optional(zero.int)) use requested_reviewers <- zero.optional_field( "requested_reviewers", None, zero.optional(zero.success(Nil)), ) use rebaseable <- zero.optional_field( "rebaseable", None, zero.optional(zero.bool), ) use active_lock_reason <- zero.optional_field( "active_lock_reason", None, zero.optional(zero.string), ) use labels <- zero.optional_field( "labels", None, zero.optional(zero.success(Nil)), ) zero.success(PullRequest( head: head, draft: draft, body: body, assignees: assignees, comments_url: comments_url, mergeable_state: mergeable_state, requested_teams: requested_teams, deletions: deletions, merged_at: merged_at, closed_at: closed_at, review_comment_url: review_comment_url, auto_merge: auto_merge, issue_url: issue_url, number: number, created_at: created_at, merged_by: merged_by, locked: locked, merge_commit_sha: merge_commit_sha, review_comments_url: review_comments_url, user: user, commits_url: commits_url, changed_files: changed_files, merged: merged, author_association: author_association, url: url, assignee: assignee, statuses_url: statuses_url, milestone: milestone, maintainer_can_modify: maintainer_can_modify, state: state, base_: base_, mergeable: mergeable, comments: comments, diff_url: diff_url, additions: additions, updated_at: updated_at, node_id: node_id, patch_url: patch_url, title: title, links: links, id: id, html_url: html_url, review_comments: review_comments, commits: commits, requested_reviewers: requested_reviewers, rebaseable: rebaseable, active_lock_reason: active_lock_reason, labels: labels, )) } pub fn combined_billing_usage_to_json(data: CombinedBillingUsage) { json.object([ #( "estimated_storage_for_month", json.nullable(data.estimated_storage_for_month, json.int), ), #( "estimated_paid_storage_for_month", json.nullable(data.estimated_paid_storage_for_month, json.int), ), #( "days_left_in_billing_cycle", json.nullable(data.days_left_in_billing_cycle, json.int), ), ]) } pub fn combined_billing_usage_decoder() { use estimated_storage_for_month <- zero.optional_field( "estimated_storage_for_month", None, zero.optional(zero.int), ) use estimated_paid_storage_for_month <- zero.optional_field( "estimated_paid_storage_for_month", None, zero.optional(zero.int), ) use days_left_in_billing_cycle <- zero.optional_field( "days_left_in_billing_cycle", None, zero.optional(zero.int), ) zero.success(CombinedBillingUsage( estimated_storage_for_month: estimated_storage_for_month, estimated_paid_storage_for_month: estimated_paid_storage_for_month, days_left_in_billing_cycle: days_left_in_billing_cycle, )) } pub fn secret_scanning_alert_webhook_to_json(data: SecretScanningAlertWebhook) { json.object([ #( "push_protection_bypass_request_html_url", json.nullable(data.push_protection_bypass_request_html_url, json.string), ), #( "push_protection_bypassed", json.nullable(data.push_protection_bypassed, json.bool), ), #("number", json.nullable(data.number, json.int)), #("secret_type", json.nullable(data.secret_type, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #( "push_protection_bypassed_at", json.nullable(data.push_protection_bypassed_at, json.string), ), #("push_protection_bypass_request_reviewer", json.null()), #("publicly_leaked", json.nullable(data.publicly_leaked, json.bool)), #("resolution", json.nullable(data.resolution, json.string)), #("resolution_comment", json.nullable(data.resolution_comment, json.string)), #("locations_url", json.nullable(data.locations_url, json.string)), #("push_protection_bypassed_by", json.null()), #("url", json.nullable(data.url, json.string)), #("validity", json.nullable(data.validity, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("multi_repo", json.nullable(data.multi_repo, json.bool)), #( "push_protection_bypass_request_comment", json.nullable(data.push_protection_bypass_request_comment, json.string), ), #("resolved_at", json.nullable(data.resolved_at, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #( "secret_type_display_name", json.nullable(data.secret_type_display_name, json.string), ), #("resolved_by", json.null()), ]) } pub fn secret_scanning_alert_webhook_decoder() { use push_protection_bypass_request_html_url <- zero.optional_field( "push_protection_bypass_request_html_url", None, zero.optional(zero.string), ) use push_protection_bypassed <- zero.optional_field( "push_protection_bypassed", None, zero.optional(zero.bool), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use secret_type <- zero.optional_field( "secret_type", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use push_protection_bypassed_at <- zero.optional_field( "push_protection_bypassed_at", None, zero.optional(zero.string), ) use push_protection_bypass_request_reviewer <- zero.optional_field( "push_protection_bypass_request_reviewer", None, zero.optional(zero.success(Nil)), ) use publicly_leaked <- zero.optional_field( "publicly_leaked", None, zero.optional(zero.bool), ) use resolution <- zero.optional_field( "resolution", None, zero.optional(zero.string), ) use resolution_comment <- zero.optional_field( "resolution_comment", None, zero.optional(zero.string), ) use locations_url <- zero.optional_field( "locations_url", None, zero.optional(zero.string), ) use push_protection_bypassed_by <- zero.optional_field( "push_protection_bypassed_by", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use validity <- zero.optional_field( "validity", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use multi_repo <- zero.optional_field( "multi_repo", None, zero.optional(zero.bool), ) use push_protection_bypass_request_comment <- zero.optional_field( "push_protection_bypass_request_comment", None, zero.optional(zero.string), ) use resolved_at <- zero.optional_field( "resolved_at", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use secret_type_display_name <- zero.optional_field( "secret_type_display_name", None, zero.optional(zero.string), ) use resolved_by <- zero.optional_field( "resolved_by", None, zero.optional(zero.success(Nil)), ) zero.success(SecretScanningAlertWebhook( push_protection_bypass_request_html_url: push_protection_bypass_request_html_url, push_protection_bypassed: push_protection_bypassed, number: number, secret_type: secret_type, created_at: created_at, push_protection_bypassed_at: push_protection_bypassed_at, push_protection_bypass_request_reviewer: push_protection_bypass_request_reviewer, publicly_leaked: publicly_leaked, resolution: resolution, resolution_comment: resolution_comment, locations_url: locations_url, push_protection_bypassed_by: push_protection_bypassed_by, url: url, validity: validity, updated_at: updated_at, multi_repo: multi_repo, push_protection_bypass_request_comment: push_protection_bypass_request_comment, resolved_at: resolved_at, html_url: html_url, secret_type_display_name: secret_type_display_name, resolved_by: resolved_by, )) } pub fn classroom_assignment_to_json(data: ClassroomAssignment) { json.object([ #( "feedback_pull_requests_enabled", json.nullable(data.feedback_pull_requests_enabled, json.bool), ), #("accepted", json.nullable(data.accepted, json.int)), #("public_repo", json.nullable(data.public_repo, json.bool)), #("slug", json.nullable(data.slug, json.string)), #("starter_code_repository", json.null()), #("editor", json.nullable(data.editor, json.string)), #("invite_link", json.nullable(data.invite_link, json.string)), #("passing", json.nullable(data.passing, json.int)), #("classroom", json.null()), #("title", json.nullable(data.title, json.string)), #("deadline", json.nullable(data.deadline, json.string)), #("language", json.nullable(data.language, json.string)), #("type", json.nullable(data.type_, json.string)), #("submitted", json.nullable(data.submitted, json.int)), #("id", json.nullable(data.id, json.int)), #("max_teams", json.nullable(data.max_teams, json.int)), #("invitations_enabled", json.nullable(data.invitations_enabled, json.bool)), #("max_members", json.nullable(data.max_members, json.int)), #( "students_are_repo_admins", json.nullable(data.students_are_repo_admins, json.bool), ), ]) } pub fn classroom_assignment_decoder() { use feedback_pull_requests_enabled <- zero.optional_field( "feedback_pull_requests_enabled", None, zero.optional(zero.bool), ) use accepted <- zero.optional_field("accepted", None, zero.optional(zero.int)) use public_repo <- zero.optional_field( "public_repo", None, zero.optional(zero.bool), ) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use starter_code_repository <- zero.optional_field( "starter_code_repository", None, zero.optional(zero.success(Nil)), ) use editor <- zero.optional_field("editor", None, zero.optional(zero.string)) use invite_link <- zero.optional_field( "invite_link", None, zero.optional(zero.string), ) use passing <- zero.optional_field("passing", None, zero.optional(zero.int)) use classroom <- zero.optional_field( "classroom", None, zero.optional(zero.success(Nil)), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use deadline <- zero.optional_field( "deadline", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use submitted <- zero.optional_field( "submitted", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use max_teams <- zero.optional_field( "max_teams", None, zero.optional(zero.int), ) use invitations_enabled <- zero.optional_field( "invitations_enabled", None, zero.optional(zero.bool), ) use max_members <- zero.optional_field( "max_members", None, zero.optional(zero.int), ) use students_are_repo_admins <- zero.optional_field( "students_are_repo_admins", None, zero.optional(zero.bool), ) zero.success(ClassroomAssignment( feedback_pull_requests_enabled: feedback_pull_requests_enabled, accepted: accepted, public_repo: public_repo, slug: slug, starter_code_repository: starter_code_repository, editor: editor, invite_link: invite_link, passing: passing, classroom: classroom, title: title, deadline: deadline, language: language, type_: type_, submitted: submitted, id: id, max_teams: max_teams, invitations_enabled: invitations_enabled, max_members: max_members, students_are_repo_admins: students_are_repo_admins, )) } pub fn webhook_installation_target_renamed_to_json( data: WebhookInstallationTargetRenamed, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("target_type", json.nullable(data.target_type, json.string)), #("repository", json.null()), #("account", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_installation_target_renamed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use target_type <- zero.optional_field( "target_type", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationTargetRenamed( enterprise: enterprise, changes: changes, target_type: target_type, repository: repository, account: account, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn nullable_codespace_machine_to_json(data: NullableCodespaceMachine) { json.object([ #("display_name", json.nullable(data.display_name, json.string)), #("name", json.nullable(data.name, json.string)), #("cpus", json.nullable(data.cpus, json.int)), #("operating_system", json.nullable(data.operating_system, json.string)), #("memory_in_bytes", json.nullable(data.memory_in_bytes, json.int)), #( "prebuild_availability", json.nullable(data.prebuild_availability, json.string), ), #("storage_in_bytes", json.nullable(data.storage_in_bytes, json.int)), ]) } pub fn nullable_codespace_machine_decoder() { use display_name <- zero.optional_field( "display_name", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use cpus <- zero.optional_field("cpus", None, zero.optional(zero.int)) use operating_system <- zero.optional_field( "operating_system", None, zero.optional(zero.string), ) use memory_in_bytes <- zero.optional_field( "memory_in_bytes", None, zero.optional(zero.int), ) use prebuild_availability <- zero.optional_field( "prebuild_availability", None, zero.optional(zero.string), ) use storage_in_bytes <- zero.optional_field( "storage_in_bytes", None, zero.optional(zero.int), ) zero.success(NullableCodespaceMachine( display_name: display_name, name: name, cpus: cpus, operating_system: operating_system, memory_in_bytes: memory_in_bytes, prebuild_availability: prebuild_availability, storage_in_bytes: storage_in_bytes, )) } pub fn release_notes_content_to_json(data: ReleaseNotesContent) { json.object([ #("body", json.nullable(data.body, json.string)), #("name", json.nullable(data.name, json.string)), ]) } pub fn release_notes_content_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) zero.success(ReleaseNotesContent(body: body, name: name)) } pub fn moved_column_in_project_issue_event_to_json( data: MovedColumnInProjectIssueEvent, ) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("project_card", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn moved_column_in_project_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(MovedColumnInProjectIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, actor: actor, performed_via_github_app: performed_via_github_app, project_card: project_card, node_id: node_id, event: event, id: id, )) } pub fn webhook_custom_property_deleted_to_json( data: WebhookCustomPropertyDeleted, ) { json.object([ #("enterprise", json.null()), #("organization", json.null()), #("definition", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_custom_property_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use definition <- zero.optional_field( "definition", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCustomPropertyDeleted( enterprise: enterprise, organization: organization, definition: definition, sender: sender, action: action, installation: installation, )) } pub fn webhook_check_run_created_form_encoded_to_json( data: WebhookCheckRunCreatedFormEncoded, ) { json.object([#("payload", json.nullable(data.payload, json.string))]) } pub fn webhook_check_run_created_form_encoded_decoder() { use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) zero.success(WebhookCheckRunCreatedFormEncoded(payload: payload)) } pub fn rule_suite_to_json(data: RuleSuite) { json.object([ #("repository_name", json.nullable(data.repository_name, json.string)), #("evaluation_result", json.nullable(data.evaluation_result, json.string)), #("actor_id", json.nullable(data.actor_id, json.int)), #("after_sha", json.nullable(data.after_sha, json.string)), #("before_sha", json.nullable(data.before_sha, json.string)), #("repository_id", json.nullable(data.repository_id, json.int)), #("ref", json.nullable(data.ref, json.string)), #("rule_evaluations", json.null()), #("actor_name", json.nullable(data.actor_name, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("id", json.nullable(data.id, json.int)), #("result", json.nullable(data.result, json.string)), ]) } pub fn rule_suite_decoder() { use repository_name <- zero.optional_field( "repository_name", None, zero.optional(zero.string), ) use evaluation_result <- zero.optional_field( "evaluation_result", None, zero.optional(zero.string), ) use actor_id <- zero.optional_field("actor_id", None, zero.optional(zero.int)) use after_sha <- zero.optional_field( "after_sha", None, zero.optional(zero.string), ) use before_sha <- zero.optional_field( "before_sha", None, zero.optional(zero.string), ) use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.int), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use rule_evaluations <- zero.optional_field( "rule_evaluations", None, zero.optional(zero.success(Nil)), ) use actor_name <- zero.optional_field( "actor_name", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use result <- zero.optional_field("result", None, zero.optional(zero.string)) zero.success(RuleSuite( repository_name: repository_name, evaluation_result: evaluation_result, actor_id: actor_id, after_sha: after_sha, before_sha: before_sha, repository_id: repository_id, ref: ref, rule_evaluations: rule_evaluations, actor_name: actor_name, pushed_at: pushed_at, id: id, result: result, )) } pub fn review_custom_gates_state_required_to_json( data: ReviewCustomGatesStateRequired, ) { json.object([ #("state", json.nullable(data.state, json.string)), #("environment_name", json.nullable(data.environment_name, json.string)), #("comment", json.nullable(data.comment, json.string)), ]) } pub fn review_custom_gates_state_required_decoder() { use state <- zero.optional_field("state", None, zero.optional(zero.string)) use environment_name <- zero.optional_field( "environment_name", None, zero.optional(zero.string), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.string), ) zero.success(ReviewCustomGatesStateRequired( state: state, environment_name: environment_name, comment: comment, )) } pub fn webhook_issues_locked_to_json(data: WebhookIssuesLocked) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_locked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesLocked( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_repository_advisory_published_to_json( data: WebhookRepositoryAdvisoryPublished, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("repository_advisory", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_advisory_published_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use repository_advisory <- zero.optional_field( "repository_advisory", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryAdvisoryPublished( enterprise: enterprise, repository: repository, repository_advisory: repository_advisory, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn release_to_json(data: Release) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assets", json.null()), #("prerelease", json.nullable(data.prerelease, json.bool)), #("published_at", json.nullable(data.published_at, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("reactions", json.null()), #("author", json.null()), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("tag_name", json.nullable(data.tag_name, json.string)), #("zipball_url", json.nullable(data.zipball_url, json.string)), #("upload_url", json.nullable(data.upload_url, json.string)), #("assets_url", json.nullable(data.assets_url, json.string)), #("tarball_url", json.nullable(data.tarball_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("discussion_url", json.nullable(data.discussion_url, json.string)), #("mentions_count", json.nullable(data.mentions_count, json.int)), #("target_commitish", json.nullable(data.target_commitish, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn release_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assets <- zero.optional_field( "assets", None, zero.optional(zero.success(Nil)), ) use prerelease <- zero.optional_field( "prerelease", None, zero.optional(zero.bool), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use tag_name <- zero.optional_field( "tag_name", None, zero.optional(zero.string), ) use zipball_url <- zero.optional_field( "zipball_url", None, zero.optional(zero.string), ) use upload_url <- zero.optional_field( "upload_url", None, zero.optional(zero.string), ) use assets_url <- zero.optional_field( "assets_url", None, zero.optional(zero.string), ) use tarball_url <- zero.optional_field( "tarball_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use discussion_url <- zero.optional_field( "discussion_url", None, zero.optional(zero.string), ) use mentions_count <- zero.optional_field( "mentions_count", None, zero.optional(zero.int), ) use target_commitish <- zero.optional_field( "target_commitish", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(Release( draft: draft, body: body, assets: assets, prerelease: prerelease, published_at: published_at, body_html: body_html, created_at: created_at, body_text: body_text, reactions: reactions, author: author, name: name, url: url, tag_name: tag_name, zipball_url: zipball_url, upload_url: upload_url, assets_url: assets_url, tarball_url: tarball_url, node_id: node_id, discussion_url: discussion_url, mentions_count: mentions_count, target_commitish: target_commitish, id: id, html_url: html_url, )) } pub fn repository_rule_workflows_to_json(data: RepositoryRuleWorkflows) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_workflows_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleWorkflows(parameters: parameters, type_: type_)) } pub fn webhook_discussion_comment_edited_to_json( data: WebhookDiscussionCommentEdited, ) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_discussion_comment_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionCommentEdited( enterprise: enterprise, changes: changes, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, comment: comment, )) } pub fn webhook_installation_unsuspend_to_json( data: WebhookInstallationUnsuspend, ) { json.object([ #("enterprise", json.null()), #("repositories", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_installation_unsuspend_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookInstallationUnsuspend( enterprise: enterprise, repositories: repositories, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_pull_request_review_comment_deleted_to_json( data: WebhookPullRequestReviewCommentDeleted, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_pull_request_review_comment_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewCommentDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, comment: comment, )) } pub fn webhook_sponsorship_pending_cancellation_to_json( data: WebhookSponsorshipPendingCancellation, ) { json.object([ #("enterprise", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("sponsorship", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_sponsorship_pending_cancellation_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use sponsorship <- zero.optional_field( "sponsorship", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSponsorshipPendingCancellation( enterprise: enterprise, effective_date: effective_date, repository: repository, organization: organization, sender: sender, sponsorship: sponsorship, action: action, installation: installation, )) } pub fn webhook_repository_publicized_to_json(data: WebhookRepositoryPublicized) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_publicized_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryPublicized( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn simple_user_to_json(data: SimpleUser) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("starred_at", json.nullable(data.starred_at, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn simple_user_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(SimpleUser( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, starred_at: starred_at, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn webhook_milestone_deleted_to_json(data: WebhookMilestoneDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_milestone_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMilestoneDeleted( enterprise: enterprise, repository: repository, milestone: milestone, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repository_rule_required_status_checks_to_json( data: RepositoryRuleRequiredStatusChecks, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_required_status_checks_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleRequiredStatusChecks( parameters: parameters, type_: type_, )) } pub fn webhook_page_build_to_json(data: WebhookPageBuild) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("build", json.null()), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), #("id", json.nullable(data.id, json.int)), ]) } pub fn webhook_page_build_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use build <- zero.optional_field( "build", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(WebhookPageBuild( enterprise: enterprise, repository: repository, build: build, organization: organization, sender: sender, installation: installation, id: id, )) } pub fn organization_actions_variable_to_json(data: OrganizationActionsVariable) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("value", json.nullable(data.value, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), ]) } pub fn organization_actions_variable_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use value <- zero.optional_field("value", None, zero.optional(zero.string)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) zero.success(OrganizationActionsVariable( created_at: created_at, name: name, value: value, visibility: visibility, updated_at: updated_at, selected_repositories_url: selected_repositories_url, )) } pub fn deployment_branch_policy_name_pattern_to_json( data: DeploymentBranchPolicyNamePattern, ) { json.object([#("name", json.nullable(data.name, json.string))]) } pub fn deployment_branch_policy_name_pattern_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) zero.success(DeploymentBranchPolicyNamePattern(name: name)) } pub fn projects_v2_status_update_to_json(data: ProjectsV2StatusUpdate) { json.object([ #("body", json.nullable(data.body, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("start_date", json.nullable(data.start_date, json.string)), #("creator", json.null()), #("project_node_id", json.nullable(data.project_node_id, json.string)), #("status", json.nullable(data.status, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.float)), #("target_date", json.nullable(data.target_date, json.string)), ]) } pub fn projects_v2_status_update_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use start_date <- zero.optional_field( "start_date", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use project_node_id <- zero.optional_field( "project_node_id", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.float)) use target_date <- zero.optional_field( "target_date", None, zero.optional(zero.string), ) zero.success(ProjectsV2StatusUpdate( body: body, created_at: created_at, start_date: start_date, creator: creator, project_node_id: project_node_id, status: status, updated_at: updated_at, node_id: node_id, id: id, target_date: target_date, )) } pub fn webhook_project_card_deleted_to_json(data: WebhookProjectCardDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("project_card", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_project_card_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectCardDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, project_card: project_card, action: action, installation: installation, )) } pub fn webhook_issues_opened_to_json(data: WebhookIssuesOpened) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_opened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesOpened( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_projects_v2_status_update_edited_to_json( data: WebhookProjectsV2StatusUpdateEdited, ) { json.object([ #("changes", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("projects_v2_status_update", json.null()), #("installation", json.null()), ]) } pub fn webhook_projects_v2_status_update_edited_decoder() { use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use projects_v2_status_update <- zero.optional_field( "projects_v2_status_update", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2StatusUpdateEdited( changes: changes, organization: organization, sender: sender, action: action, projects_v2_status_update: projects_v2_status_update, installation: installation, )) } pub fn webhook_team_removed_from_repository_to_json( data: WebhookTeamRemovedFromRepository, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("team", json.null()), ]) } pub fn webhook_team_removed_from_repository_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookTeamRemovedFromRepository( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, team: team, )) } pub fn webhook_member_edited_to_json(data: WebhookMemberEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("member", json.null()), ]) } pub fn webhook_member_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use member <- zero.optional_field( "member", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMemberEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, member: member, )) } pub fn webhook_issues_edited_to_json(data: WebhookIssuesEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, label: label, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn review_request_removed_issue_event_to_json( data: ReviewRequestRemovedIssueEvent, ) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("requested_team", json.null()), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("review_requester", json.null()), #("requested_reviewer", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn review_request_removed_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use requested_team <- zero.optional_field( "requested_team", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use review_requester <- zero.optional_field( "review_requester", None, zero.optional(zero.success(Nil)), ) use requested_reviewer <- zero.optional_field( "requested_reviewer", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ReviewRequestRemovedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, requested_team: requested_team, url: url, actor: actor, performed_via_github_app: performed_via_github_app, review_requester: review_requester, requested_reviewer: requested_reviewer, node_id: node_id, event: event, id: id, )) } pub fn webhook_project_column_moved_to_json(data: WebhookProjectColumnMoved) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("project_column", json.null()), ]) } pub fn webhook_project_column_moved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use project_column <- zero.optional_field( "project_column", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectColumnMoved( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, project_column: project_column, )) } pub fn team_membership_to_json(data: TeamMembership) { json.object([ #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("role", json.nullable(data.role, json.string)), ]) } pub fn team_membership_decoder() { use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use role <- zero.optional_field("role", None, zero.optional(zero.string)) zero.success(TeamMembership(url: url, state: state, role: role)) } pub fn webhook_project_reopened_to_json(data: WebhookProjectReopened) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("project", json.null()), #("installation", json.null()), ]) } pub fn webhook_project_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use project <- zero.optional_field( "project", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectReopened( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, project: project, installation: installation, )) } pub fn code_scanning_alert_environment_decoder() { zero.string } pub fn dependency_graph_diff_decoder() { panic as "unsupported schema" } pub fn issue_event_to_json(data: IssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("author_association", json.nullable(data.author_association, json.string)), #("requested_team", json.null()), #("dismissed_review", json.null()), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("milestone", json.null()), #("label", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("review_requester", json.null()), #("project_card", json.null()), #("requested_reviewer", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("lock_reason", json.nullable(data.lock_reason, json.string)), #("issue", json.null()), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), #("assigner", json.null()), #("rename", json.null()), ]) } pub fn issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use requested_team <- zero.optional_field( "requested_team", None, zero.optional(zero.success(Nil)), ) use dismissed_review <- zero.optional_field( "dismissed_review", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use review_requester <- zero.optional_field( "review_requester", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use requested_reviewer <- zero.optional_field( "requested_reviewer", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use lock_reason <- zero.optional_field( "lock_reason", None, zero.optional(zero.string), ) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use assigner <- zero.optional_field( "assigner", None, zero.optional(zero.success(Nil)), ) use rename <- zero.optional_field( "rename", None, zero.optional(zero.success(Nil)), ) zero.success(IssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, author_association: author_association, requested_team: requested_team, dismissed_review: dismissed_review, url: url, assignee: assignee, milestone: milestone, label: label, actor: actor, performed_via_github_app: performed_via_github_app, review_requester: review_requester, project_card: project_card, requested_reviewer: requested_reviewer, node_id: node_id, lock_reason: lock_reason, issue: issue, event: event, id: id, assigner: assigner, rename: rename, )) } pub fn installation_token_to_json(data: InstallationToken) { json.object([ #("single_file_paths", json.null()), #("permissions", json.null()), #("repositories", json.null()), #( "has_multiple_single_files", json.nullable(data.has_multiple_single_files, json.bool), ), #("single_file", json.nullable(data.single_file, json.string)), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("token", json.nullable(data.token_, json.string)), #("expires_at", json.nullable(data.expires_at, json.string)), ]) } pub fn installation_token_decoder() { use single_file_paths <- zero.optional_field( "single_file_paths", None, zero.optional(zero.list(zero.string)), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use has_multiple_single_files <- zero.optional_field( "has_multiple_single_files", None, zero.optional(zero.bool), ) use single_file <- zero.optional_field( "single_file", None, zero.optional(zero.string), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use token_ <- zero.optional_field("token", None, zero.optional(zero.string)) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) zero.success(InstallationToken( single_file_paths: single_file_paths, permissions: permissions, repositories: repositories, has_multiple_single_files: has_multiple_single_files, single_file: single_file, repository_selection: repository_selection, token_: token_, expires_at: expires_at, )) } pub fn check_run_to_json(data: CheckRun) { json.object([ #("output", json.null()), #("check_suite", json.null()), #("app", json.null()), #("deployment", json.null()), #("completed_at", json.nullable(data.completed_at, json.string)), #("name", json.nullable(data.name, json.string)), #("head_sha", json.nullable(data.head_sha, json.string)), #("url", json.nullable(data.url, json.string)), #("external_id", json.nullable(data.external_id, json.string)), #("started_at", json.nullable(data.started_at, json.string)), #("details_url", json.nullable(data.details_url, json.string)), #("status", json.nullable(data.status, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("pull_requests", json.null()), #("conclusion", json.nullable(data.conclusion, json.string)), ]) } pub fn check_run_decoder() { use output <- zero.optional_field( "output", None, zero.optional(zero.success(Nil)), ) use check_suite <- zero.optional_field( "check_suite", None, zero.optional(zero.success(Nil)), ) use app <- zero.optional_field("app", None, zero.optional(zero.success(Nil))) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use completed_at <- zero.optional_field( "completed_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use head_sha <- zero.optional_field( "head_sha", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use external_id <- zero.optional_field( "external_id", None, zero.optional(zero.string), ) use started_at <- zero.optional_field( "started_at", None, zero.optional(zero.string), ) use details_url <- zero.optional_field( "details_url", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use pull_requests <- zero.optional_field( "pull_requests", None, zero.optional(zero.success(Nil)), ) use conclusion <- zero.optional_field( "conclusion", None, zero.optional(zero.string), ) zero.success(CheckRun( output: output, check_suite: check_suite, app: app, deployment: deployment, completed_at: completed_at, name: name, head_sha: head_sha, url: url, external_id: external_id, started_at: started_at, details_url: details_url, status: status, node_id: node_id, id: id, html_url: html_url, pull_requests: pull_requests, conclusion: conclusion, )) } pub fn package_to_json(data: Package) { json.object([ #("version_count", json.nullable(data.version_count, json.int)), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("owner", json.null()), #("package_type", json.nullable(data.package_type, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn package_decoder() { use version_count <- zero.optional_field( "version_count", None, zero.optional(zero.int), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use package_type <- zero.optional_field( "package_type", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(Package( version_count: version_count, created_at: created_at, repository: repository, name: name, url: url, visibility: visibility, owner: owner, package_type: package_type, updated_at: updated_at, id: id, html_url: html_url, )) } pub fn nullable_simple_commit_to_json(data: NullableSimpleCommit) { json.object([ #("message", json.nullable(data.message, json.string)), #("committer", json.null()), #("author", json.null()), #("timestamp", json.nullable(data.timestamp, json.string)), #("id", json.nullable(data.id, json.string)), #("tree_id", json.nullable(data.tree_id, json.string)), ]) } pub fn nullable_simple_commit_decoder() { use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use committer <- zero.optional_field( "committer", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use timestamp <- zero.optional_field( "timestamp", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use tree_id <- zero.optional_field( "tree_id", None, zero.optional(zero.string), ) zero.success(NullableSimpleCommit( message: message, committer: committer, author: author, timestamp: timestamp, id: id, tree_id: tree_id, )) } pub fn secret_scanning_alert_resolution_webhook_decoder() { zero.string } pub fn collaborator_to_json(data: Collaborator) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("permissions", json.null()), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("role_name", json.nullable(data.role_name, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn collaborator_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use role_name <- zero.optional_field( "role_name", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(Collaborator( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, permissions: permissions, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, url: url, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, role_name: role_name, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn community_profile_to_json(data: CommunityProfile) { json.object([ #("updated_at", json.nullable(data.updated_at, json.string)), #("files", json.null()), #("documentation", json.nullable(data.documentation, json.string)), #( "content_reports_enabled", json.nullable(data.content_reports_enabled, json.bool), ), #("description", json.nullable(data.description, json.string)), #("health_percentage", json.nullable(data.health_percentage, json.int)), ]) } pub fn community_profile_decoder() { use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use files <- zero.optional_field( "files", None, zero.optional(zero.success(Nil)), ) use documentation <- zero.optional_field( "documentation", None, zero.optional(zero.string), ) use content_reports_enabled <- zero.optional_field( "content_reports_enabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use health_percentage <- zero.optional_field( "health_percentage", None, zero.optional(zero.int), ) zero.success(CommunityProfile( updated_at: updated_at, files: files, documentation: documentation, content_reports_enabled: content_reports_enabled, description: description, health_percentage: health_percentage, )) } pub fn import__to_json(data: Import) { json.object([ #("push_percent", json.nullable(data.push_percent, json.int)), #("svc_root", json.nullable(data.svc_root, json.string)), #("use_lfs", json.nullable(data.use_lfs, json.bool)), #("large_files_count", json.nullable(data.large_files_count, json.int)), #("vcs", json.nullable(data.vcs, json.string)), #("message", json.nullable(data.message, json.string)), #("commit_count", json.nullable(data.commit_count, json.int)), #("import_percent", json.nullable(data.import_percent, json.int)), #("project_choices", json.null()), #("large_files_size", json.nullable(data.large_files_size, json.int)), #("failed_step", json.nullable(data.failed_step, json.string)), #("has_large_files", json.nullable(data.has_large_files, json.bool)), #("url", json.nullable(data.url, json.string)), #("error_message", json.nullable(data.error_message, json.string)), #("status", json.nullable(data.status, json.string)), #("vcs_url", json.nullable(data.vcs_url, json.string)), #("svn_root", json.nullable(data.svn_root, json.string)), #("authors_url", json.nullable(data.authors_url, json.string)), #("authors_count", json.nullable(data.authors_count, json.int)), #("tfvc_project", json.nullable(data.tfvc_project, json.string)), #("status_text", json.nullable(data.status_text, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn import__decoder() { use push_percent <- zero.optional_field( "push_percent", None, zero.optional(zero.int), ) use svc_root <- zero.optional_field( "svc_root", None, zero.optional(zero.string), ) use use_lfs <- zero.optional_field("use_lfs", None, zero.optional(zero.bool)) use large_files_count <- zero.optional_field( "large_files_count", None, zero.optional(zero.int), ) use vcs <- zero.optional_field("vcs", None, zero.optional(zero.string)) use message <- zero.optional_field( "message", None, zero.optional(zero.string), ) use commit_count <- zero.optional_field( "commit_count", None, zero.optional(zero.int), ) use import_percent <- zero.optional_field( "import_percent", None, zero.optional(zero.int), ) use project_choices <- zero.optional_field( "project_choices", None, zero.optional(zero.success(Nil)), ) use large_files_size <- zero.optional_field( "large_files_size", None, zero.optional(zero.int), ) use failed_step <- zero.optional_field( "failed_step", None, zero.optional(zero.string), ) use has_large_files <- zero.optional_field( "has_large_files", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use error_message <- zero.optional_field( "error_message", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use vcs_url <- zero.optional_field( "vcs_url", None, zero.optional(zero.string), ) use svn_root <- zero.optional_field( "svn_root", None, zero.optional(zero.string), ) use authors_url <- zero.optional_field( "authors_url", None, zero.optional(zero.string), ) use authors_count <- zero.optional_field( "authors_count", None, zero.optional(zero.int), ) use tfvc_project <- zero.optional_field( "tfvc_project", None, zero.optional(zero.string), ) use status_text <- zero.optional_field( "status_text", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(Import( push_percent: push_percent, svc_root: svc_root, use_lfs: use_lfs, large_files_count: large_files_count, vcs: vcs, message: message, commit_count: commit_count, import_percent: import_percent, project_choices: project_choices, large_files_size: large_files_size, failed_step: failed_step, has_large_files: has_large_files, url: url, error_message: error_message, status: status, vcs_url: vcs_url, svn_root: svn_root, authors_url: authors_url, authors_count: authors_count, tfvc_project: tfvc_project, status_text: status_text, repository_url: repository_url, html_url: html_url, )) } pub fn copilot_usage_metrics_day_to_json(data: CopilotUsageMetricsDay) { json.object([ #("copilot_ide_chat", json.null()), #("total_active_users", json.nullable(data.total_active_users, json.int)), #("copilot_dotcom_pull_requests", json.null()), #("copilot_dotcom_chat", json.null()), #("copilot_ide_code_completions", json.null()), #("date", json.nullable(data.date, json.string)), #("total_engaged_users", json.nullable(data.total_engaged_users, json.int)), ]) } pub fn copilot_usage_metrics_day_decoder() { use copilot_ide_chat <- zero.optional_field( "copilot_ide_chat", None, zero.optional(zero.success(Nil)), ) use total_active_users <- zero.optional_field( "total_active_users", None, zero.optional(zero.int), ) use copilot_dotcom_pull_requests <- zero.optional_field( "copilot_dotcom_pull_requests", None, zero.optional(zero.success(Nil)), ) use copilot_dotcom_chat <- zero.optional_field( "copilot_dotcom_chat", None, zero.optional(zero.success(Nil)), ) use copilot_ide_code_completions <- zero.optional_field( "copilot_ide_code_completions", None, zero.optional(zero.success(Nil)), ) use date <- zero.optional_field("date", None, zero.optional(zero.string)) use total_engaged_users <- zero.optional_field( "total_engaged_users", None, zero.optional(zero.int), ) zero.success(CopilotUsageMetricsDay( copilot_ide_chat: copilot_ide_chat, total_active_users: total_active_users, copilot_dotcom_pull_requests: copilot_dotcom_pull_requests, copilot_dotcom_chat: copilot_dotcom_chat, copilot_ide_code_completions: copilot_ide_code_completions, date: date, total_engaged_users: total_engaged_users, )) } pub fn repository_rule_commit_author_email_pattern_to_json( data: RepositoryRuleCommitAuthorEmailPattern, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_commit_author_email_pattern_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleCommitAuthorEmailPattern( parameters: parameters, type_: type_, )) } pub fn user_marketplace_purchase_to_json(data: UserMarketplacePurchase) { json.object([ #("billing_cycle", json.nullable(data.billing_cycle, json.string)), #("on_free_trial", json.nullable(data.on_free_trial, json.bool)), #("plan", json.null()), #("free_trial_ends_on", json.nullable(data.free_trial_ends_on, json.string)), #("account", json.null()), #("unit_count", json.nullable(data.unit_count, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("next_billing_date", json.nullable(data.next_billing_date, json.string)), ]) } pub fn user_marketplace_purchase_decoder() { use billing_cycle <- zero.optional_field( "billing_cycle", None, zero.optional(zero.string), ) use on_free_trial <- zero.optional_field( "on_free_trial", None, zero.optional(zero.bool), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use free_trial_ends_on <- zero.optional_field( "free_trial_ends_on", None, zero.optional(zero.string), ) use account <- zero.optional_field( "account", None, zero.optional(zero.success(Nil)), ) use unit_count <- zero.optional_field( "unit_count", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use next_billing_date <- zero.optional_field( "next_billing_date", None, zero.optional(zero.string), ) zero.success(UserMarketplacePurchase( billing_cycle: billing_cycle, on_free_trial: on_free_trial, plan: plan, free_trial_ends_on: free_trial_ends_on, account: account, unit_count: unit_count, updated_at: updated_at, next_billing_date: next_billing_date, )) } pub fn dependabot_alert_with_repository_to_json( data: DependabotAlertWithRepository, ) { json.object([ #("dismissed_comment", json.nullable(data.dismissed_comment, json.string)), #("number", json.nullable(data.number, json.int)), #("dismissed_at", json.nullable(data.dismissed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("repository", json.null()), #("dependency", json.null()), #("dismissed_by", json.null()), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("security_advisory", json.null()), #("auto_dismissed_at", json.nullable(data.auto_dismissed_at, json.string)), #("dismissed_reason", json.nullable(data.dismissed_reason, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("security_vulnerability", json.null()), #("fixed_at", json.nullable(data.fixed_at, json.string)), ]) } pub fn dependabot_alert_with_repository_decoder() { use dismissed_comment <- zero.optional_field( "dismissed_comment", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use dismissed_at <- zero.optional_field( "dismissed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use dependency <- zero.optional_field( "dependency", None, zero.optional(zero.success(Nil)), ) use dismissed_by <- zero.optional_field( "dismissed_by", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use security_advisory <- zero.optional_field( "security_advisory", None, zero.optional(zero.success(Nil)), ) use auto_dismissed_at <- zero.optional_field( "auto_dismissed_at", None, zero.optional(zero.string), ) use dismissed_reason <- zero.optional_field( "dismissed_reason", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use security_vulnerability <- zero.optional_field( "security_vulnerability", None, zero.optional(zero.success(Nil)), ) use fixed_at <- zero.optional_field( "fixed_at", None, zero.optional(zero.string), ) zero.success(DependabotAlertWithRepository( dismissed_comment: dismissed_comment, number: number, dismissed_at: dismissed_at, created_at: created_at, repository: repository, dependency: dependency, dismissed_by: dismissed_by, url: url, state: state, updated_at: updated_at, security_advisory: security_advisory, auto_dismissed_at: auto_dismissed_at, dismissed_reason: dismissed_reason, html_url: html_url, security_vulnerability: security_vulnerability, fixed_at: fixed_at, )) } pub fn commit_activity_to_json(data: CommitActivity) { json.object([ #("total", json.nullable(data.total, json.int)), #("week", json.nullable(data.week, json.int)), #("days", json.null()), ]) } pub fn commit_activity_decoder() { use total <- zero.optional_field("total", None, zero.optional(zero.int)) use week <- zero.optional_field("week", None, zero.optional(zero.int)) use days <- zero.optional_field( "days", None, zero.optional(zero.success(Nil)), ) zero.success(CommitActivity(total: total, week: week, days: days)) } pub fn webhook_merge_group_checks_requested_to_json( data: WebhookMergeGroupChecksRequested, ) { json.object([ #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("merge_group", json.null()), #("installation", json.null()), ]) } pub fn webhook_merge_group_checks_requested_decoder() { use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use merge_group <- zero.optional_field( "merge_group", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMergeGroupChecksRequested( repository: repository, organization: organization, sender: sender, action: action, merge_group: merge_group, installation: installation, )) } pub fn deployment_to_json(data: Deployment) { json.object([ #( "original_environment", json.nullable(data.original_environment, json.string), ), #("task", json.nullable(data.task, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("sha", json.nullable(data.sha, json.string)), #( "production_environment", json.nullable(data.production_environment, json.bool), ), #("payload", json.null()), #("url", json.nullable(data.url, json.string)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("ref", json.nullable(data.ref, json.string)), #("environment", json.nullable(data.environment, json.string)), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), #( "transient_environment", json.nullable(data.transient_environment, json.bool), ), ]) } pub fn deployment_decoder() { use original_environment <- zero.optional_field( "original_environment", None, zero.optional(zero.string), ) use task <- zero.optional_field("task", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use production_environment <- zero.optional_field( "production_environment", None, zero.optional(zero.bool), ) use payload <- zero.optional_field( "payload", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use transient_environment <- zero.optional_field( "transient_environment", None, zero.optional(zero.bool), ) zero.success(Deployment( original_environment: original_environment, task: task, created_at: created_at, creator: creator, sha: sha, production_environment: production_environment, payload: payload, url: url, statuses_url: statuses_url, ref: ref, environment: environment, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, repository_url: repository_url, id: id, description: description, transient_environment: transient_environment, )) } pub fn webhook_release_edited_to_json(data: WebhookReleaseEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleaseEdited( enterprise: enterprise, changes: changes, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_config_secret_decoder() { zero.string } pub fn webhook_discussion_unanswered_to_json(data: WebhookDiscussionUnanswered) { json.object([ #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("old_answer", json.null()), #("action", json.nullable(data.action, json.string)), ]) } pub fn webhook_discussion_unanswered_decoder() { use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use old_answer <- zero.optional_field( "old_answer", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) zero.success(WebhookDiscussionUnanswered( discussion: discussion, repository: repository, organization: organization, sender: sender, old_answer: old_answer, action: action, )) } pub fn simple_repository_to_json(data: SimpleRepository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("forks_url", json.nullable(data.forks_url, json.string)), #("fork", json.nullable(data.fork, json.bool)), #("private", json.nullable(data.private, json.bool)), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("trees_url", json.nullable(data.trees_url, json.string)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #("teams_url", json.nullable(data.teams_url, json.string)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("archive_url", json.nullable(data.archive_url, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("owner", json.null()), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("id", json.nullable(data.id, json.int)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), ]) } pub fn simple_repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) zero.success(SimpleRepository( hooks_url: hooks_url, branches_url: branches_url, forks_url: forks_url, fork: fork, private: private, keys_url: keys_url, comments_url: comments_url, trees_url: trees_url, blobs_url: blobs_url, teams_url: teams_url, stargazers_url: stargazers_url, contributors_url: contributors_url, tags_url: tags_url, issue_comment_url: issue_comment_url, events_url: events_url, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, commits_url: commits_url, subscription_url: subscription_url, issue_events_url: issue_events_url, labels_url: labels_url, url: url, statuses_url: statuses_url, archive_url: archive_url, milestones_url: milestones_url, owner: owner, assignees_url: assignees_url, compare_url: compare_url, git_tags_url: git_tags_url, node_id: node_id, notifications_url: notifications_url, downloads_url: downloads_url, subscribers_url: subscribers_url, id: id, full_name: full_name, html_url: html_url, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, pulls_url: pulls_url, deployments_url: deployments_url, git_commits_url: git_commits_url, )) } pub fn issue_event_rename_to_json(data: IssueEventRename) { json.object([ #("from", json.nullable(data.from, json.string)), #("to", json.nullable(data.to, json.string)), ]) } pub fn issue_event_rename_decoder() { use from <- zero.optional_field("from", None, zero.optional(zero.string)) use to <- zero.optional_field("to", None, zero.optional(zero.string)) zero.success(IssueEventRename(from: from, to: to)) } pub fn webhook_repository_ruleset_deleted_to_json( data: WebhookRepositoryRulesetDeleted, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("repository_ruleset", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_repository_ruleset_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use repository_ruleset <- zero.optional_field( "repository_ruleset", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookRepositoryRulesetDeleted( enterprise: enterprise, repository: repository, repository_ruleset: repository_ruleset, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_variant_analysis_language_decoder() { zero.string } pub fn webhook_pull_request_demilestoned_to_json( data: WebhookPullRequestDemilestoned, ) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), ]) } pub fn webhook_pull_request_demilestoned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) zero.success(WebhookPullRequestDemilestoned( enterprise: enterprise, number: number, repository: repository, milestone: milestone, organization: organization, sender: sender, pull_request: pull_request, action: action, )) } pub fn code_scanning_ref_full_decoder() { zero.string } pub fn secret_scanning_location_pull_request_review_to_json( data: SecretScanningLocationPullRequestReview, ) { json.object([ #( "pull_request_review_url", json.nullable(data.pull_request_review_url, json.string), ), ]) } pub fn secret_scanning_location_pull_request_review_decoder() { use pull_request_review_url <- zero.optional_field( "pull_request_review_url", None, zero.optional(zero.string), ) zero.success(SecretScanningLocationPullRequestReview( pull_request_review_url: pull_request_review_url, )) } pub fn webhook_code_scanning_alert_created_to_json( data: WebhookCodeScanningAlertCreated, ) { json.object([ #("enterprise", json.null()), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_code_scanning_alert_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCodeScanningAlertCreated( enterprise: enterprise, commit_oid: commit_oid, repository: repository, ref: ref, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhook_workflow_job_waiting_to_json(data: WebhookWorkflowJobWaiting) { json.object([ #("enterprise", json.null()), #("deployment", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow_job", json.null()), ]) } pub fn webhook_workflow_job_waiting_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow_job <- zero.optional_field( "workflow_job", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowJobWaiting( enterprise: enterprise, deployment: deployment, repository: repository, organization: organization, sender: sender, action: action, installation: installation, workflow_job: workflow_job, )) } pub fn state_change_issue_event_to_json(data: StateChangeIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("state_reason", json.nullable(data.state_reason, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn state_change_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state_reason <- zero.optional_field( "state_reason", None, zero.optional(zero.string), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(StateChangeIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, state_reason: state_reason, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, )) } pub fn code_frequency_stat_decoder() { zero.list(zero.int) } pub fn branch_protection_to_json(data: BranchProtection) { json.object([ #("allow_fork_syncing", json.null()), #("enforce_admins", json.null()), #("enabled", json.nullable(data.enabled, json.bool)), #("block_creations", json.null()), #("restrictions", json.null()), #("required_conversation_resolution", json.null()), #("protection_url", json.nullable(data.protection_url, json.string)), #("name", json.nullable(data.name, json.string)), #("allow_deletions", json.null()), #("url", json.nullable(data.url, json.string)), #("required_pull_request_reviews", json.null()), #("allow_force_pushes", json.null()), #("lock_branch", json.null()), #("required_status_checks", json.null()), #("required_linear_history", json.null()), #("required_signatures", json.null()), ]) } pub fn branch_protection_decoder() { use allow_fork_syncing <- zero.optional_field( "allow_fork_syncing", None, zero.optional(zero.success(Nil)), ) use enforce_admins <- zero.optional_field( "enforce_admins", None, zero.optional(zero.success(Nil)), ) use enabled <- zero.optional_field("enabled", None, zero.optional(zero.bool)) use block_creations <- zero.optional_field( "block_creations", None, zero.optional(zero.success(Nil)), ) use restrictions <- zero.optional_field( "restrictions", None, zero.optional(zero.success(Nil)), ) use required_conversation_resolution <- zero.optional_field( "required_conversation_resolution", None, zero.optional(zero.success(Nil)), ) use protection_url <- zero.optional_field( "protection_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use allow_deletions <- zero.optional_field( "allow_deletions", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use required_pull_request_reviews <- zero.optional_field( "required_pull_request_reviews", None, zero.optional(zero.success(Nil)), ) use allow_force_pushes <- zero.optional_field( "allow_force_pushes", None, zero.optional(zero.success(Nil)), ) use lock_branch <- zero.optional_field( "lock_branch", None, zero.optional(zero.success(Nil)), ) use required_status_checks <- zero.optional_field( "required_status_checks", None, zero.optional(zero.success(Nil)), ) use required_linear_history <- zero.optional_field( "required_linear_history", None, zero.optional(zero.success(Nil)), ) use required_signatures <- zero.optional_field( "required_signatures", None, zero.optional(zero.success(Nil)), ) zero.success(BranchProtection( allow_fork_syncing: allow_fork_syncing, enforce_admins: enforce_admins, enabled: enabled, block_creations: block_creations, restrictions: restrictions, required_conversation_resolution: required_conversation_resolution, protection_url: protection_url, name: name, allow_deletions: allow_deletions, url: url, required_pull_request_reviews: required_pull_request_reviews, allow_force_pushes: allow_force_pushes, lock_branch: lock_branch, required_status_checks: required_status_checks, required_linear_history: required_linear_history, required_signatures: required_signatures, )) } pub fn webhook_release_prereleased_to_json(data: WebhookReleasePrereleased) { json.object([ #("enterprise", json.null()), #("release", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_release_prereleased_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use release <- zero.optional_field( "release", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookReleasePrereleased( enterprise: enterprise, release: release, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn webhook_personal_access_token_request_created_to_json( data: WebhookPersonalAccessTokenRequestCreated, ) { json.object([ #("enterprise", json.null()), #("personal_access_token_request", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_personal_access_token_request_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use personal_access_token_request <- zero.optional_field( "personal_access_token_request", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPersonalAccessTokenRequestCreated( enterprise: enterprise, personal_access_token_request: personal_access_token_request, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_codeql_database_to_json(data: CodeScanningCodeqlDatabase) { json.object([ #("content_type", json.nullable(data.content_type, json.string)), #("size", json.nullable(data.size, json.int)), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("uploader", json.null()), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("language", json.nullable(data.language, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn code_scanning_codeql_database_decoder() { use content_type <- zero.optional_field( "content_type", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use uploader <- zero.optional_field( "uploader", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(CodeScanningCodeqlDatabase( content_type: content_type, size: size, commit_oid: commit_oid, created_at: created_at, name: name, uploader: uploader, url: url, updated_at: updated_at, language: language, id: id, )) } pub fn webhooks_release_to_json(data: WebhooksRelease) { json.object([ #("draft", json.nullable(data.draft, json.bool)), #("body", json.nullable(data.body, json.string)), #("assets", json.null()), #("prerelease", json.nullable(data.prerelease, json.bool)), #("published_at", json.nullable(data.published_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("author", json.null()), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("tag_name", json.nullable(data.tag_name, json.string)), #("zipball_url", json.nullable(data.zipball_url, json.string)), #("upload_url", json.nullable(data.upload_url, json.string)), #("assets_url", json.nullable(data.assets_url, json.string)), #("tarball_url", json.nullable(data.tarball_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("discussion_url", json.nullable(data.discussion_url, json.string)), #("target_commitish", json.nullable(data.target_commitish, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_release_decoder() { use draft <- zero.optional_field("draft", None, zero.optional(zero.bool)) use body <- zero.optional_field("body", None, zero.optional(zero.string)) use assets <- zero.optional_field( "assets", None, zero.optional(zero.success(Nil)), ) use prerelease <- zero.optional_field( "prerelease", None, zero.optional(zero.bool), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use tag_name <- zero.optional_field( "tag_name", None, zero.optional(zero.string), ) use zipball_url <- zero.optional_field( "zipball_url", None, zero.optional(zero.string), ) use upload_url <- zero.optional_field( "upload_url", None, zero.optional(zero.string), ) use assets_url <- zero.optional_field( "assets_url", None, zero.optional(zero.string), ) use tarball_url <- zero.optional_field( "tarball_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use discussion_url <- zero.optional_field( "discussion_url", None, zero.optional(zero.string), ) use target_commitish <- zero.optional_field( "target_commitish", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksRelease( draft: draft, body: body, assets: assets, prerelease: prerelease, published_at: published_at, created_at: created_at, reactions: reactions, author: author, name: name, url: url, tag_name: tag_name, zipball_url: zipball_url, upload_url: upload_url, assets_url: assets_url, tarball_url: tarball_url, node_id: node_id, discussion_url: discussion_url, target_commitish: target_commitish, id: id, html_url: html_url, )) } pub fn webhook_check_run_completed_form_encoded_to_json( data: WebhookCheckRunCompletedFormEncoded, ) { json.object([#("payload", json.nullable(data.payload, json.string))]) } pub fn webhook_check_run_completed_form_encoded_decoder() { use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) zero.success(WebhookCheckRunCompletedFormEncoded(payload: payload)) } pub fn interaction_group_decoder() { zero.string } pub fn webhook_issues_unassigned_to_json(data: WebhookIssuesUnassigned) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("assignee", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_unassigned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesUnassigned( enterprise: enterprise, repository: repository, assignee: assignee, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn webhook_pull_request_dequeued_to_json(data: WebhookPullRequestDequeued) { json.object([ #("enterprise", json.null()), #("reason", json.nullable(data.reason, json.string)), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_dequeued_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestDequeued( enterprise: enterprise, reason: reason, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn authentication_token_to_json(data: AuthenticationToken) { json.object([ #("permissions", json.null()), #("repositories", json.null()), #("single_file", json.nullable(data.single_file, json.string)), #( "repository_selection", json.nullable(data.repository_selection, json.string), ), #("token", json.nullable(data.token_, json.string)), #("expires_at", json.nullable(data.expires_at, json.string)), ]) } pub fn authentication_token_decoder() { use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use repositories <- zero.optional_field( "repositories", None, zero.optional(zero.success(Nil)), ) use single_file <- zero.optional_field( "single_file", None, zero.optional(zero.string), ) use repository_selection <- zero.optional_field( "repository_selection", None, zero.optional(zero.string), ) use token_ <- zero.optional_field("token", None, zero.optional(zero.string)) use expires_at <- zero.optional_field( "expires_at", None, zero.optional(zero.string), ) zero.success(AuthenticationToken( permissions: permissions, repositories: repositories, single_file: single_file, repository_selection: repository_selection, token_: token_, expires_at: expires_at, )) } pub fn webhook_pull_request_milestoned_to_json( data: WebhookPullRequestMilestoned, ) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("milestone", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), ]) } pub fn webhook_pull_request_milestoned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use milestone <- zero.optional_field( "milestone", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) zero.success(WebhookPullRequestMilestoned( enterprise: enterprise, number: number, repository: repository, milestone: milestone, organization: organization, sender: sender, pull_request: pull_request, action: action, )) } pub fn webhook_dependabot_alert_auto_reopened_to_json( data: WebhookDependabotAlertAutoReopened, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_auto_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertAutoReopened( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn nullable_milestone_to_json(data: NullableMilestone) { json.object([ #("closed_at", json.nullable(data.closed_at, json.string)), #("number", json.nullable(data.number, json.int)), #("due_on", json.nullable(data.due_on, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("closed_issues", json.nullable(data.closed_issues, json.int)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn nullable_milestone_decoder() { use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use due_on <- zero.optional_field("due_on", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use closed_issues <- zero.optional_field( "closed_issues", None, zero.optional(zero.int), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(NullableMilestone( closed_at: closed_at, number: number, due_on: due_on, created_at: created_at, creator: creator, closed_issues: closed_issues, labels_url: labels_url, url: url, open_issues: open_issues, state: state, updated_at: updated_at, node_id: node_id, title: title, id: id, html_url: html_url, description: description, )) } pub fn snapshot_to_json(data: Snapshot) { json.object([ #("manifests", json.null()), #("detector", json.null()), #("sha", json.nullable(data.sha, json.string)), #("metadata", json.null()), #("scanned", json.nullable(data.scanned, json.string)), #("ref", json.nullable(data.ref, json.string)), #("version", json.nullable(data.version, json.int)), #("job", json.null()), ]) } pub fn snapshot_decoder() { use manifests <- zero.optional_field( "manifests", None, zero.optional(zero.success(Nil)), ) use detector <- zero.optional_field( "detector", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use metadata <- zero.optional_field( "metadata", None, zero.optional(zero.success(Nil)), ) use scanned <- zero.optional_field( "scanned", None, zero.optional(zero.string), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use version <- zero.optional_field("version", None, zero.optional(zero.int)) use job <- zero.optional_field("job", None, zero.optional(zero.success(Nil))) zero.success(Snapshot( manifests: manifests, detector: detector, sha: sha, metadata: metadata, scanned: scanned, ref: ref, version: version, job: job, )) } pub fn webhook_sponsorship_cancelled_to_json(data: WebhookSponsorshipCancelled) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("sponsorship", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_sponsorship_cancelled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use sponsorship <- zero.optional_field( "sponsorship", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSponsorshipCancelled( enterprise: enterprise, repository: repository, organization: organization, sender: sender, sponsorship: sponsorship, action: action, installation: installation, )) } pub fn code_scanning_alert_state_decoder() { zero.string } pub fn webhook_pull_request_review_dismissed_to_json( data: WebhookPullRequestReviewDismissed, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("review", json.null()), #("installation", json.null()), ]) } pub fn webhook_pull_request_review_dismissed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use review <- zero.optional_field( "review", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestReviewDismissed( enterprise: enterprise, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, review: review, installation: installation, )) } pub fn webhook_projects_v2_project_reopened_to_json( data: WebhookProjectsV2ProjectReopened, ) { json.object([ #("projects_v2", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_project_reopened_decoder() { use projects_v2 <- zero.optional_field( "projects_v2", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ProjectReopened( projects_v2: projects_v2, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn project_card_to_json(data: ProjectCard) { json.object([ #("project_id", json.nullable(data.project_id, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("column_url", json.nullable(data.column_url, json.string)), #("content_url", json.nullable(data.content_url, json.string)), #("project_url", json.nullable(data.project_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("url", json.nullable(data.url, json.string)), #("note", json.nullable(data.note, json.string)), #("column_name", json.nullable(data.column_name, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn project_card_decoder() { use project_id <- zero.optional_field( "project_id", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use column_url <- zero.optional_field( "column_url", None, zero.optional(zero.string), ) use content_url <- zero.optional_field( "content_url", None, zero.optional(zero.string), ) use project_url <- zero.optional_field( "project_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use note <- zero.optional_field("note", None, zero.optional(zero.string)) use column_name <- zero.optional_field( "column_name", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ProjectCard( project_id: project_id, archived: archived, column_url: column_url, content_url: content_url, project_url: project_url, created_at: created_at, creator: creator, url: url, note: note, column_name: column_name, updated_at: updated_at, node_id: node_id, id: id, )) } pub fn webhook_discussion_labeled_to_json(data: WebhookDiscussionLabeled) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_labeled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionLabeled( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, label: label, sender: sender, action: action, installation: installation, )) } pub fn alert_auto_dismissed_at_decoder() { zero.string } pub fn prevent_self_review_decoder() { zero.bool } pub fn global_advisory_to_json(data: GlobalAdvisory) { json.object([ #("cwes", json.null()), #( "source_code_location", json.nullable(data.source_code_location, json.string), ), #("published_at", json.nullable(data.published_at, json.string)), #("summary", json.nullable(data.summary, json.string)), #("cvss_severities", json.null()), #("nvd_published_at", json.nullable(data.nvd_published_at, json.string)), #("cve_id", json.nullable(data.cve_id, json.string)), #("references", json.null()), #("identifiers", json.null()), #("epss", json.null()), #("ghsa_id", json.nullable(data.ghsa_id, json.string)), #("withdrawn_at", json.nullable(data.withdrawn_at, json.string)), #("url", json.nullable(data.url, json.string)), #("cvss", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("credits", json.null()), #("vulnerabilities", json.null()), #("type", json.nullable(data.type_, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), #( "repository_advisory_url", json.nullable(data.repository_advisory_url, json.string), ), #("github_reviewed_at", json.nullable(data.github_reviewed_at, json.string)), ]) } pub fn global_advisory_decoder() { use cwes <- zero.optional_field( "cwes", None, zero.optional(zero.success(Nil)), ) use source_code_location <- zero.optional_field( "source_code_location", None, zero.optional(zero.string), ) use published_at <- zero.optional_field( "published_at", None, zero.optional(zero.string), ) use summary <- zero.optional_field( "summary", None, zero.optional(zero.string), ) use cvss_severities <- zero.optional_field( "cvss_severities", None, zero.optional(zero.success(Nil)), ) use nvd_published_at <- zero.optional_field( "nvd_published_at", None, zero.optional(zero.string), ) use cve_id <- zero.optional_field("cve_id", None, zero.optional(zero.string)) use references <- zero.optional_field( "references", None, zero.optional(zero.list(zero.string)), ) use identifiers <- zero.optional_field( "identifiers", None, zero.optional(zero.success(Nil)), ) use epss <- zero.optional_field( "epss", None, zero.optional(zero.success(Nil)), ) use ghsa_id <- zero.optional_field( "ghsa_id", None, zero.optional(zero.string), ) use withdrawn_at <- zero.optional_field( "withdrawn_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use cvss <- zero.optional_field( "cvss", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use credits <- zero.optional_field( "credits", None, zero.optional(zero.success(Nil)), ) use vulnerabilities <- zero.optional_field( "vulnerabilities", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) use repository_advisory_url <- zero.optional_field( "repository_advisory_url", None, zero.optional(zero.string), ) use github_reviewed_at <- zero.optional_field( "github_reviewed_at", None, zero.optional(zero.string), ) zero.success(GlobalAdvisory( cwes: cwes, source_code_location: source_code_location, published_at: published_at, summary: summary, cvss_severities: cvss_severities, nvd_published_at: nvd_published_at, cve_id: cve_id, references: references, identifiers: identifiers, epss: epss, ghsa_id: ghsa_id, withdrawn_at: withdrawn_at, url: url, cvss: cvss, updated_at: updated_at, credits: credits, vulnerabilities: vulnerabilities, type_: type_, html_url: html_url, description: description, severity: severity, repository_advisory_url: repository_advisory_url, github_reviewed_at: github_reviewed_at, )) } pub fn webhook_member_added_to_json(data: WebhookMemberAdded) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("member", json.null()), ]) } pub fn webhook_member_added_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use member <- zero.optional_field( "member", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMemberAdded( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, member: member, )) } pub fn webhook_code_scanning_alert_closed_by_user_to_json( data: WebhookCodeScanningAlertClosedByUser, ) { json.object([ #("enterprise", json.null()), #("commit_oid", json.nullable(data.commit_oid, json.string)), #("repository", json.null()), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_code_scanning_alert_closed_by_user_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use commit_oid <- zero.optional_field( "commit_oid", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCodeScanningAlertClosedByUser( enterprise: enterprise, commit_oid: commit_oid, repository: repository, ref: ref, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn codespaces_secret_to_json(data: CodespacesSecret) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #( "selected_repositories_url", json.nullable(data.selected_repositories_url, json.string), ), ]) } pub fn codespaces_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use selected_repositories_url <- zero.optional_field( "selected_repositories_url", None, zero.optional(zero.string), ) zero.success(CodespacesSecret( created_at: created_at, name: name, visibility: visibility, updated_at: updated_at, selected_repositories_url: selected_repositories_url, )) } pub fn webhook_pull_request_labeled_to_json(data: WebhookPullRequestLabeled) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("label", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_pull_request_labeled_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use label <- zero.optional_field( "label", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookPullRequestLabeled( enterprise: enterprise, number: number, repository: repository, organization: organization, label: label, sender: sender, pull_request: pull_request, action: action, installation: installation, )) } pub fn issue_event_dismissed_review_to_json(data: IssueEventDismissedReview) { json.object([ #("review_id", json.nullable(data.review_id, json.int)), #("state", json.nullable(data.state, json.string)), #( "dismissal_commit_id", json.nullable(data.dismissal_commit_id, json.string), ), #("dismissal_message", json.nullable(data.dismissal_message, json.string)), ]) } pub fn issue_event_dismissed_review_decoder() { use review_id <- zero.optional_field( "review_id", None, zero.optional(zero.int), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use dismissal_commit_id <- zero.optional_field( "dismissal_commit_id", None, zero.optional(zero.string), ) use dismissal_message <- zero.optional_field( "dismissal_message", None, zero.optional(zero.string), ) zero.success(IssueEventDismissedReview( review_id: review_id, state: state, dismissal_commit_id: dismissal_commit_id, dismissal_message: dismissal_message, )) } pub fn webhook_team_edited_to_json(data: WebhookTeamEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("team", json.null()), ]) } pub fn webhook_team_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use team <- zero.optional_field( "team", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookTeamEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, installation: installation, team: team, )) } pub fn code_scanning_analysis_analysis_key_decoder() { zero.string } pub fn repository_rule_code_scanning_to_json(data: RepositoryRuleCodeScanning) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_code_scanning_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleCodeScanning(parameters: parameters, type_: type_)) } pub fn webhook_workflow_job_completed_to_json(data: WebhookWorkflowJobCompleted) { json.object([ #("enterprise", json.null()), #("deployment", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("workflow_job", json.null()), ]) } pub fn webhook_workflow_job_completed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use deployment <- zero.optional_field( "deployment", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use workflow_job <- zero.optional_field( "workflow_job", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookWorkflowJobCompleted( enterprise: enterprise, deployment: deployment, repository: repository, organization: organization, sender: sender, action: action, installation: installation, workflow_job: workflow_job, )) } pub fn repository_rule_params_required_reviewer_configuration_to_json( data: RepositoryRuleParamsRequiredReviewerConfiguration, ) { json.object([ #("file_patterns", json.null()), #("reviewer_id", json.nullable(data.reviewer_id, json.string)), #("minimum_approvals", json.nullable(data.minimum_approvals, json.int)), ]) } pub fn repository_rule_params_required_reviewer_configuration_decoder() { use file_patterns <- zero.optional_field( "file_patterns", None, zero.optional(zero.list(zero.string)), ) use reviewer_id <- zero.optional_field( "reviewer_id", None, zero.optional(zero.string), ) use minimum_approvals <- zero.optional_field( "minimum_approvals", None, zero.optional(zero.int), ) zero.success(RepositoryRuleParamsRequiredReviewerConfiguration( file_patterns: file_patterns, reviewer_id: reviewer_id, minimum_approvals: minimum_approvals, )) } pub fn team_organization_to_json(data: TeamOrganization) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #( "has_organization_projects", json.nullable(data.has_organization_projects, json.bool), ), #("twitter_username", json.nullable(data.twitter_username, json.string)), #( "members_allowed_repository_creation_type", json.nullable(data.members_allowed_repository_creation_type, json.string), ), #("blog", json.nullable(data.blog, json.string)), #( "default_repository_permission", json.nullable(data.default_repository_permission, json.string), ), #( "two_factor_requirement_enabled", json.nullable(data.two_factor_requirement_enabled, json.bool), ), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("members_url", json.nullable(data.members_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("plan", json.null()), #("login", json.nullable(data.login, json.string)), #( "has_repository_projects", json.nullable(data.has_repository_projects, json.bool), ), #("created_at", json.nullable(data.created_at, json.string)), #("issues_url", json.nullable(data.issues_url, json.string)), #("total_private_repos", json.nullable(data.total_private_repos, json.int)), #("owned_private_repos", json.nullable(data.owned_private_repos, json.int)), #("public_repos", json.nullable(data.public_repos, json.int)), #("name", json.nullable(data.name, json.string)), #( "members_can_fork_private_repositories", json.nullable(data.members_can_fork_private_repositories, json.bool), ), #("collaborators", json.nullable(data.collaborators, json.int)), #("url", json.nullable(data.url, json.string)), #( "members_can_create_public_repositories", json.nullable(data.members_can_create_public_repositories, json.bool), ), #("archived_at", json.nullable(data.archived_at, json.string)), #("following", json.nullable(data.following, json.int)), #("repos_url", json.nullable(data.repos_url, json.string)), #( "members_can_create_private_repositories", json.nullable(data.members_can_create_private_repositories, json.bool), ), #("public_members_url", json.nullable(data.public_members_url, json.string)), #("private_gists", json.nullable(data.private_gists, json.int)), #("followers", json.nullable(data.followers, json.int)), #("location", json.nullable(data.location, json.string)), #( "members_can_create_pages", json.nullable(data.members_can_create_pages, json.bool), ), #( "members_can_create_repositories", json.nullable(data.members_can_create_repositories, json.bool), ), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("billing_email", json.nullable(data.billing_email, json.string)), #("public_gists", json.nullable(data.public_gists, json.int)), #( "members_can_create_private_pages", json.nullable(data.members_can_create_private_pages, json.bool), ), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "members_can_create_public_pages", json.nullable(data.members_can_create_public_pages, json.bool), ), #( "members_can_create_internal_repositories", json.nullable(data.members_can_create_internal_repositories, json.bool), ), #("email", json.nullable(data.email, json.string)), #("description", json.nullable(data.description, json.string)), #("company", json.nullable(data.company, json.string)), #("is_verified", json.nullable(data.is_verified, json.bool)), #("disk_usage", json.nullable(data.disk_usage, json.int)), ]) } pub fn team_organization_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use has_organization_projects <- zero.optional_field( "has_organization_projects", None, zero.optional(zero.bool), ) use twitter_username <- zero.optional_field( "twitter_username", None, zero.optional(zero.string), ) use members_allowed_repository_creation_type <- zero.optional_field( "members_allowed_repository_creation_type", None, zero.optional(zero.string), ) use blog <- zero.optional_field("blog", None, zero.optional(zero.string)) use default_repository_permission <- zero.optional_field( "default_repository_permission", None, zero.optional(zero.string), ) use two_factor_requirement_enabled <- zero.optional_field( "two_factor_requirement_enabled", None, zero.optional(zero.bool), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use plan <- zero.optional_field( "plan", None, zero.optional(zero.success(Nil)), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use has_repository_projects <- zero.optional_field( "has_repository_projects", None, zero.optional(zero.bool), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use total_private_repos <- zero.optional_field( "total_private_repos", None, zero.optional(zero.int), ) use owned_private_repos <- zero.optional_field( "owned_private_repos", None, zero.optional(zero.int), ) use public_repos <- zero.optional_field( "public_repos", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use members_can_fork_private_repositories <- zero.optional_field( "members_can_fork_private_repositories", None, zero.optional(zero.bool), ) use collaborators <- zero.optional_field( "collaborators", None, zero.optional(zero.int), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use members_can_create_public_repositories <- zero.optional_field( "members_can_create_public_repositories", None, zero.optional(zero.bool), ) use archived_at <- zero.optional_field( "archived_at", None, zero.optional(zero.string), ) use following <- zero.optional_field( "following", None, zero.optional(zero.int), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use members_can_create_private_repositories <- zero.optional_field( "members_can_create_private_repositories", None, zero.optional(zero.bool), ) use public_members_url <- zero.optional_field( "public_members_url", None, zero.optional(zero.string), ) use private_gists <- zero.optional_field( "private_gists", None, zero.optional(zero.int), ) use followers <- zero.optional_field( "followers", None, zero.optional(zero.int), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use members_can_create_pages <- zero.optional_field( "members_can_create_pages", None, zero.optional(zero.bool), ) use members_can_create_repositories <- zero.optional_field( "members_can_create_repositories", None, zero.optional(zero.bool), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use billing_email <- zero.optional_field( "billing_email", None, zero.optional(zero.string), ) use public_gists <- zero.optional_field( "public_gists", None, zero.optional(zero.int), ) use members_can_create_private_pages <- zero.optional_field( "members_can_create_private_pages", None, zero.optional(zero.bool), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use members_can_create_public_pages <- zero.optional_field( "members_can_create_public_pages", None, zero.optional(zero.bool), ) use members_can_create_internal_repositories <- zero.optional_field( "members_can_create_internal_repositories", None, zero.optional(zero.bool), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use company <- zero.optional_field( "company", None, zero.optional(zero.string), ) use is_verified <- zero.optional_field( "is_verified", None, zero.optional(zero.bool), ) use disk_usage <- zero.optional_field( "disk_usage", None, zero.optional(zero.int), ) zero.success(TeamOrganization( hooks_url: hooks_url, has_organization_projects: has_organization_projects, twitter_username: twitter_username, members_allowed_repository_creation_type: members_allowed_repository_creation_type, blog: blog, default_repository_permission: default_repository_permission, two_factor_requirement_enabled: two_factor_requirement_enabled, web_commit_signoff_required: web_commit_signoff_required, members_url: members_url, events_url: events_url, avatar_url: avatar_url, plan: plan, login: login, has_repository_projects: has_repository_projects, created_at: created_at, issues_url: issues_url, total_private_repos: total_private_repos, owned_private_repos: owned_private_repos, public_repos: public_repos, name: name, members_can_fork_private_repositories: members_can_fork_private_repositories, collaborators: collaborators, url: url, members_can_create_public_repositories: members_can_create_public_repositories, archived_at: archived_at, following: following, repos_url: repos_url, members_can_create_private_repositories: members_can_create_private_repositories, public_members_url: public_members_url, private_gists: private_gists, followers: followers, location: location, members_can_create_pages: members_can_create_pages, members_can_create_repositories: members_can_create_repositories, updated_at: updated_at, node_id: node_id, billing_email: billing_email, public_gists: public_gists, members_can_create_private_pages: members_can_create_private_pages, type_: type_, id: id, html_url: html_url, members_can_create_public_pages: members_can_create_public_pages, members_can_create_internal_repositories: members_can_create_internal_repositories, email: email, description: description, company: company, is_verified: is_verified, disk_usage: disk_usage, )) } pub fn locked_issue_event_to_json(data: LockedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("lock_reason", json.nullable(data.lock_reason, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn locked_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use lock_reason <- zero.optional_field( "lock_reason", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(LockedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, lock_reason: lock_reason, event: event, id: id, )) } pub fn webhook_member_removed_to_json(data: WebhookMemberRemoved) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("member", json.null()), ]) } pub fn webhook_member_removed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use member <- zero.optional_field( "member", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMemberRemoved( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, member: member, )) } pub fn marketplace_purchase_to_json(data: MarketplacePurchase) { json.object([ #("login", json.nullable(data.login, json.string)), #( "organization_billing_email", json.nullable(data.organization_billing_email, json.string), ), #("marketplace_pending_change", json.null()), #("url", json.nullable(data.url, json.string)), #("marketplace_purchase", json.null()), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("email", json.nullable(data.email, json.string)), ]) } pub fn marketplace_purchase_decoder() { use login <- zero.optional_field("login", None, zero.optional(zero.string)) use organization_billing_email <- zero.optional_field( "organization_billing_email", None, zero.optional(zero.string), ) use marketplace_pending_change <- zero.optional_field( "marketplace_pending_change", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use marketplace_purchase <- zero.optional_field( "marketplace_purchase", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(MarketplacePurchase( login: login, organization_billing_email: organization_billing_email, marketplace_pending_change: marketplace_pending_change, url: url, marketplace_purchase: marketplace_purchase, type_: type_, id: id, email: email, )) } pub fn webhook_star_created_to_json(data: WebhookStarCreated) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("starred_at", json.nullable(data.starred_at, json.string)), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_star_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookStarCreated( enterprise: enterprise, repository: repository, organization: organization, starred_at: starred_at, sender: sender, action: action, installation: installation, )) } pub fn repository_rule_ruleset_info_to_json(data: RepositoryRuleRulesetInfo) { json.object([ #( "ruleset_source_type", json.nullable(data.ruleset_source_type, json.string), ), #("ruleset_id", json.nullable(data.ruleset_id, json.int)), #("ruleset_source", json.nullable(data.ruleset_source, json.string)), ]) } pub fn repository_rule_ruleset_info_decoder() { use ruleset_source_type <- zero.optional_field( "ruleset_source_type", None, zero.optional(zero.string), ) use ruleset_id <- zero.optional_field( "ruleset_id", None, zero.optional(zero.int), ) use ruleset_source <- zero.optional_field( "ruleset_source", None, zero.optional(zero.string), ) zero.success(RepositoryRuleRulesetInfo( ruleset_source_type: ruleset_source_type, ruleset_id: ruleset_id, ruleset_source: ruleset_source, )) } pub fn repository_rule_params_restricted_commits_to_json( data: RepositoryRuleParamsRestrictedCommits, ) { json.object([ #("reason", json.nullable(data.reason, json.string)), #("oid", json.nullable(data.oid, json.string)), ]) } pub fn repository_rule_params_restricted_commits_decoder() { use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use oid <- zero.optional_field("oid", None, zero.optional(zero.string)) zero.success(RepositoryRuleParamsRestrictedCommits(reason: reason, oid: oid)) } pub fn code_scanning_analysis_deletion_to_json( data: CodeScanningAnalysisDeletion, ) { json.object([ #("next_analysis_url", json.nullable(data.next_analysis_url, json.string)), #("confirm_delete_url", json.nullable(data.confirm_delete_url, json.string)), ]) } pub fn code_scanning_analysis_deletion_decoder() { use next_analysis_url <- zero.optional_field( "next_analysis_url", None, zero.optional(zero.string), ) use confirm_delete_url <- zero.optional_field( "confirm_delete_url", None, zero.optional(zero.string), ) zero.success(CodeScanningAnalysisDeletion( next_analysis_url: next_analysis_url, confirm_delete_url: confirm_delete_url, )) } pub fn hook_to_json(data: Hook) { json.object([ #("test_url", json.nullable(data.test_url, json.string)), #("ping_url", json.nullable(data.ping_url, json.string)), #("config", json.null()), #("deliveries_url", json.nullable(data.deliveries_url, json.string)), #("active", json.nullable(data.active, json.bool)), #("created_at", json.nullable(data.created_at, json.string)), #("last_response", json.null()), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("events", json.null()), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn hook_decoder() { use test_url <- zero.optional_field( "test_url", None, zero.optional(zero.string), ) use ping_url <- zero.optional_field( "ping_url", None, zero.optional(zero.string), ) use config <- zero.optional_field( "config", None, zero.optional(zero.success(Nil)), ) use deliveries_url <- zero.optional_field( "deliveries_url", None, zero.optional(zero.string), ) use active <- zero.optional_field("active", None, zero.optional(zero.bool)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use last_response <- zero.optional_field( "last_response", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use events <- zero.optional_field( "events", None, zero.optional(zero.list(zero.string)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(Hook( test_url: test_url, ping_url: ping_url, config: config, deliveries_url: deliveries_url, active: active, created_at: created_at, last_response: last_response, name: name, url: url, updated_at: updated_at, events: events, type_: type_, id: id, )) } pub fn organization_secret_scanning_alert_to_json( data: OrganizationSecretScanningAlert, ) { json.object([ #( "push_protection_bypass_request_html_url", json.nullable(data.push_protection_bypass_request_html_url, json.string), ), #( "push_protection_bypassed", json.nullable(data.push_protection_bypassed, json.bool), ), #("number", json.nullable(data.number, json.int)), #("secret_type", json.nullable(data.secret_type, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #( "push_protection_bypassed_at", json.nullable(data.push_protection_bypassed_at, json.string), ), #("repository", json.null()), #("push_protection_bypass_request_reviewer", json.null()), #("publicly_leaked", json.nullable(data.publicly_leaked, json.bool)), #("resolution", json.nullable(data.resolution, json.string)), #("resolution_comment", json.nullable(data.resolution_comment, json.string)), #("locations_url", json.nullable(data.locations_url, json.string)), #("push_protection_bypassed_by", json.null()), #("url", json.nullable(data.url, json.string)), #("secret", json.nullable(data.secret, json.string)), #("state", json.nullable(data.state, json.string)), #("validity", json.nullable(data.validity, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("multi_repo", json.nullable(data.multi_repo, json.bool)), #( "push_protection_bypass_request_comment", json.nullable(data.push_protection_bypass_request_comment, json.string), ), #("resolved_at", json.nullable(data.resolved_at, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #( "secret_type_display_name", json.nullable(data.secret_type_display_name, json.string), ), #("resolved_by", json.null()), ]) } pub fn organization_secret_scanning_alert_decoder() { use push_protection_bypass_request_html_url <- zero.optional_field( "push_protection_bypass_request_html_url", None, zero.optional(zero.string), ) use push_protection_bypassed <- zero.optional_field( "push_protection_bypassed", None, zero.optional(zero.bool), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use secret_type <- zero.optional_field( "secret_type", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use push_protection_bypassed_at <- zero.optional_field( "push_protection_bypassed_at", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use push_protection_bypass_request_reviewer <- zero.optional_field( "push_protection_bypass_request_reviewer", None, zero.optional(zero.success(Nil)), ) use publicly_leaked <- zero.optional_field( "publicly_leaked", None, zero.optional(zero.bool), ) use resolution <- zero.optional_field( "resolution", None, zero.optional(zero.string), ) use resolution_comment <- zero.optional_field( "resolution_comment", None, zero.optional(zero.string), ) use locations_url <- zero.optional_field( "locations_url", None, zero.optional(zero.string), ) use push_protection_bypassed_by <- zero.optional_field( "push_protection_bypassed_by", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use secret <- zero.optional_field("secret", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use validity <- zero.optional_field( "validity", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use multi_repo <- zero.optional_field( "multi_repo", None, zero.optional(zero.bool), ) use push_protection_bypass_request_comment <- zero.optional_field( "push_protection_bypass_request_comment", None, zero.optional(zero.string), ) use resolved_at <- zero.optional_field( "resolved_at", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use secret_type_display_name <- zero.optional_field( "secret_type_display_name", None, zero.optional(zero.string), ) use resolved_by <- zero.optional_field( "resolved_by", None, zero.optional(zero.success(Nil)), ) zero.success(OrganizationSecretScanningAlert( push_protection_bypass_request_html_url: push_protection_bypass_request_html_url, push_protection_bypassed: push_protection_bypassed, number: number, secret_type: secret_type, created_at: created_at, push_protection_bypassed_at: push_protection_bypassed_at, repository: repository, push_protection_bypass_request_reviewer: push_protection_bypass_request_reviewer, publicly_leaked: publicly_leaked, resolution: resolution, resolution_comment: resolution_comment, locations_url: locations_url, push_protection_bypassed_by: push_protection_bypassed_by, url: url, secret: secret, state: state, validity: validity, updated_at: updated_at, multi_repo: multi_repo, push_protection_bypass_request_comment: push_protection_bypass_request_comment, resolved_at: resolved_at, html_url: html_url, secret_type_display_name: secret_type_display_name, resolved_by: resolved_by, )) } pub fn page_deployment_to_json(data: PageDeployment) { json.object([ #("status_url", json.nullable(data.status_url, json.string)), #("preview_url", json.nullable(data.preview_url, json.string)), #("id", json.null()), #("page_url", json.nullable(data.page_url, json.string)), ]) } pub fn page_deployment_decoder() { use status_url <- zero.optional_field( "status_url", None, zero.optional(zero.string), ) use preview_url <- zero.optional_field( "preview_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.success(Nil))) use page_url <- zero.optional_field( "page_url", None, zero.optional(zero.string), ) zero.success(PageDeployment( status_url: status_url, preview_url: preview_url, id: id, page_url: page_url, )) } pub fn repository_ruleset_to_json(data: RepositoryRuleset) { json.object([ #("enforcement", json.nullable(data.enforcement, json.string)), #( "current_user_can_bypass", json.nullable(data.current_user_can_bypass, json.string), ), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("target", json.nullable(data.target, json.string)), #("bypass_actors", json.null()), #("rules", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("conditions", json.null()), #("_links", json.null()), #("source", json.nullable(data.source, json.string)), #("id", json.nullable(data.id, json.int)), #("source_type", json.nullable(data.source_type, json.string)), ]) } pub fn repository_ruleset_decoder() { use enforcement <- zero.optional_field( "enforcement", None, zero.optional(zero.string), ) use current_user_can_bypass <- zero.optional_field( "current_user_can_bypass", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use target <- zero.optional_field("target", None, zero.optional(zero.string)) use bypass_actors <- zero.optional_field( "bypass_actors", None, zero.optional(zero.success(Nil)), ) use rules <- zero.optional_field( "rules", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use conditions <- zero.optional_field( "conditions", None, zero.optional(zero.success(Nil)), ) use links <- zero.optional_field( "_links", None, zero.optional(zero.success(Nil)), ) use source <- zero.optional_field("source", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use source_type <- zero.optional_field( "source_type", None, zero.optional(zero.string), ) zero.success(RepositoryRuleset( enforcement: enforcement, current_user_can_bypass: current_user_can_bypass, created_at: created_at, name: name, target: target, bypass_actors: bypass_actors, rules: rules, updated_at: updated_at, node_id: node_id, conditions: conditions, links: links, source: source, id: id, source_type: source_type, )) } pub fn webhook_config_content_type_decoder() { zero.string } pub fn gitignore_template_to_json(data: GitignoreTemplate) { json.object([ #("name", json.nullable(data.name, json.string)), #("source", json.nullable(data.source, json.string)), ]) } pub fn gitignore_template_decoder() { use name <- zero.optional_field("name", None, zero.optional(zero.string)) use source <- zero.optional_field("source", None, zero.optional(zero.string)) zero.success(GitignoreTemplate(name: name, source: source)) } pub fn webhook_organization_renamed_to_json(data: WebhookOrganizationRenamed) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("membership", json.null()), #("installation", json.null()), ]) } pub fn webhook_organization_renamed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use membership <- zero.optional_field( "membership", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookOrganizationRenamed( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, membership: membership, installation: installation, )) } pub fn simple_classroom_assignment_to_json(data: SimpleClassroomAssignment) { json.object([ #( "feedback_pull_requests_enabled", json.nullable(data.feedback_pull_requests_enabled, json.bool), ), #("accepted", json.nullable(data.accepted, json.int)), #("public_repo", json.nullable(data.public_repo, json.bool)), #("slug", json.nullable(data.slug, json.string)), #("editor", json.nullable(data.editor, json.string)), #("invite_link", json.nullable(data.invite_link, json.string)), #("passing", json.nullable(data.passing, json.int)), #("classroom", json.null()), #("title", json.nullable(data.title, json.string)), #("deadline", json.nullable(data.deadline, json.string)), #("language", json.nullable(data.language, json.string)), #("type", json.nullable(data.type_, json.string)), #("submitted", json.nullable(data.submitted, json.int)), #("id", json.nullable(data.id, json.int)), #("max_teams", json.nullable(data.max_teams, json.int)), #("invitations_enabled", json.nullable(data.invitations_enabled, json.bool)), #("max_members", json.nullable(data.max_members, json.int)), #( "students_are_repo_admins", json.nullable(data.students_are_repo_admins, json.bool), ), ]) } pub fn simple_classroom_assignment_decoder() { use feedback_pull_requests_enabled <- zero.optional_field( "feedback_pull_requests_enabled", None, zero.optional(zero.bool), ) use accepted <- zero.optional_field("accepted", None, zero.optional(zero.int)) use public_repo <- zero.optional_field( "public_repo", None, zero.optional(zero.bool), ) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use editor <- zero.optional_field("editor", None, zero.optional(zero.string)) use invite_link <- zero.optional_field( "invite_link", None, zero.optional(zero.string), ) use passing <- zero.optional_field("passing", None, zero.optional(zero.int)) use classroom <- zero.optional_field( "classroom", None, zero.optional(zero.success(Nil)), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use deadline <- zero.optional_field( "deadline", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use submitted <- zero.optional_field( "submitted", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use max_teams <- zero.optional_field( "max_teams", None, zero.optional(zero.int), ) use invitations_enabled <- zero.optional_field( "invitations_enabled", None, zero.optional(zero.bool), ) use max_members <- zero.optional_field( "max_members", None, zero.optional(zero.int), ) use students_are_repo_admins <- zero.optional_field( "students_are_repo_admins", None, zero.optional(zero.bool), ) zero.success(SimpleClassroomAssignment( feedback_pull_requests_enabled: feedback_pull_requests_enabled, accepted: accepted, public_repo: public_repo, slug: slug, editor: editor, invite_link: invite_link, passing: passing, classroom: classroom, title: title, deadline: deadline, language: language, type_: type_, submitted: submitted, id: id, max_teams: max_teams, invitations_enabled: invitations_enabled, max_members: max_members, students_are_repo_admins: students_are_repo_admins, )) } pub fn webhooks_workflow_to_json(data: WebhooksWorkflow) { json.object([ #("path", json.nullable(data.path_, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("badge_url", json.nullable(data.badge_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_workflow_decoder() { use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use badge_url <- zero.optional_field( "badge_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksWorkflow( path_: path_, created_at: created_at, name: name, url: url, state: state, badge_url: badge_url, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, )) } pub fn project_collaborator_permission_to_json( data: ProjectCollaboratorPermission, ) { json.object([ #("user", json.null()), #("permission", json.nullable(data.permission, json.string)), ]) } pub fn project_collaborator_permission_decoder() { use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) zero.success(ProjectCollaboratorPermission(user: user, permission: permission)) } pub fn team_simple_to_json(data: TeamSimple) { json.object([ #("ldap_dn", json.nullable(data.ldap_dn, json.string)), #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn team_simple_decoder() { use ldap_dn <- zero.optional_field( "ldap_dn", None, zero.optional(zero.string), ) use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(TeamSimple( ldap_dn: ldap_dn, privacy: privacy, members_url: members_url, name: name, slug: slug, url: url, permission: permission, node_id: node_id, repositories_url: repositories_url, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn code_scanning_alert_instance_to_json(data: CodeScanningAlertInstance) { json.object([ #("commit_sha", json.nullable(data.commit_sha, json.string)), #("message", json.null()), #("classifications", json.null()), #("state", json.nullable(data.state, json.string)), #("ref", json.nullable(data.ref, json.string)), #("environment", json.nullable(data.environment, json.string)), #("location", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #("analysis_key", json.nullable(data.analysis_key, json.string)), #("category", json.nullable(data.category, json.string)), ]) } pub fn code_scanning_alert_instance_decoder() { use commit_sha <- zero.optional_field( "commit_sha", None, zero.optional(zero.string), ) use message <- zero.optional_field( "message", None, zero.optional(zero.success(Nil)), ) use classifications <- zero.optional_field( "classifications", None, zero.optional(zero.success(Nil)), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use environment <- zero.optional_field( "environment", None, zero.optional(zero.string), ) use location <- zero.optional_field( "location", None, zero.optional(zero.success(Nil)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use analysis_key <- zero.optional_field( "analysis_key", None, zero.optional(zero.string), ) use category <- zero.optional_field( "category", None, zero.optional(zero.string), ) zero.success(CodeScanningAlertInstance( commit_sha: commit_sha, message: message, classifications: classifications, state: state, ref: ref, environment: environment, location: location, html_url: html_url, analysis_key: analysis_key, category: category, )) } pub fn user_role_assignment_to_json(data: UserRoleAssignment) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("name", json.nullable(data.name, json.string)), #("assignment", json.nullable(data.assignment, json.string)), #("url", json.nullable(data.url, json.string)), #("inherited_from", json.null()), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("starred_at", json.nullable(data.starred_at, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("node_id", json.nullable(data.node_id, json.string)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), ]) } pub fn user_role_assignment_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use assignment <- zero.optional_field( "assignment", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use inherited_from <- zero.optional_field( "inherited_from", None, zero.optional(zero.success(Nil)), ) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use starred_at <- zero.optional_field( "starred_at", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) zero.success(UserRoleAssignment( user_view_type: user_view_type, gists_url: gists_url, following_url: following_url, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, events_url: events_url, avatar_url: avatar_url, login: login, name: name, assignment: assignment, url: url, inherited_from: inherited_from, starred_url: starred_url, organizations_url: organizations_url, repos_url: repos_url, starred_at: starred_at, gravatar_id: gravatar_id, site_admin: site_admin, node_id: node_id, type_: type_, id: id, html_url: html_url, email: email, )) } pub fn repository_ruleset_conditions_to_json(data: RepositoryRulesetConditions) { json.object([#("ref_name", json.null())]) } pub fn repository_ruleset_conditions_decoder() { use ref_name <- zero.optional_field( "ref_name", None, zero.optional(zero.success(Nil)), ) zero.success(RepositoryRulesetConditions(ref_name: ref_name)) } pub fn webhook_secret_scanning_alert_created_to_json( data: WebhookSecretScanningAlertCreated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_secret_scanning_alert_created_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecretScanningAlertCreated( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn hook_delivery_item_to_json(data: HookDeliveryItem) { json.object([ #("installation_id", json.nullable(data.installation_id, json.int)), #("redelivery", json.nullable(data.redelivery, json.bool)), #("guid", json.nullable(data.guid, json.string)), #("delivered_at", json.nullable(data.delivered_at, json.string)), #("repository_id", json.nullable(data.repository_id, json.int)), #("status", json.nullable(data.status, json.string)), #("duration", json.nullable(data.duration, json.float)), #("action", json.nullable(data.action, json.string)), #("throttled_at", json.nullable(data.throttled_at, json.string)), #("status_code", json.nullable(data.status_code, json.int)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn hook_delivery_item_decoder() { use installation_id <- zero.optional_field( "installation_id", None, zero.optional(zero.int), ) use redelivery <- zero.optional_field( "redelivery", None, zero.optional(zero.bool), ) use guid <- zero.optional_field("guid", None, zero.optional(zero.string)) use delivered_at <- zero.optional_field( "delivered_at", None, zero.optional(zero.string), ) use repository_id <- zero.optional_field( "repository_id", None, zero.optional(zero.int), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use duration <- zero.optional_field( "duration", None, zero.optional(zero.float), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use throttled_at <- zero.optional_field( "throttled_at", None, zero.optional(zero.string), ) use status_code <- zero.optional_field( "status_code", None, zero.optional(zero.int), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(HookDeliveryItem( installation_id: installation_id, redelivery: redelivery, guid: guid, delivered_at: delivered_at, repository_id: repository_id, status: status, duration: duration, action: action, throttled_at: throttled_at, status_code: status_code, event: event, id: id, )) } pub fn repository_rule_non_fast_forward_to_json( data: RepositoryRuleNonFastForward, ) { json.object([#("type", json.nullable(data.type_, json.string))]) } pub fn repository_rule_non_fast_forward_decoder() { use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleNonFastForward(type_: type_)) } pub fn projects_v2_iteration_setting_to_json(data: ProjectsV2IterationSetting) { json.object([ #("start_date", json.nullable(data.start_date, json.string)), #("duration", json.nullable(data.duration, json.float)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.string)), ]) } pub fn projects_v2_iteration_setting_decoder() { use start_date <- zero.optional_field( "start_date", None, zero.optional(zero.string), ) use duration <- zero.optional_field( "duration", None, zero.optional(zero.float), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.string)) zero.success(ProjectsV2IterationSetting( start_date: start_date, duration: duration, title: title, id: id, )) } pub fn webhook_custom_property_values_updated_to_json( data: WebhookCustomPropertyValuesUpdated, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("new_property_values", json.null()), #("organization", json.null()), #("old_property_values", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_custom_property_values_updated_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use new_property_values <- zero.optional_field( "new_property_values", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use old_property_values <- zero.optional_field( "old_property_values", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookCustomPropertyValuesUpdated( enterprise: enterprise, repository: repository, new_property_values: new_property_values, organization: organization, old_property_values: old_property_values, sender: sender, action: action, installation: installation, )) } pub fn code_scanning_alert_location_to_json(data: CodeScanningAlertLocation) { json.object([ #("path", json.nullable(data.path_, json.string)), #("start_line", json.nullable(data.start_line, json.int)), #("start_column", json.nullable(data.start_column, json.int)), #("end_line", json.nullable(data.end_line, json.int)), #("end_column", json.nullable(data.end_column, json.int)), ]) } pub fn code_scanning_alert_location_decoder() { use path_ <- zero.optional_field("path", None, zero.optional(zero.string)) use start_line <- zero.optional_field( "start_line", None, zero.optional(zero.int), ) use start_column <- zero.optional_field( "start_column", None, zero.optional(zero.int), ) use end_line <- zero.optional_field("end_line", None, zero.optional(zero.int)) use end_column <- zero.optional_field( "end_column", None, zero.optional(zero.int), ) zero.success(CodeScanningAlertLocation( path_: path_, start_line: start_line, start_column: start_column, end_line: end_line, end_column: end_column, )) } pub fn actions_can_approve_pull_request_reviews_decoder() { zero.bool } pub fn code_scanning_alert_rule_summary_to_json( data: CodeScanningAlertRuleSummary, ) { json.object([ #( "security_severity_level", json.nullable(data.security_severity_level, json.string), ), #("help", json.nullable(data.help, json.string)), #("name", json.nullable(data.name, json.string)), #("full_description", json.nullable(data.full_description, json.string)), #("help_uri", json.nullable(data.help_uri, json.string)), #("tags", json.null()), #("id", json.nullable(data.id, json.string)), #("description", json.nullable(data.description, json.string)), #("severity", json.nullable(data.severity, json.string)), ]) } pub fn code_scanning_alert_rule_summary_decoder() { use security_severity_level <- zero.optional_field( "security_severity_level", None, zero.optional(zero.string), ) use help <- zero.optional_field("help", None, zero.optional(zero.string)) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use full_description <- zero.optional_field( "full_description", None, zero.optional(zero.string), ) use help_uri <- zero.optional_field( "help_uri", None, zero.optional(zero.string), ) use tags <- zero.optional_field( "tags", None, zero.optional(zero.list(zero.string)), ) use id <- zero.optional_field("id", None, zero.optional(zero.string)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use severity <- zero.optional_field( "severity", None, zero.optional(zero.string), ) zero.success(CodeScanningAlertRuleSummary( security_severity_level: security_severity_level, help: help, name: name, full_description: full_description, help_uri: help_uri, tags: tags, id: id, description: description, severity: severity, )) } pub fn webhook_projects_v2_item_created_to_json( data: WebhookProjectsV2ItemCreated, ) { json.object([ #("projects_v2_item", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_item_created_decoder() { use projects_v2_item <- zero.optional_field( "projects_v2_item", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ItemCreated( projects_v2_item: projects_v2_item, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn repository_rule_commit_message_pattern_to_json( data: RepositoryRuleCommitMessagePattern, ) { json.object([ #("parameters", json.null()), #("type", json.nullable(data.type_, json.string)), ]) } pub fn repository_rule_commit_message_pattern_decoder() { use parameters <- zero.optional_field( "parameters", None, zero.optional(zero.success(Nil)), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) zero.success(RepositoryRuleCommitMessagePattern( parameters: parameters, type_: type_, )) } pub fn nullable_minimal_repository_to_json(data: NullableMinimalRepository) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("default_branch", json.nullable(data.default_branch, json.string)), #("branches_url", json.nullable(data.branches_url, json.string)), #("size", json.nullable(data.size, json.int)), #("forks_url", json.nullable(data.forks_url, json.string)), #("license", json.null()), #( "delete_branch_on_merge", json.nullable(data.delete_branch_on_merge, json.bool), ), #("forks_count", json.nullable(data.forks_count, json.int)), #("fork", json.nullable(data.fork, json.bool)), #("git_url", json.nullable(data.git_url, json.string)), #("archived", json.nullable(data.archived, json.bool)), #("private", json.nullable(data.private, json.bool)), #("security_and_analysis", json.null()), #("permissions", json.null()), #("keys_url", json.nullable(data.keys_url, json.string)), #("comments_url", json.nullable(data.comments_url, json.string)), #("topics", json.null()), #("trees_url", json.nullable(data.trees_url, json.string)), #("has_downloads", json.nullable(data.has_downloads, json.bool)), #("blobs_url", json.nullable(data.blobs_url, json.string)), #("has_discussions", json.nullable(data.has_discussions, json.bool)), #("teams_url", json.nullable(data.teams_url, json.string)), #("watchers_count", json.nullable(data.watchers_count, json.int)), #("stargazers_url", json.nullable(data.stargazers_url, json.string)), #("stargazers_count", json.nullable(data.stargazers_count, json.int)), #("contributors_url", json.nullable(data.contributors_url, json.string)), #("tags_url", json.nullable(data.tags_url, json.string)), #( "web_commit_signoff_required", json.nullable(data.web_commit_signoff_required, json.bool), ), #("issue_comment_url", json.nullable(data.issue_comment_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("allow_forking", json.nullable(data.allow_forking, json.bool)), #("issues_url", json.nullable(data.issues_url, json.string)), #("contents_url", json.nullable(data.contents_url, json.string)), #("merges_url", json.nullable(data.merges_url, json.string)), #("name", json.nullable(data.name, json.string)), #("languages_url", json.nullable(data.languages_url, json.string)), #("temp_clone_token", json.nullable(data.temp_clone_token, json.string)), #("commits_url", json.nullable(data.commits_url, json.string)), #("subscription_url", json.nullable(data.subscription_url, json.string)), #("clone_url", json.nullable(data.clone_url, json.string)), #("code_of_conduct", json.null()), #("homepage", json.nullable(data.homepage, json.string)), #("issue_events_url", json.nullable(data.issue_events_url, json.string)), #("mirror_url", json.nullable(data.mirror_url, json.string)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("is_template", json.nullable(data.is_template, json.bool)), #("statuses_url", json.nullable(data.statuses_url, json.string)), #("forks", json.nullable(data.forks, json.int)), #("archive_url", json.nullable(data.archive_url, json.string)), #("visibility", json.nullable(data.visibility, json.string)), #("milestones_url", json.nullable(data.milestones_url, json.string)), #("owner", json.null()), #("role_name", json.nullable(data.role_name, json.string)), #("assignees_url", json.nullable(data.assignees_url, json.string)), #("has_wiki", json.nullable(data.has_wiki, json.bool)), #("compare_url", json.nullable(data.compare_url, json.string)), #("git_tags_url", json.nullable(data.git_tags_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("watchers", json.nullable(data.watchers, json.int)), #("node_id", json.nullable(data.node_id, json.string)), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("ssh_url", json.nullable(data.ssh_url, json.string)), #("language", json.nullable(data.language, json.string)), #("pushed_at", json.nullable(data.pushed_at, json.string)), #("downloads_url", json.nullable(data.downloads_url, json.string)), #("subscribers_url", json.nullable(data.subscribers_url, json.string)), #("subscribers_count", json.nullable(data.subscribers_count, json.int)), #("id", json.nullable(data.id, json.int)), #("svn_url", json.nullable(data.svn_url, json.string)), #("full_name", json.nullable(data.full_name, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("disabled", json.nullable(data.disabled, json.bool)), #("description", json.nullable(data.description, json.string)), #("releases_url", json.nullable(data.releases_url, json.string)), #("git_refs_url", json.nullable(data.git_refs_url, json.string)), #("collaborators_url", json.nullable(data.collaborators_url, json.string)), #("pulls_url", json.nullable(data.pulls_url, json.string)), #("network_count", json.nullable(data.network_count, json.int)), #("deployments_url", json.nullable(data.deployments_url, json.string)), #("has_projects", json.nullable(data.has_projects, json.bool)), #("has_pages", json.nullable(data.has_pages, json.bool)), #("open_issues_count", json.nullable(data.open_issues_count, json.int)), #("git_commits_url", json.nullable(data.git_commits_url, json.string)), #("has_issues", json.nullable(data.has_issues, json.bool)), ]) } pub fn nullable_minimal_repository_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use default_branch <- zero.optional_field( "default_branch", None, zero.optional(zero.string), ) use branches_url <- zero.optional_field( "branches_url", None, zero.optional(zero.string), ) use size <- zero.optional_field("size", None, zero.optional(zero.int)) use forks_url <- zero.optional_field( "forks_url", None, zero.optional(zero.string), ) use license <- zero.optional_field( "license", None, zero.optional(zero.success(Nil)), ) use delete_branch_on_merge <- zero.optional_field( "delete_branch_on_merge", None, zero.optional(zero.bool), ) use forks_count <- zero.optional_field( "forks_count", None, zero.optional(zero.int), ) use fork <- zero.optional_field("fork", None, zero.optional(zero.bool)) use git_url <- zero.optional_field( "git_url", None, zero.optional(zero.string), ) use archived <- zero.optional_field( "archived", None, zero.optional(zero.bool), ) use private <- zero.optional_field("private", None, zero.optional(zero.bool)) use security_and_analysis <- zero.optional_field( "security_and_analysis", None, zero.optional(zero.success(Nil)), ) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.success(Nil)), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use comments_url <- zero.optional_field( "comments_url", None, zero.optional(zero.string), ) use topics <- zero.optional_field( "topics", None, zero.optional(zero.list(zero.string)), ) use trees_url <- zero.optional_field( "trees_url", None, zero.optional(zero.string), ) use has_downloads <- zero.optional_field( "has_downloads", None, zero.optional(zero.bool), ) use blobs_url <- zero.optional_field( "blobs_url", None, zero.optional(zero.string), ) use has_discussions <- zero.optional_field( "has_discussions", None, zero.optional(zero.bool), ) use teams_url <- zero.optional_field( "teams_url", None, zero.optional(zero.string), ) use watchers_count <- zero.optional_field( "watchers_count", None, zero.optional(zero.int), ) use stargazers_url <- zero.optional_field( "stargazers_url", None, zero.optional(zero.string), ) use stargazers_count <- zero.optional_field( "stargazers_count", None, zero.optional(zero.int), ) use contributors_url <- zero.optional_field( "contributors_url", None, zero.optional(zero.string), ) use tags_url <- zero.optional_field( "tags_url", None, zero.optional(zero.string), ) use web_commit_signoff_required <- zero.optional_field( "web_commit_signoff_required", None, zero.optional(zero.bool), ) use issue_comment_url <- zero.optional_field( "issue_comment_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use allow_forking <- zero.optional_field( "allow_forking", None, zero.optional(zero.bool), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use contents_url <- zero.optional_field( "contents_url", None, zero.optional(zero.string), ) use merges_url <- zero.optional_field( "merges_url", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use languages_url <- zero.optional_field( "languages_url", None, zero.optional(zero.string), ) use temp_clone_token <- zero.optional_field( "temp_clone_token", None, zero.optional(zero.string), ) use commits_url <- zero.optional_field( "commits_url", None, zero.optional(zero.string), ) use subscription_url <- zero.optional_field( "subscription_url", None, zero.optional(zero.string), ) use clone_url <- zero.optional_field( "clone_url", None, zero.optional(zero.string), ) use code_of_conduct <- zero.optional_field( "code_of_conduct", None, zero.optional(zero.success(Nil)), ) use homepage <- zero.optional_field( "homepage", None, zero.optional(zero.string), ) use issue_events_url <- zero.optional_field( "issue_events_url", None, zero.optional(zero.string), ) use mirror_url <- zero.optional_field( "mirror_url", None, zero.optional(zero.string), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use is_template <- zero.optional_field( "is_template", None, zero.optional(zero.bool), ) use statuses_url <- zero.optional_field( "statuses_url", None, zero.optional(zero.string), ) use forks <- zero.optional_field("forks", None, zero.optional(zero.int)) use archive_url <- zero.optional_field( "archive_url", None, zero.optional(zero.string), ) use visibility <- zero.optional_field( "visibility", None, zero.optional(zero.string), ) use milestones_url <- zero.optional_field( "milestones_url", None, zero.optional(zero.string), ) use owner <- zero.optional_field( "owner", None, zero.optional(zero.success(Nil)), ) use role_name <- zero.optional_field( "role_name", None, zero.optional(zero.string), ) use assignees_url <- zero.optional_field( "assignees_url", None, zero.optional(zero.string), ) use has_wiki <- zero.optional_field( "has_wiki", None, zero.optional(zero.bool), ) use compare_url <- zero.optional_field( "compare_url", None, zero.optional(zero.string), ) use git_tags_url <- zero.optional_field( "git_tags_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use watchers <- zero.optional_field("watchers", None, zero.optional(zero.int)) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use ssh_url <- zero.optional_field( "ssh_url", None, zero.optional(zero.string), ) use language <- zero.optional_field( "language", None, zero.optional(zero.string), ) use pushed_at <- zero.optional_field( "pushed_at", None, zero.optional(zero.string), ) use downloads_url <- zero.optional_field( "downloads_url", None, zero.optional(zero.string), ) use subscribers_url <- zero.optional_field( "subscribers_url", None, zero.optional(zero.string), ) use subscribers_count <- zero.optional_field( "subscribers_count", None, zero.optional(zero.int), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use svn_url <- zero.optional_field( "svn_url", None, zero.optional(zero.string), ) use full_name <- zero.optional_field( "full_name", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use disabled <- zero.optional_field( "disabled", None, zero.optional(zero.bool), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use releases_url <- zero.optional_field( "releases_url", None, zero.optional(zero.string), ) use git_refs_url <- zero.optional_field( "git_refs_url", None, zero.optional(zero.string), ) use collaborators_url <- zero.optional_field( "collaborators_url", None, zero.optional(zero.string), ) use pulls_url <- zero.optional_field( "pulls_url", None, zero.optional(zero.string), ) use network_count <- zero.optional_field( "network_count", None, zero.optional(zero.int), ) use deployments_url <- zero.optional_field( "deployments_url", None, zero.optional(zero.string), ) use has_projects <- zero.optional_field( "has_projects", None, zero.optional(zero.bool), ) use has_pages <- zero.optional_field( "has_pages", None, zero.optional(zero.bool), ) use open_issues_count <- zero.optional_field( "open_issues_count", None, zero.optional(zero.int), ) use git_commits_url <- zero.optional_field( "git_commits_url", None, zero.optional(zero.string), ) use has_issues <- zero.optional_field( "has_issues", None, zero.optional(zero.bool), ) zero.success(NullableMinimalRepository( hooks_url: hooks_url, default_branch: default_branch, branches_url: branches_url, size: size, forks_url: forks_url, license: license, delete_branch_on_merge: delete_branch_on_merge, forks_count: forks_count, fork: fork, git_url: git_url, archived: archived, private: private, security_and_analysis: security_and_analysis, permissions: permissions, keys_url: keys_url, comments_url: comments_url, topics: topics, trees_url: trees_url, has_downloads: has_downloads, blobs_url: blobs_url, has_discussions: has_discussions, teams_url: teams_url, watchers_count: watchers_count, stargazers_url: stargazers_url, stargazers_count: stargazers_count, contributors_url: contributors_url, tags_url: tags_url, web_commit_signoff_required: web_commit_signoff_required, issue_comment_url: issue_comment_url, events_url: events_url, created_at: created_at, allow_forking: allow_forking, issues_url: issues_url, contents_url: contents_url, merges_url: merges_url, name: name, languages_url: languages_url, temp_clone_token: temp_clone_token, commits_url: commits_url, subscription_url: subscription_url, clone_url: clone_url, code_of_conduct: code_of_conduct, homepage: homepage, issue_events_url: issue_events_url, mirror_url: mirror_url, labels_url: labels_url, url: url, open_issues: open_issues, is_template: is_template, statuses_url: statuses_url, forks: forks, archive_url: archive_url, visibility: visibility, milestones_url: milestones_url, owner: owner, role_name: role_name, assignees_url: assignees_url, has_wiki: has_wiki, compare_url: compare_url, git_tags_url: git_tags_url, updated_at: updated_at, watchers: watchers, node_id: node_id, notifications_url: notifications_url, ssh_url: ssh_url, language: language, pushed_at: pushed_at, downloads_url: downloads_url, subscribers_url: subscribers_url, subscribers_count: subscribers_count, id: id, svn_url: svn_url, full_name: full_name, html_url: html_url, disabled: disabled, description: description, releases_url: releases_url, git_refs_url: git_refs_url, collaborators_url: collaborators_url, pulls_url: pulls_url, network_count: network_count, deployments_url: deployments_url, has_projects: has_projects, has_pages: has_pages, open_issues_count: open_issues_count, git_commits_url: git_commits_url, has_issues: has_issues, )) } pub fn root_to_json(data: Root) { json.object([ #("commit_search_url", json.nullable(data.commit_search_url, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("starred_gists_url", json.nullable(data.starred_gists_url, json.string)), #("following_url", json.nullable(data.following_url, json.string)), #("current_user_url", json.nullable(data.current_user_url, json.string)), #("organization_url", json.nullable(data.organization_url, json.string)), #("label_search_url", json.nullable(data.label_search_url, json.string)), #("keys_url", json.nullable(data.keys_url, json.string)), #( "organization_repositories_url", json.nullable(data.organization_repositories_url, json.string), ), #("feeds_url", json.nullable(data.feeds_url, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("hub_url", json.nullable(data.hub_url, json.string)), #( "current_user_repositories_url", json.nullable(data.current_user_repositories_url, json.string), ), #("emails_url", json.nullable(data.emails_url, json.string)), #("topic_search_url", json.nullable(data.topic_search_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("public_gists_url", json.nullable(data.public_gists_url, json.string)), #("issues_url", json.nullable(data.issues_url, json.string)), #("authorizations_url", json.nullable(data.authorizations_url, json.string)), #("code_search_url", json.nullable(data.code_search_url, json.string)), #( "user_repositories_url", json.nullable(data.user_repositories_url, json.string), ), #("rate_limit_url", json.nullable(data.rate_limit_url, json.string)), #("user_search_url", json.nullable(data.user_search_url, json.string)), #( "repository_search_url", json.nullable(data.repository_search_url, json.string), ), #("starred_url", json.nullable(data.starred_url, json.string)), #( "current_user_authorizations_html_url", json.nullable(data.current_user_authorizations_html_url, json.string), ), #("notifications_url", json.nullable(data.notifications_url, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #( "organization_teams_url", json.nullable(data.organization_teams_url, json.string), ), #("user_url", json.nullable(data.user_url, json.string)), #( "user_organizations_url", json.nullable(data.user_organizations_url, json.string), ), #("emojis_url", json.nullable(data.emojis_url, json.string)), #("issue_search_url", json.nullable(data.issue_search_url, json.string)), ]) } pub fn root_decoder() { use commit_search_url <- zero.optional_field( "commit_search_url", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use starred_gists_url <- zero.optional_field( "starred_gists_url", None, zero.optional(zero.string), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use current_user_url <- zero.optional_field( "current_user_url", None, zero.optional(zero.string), ) use organization_url <- zero.optional_field( "organization_url", None, zero.optional(zero.string), ) use label_search_url <- zero.optional_field( "label_search_url", None, zero.optional(zero.string), ) use keys_url <- zero.optional_field( "keys_url", None, zero.optional(zero.string), ) use organization_repositories_url <- zero.optional_field( "organization_repositories_url", None, zero.optional(zero.string), ) use feeds_url <- zero.optional_field( "feeds_url", None, zero.optional(zero.string), ) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use hub_url <- zero.optional_field( "hub_url", None, zero.optional(zero.string), ) use current_user_repositories_url <- zero.optional_field( "current_user_repositories_url", None, zero.optional(zero.string), ) use emails_url <- zero.optional_field( "emails_url", None, zero.optional(zero.string), ) use topic_search_url <- zero.optional_field( "topic_search_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use public_gists_url <- zero.optional_field( "public_gists_url", None, zero.optional(zero.string), ) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use authorizations_url <- zero.optional_field( "authorizations_url", None, zero.optional(zero.string), ) use code_search_url <- zero.optional_field( "code_search_url", None, zero.optional(zero.string), ) use user_repositories_url <- zero.optional_field( "user_repositories_url", None, zero.optional(zero.string), ) use rate_limit_url <- zero.optional_field( "rate_limit_url", None, zero.optional(zero.string), ) use user_search_url <- zero.optional_field( "user_search_url", None, zero.optional(zero.string), ) use repository_search_url <- zero.optional_field( "repository_search_url", None, zero.optional(zero.string), ) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use current_user_authorizations_html_url <- zero.optional_field( "current_user_authorizations_html_url", None, zero.optional(zero.string), ) use notifications_url <- zero.optional_field( "notifications_url", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use organization_teams_url <- zero.optional_field( "organization_teams_url", None, zero.optional(zero.string), ) use user_url <- zero.optional_field( "user_url", None, zero.optional(zero.string), ) use user_organizations_url <- zero.optional_field( "user_organizations_url", None, zero.optional(zero.string), ) use emojis_url <- zero.optional_field( "emojis_url", None, zero.optional(zero.string), ) use issue_search_url <- zero.optional_field( "issue_search_url", None, zero.optional(zero.string), ) zero.success(Root( commit_search_url: commit_search_url, gists_url: gists_url, starred_gists_url: starred_gists_url, following_url: following_url, current_user_url: current_user_url, organization_url: organization_url, label_search_url: label_search_url, keys_url: keys_url, organization_repositories_url: organization_repositories_url, feeds_url: feeds_url, followers_url: followers_url, hub_url: hub_url, current_user_repositories_url: current_user_repositories_url, emails_url: emails_url, topic_search_url: topic_search_url, events_url: events_url, public_gists_url: public_gists_url, issues_url: issues_url, authorizations_url: authorizations_url, code_search_url: code_search_url, user_repositories_url: user_repositories_url, rate_limit_url: rate_limit_url, user_search_url: user_search_url, repository_search_url: repository_search_url, starred_url: starred_url, current_user_authorizations_html_url: current_user_authorizations_html_url, notifications_url: notifications_url, repository_url: repository_url, organization_teams_url: organization_teams_url, user_url: user_url, user_organizations_url: user_organizations_url, emojis_url: emojis_url, issue_search_url: issue_search_url, )) } pub fn nullable_alert_updated_at_decoder() { zero.string } pub fn webhook_secret_scanning_alert_reopened_to_json( data: WebhookSecretScanningAlertReopened, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_secret_scanning_alert_reopened_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookSecretScanningAlertReopened( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn sigstore_bundle0_to_json(data: SigstoreBundle0) { json.object([ #("verificationMaterial", json.null()), #("dsseEnvelope", json.null()), #("mediaType", json.nullable(data.media_type, json.string)), ]) } pub fn sigstore_bundle0_decoder() { use verification_material <- zero.optional_field( "verificationMaterial", None, zero.optional(zero.success(Nil)), ) use dsse_envelope <- zero.optional_field( "dsseEnvelope", None, zero.optional(zero.success(Nil)), ) use media_type <- zero.optional_field( "mediaType", None, zero.optional(zero.string), ) zero.success(SigstoreBundle0( verification_material: verification_material, dsse_envelope: dsse_envelope, media_type: media_type, )) } pub fn contributor_activity_to_json(data: ContributorActivity) { json.object([ #("total", json.nullable(data.total, json.int)), #("author", json.null()), #("weeks", json.null()), ]) } pub fn contributor_activity_decoder() { use total <- zero.optional_field("total", None, zero.optional(zero.int)) use author <- zero.optional_field( "author", None, zero.optional(zero.success(Nil)), ) use weeks <- zero.optional_field( "weeks", None, zero.optional(zero.success(Nil)), ) zero.success(ContributorActivity(total: total, author: author, weeks: weeks)) } pub fn webhooks_code_scanning_commit_oid_decoder() { zero.string } pub fn gist_commit_to_json(data: GistCommit) { json.object([ #("change_status", json.null()), #("user", json.null()), #("url", json.nullable(data.url, json.string)), #("committed_at", json.nullable(data.committed_at, json.string)), #("version", json.nullable(data.version, json.string)), ]) } pub fn gist_commit_decoder() { use change_status <- zero.optional_field( "change_status", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use committed_at <- zero.optional_field( "committed_at", None, zero.optional(zero.string), ) use version <- zero.optional_field( "version", None, zero.optional(zero.string), ) zero.success(GistCommit( change_status: change_status, user: user, url: url, committed_at: committed_at, version: version, )) } pub fn enterprise_to_json(data: Enterprise) { json.object([ #("avatar_url", json.nullable(data.avatar_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("website_url", json.nullable(data.website_url, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn enterprise_decoder() { use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use website_url <- zero.optional_field( "website_url", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(Enterprise( avatar_url: avatar_url, created_at: created_at, name: name, slug: slug, website_url: website_url, updated_at: updated_at, node_id: node_id, id: id, html_url: html_url, description: description, )) } pub fn webhook_issue_comment_deleted_to_json(data: WebhookIssueCommentDeleted) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_issue_comment_deleted_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssueCommentDeleted( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, comment: comment, )) } pub fn webhooks_ref_0_decoder() { zero.string } pub fn webhooks_milestone3_to_json(data: WebhooksMilestone3) { json.object([ #("closed_at", json.nullable(data.closed_at, json.string)), #("number", json.nullable(data.number, json.int)), #("due_on", json.nullable(data.due_on, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("creator", json.null()), #("closed_issues", json.nullable(data.closed_issues, json.int)), #("labels_url", json.nullable(data.labels_url, json.string)), #("url", json.nullable(data.url, json.string)), #("open_issues", json.nullable(data.open_issues, json.int)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("title", json.nullable(data.title, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhooks_milestone3_decoder() { use closed_at <- zero.optional_field( "closed_at", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use due_on <- zero.optional_field("due_on", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use creator <- zero.optional_field( "creator", None, zero.optional(zero.success(Nil)), ) use closed_issues <- zero.optional_field( "closed_issues", None, zero.optional(zero.int), ) use labels_url <- zero.optional_field( "labels_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use open_issues <- zero.optional_field( "open_issues", None, zero.optional(zero.int), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use title <- zero.optional_field("title", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhooksMilestone3( closed_at: closed_at, number: number, due_on: due_on, created_at: created_at, creator: creator, closed_issues: closed_issues, labels_url: labels_url, url: url, open_issues: open_issues, state: state, updated_at: updated_at, node_id: node_id, title: title, id: id, html_url: html_url, description: description, )) } pub fn dependabot_alert_to_json(data: DependabotAlert) { json.object([ #("dismissed_comment", json.nullable(data.dismissed_comment, json.string)), #("number", json.nullable(data.number, json.int)), #("dismissed_at", json.nullable(data.dismissed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("dependency", json.null()), #("dismissed_by", json.null()), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("security_advisory", json.null()), #("auto_dismissed_at", json.nullable(data.auto_dismissed_at, json.string)), #("dismissed_reason", json.nullable(data.dismissed_reason, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("security_vulnerability", json.null()), #("fixed_at", json.nullable(data.fixed_at, json.string)), ]) } pub fn dependabot_alert_decoder() { use dismissed_comment <- zero.optional_field( "dismissed_comment", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use dismissed_at <- zero.optional_field( "dismissed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use dependency <- zero.optional_field( "dependency", None, zero.optional(zero.success(Nil)), ) use dismissed_by <- zero.optional_field( "dismissed_by", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use security_advisory <- zero.optional_field( "security_advisory", None, zero.optional(zero.success(Nil)), ) use auto_dismissed_at <- zero.optional_field( "auto_dismissed_at", None, zero.optional(zero.string), ) use dismissed_reason <- zero.optional_field( "dismissed_reason", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use security_vulnerability <- zero.optional_field( "security_vulnerability", None, zero.optional(zero.success(Nil)), ) use fixed_at <- zero.optional_field( "fixed_at", None, zero.optional(zero.string), ) zero.success(DependabotAlert( dismissed_comment: dismissed_comment, number: number, dismissed_at: dismissed_at, created_at: created_at, dependency: dependency, dismissed_by: dismissed_by, url: url, state: state, updated_at: updated_at, security_advisory: security_advisory, auto_dismissed_at: auto_dismissed_at, dismissed_reason: dismissed_reason, html_url: html_url, security_vulnerability: security_vulnerability, fixed_at: fixed_at, )) } pub fn code_scanning_default_setup_update_to_json( data: CodeScanningDefaultSetupUpdate, ) { json.object([ #("query_suite", json.nullable(data.query_suite, json.string)), #("state", json.nullable(data.state, json.string)), #("languages", json.null()), ]) } pub fn code_scanning_default_setup_update_decoder() { use query_suite <- zero.optional_field( "query_suite", None, zero.optional(zero.string), ) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use languages <- zero.optional_field( "languages", None, zero.optional(zero.list(zero.string)), ) zero.success(CodeScanningDefaultSetupUpdate( query_suite: query_suite, state: state, languages: languages, )) } pub fn timeline_commit_commented_event_to_json( data: TimelineCommitCommentedEvent, ) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("comments", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), ]) } pub fn timeline_commit_commented_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use comments <- zero.optional_field( "comments", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) zero.success(TimelineCommitCommentedEvent( commit_id: commit_id, comments: comments, node_id: node_id, event: event, )) } pub fn webhook_delete_to_json(data: WebhookDelete) { json.object([ #("enterprise", json.null()), #("ref_type", json.nullable(data.ref_type, json.string)), #("repository", json.null()), #("pusher_type", json.nullable(data.pusher_type, json.string)), #("ref", json.nullable(data.ref, json.string)), #("organization", json.null()), #("sender", json.null()), #("installation", json.null()), ]) } pub fn webhook_delete_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use ref_type <- zero.optional_field( "ref_type", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use pusher_type <- zero.optional_field( "pusher_type", None, zero.optional(zero.string), ) use ref <- zero.optional_field("ref", None, zero.optional(zero.string)) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDelete( enterprise: enterprise, ref_type: ref_type, repository: repository, pusher_type: pusher_type, ref: ref, organization: organization, sender: sender, installation: installation, )) } pub fn webhook_deployment_review_rejected_to_json( data: WebhookDeploymentReviewRejected, ) { json.object([ #("enterprise", json.null()), #("approver", json.null()), #("workflow_job_run", json.null()), #("workflow_job_runs", json.null()), #("repository", json.null()), #("workflow_run", json.null()), #("reviewers", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("since", json.nullable(data.since, json.string)), #("comment", json.nullable(data.comment, json.string)), ]) } pub fn webhook_deployment_review_rejected_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use approver <- zero.optional_field( "approver", None, zero.optional(zero.success(Nil)), ) use workflow_job_run <- zero.optional_field( "workflow_job_run", None, zero.optional(zero.success(Nil)), ) use workflow_job_runs <- zero.optional_field( "workflow_job_runs", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use workflow_run <- zero.optional_field( "workflow_run", None, zero.optional(zero.success(Nil)), ) use reviewers <- zero.optional_field( "reviewers", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use since <- zero.optional_field("since", None, zero.optional(zero.string)) use comment <- zero.optional_field( "comment", None, zero.optional(zero.string), ) zero.success(WebhookDeploymentReviewRejected( enterprise: enterprise, approver: approver, workflow_job_run: workflow_job_run, workflow_job_runs: workflow_job_runs, repository: repository, workflow_run: workflow_run, reviewers: reviewers, organization: organization, sender: sender, action: action, installation: installation, since: since, comment: comment, )) } pub fn secret_scanning_alert_state_decoder() { zero.string } pub fn protected_branch_to_json(data: ProtectedBranch) { json.object([ #("allow_fork_syncing", json.null()), #("enforce_admins", json.null()), #("block_creations", json.null()), #("restrictions", json.null()), #("required_conversation_resolution", json.null()), #("allow_deletions", json.null()), #("url", json.nullable(data.url, json.string)), #("required_pull_request_reviews", json.null()), #("allow_force_pushes", json.null()), #("lock_branch", json.null()), #("required_status_checks", json.null()), #("required_linear_history", json.null()), #("required_signatures", json.null()), ]) } pub fn protected_branch_decoder() { use allow_fork_syncing <- zero.optional_field( "allow_fork_syncing", None, zero.optional(zero.success(Nil)), ) use enforce_admins <- zero.optional_field( "enforce_admins", None, zero.optional(zero.success(Nil)), ) use block_creations <- zero.optional_field( "block_creations", None, zero.optional(zero.success(Nil)), ) use restrictions <- zero.optional_field( "restrictions", None, zero.optional(zero.success(Nil)), ) use required_conversation_resolution <- zero.optional_field( "required_conversation_resolution", None, zero.optional(zero.success(Nil)), ) use allow_deletions <- zero.optional_field( "allow_deletions", None, zero.optional(zero.success(Nil)), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use required_pull_request_reviews <- zero.optional_field( "required_pull_request_reviews", None, zero.optional(zero.success(Nil)), ) use allow_force_pushes <- zero.optional_field( "allow_force_pushes", None, zero.optional(zero.success(Nil)), ) use lock_branch <- zero.optional_field( "lock_branch", None, zero.optional(zero.success(Nil)), ) use required_status_checks <- zero.optional_field( "required_status_checks", None, zero.optional(zero.success(Nil)), ) use required_linear_history <- zero.optional_field( "required_linear_history", None, zero.optional(zero.success(Nil)), ) use required_signatures <- zero.optional_field( "required_signatures", None, zero.optional(zero.success(Nil)), ) zero.success(ProtectedBranch( allow_fork_syncing: allow_fork_syncing, enforce_admins: enforce_admins, block_creations: block_creations, restrictions: restrictions, required_conversation_resolution: required_conversation_resolution, allow_deletions: allow_deletions, url: url, required_pull_request_reviews: required_pull_request_reviews, allow_force_pushes: allow_force_pushes, lock_branch: lock_branch, required_status_checks: required_status_checks, required_linear_history: required_linear_history, required_signatures: required_signatures, )) } pub fn webhooks_answer_to_json(data: WebhooksAnswer) { json.object([ #("body", json.nullable(data.body, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("reactions", json.null()), #("user", json.null()), #("child_comment_count", json.nullable(data.child_comment_count, json.int)), #("author_association", json.nullable(data.author_association, json.string)), #("discussion_id", json.nullable(data.discussion_id, json.int)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn webhooks_answer_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use child_comment_count <- zero.optional_field( "child_comment_count", None, zero.optional(zero.int), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use discussion_id <- zero.optional_field( "discussion_id", None, zero.optional(zero.int), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(WebhooksAnswer( body: body, created_at: created_at, reactions: reactions, user: user, child_comment_count: child_comment_count, author_association: author_association, discussion_id: discussion_id, updated_at: updated_at, node_id: node_id, repository_url: repository_url, id: id, html_url: html_url, )) } pub fn webhook_issue_comment_edited_to_json(data: WebhookIssueCommentEdited) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), #("comment", json.null()), ]) } pub fn webhook_issue_comment_edited_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use comment <- zero.optional_field( "comment", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssueCommentEdited( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, comment: comment, )) } pub fn license_to_json(data: License) { json.object([ #("body", json.nullable(data.body, json.string)), #("permissions", json.null()), #("spdx_id", json.nullable(data.spdx_id, json.string)), #("name", json.nullable(data.name, json.string)), #("featured", json.nullable(data.featured, json.bool)), #("url", json.nullable(data.url, json.string)), #("implementation", json.nullable(data.implementation, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("conditions", json.null()), #("limitations", json.null()), #("html_url", json.nullable(data.html_url, json.string)), #("description", json.nullable(data.description, json.string)), #("key", json.nullable(data.key, json.string)), ]) } pub fn license_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use permissions <- zero.optional_field( "permissions", None, zero.optional(zero.list(zero.string)), ) use spdx_id <- zero.optional_field( "spdx_id", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use featured <- zero.optional_field( "featured", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use implementation <- zero.optional_field( "implementation", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use conditions <- zero.optional_field( "conditions", None, zero.optional(zero.list(zero.string)), ) use limitations <- zero.optional_field( "limitations", None, zero.optional(zero.list(zero.string)), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(License( body: body, permissions: permissions, spdx_id: spdx_id, name: name, featured: featured, url: url, implementation: implementation, node_id: node_id, conditions: conditions, limitations: limitations, html_url: html_url, description: description, key: key, )) } pub fn webhook_dependabot_alert_auto_dismissed_to_json( data: WebhookDependabotAlertAutoDismissed, ) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("alert", json.null()), ]) } pub fn webhook_dependabot_alert_auto_dismissed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use alert <- zero.optional_field( "alert", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDependabotAlertAutoDismissed( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, installation: installation, alert: alert, )) } pub fn webhooks_team_to_json(data: WebhooksTeam) { json.object([ #("privacy", json.nullable(data.privacy, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("parent", json.null()), #("name", json.nullable(data.name, json.string)), #("slug", json.nullable(data.slug, json.string)), #("url", json.nullable(data.url, json.string)), #("permission", json.nullable(data.permission, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("repositories_url", json.nullable(data.repositories_url, json.string)), #("deleted", json.nullable(data.deleted, json.bool)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #( "notification_setting", json.nullable(data.notification_setting, json.string), ), #("description", json.nullable(data.description, json.string)), ]) } pub fn webhooks_team_decoder() { use privacy <- zero.optional_field( "privacy", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use parent <- zero.optional_field( "parent", None, zero.optional(zero.success(Nil)), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use slug <- zero.optional_field("slug", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use permission <- zero.optional_field( "permission", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use repositories_url <- zero.optional_field( "repositories_url", None, zero.optional(zero.string), ) use deleted <- zero.optional_field("deleted", None, zero.optional(zero.bool)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use notification_setting <- zero.optional_field( "notification_setting", None, zero.optional(zero.string), ) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(WebhooksTeam( privacy: privacy, members_url: members_url, parent: parent, name: name, slug: slug, url: url, permission: permission, node_id: node_id, repositories_url: repositories_url, deleted: deleted, id: id, html_url: html_url, notification_setting: notification_setting, description: description, )) } pub fn user_search_result_item_to_json(data: UserSearchResultItem) { json.object([ #("user_view_type", json.nullable(data.user_view_type, json.string)), #("gists_url", json.nullable(data.gists_url, json.string)), #("text_matches", json.null()), #("following_url", json.nullable(data.following_url, json.string)), #("blog", json.nullable(data.blog, json.string)), #("followers_url", json.nullable(data.followers_url, json.string)), #("subscriptions_url", json.nullable(data.subscriptions_url, json.string)), #( "received_events_url", json.nullable(data.received_events_url, json.string), ), #("bio", json.nullable(data.bio, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("public_repos", json.nullable(data.public_repos, json.int)), #("name", json.nullable(data.name, json.string)), #("hireable", json.nullable(data.hireable, json.bool)), #("url", json.nullable(data.url, json.string)), #("starred_url", json.nullable(data.starred_url, json.string)), #("organizations_url", json.nullable(data.organizations_url, json.string)), #("following", json.nullable(data.following, json.int)), #("repos_url", json.nullable(data.repos_url, json.string)), #("score", json.nullable(data.score, json.float)), #("followers", json.nullable(data.followers, json.int)), #("location", json.nullable(data.location, json.string)), #("gravatar_id", json.nullable(data.gravatar_id, json.string)), #("site_admin", json.nullable(data.site_admin, json.bool)), #("suspended_at", json.nullable(data.suspended_at, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("public_gists", json.nullable(data.public_gists, json.int)), #("type", json.nullable(data.type_, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), #("email", json.nullable(data.email, json.string)), #("company", json.nullable(data.company, json.string)), ]) } pub fn user_search_result_item_decoder() { use user_view_type <- zero.optional_field( "user_view_type", None, zero.optional(zero.string), ) use gists_url <- zero.optional_field( "gists_url", None, zero.optional(zero.string), ) use text_matches <- zero.optional_field( "text_matches", None, zero.optional(zero.success(Nil)), ) use following_url <- zero.optional_field( "following_url", None, zero.optional(zero.string), ) use blog <- zero.optional_field("blog", None, zero.optional(zero.string)) use followers_url <- zero.optional_field( "followers_url", None, zero.optional(zero.string), ) use subscriptions_url <- zero.optional_field( "subscriptions_url", None, zero.optional(zero.string), ) use received_events_url <- zero.optional_field( "received_events_url", None, zero.optional(zero.string), ) use bio <- zero.optional_field("bio", None, zero.optional(zero.string)) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use public_repos <- zero.optional_field( "public_repos", None, zero.optional(zero.int), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use hireable <- zero.optional_field( "hireable", None, zero.optional(zero.bool), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use starred_url <- zero.optional_field( "starred_url", None, zero.optional(zero.string), ) use organizations_url <- zero.optional_field( "organizations_url", None, zero.optional(zero.string), ) use following <- zero.optional_field( "following", None, zero.optional(zero.int), ) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use score <- zero.optional_field("score", None, zero.optional(zero.float)) use followers <- zero.optional_field( "followers", None, zero.optional(zero.int), ) use location <- zero.optional_field( "location", None, zero.optional(zero.string), ) use gravatar_id <- zero.optional_field( "gravatar_id", None, zero.optional(zero.string), ) use site_admin <- zero.optional_field( "site_admin", None, zero.optional(zero.bool), ) use suspended_at <- zero.optional_field( "suspended_at", None, zero.optional(zero.string), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use public_gists <- zero.optional_field( "public_gists", None, zero.optional(zero.int), ) use type_ <- zero.optional_field("type", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use email <- zero.optional_field("email", None, zero.optional(zero.string)) use company <- zero.optional_field( "company", None, zero.optional(zero.string), ) zero.success(UserSearchResultItem( user_view_type: user_view_type, gists_url: gists_url, text_matches: text_matches, following_url: following_url, blog: blog, followers_url: followers_url, subscriptions_url: subscriptions_url, received_events_url: received_events_url, bio: bio, events_url: events_url, avatar_url: avatar_url, login: login, created_at: created_at, public_repos: public_repos, name: name, hireable: hireable, url: url, starred_url: starred_url, organizations_url: organizations_url, following: following, repos_url: repos_url, score: score, followers: followers, location: location, gravatar_id: gravatar_id, site_admin: site_admin, suspended_at: suspended_at, updated_at: updated_at, node_id: node_id, public_gists: public_gists, type_: type_, id: id, html_url: html_url, email: email, company: company, )) } pub fn webhook_discussion_unpinned_to_json(data: WebhookDiscussionUnpinned) { json.object([ #("enterprise", json.null()), #("discussion", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_discussion_unpinned_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use discussion <- zero.optional_field( "discussion", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookDiscussionUnpinned( enterprise: enterprise, discussion: discussion, repository: repository, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn unassigned_issue_event_to_json(data: UnassignedIssueEvent) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("assignee", json.null()), #("actor", json.null()), #("performed_via_github_app", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), #("assigner", json.null()), ]) } pub fn unassigned_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use assignee <- zero.optional_field( "assignee", None, zero.optional(zero.success(Nil)), ) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use assigner <- zero.optional_field( "assigner", None, zero.optional(zero.success(Nil)), ) zero.success(UnassignedIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, assignee: assignee, actor: actor, performed_via_github_app: performed_via_github_app, node_id: node_id, event: event, id: id, assigner: assigner, )) } pub fn nullable_organization_simple_to_json(data: NullableOrganizationSimple) { json.object([ #("hooks_url", json.nullable(data.hooks_url, json.string)), #("members_url", json.nullable(data.members_url, json.string)), #("events_url", json.nullable(data.events_url, json.string)), #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("issues_url", json.nullable(data.issues_url, json.string)), #("url", json.nullable(data.url, json.string)), #("repos_url", json.nullable(data.repos_url, json.string)), #("public_members_url", json.nullable(data.public_members_url, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("id", json.nullable(data.id, json.int)), #("description", json.nullable(data.description, json.string)), ]) } pub fn nullable_organization_simple_decoder() { use hooks_url <- zero.optional_field( "hooks_url", None, zero.optional(zero.string), ) use members_url <- zero.optional_field( "members_url", None, zero.optional(zero.string), ) use events_url <- zero.optional_field( "events_url", None, zero.optional(zero.string), ) use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use issues_url <- zero.optional_field( "issues_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use repos_url <- zero.optional_field( "repos_url", None, zero.optional(zero.string), ) use public_members_url <- zero.optional_field( "public_members_url", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use description <- zero.optional_field( "description", None, zero.optional(zero.string), ) zero.success(NullableOrganizationSimple( hooks_url: hooks_url, members_url: members_url, events_url: events_url, avatar_url: avatar_url, login: login, issues_url: issues_url, url: url, repos_url: repos_url, public_members_url: public_members_url, node_id: node_id, id: id, description: description, )) } pub fn repository_subscription_to_json(data: RepositorySubscription) { json.object([ #("reason", json.nullable(data.reason, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("ignored", json.nullable(data.ignored, json.bool)), #("subscribed", json.nullable(data.subscribed, json.bool)), #("repository_url", json.nullable(data.repository_url, json.string)), ]) } pub fn repository_subscription_decoder() { use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use ignored <- zero.optional_field("ignored", None, zero.optional(zero.bool)) use subscribed <- zero.optional_field( "subscribed", None, zero.optional(zero.bool), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) zero.success(RepositorySubscription( reason: reason, created_at: created_at, url: url, ignored: ignored, subscribed: subscribed, repository_url: repository_url, )) } pub fn webhooks_changes_to_json(data: WebhooksChanges) { json.object([#("body", json.null())]) } pub fn webhooks_changes_decoder() { use body <- zero.optional_field( "body", None, zero.optional(zero.success(Nil)), ) zero.success(WebhooksChanges(body: body)) } pub fn webhook_pull_request_synchronize_to_json( data: WebhookPullRequestSynchronize, ) { json.object([ #("enterprise", json.null()), #("number", json.nullable(data.number, json.int)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("pull_request", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("after", json.nullable(data.after, json.string)), #("before", json.nullable(data.before, json.string)), ]) } pub fn webhook_pull_request_synchronize_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use pull_request <- zero.optional_field( "pull_request", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use after <- zero.optional_field("after", None, zero.optional(zero.string)) use before <- zero.optional_field("before", None, zero.optional(zero.string)) zero.success(WebhookPullRequestSynchronize( enterprise: enterprise, number: number, repository: repository, organization: organization, sender: sender, pull_request: pull_request, action: action, installation: installation, after: after, before: before, )) } pub fn webhook_merge_group_destroyed_to_json(data: WebhookMergeGroupDestroyed) { json.object([ #("reason", json.nullable(data.reason, json.string)), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("merge_group", json.null()), #("installation", json.null()), ]) } pub fn webhook_merge_group_destroyed_decoder() { use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use merge_group <- zero.optional_field( "merge_group", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMergeGroupDestroyed( reason: reason, repository: repository, organization: organization, sender: sender, action: action, merge_group: merge_group, installation: installation, )) } pub fn pages_health_check_to_json(data: PagesHealthCheck) { json.object([#("domain", json.null()), #("alt_domain", json.null())]) } pub fn pages_health_check_decoder() { use domain <- zero.optional_field( "domain", None, zero.optional(zero.success(Nil)), ) use alt_domain <- zero.optional_field( "alt_domain", None, zero.optional(zero.success(Nil)), ) zero.success(PagesHealthCheck(domain: domain, alt_domain: alt_domain)) } pub fn webhook_check_run_requested_action_form_encoded_to_json( data: WebhookCheckRunRequestedActionFormEncoded, ) { json.object([#("payload", json.nullable(data.payload, json.string))]) } pub fn webhook_check_run_requested_action_form_encoded_decoder() { use payload <- zero.optional_field( "payload", None, zero.optional(zero.string), ) zero.success(WebhookCheckRunRequestedActionFormEncoded(payload: payload)) } pub fn actions_secret_to_json(data: ActionsSecret) { json.object([ #("created_at", json.nullable(data.created_at, json.string)), #("name", json.nullable(data.name, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), ]) } pub fn actions_secret_decoder() { use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use name <- zero.optional_field("name", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) zero.success(ActionsSecret( created_at: created_at, name: name, updated_at: updated_at, )) } pub fn converted_note_to_issue_issue_event_to_json( data: ConvertedNoteToIssueIssueEvent, ) { json.object([ #("commit_id", json.nullable(data.commit_id, json.string)), #("commit_url", json.nullable(data.commit_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("project_card", json.null()), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn converted_note_to_issue_issue_event_decoder() { use commit_id <- zero.optional_field( "commit_id", None, zero.optional(zero.string), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(ConvertedNoteToIssueIssueEvent( commit_id: commit_id, commit_url: commit_url, created_at: created_at, url: url, actor: actor, performed_via_github_app: performed_via_github_app, project_card: project_card, node_id: node_id, event: event, id: id, )) } pub fn webhook_issues_unlocked_to_json(data: WebhookIssuesUnlocked) { json.object([ #("enterprise", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("issue", json.null()), #("installation", json.null()), ]) } pub fn webhook_issues_unlocked_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use issue <- zero.optional_field( "issue", None, zero.optional(zero.success(Nil)), ) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookIssuesUnlocked( enterprise: enterprise, repository: repository, organization: organization, sender: sender, action: action, issue: issue, installation: installation, )) } pub fn code_scanning_alert_to_json(data: CodeScanningAlert) { json.object([ #("dismissed_comment", json.nullable(data.dismissed_comment, json.string)), #("number", json.nullable(data.number, json.int)), #("dismissed_at", json.nullable(data.dismissed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("dismissed_by", json.null()), #("instances_url", json.nullable(data.instances_url, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("updated_at", json.nullable(data.updated_at, json.string)), #("tool", json.null()), #("dismissed_reason", json.nullable(data.dismissed_reason, json.string)), #("html_url", json.nullable(data.html_url, json.string)), #("rule", json.null()), #("most_recent_instance", json.null()), #("fixed_at", json.nullable(data.fixed_at, json.string)), ]) } pub fn code_scanning_alert_decoder() { use dismissed_comment <- zero.optional_field( "dismissed_comment", None, zero.optional(zero.string), ) use number <- zero.optional_field("number", None, zero.optional(zero.int)) use dismissed_at <- zero.optional_field( "dismissed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use dismissed_by <- zero.optional_field( "dismissed_by", None, zero.optional(zero.success(Nil)), ) use instances_url <- zero.optional_field( "instances_url", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use tool <- zero.optional_field( "tool", None, zero.optional(zero.success(Nil)), ) use dismissed_reason <- zero.optional_field( "dismissed_reason", None, zero.optional(zero.string), ) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) use rule <- zero.optional_field( "rule", None, zero.optional(zero.success(Nil)), ) use most_recent_instance <- zero.optional_field( "most_recent_instance", None, zero.optional(zero.success(Nil)), ) use fixed_at <- zero.optional_field( "fixed_at", None, zero.optional(zero.string), ) zero.success(CodeScanningAlert( dismissed_comment: dismissed_comment, number: number, dismissed_at: dismissed_at, created_at: created_at, dismissed_by: dismissed_by, instances_url: instances_url, url: url, state: state, updated_at: updated_at, tool: tool, dismissed_reason: dismissed_reason, html_url: html_url, rule: rule, most_recent_instance: most_recent_instance, fixed_at: fixed_at, )) } pub fn timeline_comment_event_to_json(data: TimelineCommentEvent) { json.object([ #("body", json.nullable(data.body, json.string)), #("body_html", json.nullable(data.body_html, json.string)), #("issue_url", json.nullable(data.issue_url, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("body_text", json.nullable(data.body_text, json.string)), #("reactions", json.null()), #("user", json.null()), #("author_association", json.nullable(data.author_association, json.string)), #("url", json.nullable(data.url, json.string)), #("actor", json.null()), #("performed_via_github_app", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("node_id", json.nullable(data.node_id, json.string)), #("event", json.nullable(data.event, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn timeline_comment_event_decoder() { use body <- zero.optional_field("body", None, zero.optional(zero.string)) use body_html <- zero.optional_field( "body_html", None, zero.optional(zero.string), ) use issue_url <- zero.optional_field( "issue_url", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use body_text <- zero.optional_field( "body_text", None, zero.optional(zero.string), ) use reactions <- zero.optional_field( "reactions", None, zero.optional(zero.success(Nil)), ) use user <- zero.optional_field( "user", None, zero.optional(zero.success(Nil)), ) use author_association <- zero.optional_field( "author_association", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use performed_via_github_app <- zero.optional_field( "performed_via_github_app", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use node_id <- zero.optional_field( "node_id", None, zero.optional(zero.string), ) use event <- zero.optional_field("event", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(TimelineCommentEvent( body: body, body_html: body_html, issue_url: issue_url, created_at: created_at, body_text: body_text, reactions: reactions, user: user, author_association: author_association, url: url, actor: actor, performed_via_github_app: performed_via_github_app, updated_at: updated_at, node_id: node_id, event: event, id: id, html_url: html_url, )) } pub fn code_scanning_variant_analysis_to_json(data: CodeScanningVariantAnalysis) { json.object([ #("query_pack_url", json.nullable(data.query_pack_url, json.string)), #("completed_at", json.nullable(data.completed_at, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #( "actions_workflow_run_id", json.nullable(data.actions_workflow_run_id, json.int), ), #("query_language", json.nullable(data.query_language, json.string)), #("status", json.nullable(data.status, json.string)), #("actor", json.null()), #("controller_repo", json.null()), #("skipped_repositories", json.null()), #("updated_at", json.nullable(data.updated_at, json.string)), #("scanned_repositories", json.null()), #("failure_reason", json.nullable(data.failure_reason, json.string)), #("id", json.nullable(data.id, json.int)), ]) } pub fn code_scanning_variant_analysis_decoder() { use query_pack_url <- zero.optional_field( "query_pack_url", None, zero.optional(zero.string), ) use completed_at <- zero.optional_field( "completed_at", None, zero.optional(zero.string), ) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use actions_workflow_run_id <- zero.optional_field( "actions_workflow_run_id", None, zero.optional(zero.int), ) use query_language <- zero.optional_field( "query_language", None, zero.optional(zero.string), ) use status <- zero.optional_field("status", None, zero.optional(zero.string)) use actor <- zero.optional_field( "actor", None, zero.optional(zero.success(Nil)), ) use controller_repo <- zero.optional_field( "controller_repo", None, zero.optional(zero.success(Nil)), ) use skipped_repositories <- zero.optional_field( "skipped_repositories", None, zero.optional(zero.success(Nil)), ) use updated_at <- zero.optional_field( "updated_at", None, zero.optional(zero.string), ) use scanned_repositories <- zero.optional_field( "scanned_repositories", None, zero.optional(zero.success(Nil)), ) use failure_reason <- zero.optional_field( "failure_reason", None, zero.optional(zero.string), ) use id <- zero.optional_field("id", None, zero.optional(zero.int)) zero.success(CodeScanningVariantAnalysis( query_pack_url: query_pack_url, completed_at: completed_at, created_at: created_at, actions_workflow_run_id: actions_workflow_run_id, query_language: query_language, status: status, actor: actor, controller_repo: controller_repo, skipped_repositories: skipped_repositories, updated_at: updated_at, scanned_repositories: scanned_repositories, failure_reason: failure_reason, id: id, )) } pub fn key_simple_to_json(data: KeySimple) { json.object([ #("id", json.nullable(data.id, json.int)), #("key", json.nullable(data.key, json.string)), ]) } pub fn key_simple_decoder() { use id <- zero.optional_field("id", None, zero.optional(zero.int)) use key <- zero.optional_field("key", None, zero.optional(zero.string)) zero.success(KeySimple(id: id, key: key)) } pub fn webhook_marketplace_purchase_changed_to_json( data: WebhookMarketplacePurchaseChanged, ) { json.object([ #("enterprise", json.null()), #("effective_date", json.nullable(data.effective_date, json.string)), #("repository", json.null()), #("organization", json.null()), #("marketplace_purchase", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), #("previous_marketplace_purchase", json.null()), ]) } pub fn webhook_marketplace_purchase_changed_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use effective_date <- zero.optional_field( "effective_date", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use marketplace_purchase <- zero.optional_field( "marketplace_purchase", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) use previous_marketplace_purchase <- zero.optional_field( "previous_marketplace_purchase", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookMarketplacePurchaseChanged( enterprise: enterprise, effective_date: effective_date, repository: repository, organization: organization, marketplace_purchase: marketplace_purchase, sender: sender, action: action, installation: installation, previous_marketplace_purchase: previous_marketplace_purchase, )) } pub fn webhook_projects_v2_project_created_to_json( data: WebhookProjectsV2ProjectCreated, ) { json.object([ #("projects_v2", json.null()), #("organization", json.null()), #("sender", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_projects_v2_project_created_decoder() { use projects_v2 <- zero.optional_field( "projects_v2", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectsV2ProjectCreated( projects_v2: projects_v2, organization: organization, sender: sender, action: action, installation: installation, )) } pub fn pull_request_review_request_to_json(data: PullRequestReviewRequest) { json.object([#("users", json.null()), #("teams", json.null())]) } pub fn pull_request_review_request_decoder() { use users <- zero.optional_field( "users", None, zero.optional(zero.success(Nil)), ) use teams <- zero.optional_field( "teams", None, zero.optional(zero.success(Nil)), ) zero.success(PullRequestReviewRequest(users: users, teams: teams)) } pub fn simple_classroom_user_to_json(data: SimpleClassroomUser) { json.object([ #("avatar_url", json.nullable(data.avatar_url, json.string)), #("login", json.nullable(data.login, json.string)), #("id", json.nullable(data.id, json.int)), #("html_url", json.nullable(data.html_url, json.string)), ]) } pub fn simple_classroom_user_decoder() { use avatar_url <- zero.optional_field( "avatar_url", None, zero.optional(zero.string), ) use login <- zero.optional_field("login", None, zero.optional(zero.string)) use id <- zero.optional_field("id", None, zero.optional(zero.int)) use html_url <- zero.optional_field( "html_url", None, zero.optional(zero.string), ) zero.success(SimpleClassroomUser( avatar_url: avatar_url, login: login, id: id, html_url: html_url, )) } pub fn combined_commit_status_to_json(data: CombinedCommitStatus) { json.object([ #("statuses", json.null()), #("commit_url", json.nullable(data.commit_url, json.string)), #("repository", json.null()), #("sha", json.nullable(data.sha, json.string)), #("url", json.nullable(data.url, json.string)), #("state", json.nullable(data.state, json.string)), #("total_count", json.nullable(data.total_count, json.int)), ]) } pub fn combined_commit_status_decoder() { use statuses <- zero.optional_field( "statuses", None, zero.optional(zero.success(Nil)), ) use commit_url <- zero.optional_field( "commit_url", None, zero.optional(zero.string), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use sha <- zero.optional_field("sha", None, zero.optional(zero.string)) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use state <- zero.optional_field("state", None, zero.optional(zero.string)) use total_count <- zero.optional_field( "total_count", None, zero.optional(zero.int), ) zero.success(CombinedCommitStatus( statuses: statuses, commit_url: commit_url, repository: repository, sha: sha, url: url, state: state, total_count: total_count, )) } pub fn interaction_limit_to_json(data: InteractionLimit) { json.object([ #("expiry", json.nullable(data.expiry, json.string)), #("limit", json.nullable(data.limit, json.string)), ]) } pub fn interaction_limit_decoder() { use expiry <- zero.optional_field("expiry", None, zero.optional(zero.string)) use limit <- zero.optional_field("limit", None, zero.optional(zero.string)) zero.success(InteractionLimit(expiry: expiry, limit: limit)) } pub fn webhook_project_card_moved_to_json(data: WebhookProjectCardMoved) { json.object([ #("enterprise", json.null()), #("changes", json.null()), #("repository", json.null()), #("organization", json.null()), #("sender", json.null()), #("project_card", json.null()), #("action", json.nullable(data.action, json.string)), #("installation", json.null()), ]) } pub fn webhook_project_card_moved_decoder() { use enterprise <- zero.optional_field( "enterprise", None, zero.optional(zero.success(Nil)), ) use changes <- zero.optional_field( "changes", None, zero.optional(zero.success(Nil)), ) use repository <- zero.optional_field( "repository", None, zero.optional(zero.success(Nil)), ) use organization <- zero.optional_field( "organization", None, zero.optional(zero.success(Nil)), ) use sender <- zero.optional_field( "sender", None, zero.optional(zero.success(Nil)), ) use project_card <- zero.optional_field( "project_card", None, zero.optional(zero.success(Nil)), ) use action <- zero.optional_field("action", None, zero.optional(zero.string)) use installation <- zero.optional_field( "installation", None, zero.optional(zero.success(Nil)), ) zero.success(WebhookProjectCardMoved( enterprise: enterprise, changes: changes, repository: repository, organization: organization, sender: sender, project_card: project_card, action: action, installation: installation, )) } pub fn thread_subscription_to_json(data: ThreadSubscription) { json.object([ #("reason", json.nullable(data.reason, json.string)), #("created_at", json.nullable(data.created_at, json.string)), #("url", json.nullable(data.url, json.string)), #("ignored", json.nullable(data.ignored, json.bool)), #("subscribed", json.nullable(data.subscribed, json.bool)), #("thread_url", json.nullable(data.thread_url, json.string)), #("repository_url", json.nullable(data.repository_url, json.string)), ]) } pub fn thread_subscription_decoder() { use reason <- zero.optional_field("reason", None, zero.optional(zero.string)) use created_at <- zero.optional_field( "created_at", None, zero.optional(zero.string), ) use url <- zero.optional_field("url", None, zero.optional(zero.string)) use ignored <- zero.optional_field("ignored", None, zero.optional(zero.bool)) use subscribed <- zero.optional_field( "subscribed", None, zero.optional(zero.bool), ) use thread_url <- zero.optional_field( "thread_url", None, zero.optional(zero.string), ) use repository_url <- zero.optional_field( "repository_url", None, zero.optional(zero.string), ) zero.success(ThreadSubscription( reason: reason, created_at: created_at, url: url, ignored: ignored, subscribed: subscribed, thread_url: thread_url, repository_url: repository_url, )) }