autopub 1.0.0a38__py3-none-any.whl → 1.0.0a39__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
autopub/plugins/github.py CHANGED
@@ -67,6 +67,10 @@ class GithubConfig(BaseModel):
67
67
  ```
68
68
  """)
69
69
 
70
+ include_sponsors: bool = True
71
+ create_discussions: bool = True
72
+ discussion_category: str = "Announcements"
73
+
70
74
 
71
75
  class GithubPlugin(AutopubPlugin):
72
76
  id = "github"
@@ -82,7 +86,7 @@ class GithubPlugin(AutopubPlugin):
82
86
 
83
87
  self.repository_name = os.environ.get("GITHUB_REPOSITORY")
84
88
  self.discussion_category_name = os.environ.get(
85
- "DISCUSSION_CATEGORY_NAME", "Announcements"
89
+ "DISCUSSION_CATEGORY_NAME", self.configuration.discussion_category
86
90
  )
87
91
 
88
92
  @cached_property
@@ -268,18 +272,19 @@ class GithubPlugin(AutopubPlugin):
268
272
  f"Discussion category {self.discussion_category_name} not found"
269
273
  )
270
274
 
271
- def _create_discussion(self, release_info: ReleaseInfo) -> None:
275
+ def _create_discussion(self, release_info: ReleaseInfo) -> str:
272
276
  mutation = """
273
277
  mutation CreateDiscussion($repositoryId: ID!, $categoryId: ID!, $body: String!, $title: String!) {
274
278
  createDiscussion(input: {repositoryId: $repositoryId, categoryId: $categoryId, body: $body, title: $title}) {
275
279
  discussion {
276
280
  id
281
+ url
277
282
  }
278
283
  }
279
284
  }
280
285
  """
281
286
 
282
- self._github.requester.graphql_query(
287
+ _, response = self._github.requester.graphql_query(
283
288
  mutation,
284
289
  {
285
290
  # TODO: repo.node_id is not yet been published to pypi
@@ -290,6 +295,8 @@ class GithubPlugin(AutopubPlugin):
290
295
  },
291
296
  )
292
297
 
298
+ return response["data"]["createDiscussion"]["discussion"]["url"]
299
+
293
300
  def _get_pr_contributors(self) -> PRContributors:
294
301
  pr: PullRequest = self.pull_request
295
302
 
@@ -340,13 +347,14 @@ class GithubPlugin(AutopubPlugin):
340
347
  self._update_or_create_comment(message)
341
348
 
342
349
  def _get_release_message(
343
- self, release_info: ReleaseInfo, include_release_info: bool = False
350
+ self,
351
+ release_info: ReleaseInfo,
352
+ include_release_info: bool = False,
353
+ discussion_url: Optional[str] = None,
344
354
  ) -> str:
345
355
  assert self.pull_request is not None
346
356
 
347
357
  contributors = self._get_pr_contributors()
348
- sponsors = self._get_sponsors()
349
-
350
358
  message = textwrap.dedent(
351
359
  f"""
352
360
  ## {release_info.version}
@@ -373,19 +381,28 @@ class GithubPlugin(AutopubPlugin):
373
381
  reviewers = [f"@{reviewer}" for reviewer in contributors["reviewers"]]
374
382
  message += f"\n\nReviewers: {', '.join(reviewers)}"
375
383
 
376
- if sponsors["sponsors"]:
377
- public_sponsors = [f"@{sponsor}" for sponsor in sponsors["sponsors"]]
378
- message += f"\n\nThanks to {', '.join(public_sponsors)}"
384
+ if self.configuration.include_sponsors:
385
+ sponsors = self._get_sponsors()
386
+ if sponsors["sponsors"]:
387
+ public_sponsors = [f"@{sponsor}" for sponsor in sponsors["sponsors"]]
388
+ message += f"\n\nThanks to {', '.join(public_sponsors)}"
379
389
 
380
- if sponsors["private_sponsors"]:
381
- message += f" and the {sponsors['private_sponsors']} private sponsor(s)"
390
+ if sponsors["private_sponsors"]:
391
+ message += (
392
+ f" and the {sponsors['private_sponsors']} private sponsor(s)"
393
+ )
382
394
 
383
- message += " for making this release possible ✨"
395
+ message += " for making this release possible ✨"
396
+
397
+ if discussion_url:
398
+ message += f"\n\nJoin the discussion: {discussion_url}"
384
399
 
385
400
  return message
386
401
 
387
- def _create_release(self, release_info: ReleaseInfo) -> None:
388
- message = self._get_release_message(release_info)
402
+ def _create_release(
403
+ self, release_info: ReleaseInfo, discussion_url: Optional[str] = None
404
+ ) -> None:
405
+ message = self._get_release_message(release_info, discussion_url=discussion_url)
389
406
 
390
407
  release = self.repository.create_git_release(
391
408
  tag=release_info.version,
@@ -405,5 +422,9 @@ class GithubPlugin(AutopubPlugin):
405
422
  text, marker="<!-- autopub-comment-published -->"
406
423
  )
407
424
 
408
- self._create_release(release_info)
409
- self._create_discussion(release_info)
425
+ discussion_url = None
426
+
427
+ if self.configuration.create_discussions:
428
+ discussion_url = self._create_discussion(release_info)
429
+
430
+ self._create_release(release_info, discussion_url)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autopub
3
- Version: 1.0.0a38
3
+ Version: 1.0.0a39
4
4
  Summary: Automatic package release upon pull request merge
5
5
  Home-page: https://github.com/autopub/autopub
6
6
  Author: Justin Mayer
@@ -5,15 +5,15 @@ autopub/plugin_loader.py,sha256=2ysITgpHGUmcb1mP1Qvs-iBX2wZxmfP9obnebThwUMA,1809
5
5
  autopub/plugins/__init__.py,sha256=h0VkuF4SgcISLv45KG_v8DeovDbjAjS_gt3EZPU-HMo,2112
6
6
  autopub/plugins/bump_version.py,sha256=yOXhKHAGFb1DcmeBdh5RfwkOpEYeTqMlE69HgIyUB58,1628
7
7
  autopub/plugins/git.py,sha256=d0SMLc6hwuk0eymj8aHyu3_cEd-7x4fhkwu35wPPV4k,1054
8
- autopub/plugins/github.py,sha256=WQgjAvKCSIeh6PMVAShKrpS0d5nRQxx_VqtK1Hr0TOE,13127
8
+ autopub/plugins/github.py,sha256=JLrCqf4tENeuzEJUEeGDwq9Tm7s_Fu6bmWNMsoZ0U04,13863
9
9
  autopub/plugins/pdm.py,sha256=Pczye06fKg8_HMJDkEfMXQyvao9rZ7sqzTHFd6lLEpU,532
10
10
  autopub/plugins/poetry.py,sha256=d2LvW9RI7ZB3reBOXbcp1mqWmzQ06Uyg_T-MxTvlSBg,517
11
11
  autopub/plugins/update_changelog.py,sha256=g_6flOP5wocZbjOaYSayWxobL3ld8f0wT78nFtAIkFc,1586
12
12
  autopub/plugins/uv.py,sha256=goo8QxaD3FVJ1c3xOSmN1hikZTCUXN8jWNac1S5uDDY,1089
13
13
  autopub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  autopub/types.py,sha256=gY1WR93XZVFS7vf5JMSmL_h5z7zO51-rtmZ6MYsh3so,1043
15
- autopub-1.0.0a38.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
16
- autopub-1.0.0a38.dist-info/METADATA,sha256=QFCnEwGXltFeIG-cIT7UP6OwRSXENs9zcVUFsU3PaAI,992
17
- autopub-1.0.0a38.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
18
- autopub-1.0.0a38.dist-info/entry_points.txt,sha256=oeTav5NgCxif6mcZ_HeVGgGv5LzS4DwdI01nr4bO1IM,43
19
- autopub-1.0.0a38.dist-info/RECORD,,
15
+ autopub-1.0.0a39.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
16
+ autopub-1.0.0a39.dist-info/METADATA,sha256=Enpp1YaydZYYq3SKogBITibpeACjk0Pqj54A9i7WM3M,992
17
+ autopub-1.0.0a39.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
18
+ autopub-1.0.0a39.dist-info/entry_points.txt,sha256=oeTav5NgCxif6mcZ_HeVGgGv5LzS4DwdI01nr4bO1IM,43
19
+ autopub-1.0.0a39.dist-info/RECORD,,