Wauplin HF staff commited on
Commit
e66723a
1 Parent(s): ecd8caa

Deploy on draft PRs

Browse files
Files changed (2) hide show
  1. RELEASE.md +4 -0
  2. src/gradio_space_ci/webhook.py +6 -3
RELEASE.md CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  ## 0.2.2
2
 
3
  - Install `huggingface_hub>=0.21.1` now that 0.21 have been released.
 
1
+ ## 0.2.3
2
+
3
+ - Deploy on "draft" PRs as well, not just "open" PRs.
4
+
5
  ## 0.2.2
6
 
7
  - Install `huggingface_hub>=0.21.1` now that 0.21 have been released.
src/gradio_space_ci/webhook.py CHANGED
@@ -54,6 +54,9 @@ if SPACE_ID is not None: # If running in a Space (i.e. not locally)
54
 
55
  EPHEMERAL_SPACES_CONFIG: Dict[str, Any] = {}
56
 
 
 
 
57
 
58
  def enable_space_ci() -> None:
59
  """Enable Space CI for the current Space based on config from the README.md file.
@@ -198,7 +201,7 @@ background_pool = ThreadPoolExecutor(max_workers=1)
198
  def recover_after_restart(space_id: str) -> None:
199
  print("Looping through PRs to check if any needs to be synced.")
200
  for discussion in get_repo_discussions(repo_id=space_id, repo_type="space", discussion_type="pull_request"):
201
- if discussion.status == "open":
202
  if not is_pr_synced(space_id=space_id, pr_num=discussion.num):
203
  # Found a PR that is not yet synced
204
  print(f"Recovery. Found an open PR that is not synced: {discussion.url}. Syncing it.")
@@ -251,7 +254,7 @@ async def trigger_ci_on_pr(payload: WebhookPayload, task_queue: BackgroundTasks)
251
  and payload.event.action == "create"
252
  and payload.discussion is not None
253
  and payload.discussion.isPullRequest
254
- and payload.discussion.status == "open"
255
  ):
256
  if not is_pr_synced(space_id=space_id, pr_num=payload.discussion.num):
257
  # New PR! Sync task scheduled
@@ -278,7 +281,7 @@ async def trigger_ci_on_pr(payload: WebhookPayload, task_queue: BackgroundTasks)
278
  # New repo change. Is it a commit on a PR?
279
  # => loop through all PRs and check if new changes happened
280
  for discussion in get_repo_discussions(repo_id=space_id, repo_type="space"):
281
- if discussion.is_pull_request and discussion.status == "open":
282
  if not is_pr_synced(space_id=space_id, pr_num=discussion.num):
283
  # Found a PR that is not yet synced
284
  task_queue.add_task(sync_ci_space, space_id=space_id, pr_num=discussion.num)
 
54
 
55
  EPHEMERAL_SPACES_CONFIG: Dict[str, Any] = {}
56
 
57
+ # Draft and open PRs are considered as active (in opposition to closed and merged PRs)
58
+ ACTIVE_PR_STATUS = ("draft", "open")
59
+
60
 
61
  def enable_space_ci() -> None:
62
  """Enable Space CI for the current Space based on config from the README.md file.
 
201
  def recover_after_restart(space_id: str) -> None:
202
  print("Looping through PRs to check if any needs to be synced.")
203
  for discussion in get_repo_discussions(repo_id=space_id, repo_type="space", discussion_type="pull_request"):
204
+ if discussion.status in ACTIVE_PR_STATUS:
205
  if not is_pr_synced(space_id=space_id, pr_num=discussion.num):
206
  # Found a PR that is not yet synced
207
  print(f"Recovery. Found an open PR that is not synced: {discussion.url}. Syncing it.")
 
254
  and payload.event.action == "create"
255
  and payload.discussion is not None
256
  and payload.discussion.isPullRequest
257
+ and payload.discussion.status in ACTIVE_PR_STATUS
258
  ):
259
  if not is_pr_synced(space_id=space_id, pr_num=payload.discussion.num):
260
  # New PR! Sync task scheduled
 
281
  # New repo change. Is it a commit on a PR?
282
  # => loop through all PRs and check if new changes happened
283
  for discussion in get_repo_discussions(repo_id=space_id, repo_type="space"):
284
+ if discussion.is_pull_request and discussion.status in ACTIVE_PR_STATUS:
285
  if not is_pr_synced(space_id=space_id, pr_num=discussion.num):
286
  # Found a PR that is not yet synced
287
  task_queue.add_task(sync_ci_space, space_id=space_id, pr_num=discussion.num)