Skip to content

Development improvements - #14

Merged
kenorb merged 11 commits into
masterfrom
dev
May 29, 2026
Merged

kenorb merged 11 commits into
masterfrom
dev

Conversation

@kenorb

@kenorb kenorb commented May 29, 2026 •

Copy link
Copy Markdown
Owner

Summary by Sourcery

Adopt shared reusable workflows for development checks and devcontainer CI while tightening local automation and configuration.

Enhancements:

  • Harden Ansible setup conditions for VS Code and Brave installations to safely handle missing apt release configuration.
  • Include .codespellrc in the example dotfiles configuration and add a project-level codespell configuration file.

CI:

  • Replace inline devcontainer CI job definition with a call to a centralized reusable devcontainer workflow.
  • Replace the local pre-commit check workflow with a shared reusable check workflow and add scheduled and manual triggers.
  • Add a workflow that posts PR comments summarizing the Check workflow results on completion.

Chores:

  • Add Dependabot configuration for npm dependency update automation.
  • Remove unused git submodules and legacy helper directories from the repository.

Summary by CodeRabbit

  • New Features

    • Enabled automated npm dependency updates via Dependabot on a weekly schedule.
  • Chores

    • Refactored GitHub Actions workflows to use centralized shared templates.
    • Enhanced code spell-checking configuration with updated skip rules.
    • Updated VS Code development environment settings for improved Git tool handling.
    • Streamlined git submodule references.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 29, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: eab83e6d-8740-4071-97db-efcc244295cc

📥 Commits

Reviewing files that changed from the base of the PR and between 2a280ee and d4a6b4c.

📒 Files selected for processing (15)
  • .ansible.cfg
  • .ansible/playbooks/setup-linux.yml
  • .ansible/variables-example.yml
  • .codespellrc
  • .github/dependabot.yml
  • .github/workflows/check-pr-comment.yml
  • .github/workflows/check.yml
  • .github/workflows/devcontainer-ci.yml
  • .gitmodules
  • .vscode/settings.json
  • bin
  • other/adamv
  • other/bsclifton
  • other/cowboy
  • other/mathiasbynens

📝 Walkthrough

Walkthrough

This PR modernizes repository infrastructure across Ansible playbooks, GitHub Actions workflows, and development tools. It hardens Ansible variable handling, introduces Codespell linting, migrates workflows to reusable patterns, enables automated dependency updates, and updates development environment settings.

Changes

Repository Infrastructure Modernization

Layer / File(s) Summary
Ansible Configuration Hardening
\.ansible/playbooks/setup-linux.yml
The VS Code and Brave import task conditions now guard against apt.releases being undefined, safely returning false when not present instead of relying on direct variable access with boolean casting.
Codespell Linting Configuration
\.codespellrc, \.ansible/variables-example.yml
A new .codespellrc file configures Codespell with skip patterns for .git, *.pdf, and *.svg, plus an ignore list for AKS. The file is added to the dotfiles symlink list for home directory setup.
GitHub Actions Workflow Modernization
\.github/workflows/check.yml, \.github/workflows/devcontainer-ci.yml
Both check.yml and devcontainer-ci.yml are refactored from inline implementations to reusable-workflow delegates. Triggers expand to include scheduled runs and manual dispatch, while job implementations delegate to external workflows with inherited secrets.
Dependency and PR Automation
\.github/dependabot.yml, \.github/workflows/check-pr-comment.yml
Dependabot is configured to check npm dependencies in the repository root on a weekly schedule. A new check-pr-comment workflow listens for Check workflow completion and automatically comments on pull requests with results.
Development Environment Configuration
\.vscode/settings.json
VS Code chat tool auto-approval is extended to include git rev-parse and git submodule commands for terminal integration.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • kenorb/dotfiles#12: Introduces the Ansible setup-linux.yml and apt-release task imports that this PR hardens with improved undefined-variable handling.
  • kenorb/dotfiles#11: Earlier work that introduced the devcontainer CI workflow being refactored in this PR to use reusable patterns.

Poem

🐰 A rabbit hops through dotfiles bright,
Fixing playbooks left and right,
Workflows dance to reusable tunes,
Dependabot springs—updates soon!
With linters humming, all is neat,
Configuration's now complete. 🎉

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

Repository owner deleted a comment from sourcery-ai Bot May 29, 2026
@kenorb
kenorb marked this pull request as ready for review May 29, 2026 00:09
@kenorb
kenorb merged commit 79ca7c9 into master May 29, 2026
9 of 12 checks passed
@sourcery-ai

sourcery-ai Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Refactors local CI workflows to use shared reusable workflows, adds automation for PR check commenting and npm dependency updates, hardens Ansible setup conditions, introduces codespell configuration support, and removes obsolete submodules and scripts/assets.

File-Level Changes

Change Details Files
Refactor devcontainer CI workflow to use a centralized reusable workflow with manual trigger support.
  • Remove inline devcontainer build/test job steps, environment variables, and workflow_call inputs used for reusability from this repo
  • Configure devcontainer-ci.yml to call kenorb/.github devcontainer reusable workflow via the uses: syntax
  • Enable workflow_dispatch and retain existing push, pull_request, and schedule triggers
  • Keep permissions for contents and packages and existing draft-PR guard condition
.github/workflows/devcontainer-ci.yml
Replace local pre-commit check workflow with a shared reusable check workflow and expand triggers.
  • Remove explicit Pre-commit job that installed shfmt, used setup-python, and ran pre-commit/action
  • Configure a single check job that calls kenorb/.github reusable check.yml workflow with submodules parameter
  • Add schedule cron trigger and workflow_dispatch alongside existing push and pull_request triggers
.github/workflows/check.yml
Introduce a workflow that comments check results back onto pull requests when the Check workflow completes.
  • Add check-pr-comment workflow triggered by workflow_run completion of the Check workflow
  • Grant minimal actions, checks, issues, and pull-requests permissions required to post comments
  • Delegate implementation to kenorb/.github reusable check-pr-comment workflow, passing through conclusion, head_sha, run_id, and run_url inputs
.github/workflows/check-pr-comment.yml
Add Dependabot configuration to automate npm dependency updates.
  • Create dependabot.yml with version 2 schema
  • Configure weekly update checks for npm dependencies in the repository root
.github/dependabot.yml
Harden Ansible Linux setup to avoid failures when apt.releases is undefined.
  • Update when conditions for VS Code and Brave apt release task imports to first check if apt.releases is defined
  • Ensure that role behaves correctly when optional apt.releases configuration is omitted
.ansible/playbooks/setup-linux.yml
Add codespell configuration support and ensure it is managed as a dotfile.
  • Include .codespellrc in example Ansible dotfiles configuration so it can be deployed by the dotfiles role
  • Introduce a .codespellrc file in the repository (contents not shown in diff)
.ansible/variables-example.yml
.codespellrc
Remove obsolete git submodules and miscellaneous scripts/assets from the repository.
  • Delete .gitmodules to detach removed submodules
  • Remove bin directory and legacy assets under other/* related to previous configurations or user profiles
  • Clean up leftover VS Code settings (changes not shown in detail)
.gitmodules
bin
other/adamv
other/bsclifton
other/cowboy
other/mathiasbynens
.vscode/settings.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai 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.

Hey - I've left some high level feedback:

  • The new Ansible when conditions using inline Jinja if/else are harder to read and slightly unconventional; consider simplifying to something like when: apt.releases is defined and (apt.releases.code | default(false) | bool) (and similarly for Brave) for clarity and consistency with common Ansible patterns.
  • In .github/dependabot.yml, the comment says Dependabot will check for npm updates "every day (weekdays)" but the schedule is set to interval: "weekly"; update either the interval or the comment so they match.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new Ansible `when` conditions using inline Jinja `if`/`else` are harder to read and slightly unconventional; consider simplifying to something like `when: apt.releases is defined and (apt.releases.code | default(false) | bool)` (and similarly for Brave) for clarity and consistency with common Ansible patterns.
- In `.github/dependabot.yml`, the comment says Dependabot will check for npm updates "every day (weekdays)" but the schedule is set to `interval: "weekly"`; update either the interval or the comment so they match.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@coderabbitai coderabbitai Bot mentioned this pull request May 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant