diff --git a/pontos/github/models/base.py b/pontos/github/models/base.py index d2541cc05..20e8040f8 100644 --- a/pontos/github/models/base.py +++ b/pontos/github/models/base.py @@ -16,10 +16,9 @@ # along with this program. If not, see . from dataclasses import dataclass -from enum import Enum from typing import List, Optional -from pontos.models import Model +from pontos.models import Model, StrEnum __all__ = ( "App", @@ -35,7 +34,7 @@ ) -class FileStatus(Enum): +class FileStatus(StrEnum): """ File status @@ -110,7 +109,7 @@ class User(GitHubModel): site_admin: bool -class TeamPrivacy(Enum): +class TeamPrivacy(StrEnum): """ Team privacy @@ -123,7 +122,7 @@ class TeamPrivacy(Enum): CLOSED = "closed" -class TeamRole(Enum): +class TeamRole(StrEnum): """ A user's role withing a team @@ -137,7 +136,7 @@ class TeamRole(Enum): MAINTAINER = "maintainer" -class Permission(Enum): +class Permission(StrEnum): # pylint: disable=line-too-long """ Permissions on a repository/project at GitHub @@ -225,7 +224,7 @@ class App(GitHubModel): events: List[str] -class Event(Enum): +class Event(StrEnum): """ A GitHub event type @@ -309,7 +308,7 @@ class Event(Enum): WORKFLOW_RUN = "workflow_run" -class SortOrder(Enum): +class SortOrder(StrEnum): """ Sort order: asc or desc diff --git a/pontos/github/models/code_scanning.py b/pontos/github/models/code_scanning.py index da7599328..8231f46b3 100644 --- a/pontos/github/models/code_scanning.py +++ b/pontos/github/models/code_scanning.py @@ -4,14 +4,14 @@ from dataclasses import dataclass from datetime import datetime -from enum import Enum from typing import Optional from pontos.github.models.base import GitHubModel, User from pontos.github.models.organization import Repository +from pontos.models import StrEnum -class AlertState(Enum): +class AlertState(StrEnum): """ State of a code scanning alert """ @@ -21,7 +21,7 @@ class AlertState(Enum): FIXED = "fixed" -class AlertSort(Enum): +class AlertSort(StrEnum): """ The property by which to sort the alerts """ @@ -30,7 +30,7 @@ class AlertSort(Enum): UPDATED = "updated" -class DismissedReason(Enum): +class DismissedReason(StrEnum): """ The reason for dismissing or closing the alert """ @@ -40,7 +40,7 @@ class DismissedReason(Enum): USED_IN_TESTS = "used in tests" -class Severity(Enum): +class Severity(StrEnum): """ The severity of the alert """ @@ -51,7 +51,7 @@ class Severity(Enum): ERROR = "error" -class SecuritySeverityLevel(Enum): +class SecuritySeverityLevel(StrEnum): """ The security severity of the alert """ @@ -62,7 +62,7 @@ class SecuritySeverityLevel(Enum): CRITICAL = "critical" -class Classification(Enum): +class Classification(StrEnum): """ A classification of the file. For example to identify it as generated """ @@ -316,7 +316,7 @@ class CodeQLDatabase(GitHubModel): commit_oid: Optional[str] = None -class DefaultSetupState(Enum): +class DefaultSetupState(StrEnum): """ State of a default setup """ @@ -325,7 +325,7 @@ class DefaultSetupState(Enum): NOT_CONFIGURED = "not-configured" -class Language(Enum): +class Language(StrEnum): """ Analyzed Language """ @@ -342,7 +342,7 @@ class Language(Enum): SWIFT = "swift" -class QuerySuite(Enum): +class QuerySuite(StrEnum): """ Used code scanning query suite """ @@ -371,7 +371,7 @@ class DefaultSetup(GitHubModel): schedule: Optional[str] = None -class SarifProcessingStatus(Enum): +class SarifProcessingStatus(StrEnum): """ `pending` files have not yet been processed, while `complete` means results from the SARIF have been stored. `failed` files have either not been diff --git a/pontos/github/models/dependabot.py b/pontos/github/models/dependabot.py index 79c166ab2..3fc80daf0 100644 --- a/pontos/github/models/dependabot.py +++ b/pontos/github/models/dependabot.py @@ -4,14 +4,14 @@ from dataclasses import dataclass from datetime import datetime -from enum import Enum from typing import Optional from pontos.github.models.base import GitHubModel, User from pontos.github.models.organization import Repository +from pontos.models import StrEnum -class AlertSort(Enum): +class AlertSort(StrEnum): """ The property by which to sort the alerts """ @@ -20,7 +20,7 @@ class AlertSort(Enum): UPDATED = "updated" -class AlertState(Enum): +class AlertState(StrEnum): """ State of the GitHub Dependabot Security Alert """ @@ -31,7 +31,7 @@ class AlertState(Enum): OPEN = "open" -class DismissedReason(Enum): +class DismissedReason(StrEnum): """ Reason phrase for a dismissed Dependabot alert """ @@ -43,7 +43,7 @@ class DismissedReason(Enum): TOLERABLE_RISK = "tolerable_risk" -class DependencyScope(Enum): +class DependencyScope(StrEnum): """ The execution scope of the vulnerable dependency """ @@ -52,7 +52,7 @@ class DependencyScope(Enum): RUNTIME = "runtime" -class Severity(Enum): +class Severity(StrEnum): """ The severity of the vulnerability """ @@ -63,7 +63,7 @@ class Severity(Enum): CRITICAL = "critical" -class IdentifierType(Enum): +class IdentifierType(StrEnum): """ The type of advisory identifier """ diff --git a/pontos/github/models/organization.py b/pontos/github/models/organization.py index 9cff91556..61dd1a4ec 100644 --- a/pontos/github/models/organization.py +++ b/pontos/github/models/organization.py @@ -17,10 +17,10 @@ from dataclasses import dataclass, field from datetime import datetime -from enum import Enum from typing import List, Optional from pontos.github.models.base import GitHubModel, User +from pontos.models import StrEnum __all__ = ( "CodeOfConduct", @@ -44,7 +44,7 @@ ) -class MergeCommitTitle(Enum): +class MergeCommitTitle(StrEnum): """ Merge commit title @@ -57,7 +57,7 @@ class MergeCommitTitle(Enum): MERGE_MESSAGE = "MERGE_MESSAGE" -class MergeCommitMessage(Enum): +class MergeCommitMessage(StrEnum): """ Merge commit message setting @@ -72,7 +72,7 @@ class MergeCommitMessage(Enum): BLANK = "BLANK" -class SquashMergeCommitTitle(Enum): +class SquashMergeCommitTitle(StrEnum): """ Squash merge commit title @@ -85,7 +85,7 @@ class SquashMergeCommitTitle(Enum): COMMIT_OR_PR_TITLE = "COMMIT_OR_PR_TITLE" -class SquashMergeCommitMessage(Enum): +class SquashMergeCommitMessage(StrEnum): """ Squash merge commit message setting @@ -100,7 +100,7 @@ class SquashMergeCommitMessage(Enum): BLANK = "BLANK" -class RepositoryType(Enum): +class RepositoryType(StrEnum): """ A repository type @@ -235,7 +235,7 @@ class CodeOfConduct(GitHubModel): html_url: str -class SecurityAndAnalysisStatus(Enum): +class SecurityAndAnalysisStatus(StrEnum): """ Security and analysis status @@ -486,7 +486,7 @@ class Repository(GitHubModel): web_commit_signoff_required: Optional[bool] = None -class MemberFilter(Enum): +class MemberFilter(StrEnum): """ A member filter @@ -499,7 +499,7 @@ class MemberFilter(Enum): ALL = "all" -class MemberRole(Enum): +class MemberRole(StrEnum): """ A member role @@ -514,7 +514,7 @@ class MemberRole(Enum): MEMBER = "member" -class InvitationRole(Enum): +class InvitationRole(StrEnum): """ A invitation role @@ -530,7 +530,7 @@ class InvitationRole(Enum): BILLING_MANAGER = "billing_manager" -class GitIgnoreTemplate(Enum): +class GitIgnoreTemplate(StrEnum): """ Just a small part of the available gitignore templates at https://github.com/github/gitignore @@ -558,7 +558,7 @@ class GitIgnoreTemplate(Enum): RUST = "Rust" -class LicenseType(Enum): +class LicenseType(StrEnum): """ License Type diff --git a/pontos/github/models/pull_request.py b/pontos/github/models/pull_request.py index 2c6fc6536..f3c952df3 100644 --- a/pontos/github/models/pull_request.py +++ b/pontos/github/models/pull_request.py @@ -17,11 +17,11 @@ from dataclasses import dataclass, field from datetime import datetime -from enum import Enum from typing import List, Optional from pontos.github.models.base import FileStatus, GitHubModel, Team, User from pontos.github.models.organization import Repository +from pontos.models import StrEnum __all__ = ( "AuthorAssociation", @@ -237,7 +237,7 @@ class Label(GitHubModel): description: Optional[str] = None -class MilestoneState(Enum): +class MilestoneState(StrEnum): """ State of a pull request milestone (open, closed) @@ -312,7 +312,7 @@ class PullRequestRef(GitHubModel): repo: Repository -class PullRequestState(Enum): +class PullRequestState(StrEnum): """ Pull request state @@ -325,7 +325,7 @@ class PullRequestState(Enum): CLOSED = "closed" -class AuthorAssociation(Enum): +class AuthorAssociation(StrEnum): """ Pull request author association @@ -408,7 +408,7 @@ class Comment(GitHubModel): reactions: Optional[Reactions] = None -class MergeMethod(Enum): +class MergeMethod(StrEnum): """ The (auto) merge method diff --git a/pontos/github/models/release.py b/pontos/github/models/release.py index 83ddfbf64..6c234a3e9 100644 --- a/pontos/github/models/release.py +++ b/pontos/github/models/release.py @@ -17,10 +17,10 @@ from dataclasses import dataclass, field from datetime import datetime -from enum import Enum from typing import List, Optional from pontos.github.models.base import GitHubModel, User +from pontos.models import StrEnum __all__ = ( "Release", @@ -30,7 +30,7 @@ ) -class ReleaseAssetState(Enum): +class ReleaseAssetState(StrEnum): """ State of a release asset diff --git a/pontos/github/models/search.py b/pontos/github/models/search.py index 4abaf1e32..68160fe9b 100644 --- a/pontos/github/models/search.py +++ b/pontos/github/models/search.py @@ -17,7 +17,8 @@ from abc import ABC -from enum import Enum + +from pontos.models import StrEnum from .base import SortOrder @@ -38,7 +39,7 @@ ) -class RepositorySort(Enum): +class RepositorySort(StrEnum): """ Sort repositories by diff --git a/pontos/github/models/secret_scanning.py b/pontos/github/models/secret_scanning.py index addfdd58c..3d6a4de05 100644 --- a/pontos/github/models/secret_scanning.py +++ b/pontos/github/models/secret_scanning.py @@ -4,14 +4,14 @@ from dataclasses import dataclass from datetime import datetime -from enum import Enum from typing import Optional, Union from pontos.github.models.base import GitHubModel, User from pontos.github.models.organization import Repository +from pontos.models import StrEnum -class AlertSort(Enum): +class AlertSort(StrEnum): """ The property by which to sort the alerts """ @@ -20,7 +20,7 @@ class AlertSort(Enum): UPDATED = "updated" -class AlertState(Enum): +class AlertState(StrEnum): """ State of the GitHub Secrets Scanning Alert """ @@ -29,7 +29,7 @@ class AlertState(Enum): RESOLVED = "resolved" -class Resolution(Enum): +class Resolution(StrEnum): """ The reason for resolving the alert """ @@ -40,7 +40,7 @@ class Resolution(Enum): USED_IN_TESTS = "used_in_tests" -class LocationType(Enum): +class LocationType(StrEnum): """ Type of location """ diff --git a/pontos/github/models/tag.py b/pontos/github/models/tag.py index a367a2540..73aff7378 100644 --- a/pontos/github/models/tag.py +++ b/pontos/github/models/tag.py @@ -17,10 +17,10 @@ from dataclasses import dataclass from datetime import datetime -from enum import Enum from typing import Optional from pontos.github.models.base import GitHubModel +from pontos.models import StrEnum __all__ = ( "GitObjectType", @@ -31,7 +31,7 @@ ) -class GitObjectType(Enum): +class GitObjectType(StrEnum): """ A git object type @@ -78,7 +78,7 @@ class Tagger(GitHubModel): name: str -class VerificationReason(Enum): +class VerificationReason(StrEnum): """ Verification reason details diff --git a/pontos/github/models/workflow.py b/pontos/github/models/workflow.py index 2cebaa409..8ff62c40f 100644 --- a/pontos/github/models/workflow.py +++ b/pontos/github/models/workflow.py @@ -17,10 +17,10 @@ from dataclasses import dataclass, field from datetime import datetime -from enum import Enum from typing import Dict, List, Optional from pontos.github.models.base import Event, GitHubModel, User +from pontos.models import StrEnum __all__ = ( "Workflow", @@ -70,7 +70,7 @@ class WorkflowRunCommit(GitHubModel): committer: Optional[WorkflowRunCommitUser] = None -class WorkflowState(Enum): +class WorkflowState(StrEnum): """ State of a workflow @@ -227,7 +227,7 @@ class WorkflowRunRepository(GitHubModel): hooks_url: Optional[str] = None -class WorkflowRunStatus(Enum): +class WorkflowRunStatus(StrEnum): """ Status of a workflow run