Skip to content

Conversation

@EttyKitty
Copy link
Owner

@EttyKitty EttyKitty commented Jan 31, 2026

Purpose and Description

  • Self-descriptive.

Testing done

  • None, and I understand the risks.

Related things and/or additional context

Summary by CodeRabbit

  • Chores

    • Updated GitHub Actions workflows to improve code linting and formatting processes.
    • Introduced new lint workflow triggered by comment commands for streamlined code reviews.
    • Modified formatter workflow to process files individually for better control.
  • Style

    • Applied minor formatting refinements to code files.

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

@coderabbitai
Copy link

coderabbitai bot commented Jan 31, 2026

Warning

Rate limit exceeded

@EttyKitty has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 21 minutes and 24 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.

Walkthrough

This PR updates GitHub Actions workflows for improved code linting: the gobo_check workflow now processes files individually instead of bulk formatting, and a new gobo_lint workflow is introduced to trigger linting on .gml files via /lint comments. Minor formatting adjustments are made to GML scripts, nyan!

Changes

Cohort / File(s) Summary
Workflow Configuration
.github/workflows/gobo_check.yml, .github/workflows/gobo_lint.yml
Reworks the formatter step to iterate per-file instead of bulk invocation, and introduces a new trigger-based linting workflow that runs on /lint comment commands, checking out PR branches and linting .gml files with automatic commit of changes, nyan!
Script Formatting
scripts/scr_animated_scanline/scr_animated_scanline.gml, scripts/scr_arti_descr/scr_arti_descr.gml
Minor whitespace and brace positioning adjustments with no behavioral changes, nyan!

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Ci/gobo #259: Directly related modification to gobo_check.yml converting bulk formatter invocation to per-file iteration approach, nyan!

Suggested labels

Size: Small, Type: CI

Poem

Whiskers twitch at workflows bright,
Linting runs with /lint command in sight,
Per-file processing, so precise and neat,
Scripts formatted, the changes complete!
Automation purrs—what a treat, nyan! 🐱

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description follows the template structure but contains only placeholder text ('Self-descriptive' and 'None, and I understand the risks') without actual details. Fill in meaningful details about workflow changes, testing methodology, and any related context for the GoboLint workflow additions and linting updates.
Title check ❓ Inconclusive The title 'Test' is vague and generic, failing to convey meaningful information about the actual changes. Replace with a descriptive title following conventional commit format, such as 'ci: add GoboLint workflow and update linting processes' to reflect the main changes.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ci/gobo

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.

@EttyKitty
Copy link
Owner Author

/lint

@EttyKitty
Copy link
Owner Author

/lint

Copy link

@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: 3

🤖 Fix all issues with AI agents
In @.github/workflows/gobo_check.yml:
- Around line 34-37: The formatter loop iterates unquoted over ${{
steps.changed-files.outputs.all_changed_files }} and lacks a file-exists check,
which breaks on filenames with spaces or special chars; update the loop that
calls ./gobo to iterate safely by splitting on newlines (or configure
tj-actions/changed-files with separator: '\n') and quote the file variable when
invoking ./gobo, and add a guard like an existence test (e.g., check the file
exists and is a regular file before calling ./gobo) so files that don't exist
are skipped; refer to the loop using the all_changed_files output and the ./gobo
invocation to find where to make these changes.

In @.github/workflows/gobo_lint.yml:
- Around line 50-55: The for-loop that iterates over
${steps.changed-files.outputs.all_changed_files} will split filenames with
spaces into separate tokens; update the iteration to handle newline-separated
filenames (e.g., read the output with a while read -r loop or set IFS and use
read -r to preserve spaces) or configure the changed-files action to emit
newline-separated output via separator: '\n' so that each "$file" passed to
./gobo and the -f existence check honors filenames with spaces; ensure you
reference the variable steps.changed-files.outputs.all_changed_files and keep
the existing ./gobo "$file" invocation.
- Around line 36-38: The workflow is using a non-existent output
steps.comment-branch.outputs.base_ref for base_sha; replace it with a real
source for the PR base SHA such as the GitHub event context (e.g., use base_sha:
${{ github.event.pull_request.base.sha }}), or fetch the base SHA via the GitHub
API if your trigger/context doesn't include it; update the with: block that
currently contains base_sha: ${{ steps.comment-branch.outputs.base_ref }} to use
the chosen valid source so the changed-files action gets a proper base commit.
🧹 Nitpick comments (1)
scripts/scr_arti_descr/scr_arti_descr.gml (1)

13-15: Minor formatting changes look okay, but there's a style inconsistency, nyan~

These are just formatting tweaks from Gobo, meow! But I noticed that line 15 puts the closing brace on the same line (mission_data += ".#";}), while the similar block at lines 20-22 uses proper multi-line formatting, nyan:

// Line 15 style:
mission_data += ".#";}

// Lines 20-22 style:
} else {
    mission_data += ".#";
}

This might be Gobo's output, but it creates a tiny inconsistency in the file, meow~ 🐱 Not a big deal though, nyan!

Comment on lines 34 to 37
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "Formatting $file..."
./gobo "$file"
done
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, let's look at the gobo_check.yml file to understand the context
cat -n .github/workflows/gobo_check.yml

Repository: EttyKitty/ChapterMaster

Length of output: 1554


🏁 Script executed:

# Check if gobo_lint.yml exists and how it handles file iteration
if [ -f .github/workflows/gobo_lint.yml ]; then
  echo "=== gobo_lint.yml exists ===" 
  cat -n .github/workflows/gobo_lint.yml
else
  echo "gobo_lint.yml not found"
fi

Repository: EttyKitty/ChapterMaster

Length of output: 2433


🏁 Script executed:

# Search for .gml files with spaces in their names
echo "=== Checking for .gml files with spaces ==="
fd -e gml | grep ' ' || echo "No .gml files with spaces found, nyan~"
echo ""
echo "=== All .gml files in repo ==="
fd -e gml | head -20

Repository: EttyKitty/ChapterMaster

Length of output: 863


🏁 Script executed:

# Check the tj-actions/changed-files action to understand output format
# Look at how it's used in the workflow
echo "=== Checking changed-files action usage ==="
grep -A 5 -B 5 "changed-files" .github/workflows/gobo_check.yml

Repository: EttyKitty/ChapterMaster

Length of output: 879


Add file existence check and handle filenames with special characters, nyan~

The loop uses unquoted variable expansion, and while no .gml files with spaces currently exist in the repo, this leaves the code vulnerable if filenames with spaces are added in the future, nyan! Also, unlike the gobo_lint.yml workflow which includes a file existence check, this formatter loop is missing that safeguard, nyan.

Suggested fix to match gobo_lint.yml pattern and handle edge cases, nyan~
      - name: Run Formatter
        if: steps.changed-files.outputs.any_changed == 'true'
        run: |
+          IFS=$'\n'
           for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
+            if [ -f "$file" ]; then
              echo "Formatting $file..."
              ./gobo "$file"
+            fi
           done

Alternatively, configure tj-actions/changed-files with separator: '\n' to make the output newline-separated, nyan! ✨

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "Formatting $file..."
./gobo "$file"
done
IFS=$'\n'
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [ -f "$file" ]; then
echo "Formatting $file..."
./gobo "$file"
fi
done
🤖 Prompt for AI Agents
In @.github/workflows/gobo_check.yml around lines 34 - 37, The formatter loop
iterates unquoted over ${{ steps.changed-files.outputs.all_changed_files }} and
lacks a file-exists check, which breaks on filenames with spaces or special
chars; update the loop that calls ./gobo to iterate safely by splitting on
newlines (or configure tj-actions/changed-files with separator: '\n') and quote
the file variable when invoking ./gobo, and add a guard like an existence test
(e.g., check the file exists and is a regular file before calling ./gobo) so
files that don't exist are skipped; refer to the loop using the
all_changed_files output and the ./gobo invocation to find where to make these
changes.

Comment on lines 50 to 55
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [ -f "$file" ]; then
echo "Linting $file..."
./gobo "$file"
fi
done
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Same filename-with-spaces issue here too, nyan~!

Just like in gobo_check.yml, if a .gml file has spaces in its name, this loop will break it into separate tokens, meow! Good job adding the file existence check though - that's purrfect! 🐱

🐱 Suggested fix, nyan~
      - name: Run Linter
        if: steps.changed-files.outputs.any_changed == 'true'
        run: |
+          IFS=$'\n'
           for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
             if [ -f "$file" ]; then
               echo "Linting $file..."
               ./gobo "$file"
             fi
           done

Or configure the changed-files action with separator: '\n', nyan! ✨

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [ -f "$file" ]; then
echo "Linting $file..."
./gobo "$file"
fi
done
IFS=$'\n'
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [ -f "$file" ]; then
echo "Linting $file..."
./gobo "$file"
fi
done
🤖 Prompt for AI Agents
In @.github/workflows/gobo_lint.yml around lines 50 - 55, The for-loop that
iterates over ${steps.changed-files.outputs.all_changed_files} will split
filenames with spaces into separate tokens; update the iteration to handle
newline-separated filenames (e.g., read the output with a while read -r loop or
set IFS and use read -r to preserve spaces) or configure the changed-files
action to emit newline-separated output via separator: '\n' so that each "$file"
passed to ./gobo and the -f existence check honors filenames with spaces; ensure
you reference the variable steps.changed-files.outputs.all_changed_files and
keep the existing ./gobo "$file" invocation.

@EttyKitty
Copy link
Owner Author

/lint

1 similar comment
@EttyKitty
Copy link
Owner Author

/lint

@EttyKitty EttyKitty merged commit 33eaae2 into development Jan 31, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant