|
15 | 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
16 | 16 | # See the License for the specific language governing permissions and |
17 | 17 | # limitations under the License. |
18 | | - |
19 | 18 | """Generate a changelog from merged PRs in a GitHub milestone. |
20 | 19 |
|
21 | 20 | Usage: |
@@ -97,7 +96,8 @@ def changelog_via_gh(owner: str, repo: str, milestone: str, verbose: bool, doc: |
97 | 96 | print(f"Page {page}", file=sys.stderr) |
98 | 97 | result = subprocess.run( |
99 | 98 | [ |
100 | | - "gh", "api", |
| 99 | + "gh", |
| 100 | + "api", |
101 | 101 | f"/repos/{owner}/{repo}/issues?milestone={milestone_id}&state=closed&page={page}&per_page=100", |
102 | 102 | ], |
103 | 103 | capture_output=True, |
@@ -159,7 +159,11 @@ def changelog_via_gh(owner: str, repo: str, milestone: str, verbose: bool, doc: |
159 | 159 |
|
160 | 160 |
|
161 | 161 | def changelog_via_api( |
162 | | - owner: str, repo: str, milestone: str, token: str | None, verbose: bool, |
| 162 | + owner: str, |
| 163 | + repo: str, |
| 164 | + milestone: str, |
| 165 | + token: str | None, |
| 166 | + verbose: bool, |
163 | 167 | doc: bool, |
164 | 168 | ) -> list[dict]: |
165 | 169 | """Use httpx to call the GitHub REST API directly.""" |
@@ -234,9 +238,7 @@ def changelog_via_api( |
234 | 238 | return changelog |
235 | 239 |
|
236 | 240 |
|
237 | | -def _lookup_milestone( |
238 | | - client: httpx.Client, owner: str, repo: str, title: str |
239 | | -) -> int | None: |
| 241 | +def _lookup_milestone(client: httpx.Client, owner: str, repo: str, title: str) -> int | None: |
240 | 242 | resp = client.get(f"/repos/{owner}/{repo}/milestones") |
241 | 243 | _check_rate_limit(resp) |
242 | 244 | resp.raise_for_status() |
@@ -267,15 +269,11 @@ def _check_rate_limit(resp: httpx.Response) -> None: |
267 | 269 |
|
268 | 270 |
|
269 | 271 | def main(): |
270 | | - parser = argparse.ArgumentParser( |
271 | | - description="Generate changelog from merged PRs in a GitHub milestone." |
272 | | - ) |
| 272 | + parser = argparse.ArgumentParser(description="Generate changelog from merged PRs in a GitHub milestone.") |
273 | 273 | parser.add_argument("-o", "--owner", required=True, help="Repository owner") |
274 | 274 | parser.add_argument("-r", "--repo", required=True, help="Repository name") |
275 | 275 | parser.add_argument("-m", "--milestone", required=True, help="Milestone title") |
276 | | - parser.add_argument( |
277 | | - "-a", "--auth", default=None, help="GitHub auth token (or set GH_TOKEN env var)" |
278 | | - ) |
| 276 | + parser.add_argument("-a", "--auth", default=None, help="GitHub auth token (or set GH_TOKEN env var)") |
279 | 277 | parser.add_argument("-v", "--verbose", action="store_true", help="Verbose output") |
280 | 278 | parser.add_argument( |
281 | 279 | "--doc", |
@@ -322,7 +320,12 @@ def main(): |
322 | 320 | changelog = changelog_via_gh(args.owner, args.repo, args.milestone, args.verbose, args.doc) |
323 | 321 | else: |
324 | 322 | changelog = changelog_via_api( |
325 | | - args.owner, args.repo, args.milestone, token, args.verbose, args.doc, |
| 323 | + args.owner, |
| 324 | + args.repo, |
| 325 | + args.milestone, |
| 326 | + token, |
| 327 | + args.verbose, |
| 328 | + args.doc, |
326 | 329 | ) |
327 | 330 |
|
328 | 331 | if changelog: |
|
0 commit comments