docs: def create_post(self, title, body, board, category, username):
      '''create a Discourse post, given a title, body, board, and token.
  
         Parameters
         ==========
         title: the issue title
         body: the issue body
         board: the discourse board to post to
  
      '''
  
      category_url = "%s/categories.json" % board
      response = requests.get(category_url)
  
      if response.status_code != 200:
          print('Error with retrieving %s' % category_url)
          sys.exit(1)
  
      # Get a list of all categories
      categories = response.json()['category_list']['categories']
      categories = {c['name']:c['id'] for c in categories}
  
      # And if not valid, warn the user
      if category not in categories:
          bot.warning('%s is not valid, will use default' % category)
  
      category_id = categories.get(category, None)
  
      headers = {"Content-Type": "application/json",
                 "User-Api-Client-Id": self.client_id,
                 "User-Api-Key": self.token }
  
  
      # First get the category ids
      data = {'title': title,
              'raw': body,
              'category': category_id}
  
      response = requests.post("%s/posts.json" % board,
                               headers=headers,
                               data=json.dumps(data))
  
      if response.status_code in [200, 201, 202]:
          topic = response.json()
          url = "%s/t/%s/%s" %(board, topic['topic_slug'], topic['topic_id'])
          bot.info(url)
          return url
  
      elif response.status_code == 404:
          bot.error('Cannot post to board, not found. Do you have permission?')
          sys.exit(1)
  
      else:
          bot.error('Cannot post to board %s' % board)
          bot.error(response.content)
          sys.exit(1)