class_docstr: State transition logic
class_docstr_tok: ["State","transition","logic"]
docstr: Comment the blamed commit on the github issue.
docstr_tok: ["Comment","the","blamed","commit","on","the","github","issue","."]
code: def comment_blamed_commit_on_github_issue(self) -> None:
      """
      Comment the blamed commit on the github issue.
      """
      blamed_commit = self.test.get(Test.KEY_BISECT_BLAMED_COMMIT)
      issue_number = self.test.get(Test.KEY_GITHUB_ISSUE_NUMBER)
      bisect_build_number = self.test.get(Test.KEY_BISECT_BUILD_NUMBER)
      if (
          not issue_number
          or not bisect_build_number
          or not blamed_commit
      ):
          logger.info(
              "Skip commenting blamed commit on github issue "
              f"for {self.test.get_name()}"
          )
          return
      issue = self.ray_repo.get_issue(issue_number)
      issue.create_comment(
          f"Blamed commit: {blamed_commit} "
          f"found by bisect job https://buildkite.com/{BUILDKITE_ORGANIZATION}/"
          f"{BUILDKITE_BISECT_PIPELINE}/builds/{bisect_build_number}"
      )
  
file_path: ray/release/ray_release/test_automation/release_state_machine.py
imports: from datetime import datetime, timedelta
  from ray_release.test_automation.state_machine import TestStateMachine, DEFAULT_ISSUE_OWNER
  from ray_release.test import Test, TestState
  from ray_release.logger import logger
label_desc: Use image node_id 11 for calling the ReleaseTestStateMachine obj's underlying member method code with example usage: obj.comment_blamed_commit_on_github_issue() without return types