Module ogr.services.github.check_run
Functions
def create_github_check_run_output(title: str,
summary: str,
text: str | None = None,
annotations: list[dict[str, str | int]] | None = None) ‑> dict[str, str | list[dict[str, str | int]]]-
Expand source code
def create_github_check_run_output( title: str, summary: str, text: Optional[str] = None, annotations: Optional[list[dict[str, Union[str, int]]]] = None, ) -> GithubCheckRunOutput: """ Helper function for constructing valid GitHub output for check run. Args: title: Title of the output. summary: Summary of the output. text: Optional text for the output. Can be markdown formatted. Defaults to `None`. annotations: Optional annotations that are tied to source code. Returns: Dictionary that represents valid output for check run. """ output: GithubCheckRunOutput = { "title": title, "summary": summary, } if text is not None: output["text"] = text if annotations is not None: output["annotations"] = annotations return outputHelper function for constructing valid GitHub output for check run.
- Args
- -----=
title- Title of the output.
summary- Summary of the output.
text-
Optional text for the output. Can be markdown formatted.
Defaults to
None. annotations- Optional annotations that are tied to source code.
Returns -----= Dictionary that represents valid output for check run.
def value_or_NotSet(value: Any | None) ‑> Any-
Expand source code
def value_or_NotSet(value: Optional[Any]) -> Any: """ Wrapper for PyGithub, allows us to transform `None` into PyGithub's `NotSet`. Args: value: Value that can be None. Returns: If value is not None, value is returned; NotSet otherwise. """ return value if value is not None else NotSetWrapper for PyGithub, allows us to transform
Noneinto PyGithub'sNotSet.- Args
- -----=
value- Value that can be None.
Returns -----= If value is not None, value is returned; NotSet otherwise.
Classes
class GithubCheckRun (project: ogr_github.GithubProject, raw_check_run: github.CheckRun.CheckRun)-
Expand source code
class GithubCheckRun(OgrAbstractClass): def __init__( self, project: "ogr_github.GithubProject", raw_check_run: CheckRun, ) -> None: self.raw_check_run = raw_check_run self.project = project def __str__(self) -> str: return ( f"GithubCheckRun(project={self.project}, name='{self.name}', " f"commit_sha='{self.commit_sha}', " f"url='{self.url}', " f"external_id='{self.external_id}', " f"status={self.status.name}, " f"started_at={self.started_at}, " f"conclusion={self.conclusion}, " f"completed_at={self.completed_at}, " f"output={self.output}, " f"app={self.app})" ) @property def name(self) -> str: """Name of the check run.""" return self.raw_check_run.name @name.setter def name(self, name: str) -> None: self.raw_check_run.edit(name=name) @property def commit_sha(self) -> str: """Commit SHA that check run is related to.""" return self.raw_check_run.head_sha @property def url(self) -> Optional[str]: """URL with additional details.""" return self.raw_check_run.details_url @url.setter def url(self, url: str) -> None: self.raw_check_run.edit(details_url=url) @property def external_id(self) -> Optional[str]: """External ID that can be used internally by the integrator.""" return self.raw_check_run.external_id @external_id.setter def external_id(self, external_id: str) -> None: self.raw_check_run.edit(external_id=external_id) @property def status(self) -> GithubCheckRunStatus: """Current status of the check run.""" return GithubCheckRunStatus(self.raw_check_run.status) @property def started_at(self) -> Optional[datetime.datetime]: """Timestamp of start of the check run.""" return self.raw_check_run.started_at @started_at.setter def started_at(self, started_at: datetime.datetime) -> None: self.raw_check_run.edit(started_at=started_at) @property def conclusion(self) -> Optional[GithubCheckRunResult]: """Conclusion/result of the check run.""" return ( GithubCheckRunResult(self.raw_check_run.conclusion) if self.raw_check_run.conclusion else None ) @property def completed_at(self) -> Optional[datetime.datetime]: """Timestamp of completion of the check run.""" return self.raw_check_run.completed_at @property def output(self) -> CheckRunOutput: """Output of the check run.""" return self.raw_check_run.output @output.setter def output(self, output: GithubCheckRunOutput) -> None: self.raw_check_run.edit(output=output) @property def app(self) -> GithubApp: """Github App of the check run.""" return self.raw_check_run.app def change_status( self, status: Optional[GithubCheckRunStatus] = None, completed_at: Optional[datetime.datetime] = None, conclusion: Optional[GithubCheckRunResult] = None, ) -> None: """ Changes the status of the check run and checks the validity of new state. Args: status: Status of the check run to be set. If set to completed, you must provide conclusion. Defaults to `None`. completed_at: Timestamp of completion of the check run. If set, you must provide conclusion. Defaults to `None`. conclusion: Conclusion/result of the check run. If only conclusion is set, status is automatically set to completed. Defaults to `None`. Raises: OperationNotSupported, if given completed or timestamp of completed without conclusion. """ if not (status or completed_at or conclusion): return if ( status == GithubCheckRunStatus.completed or completed_at ) and conclusion is None: raise OperationNotSupported( "When provided completed status or completed at," " you need to provide conclusion.", ) self.raw_check_run.edit( status=value_or_NotSet(status.name if status else None), conclusion=value_or_NotSet(conclusion.name if conclusion else None), completed_at=value_or_NotSet(completed_at), ) @staticmethod def get_list( project: "ogr_github.GithubProject", commit_sha: str, name: Optional[str] = None, status: Optional[GithubCheckRunStatus] = None, ) -> list["GithubCheckRun"]: """ Returns list of GitHub check runs. Args: project: Project from which the check runs are retrieved. commit_sha: Commit to which are the check runs related to. name: Name of the check run for filtering. Defaults to `None`, no filtering. status: Status of the check runs to be returned. Defaults to `None`, no filtering. Returns: List of the check runs. """ check_runs = project.github_repo.get_commit(commit_sha).get_check_runs( check_name=value_or_NotSet(name), status=value_or_NotSet(status.name if status else None), ) return [GithubCheckRun(project, run) for run in check_runs] @staticmethod def get( project: "ogr_github.GithubProject", check_run_id: Optional[int] = None, commit_sha: Optional[str] = None, ) -> Optional["GithubCheckRun"]: """ Retrieves GitHub check run as ogr object. Args: project: Project from which the check run is retrieved. check_run_id: Check run ID. Defaults to `None`, i.e. is not used for query. commit_sha: Commit SHA from which the check run is to be retrieved. If set, returns latest check run for the commit. Defaults to `None`, i.e. is not used for query. Returns: GithubCheckRun object or `None` if no check run is found. Raises: OperationNotSupported, in case there is no parameter for query set or both are set. """ if check_run_id is not None and commit_sha: raise OperationNotSupported( "Cannot retrieve check run by both ID and commit hash", ) if not (check_run_id is not None or commit_sha): raise OperationNotSupported("Cannot retrieve check run by no criteria") if check_run_id is not None: return GithubCheckRun( project, project.github_repo.get_check_run(check_run_id), ) check_runs = project.github_repo.get_commit(commit_sha).get_check_runs() if check_runs.totalCount == 0: return None return GithubCheckRun(project, check_runs[0]) @staticmethod def create( project: "ogr_github.GithubProject", name: str, commit_sha: str, url: Optional[str] = None, external_id: Optional[str] = None, status: GithubCheckRunStatus = GithubCheckRunStatus.queued, started_at: Optional[datetime.datetime] = None, conclusion: Optional[GithubCheckRunResult] = None, completed_at: Optional[datetime.datetime] = None, output: Optional[GithubCheckRunOutput] = None, actions: Optional[list[dict[str, str]]] = None, ) -> "GithubCheckRun": """ Creates new check run. Args: project: Project where the check run is to be created. name: Name of the check run. commit_sha: Hash of the commit that check run is related to. url: URL with details of the run. Defaults to `None`. external_id: External ID that can be used internally by integrator. Defaults to `None`. status: Status of the check run. Defaults to queued. started_at: Timestamp of starting the check run. Defaults to `None`. conclusion: Conclusion of the check run. Should be set with status completed. Defaults to `None`. completed_at: Timestamp of completion of the check run. If set, you must provide conclusion. Defaults to `None`. output: Output of the check run. actions: List of possible follow-up actions for the check run. Returns: Created check run object. Raises: OperationNotSupported, if given completed status or completion timestamp and no conclusion. """ if ( completed_at or status == GithubCheckRunStatus.completed ) and conclusion is None: raise OperationNotSupported( "When provided completed_at or completed status, " "you need to provide conclusion.", ) created_check_run = project.github_repo.create_check_run( name=name, head_sha=commit_sha, details_url=value_or_NotSet(url), external_id=value_or_NotSet(external_id), status=status.name, started_at=value_or_NotSet(started_at), conclusion=value_or_NotSet(conclusion.name if conclusion else None), completed_at=value_or_NotSet(completed_at), output=value_or_NotSet(output), actions=value_or_NotSet(actions), ) return GithubCheckRun(project, created_check_run)Ancestors
Static methods
def create(project: ogr_github.GithubProject,
name: str,
commit_sha: str,
url: str | None = None,
external_id: str | None = None,
status: GithubCheckRunStatus = GithubCheckRunStatus.queued,
started_at: datetime.datetime | None = None,
conclusion: GithubCheckRunResult | None = None,
completed_at: datetime.datetime | None = None,
output: dict[str, str | list[dict[str, str | int]]] | None = None,
actions: list[dict[str, str]] | None = None) ‑> GithubCheckRun-
Expand source code
@staticmethod def create( project: "ogr_github.GithubProject", name: str, commit_sha: str, url: Optional[str] = None, external_id: Optional[str] = None, status: GithubCheckRunStatus = GithubCheckRunStatus.queued, started_at: Optional[datetime.datetime] = None, conclusion: Optional[GithubCheckRunResult] = None, completed_at: Optional[datetime.datetime] = None, output: Optional[GithubCheckRunOutput] = None, actions: Optional[list[dict[str, str]]] = None, ) -> "GithubCheckRun": """ Creates new check run. Args: project: Project where the check run is to be created. name: Name of the check run. commit_sha: Hash of the commit that check run is related to. url: URL with details of the run. Defaults to `None`. external_id: External ID that can be used internally by integrator. Defaults to `None`. status: Status of the check run. Defaults to queued. started_at: Timestamp of starting the check run. Defaults to `None`. conclusion: Conclusion of the check run. Should be set with status completed. Defaults to `None`. completed_at: Timestamp of completion of the check run. If set, you must provide conclusion. Defaults to `None`. output: Output of the check run. actions: List of possible follow-up actions for the check run. Returns: Created check run object. Raises: OperationNotSupported, if given completed status or completion timestamp and no conclusion. """ if ( completed_at or status == GithubCheckRunStatus.completed ) and conclusion is None: raise OperationNotSupported( "When provided completed_at or completed status, " "you need to provide conclusion.", ) created_check_run = project.github_repo.create_check_run( name=name, head_sha=commit_sha, details_url=value_or_NotSet(url), external_id=value_or_NotSet(external_id), status=status.name, started_at=value_or_NotSet(started_at), conclusion=value_or_NotSet(conclusion.name if conclusion else None), completed_at=value_or_NotSet(completed_at), output=value_or_NotSet(output), actions=value_or_NotSet(actions), ) return GithubCheckRun(project, created_check_run)Creates new check run.
- Args
- -----=
project- Project where the check run is to be created.
name- Name of the check run.
commit_sha- Hash of the commit that check run is related to.
url-
URL with details of the run.
Defaults to
None. external_id-
External ID that can be used internally by integrator.
Defaults to
None. status-
Status of the check run.
Defaults to queued.
started_at-
Timestamp of starting the check run.
Defaults to
None. conclusion-
Conclusion of the check run. Should be set with status completed.
Defaults to
None. completed_at-
Timestamp of completion of the check run. If set, you must provide conclusion.
Defaults to
None. output- Output of the check run.
actions- List of possible follow-up actions for the check run.
Returns -----= Created check run object.
Raises -----= OperationNotSupported, if given completed status or completion timestamp and no conclusion.
def get(project: ogr_github.GithubProject,
check_run_id: int | None = None,
commit_sha: str | None = None) ‑> GithubCheckRun | None-
Expand source code
@staticmethod def get( project: "ogr_github.GithubProject", check_run_id: Optional[int] = None, commit_sha: Optional[str] = None, ) -> Optional["GithubCheckRun"]: """ Retrieves GitHub check run as ogr object. Args: project: Project from which the check run is retrieved. check_run_id: Check run ID. Defaults to `None`, i.e. is not used for query. commit_sha: Commit SHA from which the check run is to be retrieved. If set, returns latest check run for the commit. Defaults to `None`, i.e. is not used for query. Returns: GithubCheckRun object or `None` if no check run is found. Raises: OperationNotSupported, in case there is no parameter for query set or both are set. """ if check_run_id is not None and commit_sha: raise OperationNotSupported( "Cannot retrieve check run by both ID and commit hash", ) if not (check_run_id is not None or commit_sha): raise OperationNotSupported("Cannot retrieve check run by no criteria") if check_run_id is not None: return GithubCheckRun( project, project.github_repo.get_check_run(check_run_id), ) check_runs = project.github_repo.get_commit(commit_sha).get_check_runs() if check_runs.totalCount == 0: return None return GithubCheckRun(project, check_runs[0])Retrieves GitHub check run as ogr object.
- Args
- -----=
project- Project from which the check run is retrieved.
check_run_id-
Check run ID.
Defaults to
None, i.e. is not used for query. commit_sha-
Commit SHA from which the check run is to be retrieved. If set, returns latest check run for the commit.
Defaults to
None, i.e. is not used for query.
Returns -----= GithubCheckRun object or
Noneif no check run is found.Raises -----= OperationNotSupported, in case there is no parameter for query set or both are set.
def get_list(project: ogr_github.GithubProject,
commit_sha: str,
name: str | None = None,
status: GithubCheckRunStatus | None = None) ‑> list[GithubCheckRun]-
Expand source code
@staticmethod def get_list( project: "ogr_github.GithubProject", commit_sha: str, name: Optional[str] = None, status: Optional[GithubCheckRunStatus] = None, ) -> list["GithubCheckRun"]: """ Returns list of GitHub check runs. Args: project: Project from which the check runs are retrieved. commit_sha: Commit to which are the check runs related to. name: Name of the check run for filtering. Defaults to `None`, no filtering. status: Status of the check runs to be returned. Defaults to `None`, no filtering. Returns: List of the check runs. """ check_runs = project.github_repo.get_commit(commit_sha).get_check_runs( check_name=value_or_NotSet(name), status=value_or_NotSet(status.name if status else None), ) return [GithubCheckRun(project, run) for run in check_runs]Returns list of GitHub check runs.
- Args
- -----=
project- Project from which the check runs are retrieved.
commit_sha- Commit to which are the check runs related to.
name-
Name of the check run for filtering.
Defaults to
None, no filtering. status-
Status of the check runs to be returned.
Defaults to
None, no filtering.
Returns -----= List of the check runs.
Instance variables
prop app : github.GithubApp.GithubApp-
Expand source code
@property def app(self) -> GithubApp: """Github App of the check run.""" return self.raw_check_run.appGithub App of the check run.
prop commit_sha : str-
Expand source code
@property def commit_sha(self) -> str: """Commit SHA that check run is related to.""" return self.raw_check_run.head_shaCommit SHA that check run is related to.
prop completed_at : datetime.datetime | None-
Expand source code
@property def completed_at(self) -> Optional[datetime.datetime]: """Timestamp of completion of the check run.""" return self.raw_check_run.completed_atTimestamp of completion of the check run.
prop conclusion : GithubCheckRunResult | None-
Expand source code
@property def conclusion(self) -> Optional[GithubCheckRunResult]: """Conclusion/result of the check run.""" return ( GithubCheckRunResult(self.raw_check_run.conclusion) if self.raw_check_run.conclusion else None )Conclusion/result of the check run.
prop external_id : str | None-
Expand source code
@property def external_id(self) -> Optional[str]: """External ID that can be used internally by the integrator.""" return self.raw_check_run.external_idExternal ID that can be used internally by the integrator.
prop name : str-
Expand source code
@property def name(self) -> str: """Name of the check run.""" return self.raw_check_run.nameName of the check run.
prop output : github.CheckRunOutput.CheckRunOutput-
Expand source code
@property def output(self) -> CheckRunOutput: """Output of the check run.""" return self.raw_check_run.outputOutput of the check run.
prop started_at : datetime.datetime | None-
Expand source code
@property def started_at(self) -> Optional[datetime.datetime]: """Timestamp of start of the check run.""" return self.raw_check_run.started_atTimestamp of start of the check run.
prop status : GithubCheckRunStatus-
Expand source code
@property def status(self) -> GithubCheckRunStatus: """Current status of the check run.""" return GithubCheckRunStatus(self.raw_check_run.status)Current status of the check run.
prop url : str | None-
Expand source code
@property def url(self) -> Optional[str]: """URL with additional details.""" return self.raw_check_run.details_urlURL with additional details.
Methods
def change_status(self,
status: GithubCheckRunStatus | None = None,
completed_at: datetime.datetime | None = None,
conclusion: GithubCheckRunResult | None = None) ‑> None-
Expand source code
def change_status( self, status: Optional[GithubCheckRunStatus] = None, completed_at: Optional[datetime.datetime] = None, conclusion: Optional[GithubCheckRunResult] = None, ) -> None: """ Changes the status of the check run and checks the validity of new state. Args: status: Status of the check run to be set. If set to completed, you must provide conclusion. Defaults to `None`. completed_at: Timestamp of completion of the check run. If set, you must provide conclusion. Defaults to `None`. conclusion: Conclusion/result of the check run. If only conclusion is set, status is automatically set to completed. Defaults to `None`. Raises: OperationNotSupported, if given completed or timestamp of completed without conclusion. """ if not (status or completed_at or conclusion): return if ( status == GithubCheckRunStatus.completed or completed_at ) and conclusion is None: raise OperationNotSupported( "When provided completed status or completed at," " you need to provide conclusion.", ) self.raw_check_run.edit( status=value_or_NotSet(status.name if status else None), conclusion=value_or_NotSet(conclusion.name if conclusion else None), completed_at=value_or_NotSet(completed_at), )Changes the status of the check run and checks the validity of new state.
- Args
- -----=
status-
Status of the check run to be set. If set to completed, you must provide conclusion.
Defaults to
None. completed_at-
Timestamp of completion of the check run. If set, you must provide conclusion.
Defaults to
None. conclusion-
Conclusion/result of the check run. If only conclusion is set, status is automatically set to completed.
Defaults to
None.
Raises -----= OperationNotSupported, if given completed or timestamp of completed without conclusion.
class GithubCheckRunResult (*args, **kwds)-
Expand source code
class GithubCheckRunResult(Enum): """ Represents conclusion/result of the GitHub check run. """ action_required = "action_required" cancelled = "cancelled" failure = "failure" neutral = "neutral" success = "success" skipped = "skipped" stale = "stale" timed_out = "timed_out"Represents conclusion/result of the GitHub check run.
Ancestors
- enum.Enum
Class variables
var action_requiredvar cancelledvar failurevar neutralvar skippedvar stalevar successvar timed_out
class GithubCheckRunStatus (*args, **kwds)-
Expand source code
class GithubCheckRunStatus(Enum): """ Represents statuses GitHub check run can have. """ queued = "queued" in_progress = "in_progress" completed = "completed"Represents statuses GitHub check run can have.
Ancestors
- enum.Enum
Class variables
var completedvar in_progressvar queued