1
0
mw-convo-collections/072525_gerrit_collection/gerrit_patch_collection.py

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)