verify = True,
      headers = self.headers) 
  
  def getXMLElementData(self, the_xml, tag_name):
    results = the_xml.getElementsByTagName(tag_name)
    if len(results) == 0:
      return ""
    elif results[0].firstChild == None:
      return ""
    else:
      return results[0].firstChild.data
    
if __name__ == "__main__":
  parser = argparse.ArgumentParser()
  parser.add_argument("token", help="Your Pivotal Tracker API Token from 'www.pivotaltracker.com/profile'")
  parser.add_argument("pid", help="Your Project ID (e.g. www.pivotaltracker.com/s/projects/<pid>)", type=int)
  parser.add_argument("-o", "--output", help="The HTML file you want to output to", default=None)
  args = parser.parse_args() 
  api_token = args.token
  
  helper = PivotalAPIHelper(api_token)
  tracker = Tracker(helper)
  tracker.reloadDetailsOfProjects()
  pid = args.pid
  print('Getting all stories for project %s' % pid)
  project = Project(helper, pid)
  project.reinitialiseAllStories()
  project.reloadDetailsOfAllStories()
  story_renderer = StoryRenderer()
  story_renderer.render(project.stories.values(), file_name=args.output) # renderer needs a list of stories
Пример #2
0
      task.complete = _task['complete']
      story_tasks.append(task)
    story['tasks_list'] = story_tasks
    return story
    
    
if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument('username', help="Your Pivotal Tracker username")
  parser.add_argument('password', help="Your Pivotal Tracker password")
  parser.add_argument(
    "pid", 
    help="Your Project ID (e.g. www.pivotaltracker.com/s/projects/<pid>)", 
    type=int
  )
  parser.add_argument(
    "-o", "--output", 
    help="The HTML file you want to output to", 
    default=None
  )
  
  args = parser.parse_args()
  scraper = PivotalScraper()
  scraper.login(args.username, args.password)
  scraper.reloadStories(project_id=args.pid)
  
  stories = scraper.stories.values()
  
  story_renderer = StoryRenderer()
  story_renderer.render(stories, args.output)
    help="Your Pivotal Tracker password",
    default=None
  )
  
  args = parser.parse_args() 
  
  print('Getting stories for project %s via API' % args.pid)
  api_parser = PivotalAPIParser()
  api_parser.login(args.token)
  api_parser.reloadStories(args.pid, args.since)
  
  if args.username <> None and args.password <> None:
    print('Getting stories for project %s via scraping' % args.pid)
    scraper = PivotalScraper()
    scraper.login(args.username, args.password)
    scraper.reloadStories(project_id=args.pid)
    
    # Scraped data doesn't pickup changes as quickly as the API.  May result
    # in good data being overwritten.
    for story_id in api_parser.stories.keys():
      if story_id in scraper.stories.keys():
        extra_details = scraper.stories[story_id]
        for (k,v) in extra_details.iteritems():
          api_parser.stories[story_id][k] = v
    
  story_renderer = StoryRenderer()
  stories = api_parser.stories.values()
  
  print('Sending %s stories to the renderer'%len(stories))
  story_renderer.render(stories, file_name=args.output) # renderer needs a list of stories