code: def show(self):
      url = "https://github.com/{repo}/branches/all?query={branch}"
      sha = self.job.target.head
  
      msg = "Revision: {}\n\n".format(sha)
      msg += "Submitted crossbow builds: [{repo} @ {branch}]"
      msg += "({})\n".format(url)
      msg += "\n|Task|Status|\n|----|------|"
  
      tasks = sorted(self.job.tasks.items(), key=operator.itemgetter(0))
      for key, task in tasks:
          branch = task.branch
  
          try:
              template = self.badges[task.ci]
              badge = template.format(
                  repo=self.crossbow_repo,
                  repo_dotted=self.crossbow_repo.replace("/", "."),
                  branch=branch,
                  url=self.task_url(task),
              )
          except KeyError:
              badge = "unsupported CI service `{}`".format(task.ci)
  
          msg += "\n|{}|{}|".format(key, badge)
  
      return msg.format(repo=self.crossbow_repo, branch=self.job.branch)
  
imports: import collections
  import csv
  import operator
  import fnmatch
  import functools
  import time
  import click
  import requests
  from archery.utils.report import JinjaReport
label_desc: Use image node_id 2 for calling the CommentReport obj's underlying member method code with example usage: obj.show() and returns: msg