Skip to content

Add coder syntax#154

Open
armiiller wants to merge 6 commits into
mainfrom
chore/rails-compat
Open

Add coder syntax#154
armiiller wants to merge 6 commits into
mainfrom
chore/rails-compat

Conversation

@armiiller

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.1 and refresh lockfile/tooling (Ruby version, Standard, deferred_request, etc.).
  • Replace serialize :attr, JSON with serialize :attr, coder: JSON for 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
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