56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import os, sys
|
|
import json
|
|
import numpy as np
|
|
import pandas as pd
|
|
import requests
|
|
import re
|
|
import datetime
|
|
import time
|
|
#from urllib.parse import quote_plus
|
|
|
|
#from requests.auth import HTTPDigestAuth
|
|
#from pygerrit2 import GerritRestAPI, HTTPBasicAuth
|
|
|
|
# format of the Gerrit links: https://gerrit.wikimedia.org/r/85783
|
|
# but needs to go in like this https://gerrit.wikimedia.org/r/changes/85783
|
|
# curl https://gerrit.wikimedia.org/r/changes/Ic69c2ad275389a31c9fbaf47f3665dcdbb7ac2af/detail
|
|
|
|
def query_change_detail(
|
|
written_url,
|
|
sleep = 10
|
|
):
|
|
time.sleep(sleep)
|
|
short_change_id = written_url.split("/")[-1]
|
|
|
|
api_url = f"https://gerrit.wikimedia.org/r/changes/{short_change_id}/detail"
|
|
|
|
response = requests.get(api_url, headers={'Content-Type': 'application/json'})
|
|
|
|
result = json.loads(response.text[5:])
|
|
|
|
select_change_dict = {}
|
|
#getting ID
|
|
select_change_dict['id'] = result['change_id']
|
|
select_change_dict['project'] = result['project']
|
|
select_change_dict['description'] = result['subject']
|
|
#getting owner name and email
|
|
select_change_dict['owner_dict'] = result['owner']
|
|
select_change_dict['owner_email'] = result['owner']['email']
|
|
#current revision count
|
|
select_change_dict['revision_count'] = result['current_revision_number']
|
|
#insertions
|
|
select_change_dict['code_insertions'] = result['insertions']
|
|
#deletions
|
|
select_change_dict['code_deletions'] = result['deletions']
|
|
#status
|
|
select_change_dict['status'] = result['status']
|
|
#reviewers
|
|
select_change_dict['reviewer_count'] = len(result['reviewers']['REVIEWER'])
|
|
select_change_dict['reviewers'] = result['reviewers']['REVIEWER']
|
|
print(result)
|
|
print(select_change_dict)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
query_change_detail("https://gerrit.wikimedia.org/r/85783", 1)
|