almost done w gsql implementation
This commit is contained in:
parent
7d0a0866c7
commit
acdf656552
77
gh_gsql_req.py
Normal file
77
gh_gsql_req.py
Normal file
@ -0,0 +1,77 @@
|
||||
import requests
|
||||
import datetime as dt
|
||||
import json
|
||||
import os
|
||||
|
||||
key = os.environ.get('KKEXKEY')
|
||||
|
||||
def main(vcs):
|
||||
vcs_list = vcs[0].split('/')
|
||||
repo_name = '"' + vcs_list[-1] + '"'
|
||||
repo_owner = '"' + vcs_list[-2] + '"'
|
||||
returned_content = get_discussion_gql(repo_owner, repo_name)
|
||||
return returned_content
|
||||
|
||||
def get_discussion_gql(repo_owner, repo_name):
|
||||
url = "https://api.github.com/graphql"
|
||||
data_string = ("""
|
||||
query {
|
||||
repository(owner: """ + repo_owner + """, name: """ + repo_name + """) {
|
||||
discussions(first: 3) {
|
||||
# type: DiscussionConnection
|
||||
totalCount # Int!
|
||||
|
||||
edges {
|
||||
# type: DiscussionEdge
|
||||
cursor
|
||||
node {
|
||||
# type: Discussion
|
||||
id
|
||||
title # String!
|
||||
bodyText # String!
|
||||
createdViaEmail # Boolean!
|
||||
createdAt # DateTime!
|
||||
answer {
|
||||
#type: DiscussionComment
|
||||
bodyText # String!
|
||||
}
|
||||
comments(first: 10){
|
||||
# type: DiscussionCommentConnection
|
||||
totalCount # Int!
|
||||
edges {
|
||||
# type: DiscussionCommentEdge
|
||||
node {
|
||||
# type: DiscussionComment
|
||||
id
|
||||
bodyText # String!
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
""")
|
||||
data = {"query" : data_string}
|
||||
data_json = json.dumps(data)
|
||||
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8', 'Authorization': 'bearer ' + key}
|
||||
r = requests.post(url=url, data=data_json, headers=headers)
|
||||
print(r.content)
|
||||
return r
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
get_discussion_gql()
|
||||
|
||||
|
||||
# stashed info about page cursors
|
||||
''' pageInfo {
|
||||
# type: PageInfo (from the public schema)
|
||||
startCursor
|
||||
endCursor
|
||||
hasNextPage
|
||||
hasPreviousPage
|
||||
}
|
||||
'''
|
@ -35,36 +35,3 @@ def parse_milestones(milestones, earliest_date):
|
||||
return count_of_milestones
|
||||
|
||||
|
||||
def get_discussion_gql():
|
||||
#testing
|
||||
url = "https://api.github.com/graphql"
|
||||
x = {"query" : "query { repository(owner: 'beekeeper-studio', name: 'beekeeper-studio') { discussions(first: 10) {totalCount}}"}
|
||||
data = json.dumps(x)
|
||||
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8', 'Authorization': 'bearer ' + key}
|
||||
r = requests.post(url=url, data=data, headers=headers)
|
||||
print(r.content)
|
||||
print(r.json())
|
||||
|
||||
if __name__ == "__main__":
|
||||
get_discussion_gql()
|
||||
'''
|
||||
#using the github API to identify who is a collaborator on the project and who is just a contributor
|
||||
def split_actors(repo_uri, actors_list):
|
||||
call_sheet = {'collaborator' : [], 'contributor' : []}
|
||||
repo_uri_list = repo_uri.split('/')
|
||||
api_url = "https://api.github.com/repos/" + repo_uri_list[-2] + "/" + repo_uri_list[-1] + "/collaborators/"
|
||||
for actor in actors_list[:2]:
|
||||
actor_email = actor.split('<')[1][:-1]
|
||||
print(actor_email)
|
||||
actor_user = get_gh_un(actor_email)
|
||||
response_dict = response.json()
|
||||
print(response_dict)
|
||||
|
||||
#this function grabs the Github username from an associated email
|
||||
def get_gh_un(email):
|
||||
api_url = 'https://api.github.com/search/users?q=' + email
|
||||
response = requests.get(api_url)
|
||||
response_dict = response.json()
|
||||
gh_username = response_dict['items'][0]['login']
|
||||
return gh_username
|
||||
'''
|
||||
|
8
main.py
8
main.py
@ -1,9 +1,11 @@
|
||||
import perceval
|
||||
import os
|
||||
import yaml
|
||||
import datetime as dt
|
||||
|
||||
import perceval_tasks as pt
|
||||
import github_api_req as gha
|
||||
import datetime as dt
|
||||
import gh_gsql_req as ghs
|
||||
|
||||
def main():
|
||||
# we should discuss whether we're using the 93 day window that seems to be widely used or if we want a longer window
|
||||
@ -32,6 +34,10 @@ def main():
|
||||
#new mmt formality score
|
||||
new_formality = compute_formality_score(new_mmt, gha_obj['milestone_count'], perceval_obj['age_of_project'])
|
||||
print(new_formality)
|
||||
# testing out beneath:
|
||||
# TODO: incorporate early cutoff to this, probably in a cleaning function
|
||||
ghs_obj = ghs.main(vcs_path)
|
||||
print(ghs_obj)
|
||||
except yaml.YAMLOError as err:
|
||||
print(err)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user