Ejemplo n.º 1
0
async def add_issue_to_projects(issue_id, project_ids, headers):
    "send a graphql mutation to Github to move an issue to specific projects"
    variables = json.dumps({"issue_id": issue_id, "project_ids": project_ids})
    schema = open("Schemas/add_to_project.graphql", "r").read()
    payload = build_payload(schema, variables)
    response = requests.post(graphql_endpoint, payload, headers=headers)
    return json.loads(response.content.decode())
Ejemplo n.º 2
0
async def get_issues_for_repo(login, repo_name, headers):
    variables = json.dumps({"login": login, "name": repo_name})
    schema = open("Schemas/issues_for_repo.graphql", "r").read()
    payload = build_payload(schema, variables)
    return json.loads(
        requests.post(graphql_endpoint, payload,
                      headers=headers).content.decode())
Ejemplo n.º 3
0
async def get_label_by_name(label_name, login, headers):
    "returns a list of all matched labels for a set of repositories"
    schema = open("Schemas/get_label_by_name.graphql", "r").read()
    variables = json.dumps({"login": login, "label_name": label_name})
    payload = build_payload(schema, variables)
    response = requests.post(graphql_endpoint, payload, headers=headers)
    return json.loads(response.content.decode())
Ejemplo n.º 4
0
async def add_labels_to_labelable(label_ids, labelable_id, headers):
    "adds an arbitrary amount of labels to an issue"
    schema = open("Schemas/add_labels_to_labelable.graphql", "r").read()
    variables = json.dumps({
        "label_ids": label_ids,
        "labelable_id": labelable_id
    })
    payload = build_payload(schema, variables)
    response = requests.post(graphql_endpoint, payload, headers=headers)
    return json.loads(response.content.decode())
Ejemplo n.º 5
0
async def get_issue_for_repository(login, repo_name, issue_number, headers):
    schema = open("Schemas/get_issue_for_repo.graphql", "r").read()
    variables = json.dumps({
        "login": login,
        "repo_name": repo_name,
        "issue_number": issue_number
    })
    payload = build_payload(schema, variables)
    response = requests.post(graphql_endpoint, payload,
                             headers=headers).content.decode()
    return json.loads(response)
Ejemplo n.º 6
0
async def get_project_data(project_name, login, headers):
    "returns a project dict in the format specified in project_data.graphql"
    variables = json.dumps({"projectName": project_name, "login": login})
    schema = open("Schemas/project_data.graphql", "r").read()
    payload = build_payload(schema, variables)
    response = requests.post(graphql_endpoint, payload, headers=headers)
    response_json = json.loads(response.content.decode())
    nodes = response_json.get("data").get("organization").get("projects").get(
        "nodes")
    # returns a project object { name: string, id: string, columns:[{ name, id, url }] }
    return nodes[0] if len(nodes) > 0 else None
Ejemplo n.º 7
0
async def get_labels_for_issue(repo_name, issue_number, headers):
    schema = open("Schemas/get_labels_for_issue.graphql", "r").read()
    variables = json.dumps({
        "login": organization,
        "repo_name": repo_name,
        "issue_number": issue_number
    })
    payload = build_payload(schema, variables)
    response = json.loads(
        requests.post(graphql_endpoint, payload,
                      headers=headers).content.decode())
    return response.get("data").get("organization").get("repository").get(
        "issue").get("labels").get("nodes")