Skip to content

feat: automated review queue label sync , Phase 1 (label sync only)#2242

Merged
exploreriii merged 11 commits into
hiero-ledger:mainfrom
darshit2308:feature/review-sync-phase1
May 7, 2026
Merged

feat: automated review queue label sync , Phase 1 (label sync only)#2242
exploreriii merged 11 commits into
hiero-ledger:mainfrom
darshit2308:feature/review-sync-phase1

Conversation

@darshit2308

Copy link
Copy Markdown
Contributor

Description:
Introduce a cron-based workflow that runs every 30 minutes and keeps exactly one review-queue label accurate on every open non-draft PR based on live approval data. This is Phase 1 of 4 , label sync only. No routing, no assignment, no comments yet.


Changes:

  • Added .github/workflows/review-sync.yml , 30-min cron, workflow_dispatch with dry_run toggle, harden-runner, sparse-checkout, pinned SHAs, concurrency block, hl-sdk-py-lin-md runner
  • Added .github/scripts/review-sync/index.js , entry point: rate-limit guard (floor=200), paginated PR fetch, label bootstrap (auto-creates 3 labels on first run), per-PR error isolation, run summary
  • Added .github/scripts/review-sync/labels.js , core logic: approval counting split by permission level, DISMISSED ghost approval fix, explicit chronological sort on reviews, crash-safe add-first-then-remove label ordering

No existing files were modified. No collision with .github/scripts/labels.js.


Label logic:

Condition Label applied
0 approvals queue:junior-committer
≥ 1 approval from any contributor queue:committers
≥ 2 approvals from write/admin collaborators ready-to-merge
Draft PR Skipped entirely
Dismissed review Counts as 0 (ghost-approval safe)

What this PR does NOT do:

  • No difficulty-based routing (Phase 2)
  • No reviewer assignment or workload balancing (Phase 3)
  • No comments on label changes (Phase 3)
  • Does not touch or delete existing step: or reviewer: labels , they coexist with the new queue: labels until a future cleanup PR

Fixes #2229

Testing:
Screenshot 2026-05-06 at 10 25 07 AM

Notes for reviewer:

  • All action SHAs are pinned , no floating @v tags, matches existing repo convention
  • Runner is hl-sdk-py-lin-md , matches all other cron workflows (cron-reminder-pr-inactive.yml, cron-enforcer-pr-linked-issue.yml)
  • DISMISSED reviews actively delete the user's prior approval state , without this, GitHub's auto-dismiss (triggered when new commits are pushed after an approval) leaves a ghost approval in the map, causing a PR to be incorrectly promoted
  • Reviews are explicitly sorted by submitted_at before processing , correct by construction, not by API assumption
  • Label application order is add-first-then-remove , a PR never temporarily has zero queue labels even if the process crashes mid-run
  • Concurrency block (group: ${{ github.workflow }}, cancel-in-progress: true) prevents two overlapping 30-min runs from racing on the same PR's labels
  • Old step: and reviewer: labels are intentionally left untouched , both label systems coexist on existing PRs until Phase 3 cleanup PR
  • Bot PRs (Dependabot etc.) are included by design and will receive a queue label
  • External contributor approvals (non-collaborators, 404 on permission check) are treated as soft approvals , they count towards queue:committers but not ready-to-merge
  • ensureLabel checks existence only , if a label exists with the wrong colour it is not corrected in Phase 1 (documented in code)
  • DRY_RUN env var is wired from the job-level env block , step-level repetition is intentionally avoided
  • Dry-run tested end-to-end on fork before submission: 3 labels created, 1 PR processed, 1 label applied (queue:junior-committer), 0 errors
    Checklist:
  • New files only , no existing files modified
  • Follows repo runner convention (hl-sdk-py-lin-md)
  • All action SHAs pinned (no floating @v tags)
  • Harden Runner as first step with egress-policy: audit
  • Concurrency block present , no overlapping cron runs
  • workflow_dispatch dry-run tested end-to-end on fork
  • DISMISSED ghost-approval bug fixed and documented in code
  • Reviews explicitly sorted by submitted_at
  • Rate-limit guard present (floor = 200)
  • Crash-safe label ordering (add first, remove second)
  • Old step:/reviewer: labels intentionally preserved (no breaking changes)
  • Single clean commit

Copilot AI review requested due to automatic review settings May 6, 2026 05:28
@darshit2308
darshit2308 requested review from a team as code owners May 6, 2026 05:28
Introduce a cron-based workflow (every 30 min) that classifies every
open non-draft PR into one of three review stages based on the number
and permission level of approvals:

  queue:junior-committer → queue:committers → ready-to-merge

Phase 1 of 4 — label sync only. No assignments, comments, or routing.

Label determination:
  - writeApproval >= 2 → ready-to-merge
  - anyApproval  >= 1  → queue:committers
  - else               → queue:junior-committer

Key design decisions:
  - Add-first-then-remove label ordering prevents zero-label state
  - DISMISSED reviews actively delete prior state (prevents ghost approvals)
  - Reviews explicitly sorted by submitted_at (correct by construction)
  - Rate-limit guard (floor=200) prevents partial runs
  - Concurrency block prevents overlapping cron runs from racing
  - DRY_RUN mode for safe manual testing via workflow_dispatch
  - 422/404 errors handled silently (race conditions, external users)
  - Old step:/reviewer: labels coexist intentionally until future cleanup
  - Bot-authored PRs (Dependabot) receive labels (acknowledged)

Files added:
  .github/workflows/review-sync.yml
  .github/scripts/review-sync/index.js
  .github/scripts/review-sync/labels.js

Signed-off-by: darshit2308 <darshit2308@gmail.com>
@codacy-production

codacy-production Bot commented May 6, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 127 complexity

Metric Results
Complexity 127

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@darshit2308
darshit2308 force-pushed the feature/review-sync-phase1 branch from e79b9e5 to 6e67c49 Compare May 6, 2026 05:30
@coderabbitai

coderabbitai Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds a stateless GitHub Actions cron workflow and Node.js scripts to compute and apply a single review-queue label per PR. Includes helpers to fetch/normalize reviews, resolve collaborator permissions, decide and reconcile queue labels, unit tests with mocks, and a scheduled workflow that runs the orchestration.

Changes

Review Queue Label Sync System

Layer / File(s) Summary
Constants & Configuration
.github/scripts/review-sync/helpers/constants.js
Defines RATE_LIMIT_FLOOR, QUEUE_LABELS map with four stages (JUNIOR, COMMITTERS, MAINTAINERS, MERGE), and derives ALL_QUEUE_LABEL_NAMES.
Helper Module Exports
.github/scripts/review-sync/helpers/index.js
Barrel export aggregating four helper modules: constants, permissions, reviews, and labels.
Review State Processing
.github/scripts/review-sync/helpers/reviews.js
getLatestReviewStates() fetches paginated PR reviews, retains only latest state per reviewer, ignores COMMENTED, and deletes entries on DISMISSED. Returns Map of username to effective approval state.
Permission & Approval Counting
.github/scripts/review-sync/helpers/permissions.js
getPermissionLevel() determines user's repository role (prioritizing role_name over legacy permission). countApprovals() aggregates PR approvals by role (admin/maintain → maintainer, write → write, others → soft) and computes anyApproval.
Label Determination & Application
.github/scripts/review-sync/helpers/labels.js
determineLabel() maps approval counts to queue label via 4-stage logic. ensureLabel() creates labels if missing, handling 422 race conditions. syncLabel() applies correct label first, then removes stale labels in crash-safe sequence with dry-run support.
Orchestration Script
.github/scripts/review-sync/index.js
Main cron-job script that guards against rate limits, fetches all open non-draft PRs (paginated), ensures required queue labels exist, iterates PRs to sync labels via helpers, and outputs summary metrics.
Workflow Configuration
.github/workflows/review-sync.yml
GitHub Actions workflow triggered on 30-minute schedule and manual dispatch. Hardens runner, checks out .github/scripts via sparse checkout, and executes Node review-sync script with DRY_RUN environment variable.
Helper Unit Tests
.github/scripts/review-sync/tests/test-labels.js, test-permissions.js, test-reviews.js
Unit tests covering label decision logic, permission resolution and approval counting, and review-state reduction (including dismissed/commented/ordering edge cases).
Test Infrastructure & Utilities
.github/scripts/review-sync/tests/test-utils.js
Exports runTestSuite(), printSummaryAndExit(), and createMockGithub() and provides mocks for GitHub REST interactions and pagination.

Sequence Diagram

sequenceDiagram
    participant Cron as Cron / Manual Trigger
    participant Workflow as GitHub Actions Workflow
    participant Script as review-sync Script
    participant API as GitHub API
    participant Labels as Label Helpers

    Cron->>Workflow: Trigger (30 min or manual)
    Workflow->>Script: Execute with DRY_RUN env
    Script->>API: Check rate limit (guard)
    API-->>Script: Remaining quota
    Script->>API: Fetch all open non-draft PRs (paginated)
    API-->>Script: PR list
    Script->>API: Ensure required queue labels exist
    API-->>Script: Labels confirmed
    
    loop For each PR
        Script->>API: Fetch PR reviews (paginated)
        API-->>Script: Latest review states per user
        Script->>Labels: determineLabel(approvals)
        Labels-->>Script: Target queue label
        Script->>Labels: syncLabel(currentLabels -> targetLabel)
        Labels->>API: Add target label first (crash-safe)
        API-->>Labels: Label added
        Labels->>API: Remove stale queue labels
        API-->>Labels: Stale labels removed
        Labels-->>Script: Change applied or skipped
    end
    
    Script-->>Workflow: Summary (PRs processed, changed, skipped, errors)
    Workflow->>Cron: Complete
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR implements Phase 1 of #2229 with label sync only, but does not address several core requirements: difficulty inference from linked issues, junior-committer membership checks, escalation logic for 5+ day old PRs, PR assignment/workload balancing, bot comments, or disabling the copy-labels workflow. Document that this PR intentionally scopes Phase 1 to label synchronization only, with routing/assignment/escalation deferred to later phases per the PR description's explicit scope boundaries.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: introducing automated review queue label synchronization in Phase 1, focusing on label sync only.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, explaining the cron-based workflow, label logic, testing, and implementation details.
Out of Scope Changes check ✅ Passed All changes are scoped to the review-sync label synchronization feature; new files and workflows are directly related to PR objectives with no unrelated modifications.
Docstring Coverage ✅ Passed Docstring coverage is 83.33% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new scheduled GitHub Actions workflow plus supporting Node.js scripts to keep PR “review queue” labels synchronized on all open, non-draft pull requests based on current approval state (Phase 1: label sync only).

Changes:

  • Added a 30-minute cron + manual dispatch workflow to run the review-queue label sync with a dry_run toggle.
  • Added an entry-point script that rate-limit guards, enumerates PRs, ensures labels exist, and processes PRs with per-PR error isolation + summary output.
  • Added core labeling logic to compute approval counts (including DISMISSED “ghost approval” handling) and apply queue labels in an add-first-then-remove order.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
.github/workflows/review-sync.yml New scheduled workflow that checks out the scripts and runs the sync via actions/github-script.
.github/scripts/review-sync/index.js Orchestrates rate-limit check, PR pagination, label bootstrap, per-PR processing, and run summary.
.github/scripts/review-sync/labels.js Computes latest review state, counts approvals by permission level, determines the correct label, and applies labels.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/scripts/review-sync/labels.js Outdated
Comment thread .github/scripts/review-sync/labels.js Outdated
Comment thread .github/workflows/review-sync.yml Outdated
- Move early return condition to after stale label determination to ensure stale labels are always removed
- Add 'maintain' role to privileged approval permission levels
- Downgrade pull-requests permission to 'read' to enforce least privilege

Signed-off-by: darshit2308 <darshit2308@gmail.com>
@darshit2308
darshit2308 force-pushed the feature/review-sync-phase1 branch from 7e0a6b7 to 222e06b Compare May 6, 2026 05:39
Signed-off-by: darshit2308 <darshit2308@gmail.com>

@exploreriii exploreriii left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Main issue i see is 2 write approvals might not be enoguh to merge given code owners

Comment thread .github/scripts/review-sync/labels.js Outdated
Comment thread .github/scripts/review-sync/labels.js Outdated
Comment thread .github/scripts/review-sync/labels.js Outdated
Comment thread .github/scripts/review-sync/labels.js Outdated
Comment thread .github/scripts/review-sync/index.js
@exploreriii
exploreriii marked this pull request as draft May 6, 2026 10:23
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown

Hello, this is the OfficeHourBot.

This is a reminder that the Hiero Python SDK Office Hours are scheduled in approximately 4 hours (14:00 UTC).

This session provides an opportunity to ask questions regarding this Pull Request.

Details:

Disclaimer: This is an automated reminder. Please verify the schedule here for any changes.

From,
The Python SDK Team

@exploreriii

Copy link
Copy Markdown
Contributor

Yep some of my feedback was out of scope for this PR, but can be added as notes for any future one

Addresses maintainer feedback on PR hiero-ledger#2242:

- Refactors monolithic labels.js into helpers/ structure
  (constants, permissions, reviews, labels) matching hiero-sdk-cpp pattern
- Adds queue:maintainers label for a 4-stage pipeline:
  queue:junior-committer → queue:committers → queue:maintainers → ready-to-merge
- Gates ready-to-merge on at least 1 maintainer (admin/maintain) approval
  to satisfy CODEOWNERS requirements
- Uses role_name (not legacy permission field) to correctly detect
  maintain role — fixes critical bug where maintain maps to write
- Adds comprehensive unit tests (37 tests) using inline mock pattern
  from hiero-sdk-cpp test-utils

Signed-off-by: darshit2308 <darshit2308@gmail.com>
@darshit2308

Copy link
Copy Markdown
Contributor Author

Hi @exploreriii, I have pushed the updates to address your feedback!

Summary of changes in this iteration:

  1. Maintainer Gate: Added a 4th label (queue:maintainers) and updated the logic so that ready-to-merge now strictly requires at least 1 approval from a user with the maintain or admin role (using role_name from the API). This directly addresses the CODEOWNERS requirement for .github/ files.
  2. Refactoring: Moved all logic out of index.js into a helpers/ structure matching the hiero-sdk-cpp pattern (constants.js, permissions.js, reviews.js, labels.js).
  3. Tests: Added 37 unit tests covering all label states, permission extraction, and review parsing, using the inline mock pattern from the C++ SDK.

For the CI status check and branch freshness checks, I've left those for Phase 2 and Phase 3 as discussed, so we can keep the scope of this Phase 1 PR strictly to the label sync refactor.

Let me know, if there is some issue

@exploreriii
exploreriii marked this pull request as ready for review May 6, 2026 18:43

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 24244e29-9480-4592-b89b-aeb6d2526cbb

📥 Commits

Reviewing files that changed from the base of the PR and between 79b34a7 and e0be030.

📒 Files selected for processing (11)
  • .github/scripts/review-sync/helpers/constants.js
  • .github/scripts/review-sync/helpers/index.js
  • .github/scripts/review-sync/helpers/labels.js
  • .github/scripts/review-sync/helpers/permissions.js
  • .github/scripts/review-sync/helpers/reviews.js
  • .github/scripts/review-sync/index.js
  • .github/scripts/review-sync/tests/test-labels.js
  • .github/scripts/review-sync/tests/test-permissions.js
  • .github/scripts/review-sync/tests/test-reviews.js
  • .github/scripts/review-sync/tests/test-utils.js
  • .github/workflows/review-sync.yml

Comment thread .github/scripts/review-sync/helpers/permissions.js
Comment thread .github/scripts/review-sync/index.js
Comment thread .github/workflows/review-sync.yml
Comment thread .github/scripts/review-sync/helpers/labels.js Outdated
@darshit2308
darshit2308 force-pushed the feature/review-sync-phase1 branch from 25df94b to e0be030 Compare May 6, 2026 19:10
@exploreriii exploreriii added reviewer: community pull requests looking for community reviews step: 1st 1st stage of the review approval process labels May 6, 2026
Addresses maintainer feedback: a single maintainer approval with only
1 total review should not mark a PR as ready-to-merge, since branch
protection requires 2+ reviews.

Changes:
- determineLabel() now requires maintainerApproval >= 1 AND anyApproval >= 2
  for ready-to-merge
- If a maintainer approves alone, the PR stays at queue:maintainers until
  a second reviewer also approves
- Updated and added unit tests (38 total, all passing)

Signed-off-by: darshit2308 <darshit2308@gmail.com>
@darshit2308
darshit2308 force-pushed the feature/review-sync-phase1 branch from 625840b to 84a35d4 Compare May 6, 2026 20:05
@github-actions github-actions Bot added the Good First Issue Issues which are ideal for a first time or new project contributor. label May 7, 2026
exploreriii
exploreriii previously approved these changes May 7, 2026

@exploreriii exploreriii left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Some ideas for fine tuning, either as part of a future phase or a smaller follow up supplement

Comment thread .github/scripts/review-sync/helpers/labels.js Outdated
Comment thread .github/scripts/review-sync/helpers/labels.js
Comment thread .github/scripts/review-sync/helpers/labels.js
Comment thread .github/scripts/review-sync/helpers/permissions.js
Comment thread .github/scripts/review-sync/helpers/permissions.js
Comment thread .github/scripts/review-sync/helpers/permissions.js
Comment thread .github/scripts/review-sync/helpers/constants.js
Comment thread .github/workflows/review-sync.yml
Comment thread .github/scripts/review-sync/helpers/constants.js Outdated
Comment thread .github/scripts/review-sync/index.js
@exploreriii exploreriii added the reviewer: write requires a review with write permissions label May 7, 2026
Addresses maintainer feedback to match the original MVP proposal naming
convention. Also updates the label description to accurately reflect the
new logic requirement of '1+ maintainer and 2+ total approvals' instead
of the old description.

Signed-off-by: darshit2308 <darshit2308@gmail.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: e28e1874-7f3f-424d-a4ac-d339d6234b8f

📥 Commits

Reviewing files that changed from the base of the PR and between e0be030 and 0582679.

📒 Files selected for processing (3)
  • .github/scripts/review-sync/helpers/constants.js
  • .github/scripts/review-sync/helpers/labels.js
  • .github/scripts/review-sync/tests/test-labels.js

Comment thread .github/scripts/review-sync/helpers/labels.js
@darshit2308

Copy link
Copy Markdown
Contributor Author

yes @exploreriii , i will try to develop this whole iteratively, and resolve all these with time.

Updates a JSDoc comment in constants.js that still referenced the old
label name without the status: prefix.

Signed-off-by: darshit2308 <darshit2308@gmail.com>
Addresses CodeRabbit review feedback. Previously, if the API failed to
remove a stale label (e.g. due to rate limits or network issues), the
error was logged but execution continued. Since the new label was
already added earlier in the function, this left the PR in an invalid
state with multiple mutually-exclusive queue labels.

Now, non-404 errors are explicitly re-thrown to fail the workflow and
alert maintainers, preventing broken label states.

Signed-off-by: darshit2308 <darshit2308@gmail.com>

@NssGourav NssGourav left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This catches per pr failures in errors but the script still exits successfully so stale queue labels could be hidden behind a green workflow

Could we fail the workflow when errors > 0 after the summary, while keeping per PR isolation during processing?

Comment thread .github/scripts/review-sync/helpers/labels.js Outdated
@exploreriii

Copy link
Copy Markdown
Contributor

please mark as ready to review again when it is thanks

@exploreriii
exploreriii marked this pull request as draft May 7, 2026 09:02
1. index.js: Exit with code 1 if errors occurred during PR processing
   so that the GitHub Action workflow fails instead of hiding failures
   behind a green checkmark.
2. labels.js: Tighten ready-to-merge logic to strictly require at least
   2 core reviews (maintainer + write). Soft approvals (triage/read)
   no longer satisfy the second review requirement for merge status.
3. test-labels.js: Update tests to reflect the new strict requirement.

Signed-off-by: darshit2308 <darshit2308@gmail.com>
exploreriii
exploreriii previously approved these changes May 7, 2026
@exploreriii
exploreriii marked this pull request as ready for review May 7, 2026 09:46
@darshit2308
darshit2308 marked this pull request as ready for review May 7, 2026 09:46

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c506a217-fa21-447a-9018-407112bb06c1

📥 Commits

Reviewing files that changed from the base of the PR and between 0582679 and 8d48308.

📒 Files selected for processing (4)
  • .github/scripts/review-sync/helpers/constants.js
  • .github/scripts/review-sync/helpers/labels.js
  • .github/scripts/review-sync/index.js
  • .github/scripts/review-sync/tests/test-labels.js

Comment thread .github/scripts/review-sync/helpers/labels.js
Comment thread .github/scripts/review-sync/helpers/labels.js
Comment thread .github/scripts/review-sync/index.js
Comment thread .github/scripts/review-sync/index.js
Comment thread .github/scripts/review-sync/tests/test-labels.js
Comment thread .github/scripts/review-sync/tests/test-labels.js
@NssGourav

Copy link
Copy Markdown
Contributor

Pre commit is failing due to trailing whitespace you can remove the extra space after approval in helpers/labels.js, and you should be good to go.

@NssGourav NssGourav left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good to me, only remaining item I see is the pre commit trailing whitespace failure, which should be fixed before merge.

Signed-off-by: darshit2308 <darshit2308@gmail.com>

@exploreriii exploreriii left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks all for your much needed help at reviewing and speeding this process up a lot

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 401d247c-f587-4e5a-9264-625275ae1417

📥 Commits

Reviewing files that changed from the base of the PR and between 8d48308 and 4a028e6.

📒 Files selected for processing (1)
  • .github/scripts/review-sync/helpers/labels.js

Comment thread .github/scripts/review-sync/helpers/labels.js
@manishdait manishdait added the status: update branch developer needs to click update branch label May 7, 2026
@exploreriii
exploreriii merged commit f61613a into hiero-ledger:main May 7, 2026
13 checks passed
@exploreriii

Copy link
Copy Markdown
Contributor

Thank you so much

@manishdait manishdait added this to the v0.2.7 milestone May 8, 2026
NssGourav pushed a commit to NssGourav/hiero-sdk-python that referenced this pull request May 14, 2026
manishdait pushed a commit to manishdait/hiero-sdk-python that referenced this pull request May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Good First Issue Issues which are ideal for a first time or new project contributor. reviewer: write requires a review with write permissions status: update branch developer needs to click update branch step: 2nd second stage of the review approval process

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: automated review queue label sync stateless cron-based v1

5 participants