-
Notifications
You must be signed in to change notification settings - Fork 43
Improve Patcher documentation: clarify use cases and add simplified GitHub Actions guide #2723
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…itHub Actions guide - Add new 'GitHub Actions for Continuous Updates' guide for teams wanting to keep entire codebase current - Update promotion workflows guide to clarify it's for environment-specific promotion (dev → stage → prod) - Add clear distinction between two primary Patcher use cases: upgrading out-of-date code vs maintaining current code - Update sidebar navigation to include new guide as first option in Guides section - Add cross-references between the two approaches to help users choose the right workflow Co-Authored-By: Josh Padnick <[email protected]>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Join our Discord community for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
…ation - Fix typo 'leasat' -> 'least' in accountfactory drift remediation guide - Add comprehensive GitHub Enterprise fine-grained token setup section to Patcher continuous updates guide - Include step-by-step instructions for token creation with required permissions - Focus on organization's patcher-cli and terrapatch-cli repositories only Co-Authored-By: Josh Padnick <[email protected]>
- Document key breaking changes: token consolidation, parameter renames - Add before/after workflow examples for easy migration - Include custom organization setup instructions for v3 - Update existing workflow examples to use v3 syntax - Provide migration checklist for systematic upgrade process Co-Authored-By: Josh Padnick <[email protected]>
…anager.devin.ai/proxy/github.com/gruntwork-io/docs into devin/1756506141-improve-patcher-docs
…tom-org inputs/outputs and workflow setup Co-Authored-By: Josh Padnick <[email protected]>
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
2 similar comments
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
…ub Action ongoing updates Co-Authored-By: Josh Padnick <[email protected]>
Co-Authored-By: Josh Padnick <[email protected]>
…andardize :::warn, keep @v2 Co-Authored-By: Josh Padnick <[email protected]>
|
||
Manually identifying updates and assessing whether they can be safely applied can consume significant engineering time for each module dependency. Patcher eliminates this inefficiency by streamlining the update process. | ||
|
||
You can use Gruntwork Patcher to manage dependencies on the Gruntwork IaC Library, which includes patches for recent breaking changes to Gruntwork modules. Patcher also supports updating dependencies for your own modules or open-source projects, using semantic versioning to identify safe updates and highlight those that need manual review. | ||
Patcher supports keeping any set of OpenTofu/Terraform modules up to date, whether they be your inhouse modules, third-party open source modules, or modules from the [Gruntwork IaC Library](library/concepts/overview). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Patcher supports keeping any set of OpenTofu/Terraform modules up to date, whether they be your inhouse modules, third-party open source modules, or modules from the [Gruntwork IaC Library](library/concepts/overview). | |
Patcher supports keeping any set of OpenTofu/Terraform modules up to date, whether they be your inhouse modules, third-party open source modules, or modules from the [Gruntwork IaC Library](library/concepts/overview). |
You can use Gruntwork Patcher to manage dependencies on the Gruntwork IaC Library, which includes patches for recent breaking changes to Gruntwork modules. Patcher also supports updating dependencies for your own modules or open-source projects, using semantic versioning to identify safe updates and highlight those that need manual review. | ||
Patcher supports keeping any set of OpenTofu/Terraform modules up to date, whether they be your inhouse modules, third-party open source modules, or modules from the [Gruntwork IaC Library](library/concepts/overview). | ||
|
||
Patcher specializes in keeping infrastructure code up to date and currently supports automatic udpates for: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Patcher specializes in keeping infrastructure code up to date and currently supports automatic udpates for: | |
Patcher specializes in keeping infrastructure code up to date and currently supports automatic updates for: |
|
||
## Two update modes | ||
|
||
When most teams think about updating their infrastructure mode, there are two core use cases they look to solve: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When most teams think about updating their infrastructure mode, there are two core use cases they look to solve: | |
When most teams think about updating their infrastructure code, there are two core use cases they look to solve: |
|
||
Patcher can help with both of these use cases. | ||
|
||
For legacy upgrades, the Patcher CLI offers an [interactive mode[(guides/update)] where you can browse all modules in the current working directory and below, request available updates, and upgrade modules one at a time. We've found this approach works well with a modest set of updates, however for significantly out of date repos or files or a large number of files, you may wish to consider alternative approaches. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For legacy upgrades, the Patcher CLI offers an [interactive mode[(guides/update)] where you can browse all modules in the current working directory and below, request available updates, and upgrade modules one at a time. We've found this approach works well with a modest set of updates, however for significantly out of date repos or files or a large number of files, you may wish to consider alternative approaches. | |
For legacy upgrades, the Patcher CLI offers an [interactive mode[(guides/update)] where you can browse all modules in the current working directory and below, browse available updates, and upgrade modules one at a time. We've found this approach works well with a modest set of updates, however for significantly out of date repos or files or a large number of files, you may wish to consider alternative approaches. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are those alternative approaches? Should we cut this?
|
||
Gruntwork Patcher provides a clear, README-driven workflow for breaking changes without available patches. When Patcher detects breaking changes, it updates the relevant dependency to the version containing those changes and generates a README file in the folder with the updated file. This README outlines the release notes and details the breaking changes. Users must review the README, address any necessary actions, and remove the file before rerunning Patcher. | ||
For breaking changes, Patcher offers a systematic approach to doing code transformations -- we call these "patches" -- so that module consumers can automatically apply breaking changes to their modules. Or if Patcher detects a breaking change but a patch does not exist, Patcher updates the relevant module to the next breaking change and generates a README file in the folder with the updated file that outlines the release notes and details the breaking changes. Users review the README, address any necessary actions, and remove the file before rerunning Patcher. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For breaking changes, Patcher offers a systematic approach to doing code transformations -- we call these "patches" -- so that module consumers can automatically apply breaking changes to their modules. Or if Patcher detects a breaking change but a patch does not exist, Patcher updates the relevant module to the next breaking change and generates a README file in the folder with the updated file that outlines the release notes and details the breaking changes. Users review the README, address any necessary actions, and remove the file before rerunning Patcher. | |
For breaking changes, Patcher offers a systematic approach to doing code transformations -- we call these "patches" -- so that module consumers can automatically apply breaking changes to their modules. Or if Patcher detects a breaking change but a patch does not exist, Patcher updates the relevant module to the next breaking change and generates a README file in the folder with the updated file that outlines the release notes and details the breaking changes. Users review the README, address any necessary actions, and remove the file before re-running Patcher. |
### Step-by-step setup for GitHub.com users | ||
|
||
#### 1. Create a GitHub token | ||
- Create a token that can read patcher-cli and terrapatch-cli releases in your org (see [GitHub Personal Access Token Setup](#github-personal-access-token-setup) below). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Create a token that can read patcher-cli and terrapatch-cli releases in your org (see [GitHub Personal Access Token Setup](#github-personal-access-token-setup) below). | |
- Create a token that can read patcher-cli and terrapatch-cli releases in your org (or `gruntwork-io`) (see [GitHub Personal Access Token Setup](#github-personal-access-token-setup) below). |
?
Improve Patcher documentation: clarify use cases and add simplified GitHub Actions guide
Summary
This PR addresses the confusion around Patcher's two primary use cases by creating clearer documentation paths:
New guide: "GitHub Actions for Continuous Updates" - A simplified workflow that scans the entire repository and creates PRs for all outdated dependencies. Ideal for teams who want to keep their codebase current without environment-specific promotion.
Updated existing guide: Enhanced "Setting up Promotion Workflows" to clearly explain it's for teams needing dev → stage → prod promotion with environment-specific validation.
Key changes:
/docs/2.0/docs/patcher/guides/github-actions-continuous-updates.md
(171 lines) with a simplified GitHub Actions workflowThe new workflow removes the
include_dirs
filtering and environment-specific logic from the promotion workflow examples, making it suitable for scanning entire repositories.Review & Testing Checklist for Human
Notes
Link to Devin run: https://app.devin.ai/sessions/fc64367622e64e1d8f29fddec6441a64
Requested by: Josh Padnick (@josh-padnick)