from typing import Optional, Text class GitHubChecksOutputter: """Provides a method to output data to be shown in the GitHub Checks UI. This can be useful to provide a summary of a given check (e.g. the lint) to enable developers to quickly understand what has gone wrong. The output supports markdown format. https://docs.taskcluster.net/docs/reference/integrations/github/checks#custom-text-output-in-checks """ def __init__(self, path: Text) -> None: self.path = path def output(self, line: Text) -> None: with open(self.path, mode="a") as f: f.write(line) f.write("\n") __outputter = None def get_gh_checks_outputter(filepath: Optional[Text]) -> Optional[GitHubChecksOutputter]: """Return the outputter for GitHub Checks output, if enabled. :param filepath: The filepath to write GitHub Check output information to, or None if not enabled. """ global __outputter if filepath and __outputter is None: __outputter = GitHubChecksOutputter(filepath) return __outputter