Skip to content

Commit 559c452

Browse files
authored
fix: allow some arguments to be unset (#4)
* fix: allow some arguments to be unset * fix: lint/black * chore: update codeowners to include angelo * chore: bump version number
1 parent 6caa36b commit 559c452

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
# the repo. Unless a later match takes precedence,
88
# @global-owner1 and @global-owner2 will be requested for
99
# review when someone opens a pull request.
10-
* @jbristow @zprobst @ccloes @asantos4 @rreddy15 @aghafari @alucas7
10+
* @jbristow @zprobst @ccloes @angelosantos4

nodestream_github/client/githubclient.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
DEFAULT_REQUEST_RATE_LIMIT_PER_MINUTE = int(13000 / 60)
2727
DEFAULT_MAX_RETRIES = 20
2828
DEFAULT_PAGE_SIZE = 100
29+
DEFAULT_MAX_RETRY_WAIT_SECONDS = 300 # 5 minutes
2930

3031

3132
logger = get_plugin_logger(__name__)
@@ -71,15 +72,20 @@ def __init__(
7172
github_hostname: str = "api.github.com",
7273
*,
7374
user_agent: str | None = None,
74-
per_page: int = DEFAULT_PAGE_SIZE,
75-
max_retries: int = DEFAULT_MAX_RETRIES,
76-
rate_limit_per_minute: int = DEFAULT_REQUEST_RATE_LIMIT_PER_MINUTE,
77-
max_retry_wait_seconds: int = 60 * 5,
75+
per_page: int | None = None,
76+
max_retries: int | None = None,
77+
rate_limit_per_minute: int | None = None,
78+
max_retry_wait_seconds: int | None = None,
7879
):
79-
if per_page < 1:
80+
if per_page is None:
81+
per_page = DEFAULT_PAGE_SIZE
82+
elif per_page < 1:
8083
msg = "page_size must be an integer greater than 0"
8184
raise ValueError(msg)
82-
if max_retries < 0:
85+
86+
if max_retries is None:
87+
max_retries = DEFAULT_MAX_RETRIES
88+
elif max_retries < 0:
8389
msg = "max_retries must be a positive integer"
8490
raise ValueError(msg)
8591

@@ -99,12 +105,23 @@ def __init__(
99105
self._default_headers["User-Agent"] = user_agent
100106
self._max_retries = max_retries
101107

102-
self._rate_limit = RateLimitItemPerMinute(rate_limit_per_minute, 1)
108+
self._rate_limit = RateLimitItemPerMinute(
109+
(
110+
DEFAULT_REQUEST_RATE_LIMIT_PER_MINUTE
111+
if rate_limit_per_minute is None
112+
else rate_limit_per_minute
113+
),
114+
1,
115+
)
103116
logger.info("GitHub REST RateLimit set to %s", self._rate_limit)
104117
self._rate_limiter = MovingWindowRateLimiter(self.limit_storage)
105118
self._session = httpx.AsyncClient()
106119

107-
self.max_retry_wait = max_retry_wait_seconds
120+
max_retry_wait_seconds = (
121+
DEFAULT_MAX_RETRY_WAIT_SECONDS
122+
if max_retry_wait_seconds is None
123+
else max_retry_wait_seconds
124+
)
108125
self._retryer = AsyncRetrying(
109126
wait=wait_random_exponential(
110127
max=max_retry_wait_seconds,

nodestream_github/repos.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ async def _extract_repo(self, repo: GithubRepo) -> RepositoryRecord:
9797
owner["login"], repo["name"]
9898
)
9999
]
100-
logger.info("owner=%s", owner)
101100
repo["webhooks"] = [
102101
hook
103102
async for hook in self.client.fetch_webhooks_for_repo(

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "nodestream-plugin-github"
3-
version = "0.13.1-beta.2"
3+
version = "0.13.1-beta.3"
44
description = ""
55
authors = ["Jon Bristow <[email protected]>"]
66
packages = [

0 commit comments

Comments
 (0)