Skip to content

Conversation

@jesserockz
Copy link
Member

@jesserockz jesserockz commented May 1, 2025

Description:

Many times I have accidentally merged a PR but it was targetted to current instead of next.
This workflow will fail if the description has a code pr linked and targets current.

Related issue (if applicable): fixes

Pull request in esphome with YAML changes (if applicable):

  • esphome/esphome#

Checklist:

  • I am merging into next because this is new documentation that has a matching pull-request in esphome as linked above.
    or

  • I am merging into current because this is a fix, change and/or adjustment in the current documentation and is not for a new component or feature.

  • Link added in /components/index.rst when creating new documents for new components or cookbook.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 1, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

A new GitHub Actions workflow named "Check labels" has been added. This workflow is triggered on pull request events when labels are added or removed. It runs a job that checks if both "has-parent" and "current" labels are present on a pull request. If both are found, it adds a "wrong-base-branch" label, creates a review requesting changes with instructions to rebase onto the next branch, and marks the workflow as failed.

Changes

File(s) Change Summary
.github/workflows/check-labels.yml Added a workflow to enforce labeling and base branch policies on pull requests via automated checks.

Sequence Diagram(s)

sequenceDiagram
    participant GitHub
    participant Workflow
    participant PR Author

    GitHub->>Workflow: PR label added or removed
    Workflow->>GitHub: Fetch PR labels
    alt "has-parent" and "current" labels present
        Workflow->>GitHub: Add "wrong-base-branch" label to PR
        Workflow->>GitHub: Create review requesting changes (rebase onto next)
        Workflow->>GitHub: Mark workflow as failed
        GitHub->>PR Author: Notify of required branch change
    else Labels not both present
        Workflow-->>GitHub: Do nothing
    end
Loading

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f44e019 and e561a10.

📒 Files selected for processing (1)
  • .github/workflows/check-labels.yml (1 hunks)

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (3)
.github/workflows/needs-docs.yml (3)

1-2: Workflow name is too generic
The name "Check labels" doesn’t convey the specific intent of preventing PRs with a linked code PR from targeting the wrong branch. Consider renaming to something like "Prevent merge to current when has-parent" or "Validate branch target for code PRs".


12-15: Step name and action version pinning

  1. The step is called “Check for needs-docs label” but it’s actually validating has-parent + current. Rename to something like Validate branch target for code PRs.
  2. Pin to the major version alias (e.g. actions/github-script@v7) instead of v7.0.1 to automatically pick critical patch updates.

16-22: Label‐lookup logic is correct but can be simplified
Using .find works, but for pure existence checks .some reads more clearly:

const hasParent = labels.some(l => l.name === 'has-parent');
const isCurrent = labels.some(l => l.name === 'current');

This avoids unneeded pointer references and signals intent (boolean test).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a52ec1b and 8b2642b.

📒 Files selected for processing (1)
  • .github/workflows/needs-docs.yml (1 hunks)

@netlify
Copy link

netlify bot commented May 1, 2025

Deploy Preview for esphome ready!

Name Link
🔨 Latest commit e561a10
🔍 Latest deploy log https://app.netlify.com/sites/esphome/deploys/6812eed5c5ea5c0008696a7b
😎 Deploy Preview https://deploy-preview-4865--esphome.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
.github/workflows/needs-docs.yml (1)

31-37: Review creation is well-formed
The call to github.rest.pulls.createReview correctly specifies event: 'REQUEST_CHANGES' and uses a clear instructional message. Consider extracting the message into a single constant to avoid drift if it changes in the future.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7438748 and f44e019.

📒 Files selected for processing (1)
  • .github/workflows/needs-docs.yml (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
.github/workflows/needs-docs.yml (1)
Learnt from: jesserockz
PR: esphome/esphome-docs#4865
File: .github/workflows/needs-docs.yml:0-0
Timestamp: 2025-05-01T03:29:47.895Z
Learning: In the esphome-docs repository, the "current" label is automatically added by a bot to pull requests, making it a reliable indicator for the target branch.
🔇 Additional comments (4)
.github/workflows/needs-docs.yml (4)

7-11: Job configuration looks solid
The runs-on: ubuntu-latest and jobs.check structure is clear and follows best practices for single‐step actions.


12-15: Using actions/github-script@v7.0.1 is appropriate
This action conveniently exposes github, context, and core within the script block, simplifying REST calls.


16-23: Label retrieval logic is correct
The code properly lists labels on the issue/PR and checks for both 'has-parent' and 'current'. Relying on the bot‐added "current" label is safe per the repository convention.


24-29: Verify existence of the wrong-base-branch label
Adding a label that doesn’t yet exist will cause the step to fail. Confirm that the wrong-base-branch label is pre-created in this repository or add a prior step to create it if missing.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

As this is a feature matched with a PR in https://github.com/esphome/esphome, please target your PR to the next branch and rebase.

@esphome
Copy link

esphome bot commented May 1, 2025

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@esphome esphome bot marked this pull request as draft May 1, 2025 03:45
@jesserockz jesserockz marked this pull request as ready for review May 1, 2025 03:47
@jesserockz jesserockz merged commit d5552f7 into current May 1, 2025
1 of 3 checks passed
@jesserockz jesserockz deleted the jesserockz-2025-100 branch May 1, 2025 03:49
@github-actions github-actions bot locked and limited conversation to collaborators May 3, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant