def obtener_issues(): count = 1 # inicializacion de contador, este servira para las paginas, no revisar solo los primeros resultados, sino buscar todos en las diferentes paginas de resultados seguir = True while ( seguir ): # ciclo para poder hacer mas de una peticion, dependiendo cuantas paginas de issues tenga el repo resp = requests.get( 'https://api.github.com/repos/golang/go/issues?labels=Go2&page={}&per_page=100&state=all' .format(count)) # los parametros dados son: que se busque que tenga la etiqueta de Go2 (labels=Go2), el numero de pagina a consultar (page={} donde {} va incrementando desde el 1) # la peticion se hace con 100 resultados por pagina ya que asi se reducen la cantidad de peticiones por hacer, 100 es el numero maximo de resultados por pagina que permite la API # y pos ultimo el parametro state define en que estado queremos los issues, teniendo "open", "close" y "all", en este caso el problema decia todos asi que se uso "all" count += 1 body = resp.json() if body != []: # Esta es una validacion para saber cuando parar, si la respuesta ya no nos entrega informacion entonces es momento de terminar el ciclo for problema in body: tags = "" labels = problema["labels"] for tag in labels: tags += tag["name"] tags += "," milestoneT = " " milestoneD = " " # validacion de si milestone no existe ya que algunos resultados de issues no contenian la llave milestone if problema["milestone"] is not None: milestoneT = problema["milestone"]["title"] milestoneD = problema["milestone"]["description"] database.Agregar_Elemento_Issue( issue.issue(problema["number"], problema["html_url"], problema["title"], problema["user"]["login"], tags, milestoneT, milestoneD)) else: seguir = False
def single_issue(dbfile, id): c = util.cursor(dbfile) vals = c.execute("SELECT %s FROM ticket where id=%d" % \ (fields, id)).fetchone() changes = issue_changes_and_attachments(id) return issue.issue(**dict(zip(fields.split(","), vals) + \ [('_changes_and_attachments', changes)]))
def get_issues(self): url = '/' + '/'.join(['repos',self.owner['login'],self.name,'issues']) for x in range(self.open_issues/100+1): x += 1 fetch_url = url + '?page{0}&per_age=100'.format(str(x)) for issue_data in self.github.get_url(fetch_url): self.issues[issue_data['number']]=(issue.issue(issue_data)) return self.issues
def issues(dbfile): c = util.cursor(dbfile) for (id, ) in c.execute("SELECT id FROM ticket").fetchall(): vals = c.execute("SELECT %s FROM ticket where id=%d" % \ (fields, id)).fetchone() changes = issue_changes_and_attachments(id) yield issue.issue(**dict(zip(fields.split(","), vals) + \ [('_changes_and_attachments', changes)]))
def issues(dbfile): c = util.cursor(dbfile) for (id,) in c.execute("SELECT id FROM ticket").fetchall(): vals = c.execute("SELECT %s FROM ticket where id=%d" % \ (fields, id)).fetchone() changes = issue_changes_and_attachments(id) yield issue.issue(**dict(zip(fields.split(","), vals) + \ [('_changes_and_attachments', changes)]))
# Print Title item = ''.ljust(30) item += 'ISSUE'.ljust(15) item += 'EXE'.ljust(15) item += 'MEM'.ljust(15) item += 'WB'.ljust(15) item += 'COMMIT'.ljust(15) print(item) # Main Code while (len(ROB) > 0) | (cycle == 1): # ISSUE stage if (PC.PC < len(instructions)) & (PC.valid == 1): issue(cycle, PC, instructions, ROB, size_ROB, rs_int_adder, rs_fp_adder, rs_fp_multi, ld_sd_queue, size_ld_sd_queue, rat_int, rat_fp) # EXE stage exe(fu_int_adder, time_fu_int_adder, fu_fp_adder, time_fu_fp_adder, fu_fp_multi, time_fu_fp_multi, results_buffer, rs_int_adder, rs_fp_adder, rs_fp_multi, ld_sd_exe, time_ld_sd_exe, ld_sd_queue, cycle, ROB, PC) # MEM stage mem(ld_sd_queue, ld_sd_mem, time_ld_sd_mem, results_buffer, memory, ROB, cycle) # CDB stage wb(cdb, rat_int, rat_fp, rs_int_adder, rs_fp_adder, rs_fp_multi, ld_sd_queue, ROB, cycle, results_buffer)
def get_issue(self, issue): response - self.get_url(issue) return issue.issue(response)
import trac import time import traceback import issue as im count = 0 for issue in trac.issues('trac.db'): count = count + 1 if issue.trac.id != count: values = {'id': count, 'owner': 'cash', 'summary': 'spammer ticket for import from Trac', 'description': 'This is a fake ticket to replace missing ticket in Trac', 'resolution': 'invalid', 'status': 'closed', 'component': 'Core', 'time': 1213265879, 'reporter': 'cash', 'version': 'none', '_changes_and_attachments': [], 'priority': 'low', 'milestone': None} fake_issue = im.issue(**values) fake_issue.githubify() fake_issue.push() print "PUSHED fake ticket", count count = count + 1 #if issue.trac.id < 1400: # continue issue.githubify() try: if not issue.in_github(): issue.push() print "PUSHED", issue.github.title time.sleep(1) else: print "EXISTS", issue.github.title except Exception, e: print "Could not push", issue.trac.id traceback.print_exc() raise