Context
We currently check for tags or metadata in titles for the pull request that was merged within a given window:
|
# Separate out items by their tag types |
|
for kind, kindmeta in tags_metadata.items(): |
|
# First find the PRs based on tag |
|
mask = closed_prs["labels"].map( |
|
lambda a: any(ii == jj for ii in kindmeta["tags"] for jj in a) |
|
) |
|
# Now find PRs based on prefix |
|
mask_pre = closed_prs["title"].map( |
|
lambda title: any(f"{ipre}:" in title for ipre in kindmeta["pre"]) |
|
) |
|
mask = mask | mask_pre |
|
|
|
kindmeta["data"] = closed_prs.loc[mask] |
|
kindmeta["mask"] = mask |
However, many projects put more labeling / tagging effort into their issues rather than the pull requests that close them. For example, a PR might have no labels itself, but might close an issue labeled documentation.
Proposal
If a Pull Request doesn't contain any information that can be used to categorize it, but it does have an issue that it closes, then we should try to infer the "category" of the PR by looking at the issue's information.
Note on implementation
We can grab the pointer to a closing issue via the closingIssuesReferences graphql field. We can then use this to return the title and list of labels for that issue. Here's a rough query that does this for a generic pull requests query:
{
viewer {
pullRequests(
first: 100
states: CLOSED
orderBy: {field: UPDATED_AT, direction: DESC}
) {
nodes {
closingIssuesReferences(first: 5) {
edges {
node {
labels(first:10) {
edges {
node {
id
name
url
}
}
}
title
url
}
}
}
}
}
}
}
Tasks and updates
No response
Context
We currently check for tags or metadata in titles for the pull request that was merged within a given window:
github-activity/github_activity/github_activity.py
Lines 471 to 484 in 2851438
However, many projects put more labeling / tagging effort into their issues rather than the pull requests that close them. For example, a PR might have no labels itself, but might close an issue labeled
documentation.Proposal
If a Pull Request doesn't contain any information that can be used to categorize it, but it does have an issue that it closes, then we should try to infer the "category" of the PR by looking at the issue's information.
Note on implementation
We can grab the pointer to a closing issue via the
closingIssuesReferencesgraphql field. We can then use this to return the title and list of labels for that issue. Here's a rough query that does this for a generic pull requests query:{ viewer { pullRequests( first: 100 states: CLOSED orderBy: {field: UPDATED_AT, direction: DESC} ) { nodes { closingIssuesReferences(first: 5) { edges { node { labels(first:10) { edges { node { id name url } } } title url } } } } } } }Tasks and updates
No response