code: def _create_github_issue(self) -> None:
      labels = [
          "P0",
          "bug",
          "ci-test",
          "ray-test-bot",
          "triage",
          self.test.get_oncall(),
      ]
      recent_failures = [
          result for result in self.test_results if result.is_failing()
      ][:MAX_REPORT_FAILURE_NO]
      body = (
          f"CI test **{self.test.get_name()}** is {self.test.get_state().value}. "
          "Recent failures: \n"
      )
      for failure in recent_failures:
          body += f"\t- {failure.url}\n"
      body += "\nManaged by OSS Test Policy"
      issue_number = self.ray_repo.create_issue(
          title=f"CI test {self.test.get_name()} is {self.test.get_state().value}",
          body=body,
          labels=labels,
          assignee=DEFAULT_ISSUE_OWNER,
      ).number
      self.test[Test.KEY_GITHUB_ISSUE_NUMBER] = issue_number
  
file_path: ray/release/ray_release/test_automation/ci_state_machine.py
imports: from ray_release.test_automation.state_machine import TestStateMachine, DEFAULT_ISSUE_OWNER
  from ray_release.test import Test, TestState
label_desc: Use image node_id 5 for calling the CITestStateMachine obj's underlying member method code with example usage: obj._create_github_issue() without return types