Skip to content

Copier update: more agents#139

Merged
ejfine merged 4 commits intomainfrom
more-agents2
Apr 1, 2026
Merged

Copier update: more agents#139
ejfine merged 4 commits intomainfrom
more-agents2

Conversation

@ejfine
Copy link
Copy Markdown
Contributor

@ejfine ejfine commented Apr 1, 2026

Pull in upstream template changes

Tested in two downstream repos (re: the changes in CI.yaml)

Summary by CodeRabbit

  • New Features

    • Optional flag to skip Pulumi CLI installation during dependency setup
  • Documentation

    • Expanded testing guidance: single-test iteration, stricter mock/assert rules, DOM scoping
    • New procedure for validating a newly written test that passes immediately
  • Chores

    • Refined GitHub Actions permissions and job timeouts; propagate skip flag to pre-commit
    • Updated template/configuration files and Copier pin
    • Bumped Pulumi-related version constraints
    • Narrowed GitHub CLI permission patterns and strengthened PR command denials

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

Documentation and template updates for TDD/testing guidance and Claude permissions; added a Pulumi CLI installation opt-out flag and installer invocation in devcontainer setup; bumped Pulumi dependency pins; refined GitHub CLI permission rules; and adjusted GitHub Actions/workflows to pass the new flag and tighten workflow permissions.

Changes

Cohort / File(s) Summary
TDD & Testing Docs
\.claude/commands/red.md, template/.claude/commands/red.md, AGENTS.md, template/AGENTS.md
Added a procedure for validating tests that pass immediately and expanded testing conventions (single-test iteration, stricter absence/mocks guidance, DOM-scoping, and shell-command rules).
Bash/GH CLI Permissions
\.claude/settings/permissions/bash.jsonc, template/.claude/settings/permissions/bash.jsonc
Allowed additional read-only gh commands, narrowed ask patterns for repo/release/secret/ruleset operations, and explicitly denied PR workflow gh pr * commands.
Copier & Review Config
\.coderabbit.yaml, template/.coderabbit.yaml, \.copier-answers.yml
Added review-path instruction to avoid commenting on .copier-answers.yml _commit value; updated Copier template pin from v0.0.107 to v0.0.110.
Devcontainer & Pulumi Installer
\.devcontainer/manual-setup-deps.py, template/.devcontainer/manual-setup-deps.py, \.devcontainer/devcontainer.json, \.devcontainer/install-pulumi-cli.sh*
Added --skip-installing-pulumi-cli CLI flag, a constant for the Pulumi installer script path, and logic to detect "pulumi" in env lock files and invoke the installer (Linux-only) unless skipped; updated devcontainer context hash comment.
GitHub Actions & Workflows
\.github/actions/install_deps/action.yml, template/.github/actions/install_deps/action.yml, \.github/workflows/pre-commit.yaml, template/.github/workflows/pre-commit.yaml, \.github/workflows/ci.yaml, template/.github/workflows/ci.yaml.jinja
Added skip-installing-pulumi-cli composite action input and wired it through pre-commit to skip Pulumi install; tightened workflow-level/job-scoped permissions (added contents: read/job contents: write where needed) and added timeout-minutes: 2 to check-skip-duplicate.
Dependency Pins
extensions/context.py
Bumped Pulumi-related version constraints: pulumi_version >=3.228.0, pulumi_aws_native_version >=1.59.0, pulumi_okta_version >=6.4.0.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant Action as "GitHub Action\n(.github/actions/install_deps)"
participant Workflow as "Workflow\n(pre-commit / CI)"
participant Script as ".devcontainer/manual-setup-deps.py"
participant Installer as ".devcontainer/install-pulumi-cli.sh"
participant Lock as "env lock file"

Workflow->>Action: invoke install_deps (input: skip-installing-pulumi-cli)
Action->>Script: run manual-setup-deps.py [pass --skip-installing-pulumi-cli?]
Script->>Lock: locate env lock file and scan for "pulumi"
alt pulumi present AND not skipped
Script->>Installer: sh Installer
Installer-->>Script: exit (success/fail)
else pulumi absent OR skipped
Script-->>Action: skip Pulumi install (log)
end
Script-->>Action: finish

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • zendern
  • idonaldson
🚥 Pre-merge checks | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is minimal and missing most required template sections: no issue link, no explicit explanation of necessity, no detailed description of how changes address needs, no side effects discussion, and no testing details beyond a vague mention of downstream testing. Complete the PR description by adding: link to relevant issue/discussion, detailed explanation of why template updates are necessary, specific description of what each major change addresses, potential side effects on downstream projects, and concrete testing methodology or results.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Copier update: more agents' is vague and generic, using non-descriptive terminology that doesn't convey meaningful information about the changeset's primary purpose or scope. Clarify the title to indicate the specific focus of the template updates, such as 'Update Copier template with improved testing and CLI guidance' or similar.

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


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.

@ejfine ejfine marked this pull request as ready for review April 1, 2026 10:00
@ejfine ejfine requested review from idonaldson and zendern April 1, 2026 10:01
Copy link
Copy Markdown
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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@template/.github/workflows/ci.yaml.jinja`:
- Line 26: The Copier schema is missing entries for the three timeout template
variables gha_short_timeout_minutes, gha_medium_timeout_minutes, and
gha_long_timeout_minutes referenced in template/.github/workflows/ci.yaml.jinja;
add corresponding keys to copier.yml (or its schema section) defining each
variable with a sensible default (e.g., short: 10, medium: 30, long: 60) and
appropriate type (integer) and descriptions so the template can render reliably.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: e7a2090d-7040-49c4-b5d0-cde6c0750c15

📥 Commits

Reviewing files that changed from the base of the PR and between a0c66e9 and 6b7fccd.

📒 Files selected for processing (1)
  • template/.github/workflows/ci.yaml.jinja


check-skip-duplicate:
runs-on: {% endraw %}{{ gha_linux_runner }}{% raw %}
timeout-minutes: {% endraw %}{{ gha_short_timeout_minutes }}{% raw %}
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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Workflow references:"
rg -n 'gha_(short|medium|long)_timeout_minutes' template/.github/workflows/ci.yaml.jinja

echo
echo "Schema definitions in copier.yml:"
if ! rg -n '^\s*gha_(short|medium|long)_timeout_minutes\s*:' copier.yml; then
  echo "No timeout variables declared in copier.yml"
fi

Repository: LabAutomationAndScreening/copier-nuxt-python-intranet-app

Length of output: 982


Add Copier schema entries for the three timeout variables.

The workflow references gha_short_timeout_minutes (lines 26, 402, 447), gha_medium_timeout_minutes (lines 57, 87, 137, 193, 234, 365), and gha_long_timeout_minutes (line 301), but none of these are defined in copier.yml. Add schema entries with sensible defaults for all three before merging.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@template/.github/workflows/ci.yaml.jinja` at line 26, The Copier schema is
missing entries for the three timeout template variables
gha_short_timeout_minutes, gha_medium_timeout_minutes, and
gha_long_timeout_minutes referenced in template/.github/workflows/ci.yaml.jinja;
add corresponding keys to copier.yml (or its schema section) defining each
variable with a sensible default (e.g., short: 10, medium: 30, long: 60) and
appropriate type (integer) and descriptions so the template can render reliably.

@ejfine ejfine merged commit bc88718 into main Apr 1, 2026
23 checks passed
@ejfine ejfine deleted the more-agents2 branch April 1, 2026 15:56
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.

2 participants