Skip to content

Fixed CodeRabbit Check. Added No Issue PR Check#385

Merged
palisadoes merged 4 commits into
PalisadoesFoundation:developfrom
palisadoes:updatedGuidelinesPR
Nov 27, 2025
Merged

Fixed CodeRabbit Check. Added No Issue PR Check#385
palisadoes merged 4 commits into
PalisadoesFoundation:developfrom
palisadoes:updatedGuidelinesPR

Conversation

@palisadoes

@palisadoes palisadoes commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

Fixed CodeRabbit Check. Added No Issue PR Check

Summary by CodeRabbit

  • New Features

    • Automated pull request greeting and policy messages now displayed for new contributors via a new PR-target workflow.
  • Chores

    • Improved pull request review filtering for more accurate review selection.
    • Adjusted skip-usernames configuration for workflow processing.

✏️ Tip: You can customize this high-level summary in your review settings.

@palisadoes palisadoes added the ignore-sensitive-files-pr The contributor has a legitimate reason for editiing protected files label Nov 27, 2025
@github-actions

Copy link
Copy Markdown

Our Pull Request Approval Process

We have these basic policies to make the approval process smoother for our volunteer team.

Testing Your Code

Please make sure your code passes all tests. Our test code coverage system will fail if either of these two conditions occur:

  1. The overall code coverage drops below the target threshold of the repository
  2. Any file in the pull request has code coverage levels below the repository threshold

The process helps maintain the overall reliability of the code base and is a prerequisite for getting your PR approved. Assigned reviewers regularly review the PR queue and tend to focus on PRs that are passing.

Reviewers

When your PR has been assigned reviewers contact them to get your code reviewed and approved via:

  1. comments in this PR or
  2. our slack channel

Reviewing Your Code

Your reviewer(s) will have the following roles:

  1. arbitrators of future discussions with other contributors about the validity of your changes
  2. point of contact for evaluating the validity of your work
  3. person who verifies matching issues by others that should be closed.
  4. person who gives general guidance in fixing your tests

🎯 Contacting the person who assigned the mentors is not advised unless they make a request. Do not @ the person who did the assignment otherwise.

@coderabbitai

coderabbitai Bot commented Nov 27, 2025

Copy link
Copy Markdown

Warning

Rate limit exceeded

@palisadoes has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 11 minutes and 45 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between c26cecb and a1cc4fb.

📒 Files selected for processing (3)
  • .github/workflows/config/check-pr-issue-skip-usernames.txt (1 hunks)
  • .github/workflows/pull-request-review.yml (1 hunks)
  • .github/workflows/pull-request-target.yml (1 hunks)

Walkthrough

Updates to GitHub Actions: added two usernames to a skip list, tightened CodeRabbit review filtering to require specific logins and exclude COMMENTED reviews, and added a new pull_request_target workflow to post a review policy comment and a greeting message.

Changes

Cohort / File(s) Summary
Skip Usernames Configuration
​.github/workflows/config/check-pr-issue-skip-usernames.txt
Added two usernames: palisadoes, noman2002.
CodeRabbit Review Filtering
​.github/workflows/pull-request-review.yml
Adjusted review filter to require reviewer login matching coderabbit or coderabbitai and to exclude reviews with state COMMENTED (grouped OR conditions before AND).
New PR Target / Greeting Workflow
​.github/workflows/pull-request-target.yml
Added new pull_request_target workflow that posts a PR review policy comment (thollander/actions-comment-pull-request@v3) and sends a greeting via actions/first-interaction@v3; includes a commented-out optional job for issue/assignee checks.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Review the updated boolean grouping in .github/workflows/pull-request-review.yml to ensure login matching and COMMENTED exclusion behave as intended.
  • Verify permissions and use of pull_request_target in .github/workflows/pull-request-target.yml and validate external action versions/config.
  • Confirm additions to the skip list file contain one username per line and no formatting issues.

Poem

🐰 I hopped through workflows, neat and spry,
I added names, I tuned the eye,
A policy note, a cheerful cheer,
Small rabbit edits—now premiere! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is severely incomplete, missing all required template sections including change type, issue number, summary, and checklists. Complete the PR description following the provided template: specify change type, link the issue, add motivation/summary, confirm documentation updates, and check off applicable checklist items.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main changes: fixing CodeRabbit check filtering logic and adding a new PR target workflow for issue verification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

@codecov

codecov Bot commented Nov 27, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.94%. Comparing base (c26cecb) to head (a1cc4fb).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #385      +/-   ##
===========================================
+ Coverage    82.53%   85.94%   +3.40%     
===========================================
  Files          105      128      +23     
  Lines         6961    10797    +3836     
  Branches         0      751     +751     
===========================================
+ Hits          5745     9279    +3534     
- Misses        1216     1503     +287     
- Partials         0       15      +15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c26cecb and 5ac3e87.

📒 Files selected for processing (3)
  • .github/workflows/config/check-pr-issue-skip-usernames.txt (1 hunks)
  • .github/workflows/pull-request-review.yml (1 hunks)
  • .github/workflows/pull-request-target.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.9)
.github/workflows/pull-request-target.yml

41-41: input "repo-token" is not defined in action "actions/first-interaction@v3". available inputs are "issue_message", "pr_message", "repo_token"

(action)

🔇 Additional comments (4)
.github/workflows/config/check-pr-issue-skip-usernames.txt (1)

1-2: Configuration aligns with PR objectives.

The skip-usernames list now includes palisadoes (PR author) and noman2002, enabling selective exemption from the PR issue checks as intended by the PR objectives.

.github/workflows/pull-request-review.yml (1)

27-31: CodeRabbit check logic now correctly filters reviews.

The updated filter properly identifies CodeRabbit reviews by matching both 'coderabbit' and 'coderabbitai' login variants, and excludes COMMENTED states which are not actual approval reviews. The parenthesized grouping ensures correct boolean precedence. This addresses the "Fixed CodeRabbit Check" objective.

.github/workflows/pull-request-target.yml (2)

27-36: PR-Greeting job properly adds review policy.

The PR Review Policy comment step is well-structured with appropriate tagging and messaging. The workflow provides clear contributor guidance on the approval process.


44-58: Commented-out Check-PR-Issue job is properly configured.

The Check-PR-Issue job references the correct skip-users configuration file from .github/workflows/config/check-pr-issue-skip-usernames.txt added in this PR, and includes appropriate settings for PR validation. When ready to enable, this job will enforce that PRs are linked to issues and properly assigned, with the skip-list providing exceptions for specified users.

Comment on lines +38 to +42
- name: Greeting Message to User
uses: actions/first-interaction@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
pr_message: 'Congratulations on making your first PR!'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

actions/first-interaction@v3 input parameters documentation

💡 Result:

Here are the input parameters for actions/first-interaction@v3 (First Contribution action):

  • token — GitHub token for API access (default: ${{ github.token }}). [1]
  • issue-opened-msg — Message to post on a first-time issue. [1]
  • pr-opened-msg — Message to post on a first-time PR. [1]
  • issue-completed-msg — Message to post when a first-time issue is closed as completed. [1]
  • issue-not-planned-msg — Message to post when a first-time issue is closed as not planned. [1]
  • pr-merged-msg — Message to post when a first-time PR is merged. [1]
  • pr-closed-msg — Message to post when a first-time PR is closed and not merged. [1]
  • labels — Comma-separated list of labels to add for any first contribution. [1]
  • issue-labels — Labels for first-time issues (overrides labels). [1]
  • pr-labels — Labels for first-time PRs (overrides labels). [1]
  • contribution-mode — Mode for greeting behavior (e.g., once to greet on absolute first interaction). [1]
  • fail-on-error — If true, fail the workflow step when an error occurs (default: false). [1]
  • reactions — Comma-separated list of reactions to add when a contribution is opened (valid: +1, -1, laugh, confused, heart, hooray, rocket, eyes). [1]
  • issue-reactions — Reactions applied only to issues (same valid options). [1]
  • pr-reactions — Reactions applied only to PRs (same valid options). [1]

Note: labels/reactions are only applied on opened contributions (not on closed events). [1]

Source: action README / inputs documentation. [1]

References
[1] First Contribution (actions/first-interaction) inputs documentation — GitHub Marketplace / README.


Correct the action input parameters: use token instead of repo-token and pr-opened-msg instead of pr_message.

The repo-token parameter is invalid for actions/first-interaction@v3. According to the official documentation, the correct parameter is token. Additionally, the code uses pr_message which should be pr-opened-msg. The action will not recognize these incorrect parameter names.

Update lines 38-42 to:

      - name: Greeting Message to User
        uses: actions/first-interaction@v3
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          pr-opened-msg: 'Congratulations on making your first PR!'
🧰 Tools
🪛 actionlint (1.7.9)

41-41: input "repo-token" is not defined in action "actions/first-interaction@v3". available inputs are "issue_message", "pr_message", "repo_token"

(action)

🤖 Prompt for AI Agents
.github/workflows/pull-request-target.yml around lines 38 to 42: the action
inputs use incorrect parameter names; replace the invalid repo-token with token
and pr_message with pr-opened-msg so the actions/first-interaction@v3 step
recognizes them — update the with: block to use token: ${{ secrets.GITHUB_TOKEN
}} and pr-opened-msg: 'Congratulations on making your first PR!' instead of the
current keys.

@palisadoes

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review and reevaluate all resolved items. If the PR requires any changes, even trivial ones, then give your review a “requested changes” status. If no changes are required then give the PR an “approved” status.

@palisadoes palisadoes merged commit 09258ac into PalisadoesFoundation:develop Nov 27, 2025
11 checks passed
@palisadoes palisadoes deleted the updatedGuidelinesPR branch November 27, 2025 19:35
@coderabbitai

coderabbitai Bot commented Nov 27, 2025

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Fetch the three modified files to review their contents
echo "=== File 1: check-pr-issue-skip-usernames.txt ==="
cat .github/workflows/config/check-pr-issue-skip-usernames.txt
echo ""
echo "=== File 2: pull-request-review.yml ==="
cat .github/workflows/pull-request-review.yml
echo ""
echo "=== File 3: pull-request-target.yml ==="
cat .github/workflows/pull-request-target.yml

Length of output: 4048


🏁 Script executed:

#!/bin/bash
# Check if there are other workflow files that might have similar checks
echo "=== Searching for other workflow files ==="
fd -e yml -e yaml . .github/workflows/

echo ""
echo "=== Checking if check-pr-issue-action is used elsewhere ==="
rg -n "check-pr-issue-action" .github/workflows/

echo ""
echo "=== Checking workflow syntax for pull-request-review.yml ==="
# Verify the file is valid YAML (basic check)
python3 << 'EOF'
import yaml
try:
    with open('.github/workflows/pull-request-review.yml', 'r') as f:
        yaml.safe_load(f)
    print("✓ pull-request-review.yml is valid YAML")
except Exception as e:
    print(f"✗ YAML syntax error: {e}")
EOF

echo ""
echo "=== Checking workflow syntax for pull-request-target.yml ==="
python3 << 'EOF'
import yaml
try:
    with open('.github/workflows/pull-request-target.yml', 'r') as f:
        yaml.safe_load(f)
    print("✓ pull-request-target.yml is valid YAML")
except Exception as e:
    print(f"✗ YAML syntax error: {e}")
EOF

Length of output: 928


🏁 Script executed:

#!/bin/bash
# Check if there's a duplicate .yaml file
echo "=== Checking for duplicate pull-request-target files ==="
ls -la .github/workflows/pull-request-target.*

echo ""
echo "=== Content of pull-request-target.yaml if it exists ==="
if [ -f .github/workflows/pull-request-target.yaml ]; then
    cat .github/workflows/pull-request-target.yaml
else
    echo "File does not exist"
fi

echo ""
echo "=== Verify complete content of pull-request-review.yml ==="
wc -l .github/workflows/pull-request-review.yml
cat .github/workflows/pull-request-review.yml | tail -20

echo ""
echo "=== Check git diff for this PR ==="
git diff develop...HEAD --name-status

Length of output: 3767


🏁 Script executed:

#!/bin/bash
# Get the full content of pull-request-review.yml to verify it's complete
echo "=== Full content of pull-request-review.yml ==="
cat .github/workflows/pull-request-review.yml

echo ""
echo "=== Check for proper YAML closing ==="
tail -5 .github/workflows/pull-request-review.yml

echo ""
echo "=== Get git log to see what changed in this PR ==="
git log --oneline -10 --all

echo ""
echo "=== Show files changed in the last commit ==="
git show --name-status --pretty="" HEAD

echo ""
echo "=== Compare the two pull-request-target files ==="
echo "Lines in .yaml file:"
wc -l .github/workflows/pull-request-target.yaml
echo "Lines in .yml file:"
wc -l .github/workflows/pull-request-target.yml

Length of output: 3111


🏁 Script executed:

#!/bin/bash
# Validate the YAML structure more thoroughly
echo "=== Testing YAML validity with Python parser ==="
python3 << 'EOF'
import yaml
import sys

print("Checking pull-request-review.yml:")
try:
    with open('.github/workflows/pull-request-review.yml', 'r') as f:
        content = f.read()
        print(f"File has {len(content)} characters")
        print(f"Last 200 chars: {repr(content[-200:])}")
        parsed = yaml.safe_load(content)
        print("✓ Successfully parsed")
        print(f"Jobs defined: {list(parsed.get('jobs', {}).keys())}")
except Exception as e:
    print(f"✗ Error: {e}")
    sys.exit(1)
EOF

echo ""
echo "=== Check if there's a syntax issue with multiline script ==="
# Count opening and closing braces in the JavaScript
grep -o '{' .github/workflows/pull-request-review.yml | wc -l
grep -o '}' .github/workflows/pull-request-review.yml | wc -l

echo ""
echo "=== Get all commits in this PR branch ==="
git log --oneline --graph --all --decorate -15

Length of output: 1266


🏁 Script executed:

#!/bin/bash
# Check for the critical issue - duplicate workflow files
echo "=== Detailed comparison of the two pull-request-target files ==="
diff -u .github/workflows/pull-request-target.yaml .github/workflows/pull-request-target.yml

echo ""
echo "=== Check what files were changed across all commits in this branch ==="
git diff c26cecb..HEAD --name-only

echo ""
echo "=== Check the actual changes made ==="
git diff c26cecb..HEAD -- .github/workflows/config/check-pr-issue-skip-usernames.txt

echo ""
echo "=== Verify pull-request-review.yml structure ==="
python3 << 'EOF'
import yaml

with open('.github/workflows/pull-request-review.yml', 'r') as f:
    data = yaml.safe_load(f)
    
import json
print(json.dumps(data, indent=2, default=str))
EOF

Length of output: 6497


🏁 Script executed:

#!/bin/bash
# Examine the exact bytes at the beginning of pull-request-review.yml
echo "=== Hexdump of first 200 bytes of pull-request-review.yml ==="
head -c 200 .github/workflows/pull-request-review.yml | od -c

echo ""
echo "=== Check for any hidden characters or encoding issues ==="
file .github/workflows/pull-request-review.yml

echo ""
echo "=== Validate with yamllint if available, otherwise use Python strict check ==="
python3 << 'EOF'
import yaml
import sys

print("Detailed YAML parsing of pull-request-review.yml:")
with open('.github/workflows/pull-request-review.yml', 'r') as f:
    content = f.read()
    lines = content.split('\n')
    
    # Show first 10 lines
    print("\nFirst 10 lines:")
    for i, line in enumerate(lines[:10], 1):
        print(f"{i}: {repr(line)}")

try:
    parsed = yaml.safe_load(content)
    
    # Check if 'on' key exists
    if 'on' in parsed:
        print("\n✓ 'on' key found correctly")
    else:
        print("\n✗ ERROR: 'on' key is missing!")
        print(f"Keys found: {list(parsed.keys())}")
        
    # Check for boolean True key (which would indicate parsing error)
    if True in parsed:
        print("✗ ERROR: Found 'True' as a key - this indicates YAML syntax error!")
        
except Exception as e:
    print(f"\n✗ Parse error: {e}")
    sys.exit(1)
EOF

echo ""
echo "=== Check if there's a newline issue in skip-usernames file ==="
od -c .github/workflows/config/check-pr-issue-skip-usernames.txt | tail -5

Length of output: 838


🏁 Script executed:

#!/bin/bash
# Confirm the YAML syntax issue with 'on' keyword
echo "=== Testing YAML fix for 'on' keyword issue ==="
python3 << 'EOF'
import yaml

# Test the problematic syntax
problematic = """
name: Pull Request Review

on:
  pull_request_review:
    types: [submitted, edited, dismissed]
"""

# Test the fixed syntax
fixed = """
name: Pull Request Review

"on":
  pull_request_review:
    types: [submitted, edited, dismissed]
"""

print("Parsing problematic YAML:")
try:
    result = yaml.safe_load(problematic)
    print(f"Keys: {list(result.keys())}")
    if True in result:
        print("✗ ERROR: 'on' is being interpreted as boolean True")
except Exception as e:
    print(f"Error: {e}")

print("\nParsing fixed YAML with quoted 'on':")
try:
    result = yaml.safe_load(fixed)
    print(f"Keys: {list(result.keys())}")
    if 'on' in result:
        print("✓ SUCCESS: 'on' is correctly parsed as a string key")
except Exception as e:
    print(f"Error: {e}")
EOF

echo ""
echo "=== Check for missing newline at end of skip-usernames file ==="
tail -c 20 .github/workflows/config/check-pr-issue-skip-usernames.txt | python3 -c "import sys; data = sys.stdin.buffer.read(); print(repr(data)); print('Has newline at end:', data.endswith(b'\n'))"

Length of output: 372


🏁 Script executed:

#!/bin/bash
# Check if the .yaml file should be removed or if both should exist
echo "=== Check when .yaml file was last modified ==="
git log --oneline --all --follow -- .github/workflows/pull-request-target.yaml | head -5

echo ""
echo "=== Check when .yml file was created/modified ==="
git log --oneline --all --follow -- .github/workflows/pull-request-target.yml | head -5

echo ""
echo "=== Verify which file GitHub will use (alphabetically first, or both?) ==="
ls -la .github/workflows/pull-request-target.* 

echo ""
echo "=== Check if other workflows use 'on' correctly ==="
grep -n "^on:" .github/workflows/*.yml .github/workflows/*.yaml | head -10

Length of output: 1224


🏁 Script executed:

#!/bin/bash
# Verify if other workflow files have the same YAML parsing issue
echo "=== Testing other workflow files for 'on' keyword issue ==="
python3 << 'EOF'
import yaml
import os
import glob

workflow_files = glob.glob('.github/workflows/*.yml') + glob.glob('.github/workflows/*.yaml')

for filepath in sorted(workflow_files):
    filename = os.path.basename(filepath)
    try:
        with open(filepath, 'r') as f:
            content = yaml.safe_load(f)
        
        if True in content:
            print(f"✗ {filename}: Has 'on' parsing issue (boolean True key found)")
        elif 'on' in content:
            print(f"✓ {filename}: Correct (has 'on' string key)")
        else:
            print(f"? {filename}: No 'on' key found")
    except Exception as e:
        print(f"✗ {filename}: Parse error - {e}")
EOF

echo ""
echo "=== Summary of issues found ==="
echo "1. YAML syntax: 'on' keyword is parsed as boolean True"
echo "2. Duplicate files: pull-request-target.yaml and pull-request-target.yml"
echo "3. Missing newline: check-pr-issue-skip-usernames.txt"

Length of output: 1034


🏁 Script executed:

#!/bin/bash
# Verify GitHub Actions will run both workflows if both .yaml and .yml exist
echo "=== Check if both workflow files will be triggered ==="
echo "Both files exist and both have pull_request_target trigger:"
grep -A2 "^on:" .github/workflows/pull-request-target.yaml
echo "---"
grep -A2 "^on:" .github/workflows/pull-request-target.yml

echo ""
echo "=== Check the git history to understand the duplicate ==="
git log --oneline --all --name-status -- .github/workflows/pull-request-target.* | head -20

echo ""
echo "=== Verify the commented-out Check-PR-Issue job references the skip file ==="
grep -A1 "skip_users_file_path" .github/workflows/pull-request-target.yml

Length of output: 1269


@palisadoes, I've completed a full review of this PR. I found several issues that require changes before approval:

Critical Issues

1. Duplicate Workflow Files ⚠️

You have created a new file .github/workflows/pull-request-target.yml, but the old file .github/workflows/pull-request-target.yaml still exists. GitHub Actions will run BOTH workflows whenever a pull_request_target event is triggered, causing duplicate job executions.

Required action: Remove the old .github/workflows/pull-request-target.yaml file to prevent duplicate workflow runs.

Minor Issues

2. Missing Trailing Newline

The file .github/workflows/config/check-pr-issue-skip-usernames.txt is missing a trailing newline at the end. While this won't cause functional issues, it's a best practice to end text files with a newline.

Recommended fix: Add a newline at the end of the file:

palisadoes
noman2002

Notes on Other Observations

YAML 'on' Keyword Parsing

During my review, I noticed that the Python YAML parser interprets the on: keyword in all workflow files as a boolean True rather than a string key. However, this is not actually a problem - GitHub Actions uses its own YAML parser that correctly handles on as a reserved workflow keyword. This same pattern exists in all your other workflow files and they work correctly.

Commented-Out Check-PR-Issue Job

The Check-PR-Issue job in pull-request-target.yml is commented out. This appears intentional - you're adding the infrastructure (skip-usernames file and workflow structure) but haven't enabled the feature yet. This is fine.

Summary

Changes required:

  1. Delete .github/workflows/pull-request-target.yaml (the old file)
  2. Add trailing newline to .github/workflows/config/check-pr-issue-skip-usernames.txt

Once these changes are made, I'll be happy to approve the PR.

✅ Actions performed

Full review triggered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ignore-sensitive-files-pr The contributor has a legitimate reason for editiing protected files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant