text: import os
  import json
  import requests
  import jenkinsapi
  from jenkinsapi.jenkins import Jenkins
  from jenkinsapi.constants import STATUS_SUCCESS
  from email.mime.text import MIMEText
  import smtplib
  def send_mail(sub,title,content):
      #to_list = os.environ['EMAIL_LIST'].split(' ')
      mail_user = os.environ['EMAIL_USER']
      mail_pass = os.environ['EMAIL_PWD']
      to_list = os.environ['EMAIL_LIST'].split(' ')
      mail_postfix = 'gmail.com'
      me = mail_user + "<" + mail_user + "@" + mail_postfix + ">"
      msg = MIMEText(content, _subtype='plain', _charset='gb2312')
      msg['Subject'] = sub
      msg['From'] = me
      msg['To'] = " ".join(to_list)
      print 'to users:', msg['To']
      msg['Content'] = 'test'
      try:
          s = smtplib.SMTP('smtp.gmail.com', 587)
          s.ehlo()
          s.starttls()
          s.login(mail_user,mail_pass)
          s.sendmail(me, to_list, str(msg))
          print 'info:', me, to_list, str(msg)
          s.close()
          return True
      except Exception, e:
          print str(e)
          return False
  
  def sendEmail(pr, html_url, target_url):
  	sub = "Pull request #" + str(pr) + " build is failed!"
  	title = "build failed!"
  	content = 'to view build result, check:\r\n'+target_url + '\r\nYou can view the failed pr at:\r\n'+html_url
  	send_mail(sub, title, content)
  
  payload_str = os.environ['payload']
  payload_str = payload_str.decode('utf-8','ignore')
  #parse to json obj
  payload = json.loads(payload_str)
  #pr = payload['pull_request']
  url = payload['html_url']
  print "build pr:" + url
  pr_num = payload['number']
  #get statuses url
  statuses_url = payload['statuses_url']
  
  J = Jenkins(os.environ['JENKINS_URL'])
  target_url = os.environ['BUILD_URL']
  build_number = int(os.environ['BUILD_NUMBER'])
  data = {"state":"pending", "target_url":target_url, "context":"Jenkins CI", "description":"Build finished!"}
  access_token = os.environ['GITHUB_ACCESS_TOKEN']
  Headers = {"Authorization":"token " + access_token} 
  
  result = J[os.environ['JOB_NAME']].get_build(build_number).get_status()
  
  if(result == STATUS_SUCCESS):
      data['state'] = "success"
      data['description'] = "Build successfully!"
  else:
      data['state'] = "failure"
      data['description'] = "Build failed!"
      sendEmail(pr_num, url, target_url)
  http_proxy = ''
  if(os.environ.has_key('HTTP_PROXY')):
      http_proxy = os.environ['HTTP_PROXY']
  proxyDict = {'http':http_proxy,'https':http_proxy}
  requests.post(statuses_url, data=json.dumps(data), headers=Headers, proxies = proxyDict)
  