Add coder syntax#154
Open
armiiller wants to merge 6 commits into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the gem to target Rails 7.1+ (and Ruby 3.4.x), modernizes ActiveRecord serialize usage to the Rails 7.1 coder: syntax, and adjusts tests/fixtures to match Rails 7.1 behaviors (notably preferring as_json comparisons over to_json string comparisons).
Changes:
- Bump Rails dependency baseline to
>= 7.1and refresh lockfile/tooling (Ruby version, Standard, deferred_request, etc.). - Replace
serialize :attr, JSONwithserialize :attr, coder: JSONfor Rails 7.1 compatibility. - Update many tests to compare
as_json(and adjust fixture configuration / request digs) to reduce JSON string brittleness.
Reviewed changes
Copilot reviewed 93 out of 94 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| test/test_helper.rb | Switch fixture setup to Rails 7.1 fixture_paths API. |
| test/models/pager_tree/integrations/zendesk/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/zabbix/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/webhook/v3_test.rb | Use as_json assertions; safer dig usage for nested Meta. |
| test/models/pager_tree/integrations/uptime/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/uptime_robot/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/uptime_kuma/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/typeform/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/twilio/incoming_sms/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/status_gator/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/status_cake/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/stackdriver/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/solar_winds/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/slack/webhook/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/sixty_six_uptime/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/site24x7/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/server_guard24/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/sentry/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/scom/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/pulsetic/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/prtg/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/prometheus/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/pingdom/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/new_relic/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/meta/workplace/v3_test.rb | Remove unused expected payload; assert nil body via as_json. |
| test/models/pager_tree/integrations/mattermost/outgoing_webhook/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/logic_monitor/v3_test.rb | Use as_json for payload equality assertions (incoming/outgoing). |
| test/models/pager_tree/integrations/kapacitor/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/jotform/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/jira_server/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/hyperping/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/hydrozen/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/honeybadger/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/hetrix_tools/v3_test.rb | Normalize URL string literal; use as_json assertions. |
| test/models/pager_tree/integrations/healthchecks/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/grafana/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/freshservice/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/freshdesk/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/form/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/email/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/elast_alert/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/dynatrace/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/dead_mans_snitch/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/datadog/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/custom_webhook/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/cronitor/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/cloudflare/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/channel/slack/v3_test.rb | Use as_json assertions for outgoing delivery body. |
| test/models/pager_tree/integrations/channel/microsoft_teams/v4_test.rb | Use as_json assertions for outgoing delivery body. |
| test/models/pager_tree/integrations/channel/microsoft_teams/v3_test.rb | Use as_json assertions for outgoing delivery body. |
| test/models/pager_tree/integrations/channel/mattermost/v3_test.rb | Use as_json assertions for outgoing delivery body. |
| test/models/pager_tree/integrations/channel/hangouts/v3_test.rb | Use as_json assertions for outgoing delivery body. |
| test/models/pager_tree/integrations/azure_monitor/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/aws_cloudwatch/v3_test.rb | Normalize embedded JSON strings; use as_json assertions. |
| test/models/pager_tree/integrations/auvik/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/app_dynamics/v3_test.rb | Use as_json for payload equality assertions. |
| test/models/pager_tree/integrations/apex_ping/v3_test.rb | Use as_json for payload equality assertions. |
| pager_tree-integrations.gemspec | Raise Rails dependency baseline to >= 7.1. |
| Gemfile | Add Rails ~> 7.1 and csv; remove Appraisal; unpin Standard. |
| Gemfile.lock | Update dependency set for Rails 7.1 and refreshed tooling. |
| Appraisals | Remove Appraisal matrix configuration. |
| gemfiles/rails_master.gemfile | Remove Rails master appraisal Gemfile. |
| gemfiles/rails_7.gemfile | Remove Rails 7 appraisal Gemfile. |
| gemfiles/.bundle/config | Remove Bundler config under gemfiles/. |
| .ruby-version | Update Ruby version used by the project. |
| .github/workflows/ci.yml | Simplify CI job; update Postgres image; remove Ruby version matrix. |
| app/models/pager_tree/integrations/zabbix/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/webhook/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/solar_winds/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/sixty_six_uptime/v3.rb | Add parentheses around ternary condition for clarity. |
| app/models/pager_tree/integrations/server_guard24/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/pulsetic/v3.rb | Add parentheses around ternary condition for clarity. |
| app/models/pager_tree/integrations/outgoing_webhook/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/outgoing_webhook_delivery/hook_relay.rb | Simplify deep_merge call by removing redundant parentheses. |
| app/models/pager_tree/integrations/outgoing_webhook_delivery.rb | Update serialize to Rails 7.1 coder: syntax. |
| app/models/pager_tree/integrations/mattermost/outgoing_webhook/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/logic_monitor/v3.rb | Remove redundant parentheses in string concatenation for HMAC data. |
| app/models/pager_tree/integrations/live_call_routing/twilio/v3.rb | Minor style/perf tweaks (chars, remove redundant self.). |
| app/models/pager_tree/integrations/kapacitor/v3.rb | Add parentheses around ternary condition for clarity. |
| app/models/pager_tree/integrations/jira_server/v3.rb | Add parentheses around ternary condition for clarity. |
| app/models/pager_tree/integrations/integration.rb | Update serialize to Rails 7.1 coder: syntax. |
| app/models/pager_tree/integrations/honeybadger/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/hetrix_tools/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/email/v3.rb | Add parentheses around ternary condition inside interpolations. |
| app/models/pager_tree/integrations/echoes_hq/v3.rb | Refactor return/value flow for EchoesHQ API helpers. |
| app/models/pager_tree/integrations/datadog/v3.rb | Add parentheses around ternary condition for clarity. |
| app/models/pager_tree/integrations/cloudflare/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/channel/slack/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/channel/microsoft_teams/v4.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/channel/microsoft_teams/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/channel/hangouts/v3.rb | Minor style cleanup removing redundant self.. |
| app/models/pager_tree/integrations/boolean_store_accessor.rb | Use symbol literal form in define_method for setters/predicates. |
| app/models/pager_tree/integrations/alert.rb | Minor style cleanup removing redundant self. (but introduces a functional issue in push_additional_data). |
| app/models/pager_tree/integrations/additional_datum.rb | Minor style cleanup removing redundant self. for fields. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| def push_additional_data(additional_datum) | ||
| if additional_datum.valid? | ||
| self.additional_data.push(additional_data.to_json) | ||
| additional_data.push(additional_data.to_json) |
Comment on lines
75
to
77
| def get_echoes_hq_incident | ||
| result = nil | ||
| nil | ||
| response = nil |
Comment on lines
91
to
93
| def create_echoes_hq_incident | ||
| result = nil | ||
| nil | ||
| response = nil |
Comment on lines
117
to
119
| def update_echoes_hq_incident | ||
| result = nil | ||
| nil | ||
| response = nil |
| message: "CREATE EchoesHQ Incident for PagerTree alert ##{@pager_tree_alert.tiny_id}", | ||
| url: url, | ||
| body: body, | ||
| reponse: response |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.