sendgrid-ruby 5.3.0 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/pr-lint.yml +15 -0
  3. data/.github/workflows/test-and-deploy.yml +120 -0
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +8 -0
  6. data/.rubocop_todo.yml +127 -0
  7. data/CHANGELOG.md +261 -8
  8. data/CODE_OF_CONDUCT.md +57 -25
  9. data/CONTRIBUTING.md +24 -71
  10. data/Dockerfile +14 -0
  11. data/FIRST_TIMERS.md +53 -0
  12. data/Gemfile +0 -1
  13. data/LICENSE +21 -0
  14. data/Makefile +14 -0
  15. data/PULL_REQUEST_TEMPLATE.md +31 -0
  16. data/README.md +39 -43
  17. data/Rakefile +3 -4
  18. data/TROUBLESHOOTING.md +41 -21
  19. data/UPGRADE.md +5 -0
  20. data/USAGE.md +1231 -1122
  21. data/examples/accesssettings/accesssettings.rb +9 -12
  22. data/examples/alerts/alerts.rb +8 -11
  23. data/examples/apikeys/apikeys.rb +12 -15
  24. data/examples/asm/asm.rb +27 -30
  25. data/examples/browsers/browsers.rb +0 -3
  26. data/examples/campaigns/campaigns.rb +29 -32
  27. data/examples/categories/categories.rb +0 -3
  28. data/examples/clients/clients.rb +1 -4
  29. data/examples/contactdb/contactdb.rb +63 -66
  30. data/examples/dataresidency/setregion.rb +48 -0
  31. data/examples/devices/devices.rb +0 -3
  32. data/examples/emailactivity/emailactivity.rb +52 -0
  33. data/examples/geo/geo.rb +0 -3
  34. data/examples/helpers/eventwebhook/example.rb +16 -0
  35. data/examples/helpers/mail/example.rb +30 -19
  36. data/examples/helpers/settings/example.rb +1 -1
  37. data/examples/helpers/stats/example.rb +4 -4
  38. data/examples/ips/ips.rb +31 -21
  39. data/examples/mail/mail.rb +73 -76
  40. data/examples/mailboxproviders/mailboxproviders.rb +0 -3
  41. data/examples/mailsettings/mailsettings.rb +21 -24
  42. data/examples/partnersettings/partnersettings.rb +3 -6
  43. data/examples/scopes/scopes.rb +49 -5
  44. data/examples/{whitelabel/whitelabel.rb → senderauthentication/senderauthentication.rb} +68 -71
  45. data/examples/senders/senders.rb +28 -31
  46. data/examples/stats/stats.rb +0 -3
  47. data/examples/subusers/subusers.rb +17 -20
  48. data/examples/suppression/suppression.rb +23 -26
  49. data/examples/templates/templates.rb +29 -31
  50. data/examples/trackingsettings/trackingsettings.rb +14 -17
  51. data/examples/user/user.rb +41 -44
  52. data/lib/rack/sendgrid_webhook_verification.rb +55 -0
  53. data/lib/sendgrid/base_interface.rb +57 -0
  54. data/lib/sendgrid/helpers/eventwebhook/eventwebhook.rb +50 -0
  55. data/lib/sendgrid/helpers/inbound/README.md +26 -9
  56. data/lib/sendgrid/helpers/inbound/app.rb +15 -3
  57. data/lib/sendgrid/helpers/inbound/public/index.html +2 -2
  58. data/lib/sendgrid/helpers/inbound/sample_data/default_data.txt +2 -2
  59. data/lib/sendgrid/helpers/inbound/sample_data/raw_data.txt +2 -2
  60. data/lib/sendgrid/helpers/inbound/sample_data/raw_data_with_attachments.txt +2 -2
  61. data/lib/sendgrid/helpers/inbound/send.rb +5 -5
  62. data/lib/sendgrid/helpers/ip_management/ip_management.rb +17 -0
  63. data/lib/sendgrid/helpers/mail/README.md +4 -4
  64. data/lib/sendgrid/helpers/mail/asm.rb +4 -18
  65. data/lib/sendgrid/helpers/mail/attachment.rb +30 -38
  66. data/lib/sendgrid/helpers/mail/bcc_settings.rb +4 -18
  67. data/lib/sendgrid/helpers/mail/bypass_list_management.rb +6 -18
  68. data/lib/sendgrid/helpers/mail/category.rb +2 -12
  69. data/lib/sendgrid/helpers/mail/click_tracking.rb +4 -18
  70. data/lib/sendgrid/helpers/mail/content.rb +4 -18
  71. data/lib/sendgrid/helpers/mail/custom_arg.rb +4 -10
  72. data/lib/sendgrid/helpers/mail/email.rb +10 -20
  73. data/lib/sendgrid/helpers/mail/footer.rb +5 -27
  74. data/lib/sendgrid/helpers/mail/ganalytics.rb +9 -55
  75. data/lib/sendgrid/helpers/mail/header.rb +4 -10
  76. data/lib/sendgrid/helpers/mail/mail.rb +37 -87
  77. data/lib/sendgrid/helpers/mail/mail_settings.rb +7 -25
  78. data/lib/sendgrid/helpers/mail/open_tracking.rb +4 -18
  79. data/lib/sendgrid/helpers/mail/personalization.rb +38 -27
  80. data/lib/sendgrid/helpers/mail/section.rb +4 -10
  81. data/lib/sendgrid/helpers/mail/spam_check.rb +5 -27
  82. data/lib/sendgrid/helpers/mail/subscription_tracking.rb +6 -36
  83. data/lib/sendgrid/helpers/mail/substitution.rb +4 -10
  84. data/lib/sendgrid/helpers/mail/tracking_settings.rb +6 -20
  85. data/lib/sendgrid/helpers/permissions/scope.rb +28 -0
  86. data/lib/sendgrid/helpers/permissions/scopes.yml +309 -0
  87. data/lib/sendgrid/helpers/settings/README.md +3 -3
  88. data/lib/sendgrid/helpers/settings/settings.rb +1 -1
  89. data/lib/sendgrid/helpers/settings/tracking_settings_dto.rb +3 -5
  90. data/lib/sendgrid/helpers/stats/metrics.rb +5 -7
  91. data/lib/sendgrid/helpers/stats/stats_response.rb +1 -3
  92. data/lib/sendgrid/sendgrid.rb +21 -0
  93. data/lib/sendgrid/twilio_email.rb +21 -0
  94. data/lib/sendgrid/version.rb +1 -1
  95. data/lib/sendgrid-ruby.rb +7 -1
  96. data/mail_helper_v3.md +21 -21
  97. data/sendgrid-ruby.gemspec +12 -12
  98. data/spec/fixtures/event_webhook.rb +22 -0
  99. data/spec/rack/sendgrid_webhook_verification_spec.rb +142 -0
  100. data/spec/sendgrid/helpers/eventwebhook/eventwebhook_spec.rb +105 -0
  101. data/spec/sendgrid/helpers/ip_management/ip_management_spec.rb +12 -0
  102. data/spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb +3 -3
  103. data/spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb +3 -3
  104. data/spec/sendgrid/helpers/settings/settings_spec.rb +2 -2
  105. data/spec/sendgrid/helpers/settings/tracking_settings_dto_spec.rb +3 -3
  106. data/spec/sendgrid/helpers/settings/user_settings_dto_spec.rb +3 -3
  107. data/spec/sendgrid/helpers/stats/email_stats_spec.rb +22 -23
  108. data/spec/sendgrid/helpers/stats/metrics_spec.rb +19 -20
  109. data/spec/sendgrid/helpers/stats/stats_response_spec.rb +22 -23
  110. data/spec/sendgrid/sendgrid_spec.rb +11 -0
  111. data/spec/sendgrid/twilio_email_spec.rb +11 -0
  112. data/spec/spec_helper.rb +3 -1
  113. data/static/img/github-fork.png +0 -0
  114. data/static/img/github-sign-up.png +0 -0
  115. data/test/sendgrid/helpers/mail/test_attachment.rb +33 -0
  116. data/test/sendgrid/helpers/mail/test_category.rb +0 -2
  117. data/test/sendgrid/helpers/mail/test_data_residency.rb +44 -0
  118. data/test/sendgrid/helpers/mail/test_email.rb +17 -10
  119. data/test/sendgrid/helpers/mail/test_mail.rb +126 -119
  120. data/test/sendgrid/helpers/mail/test_personalizations.rb +145 -92
  121. data/test/sendgrid/permissions/test_scopes.rb +36 -0
  122. data/test/sendgrid/test_sendgrid-ruby.rb +1961 -1979
  123. data/twilio_sendgrid_logo.png +0 -0
  124. data/use-cases/README.md +17 -0
  125. data/use-cases/domain-authentication.md +5 -0
  126. data/use-cases/email-statistics.md +52 -0
  127. data/use-cases/legacy-templates.md +98 -0
  128. data/use-cases/personalizations.md +34 -0
  129. data/use-cases/sms.md +39 -0
  130. data/use-cases/transactional-templates.md +111 -0
  131. data/use-cases/twilio-email.md +13 -0
  132. data/use-cases/twilio-setup.md +54 -0
  133. metadata +99 -45
  134. data/.codeclimate.yml +0 -21
  135. data/.github/ISSUE_TEMPLATE +0 -17
  136. data/.github/PULL_REQUEST_TEMPLATE +0 -24
  137. data/.travis.yml +0 -29
  138. data/LICENSE.txt +0 -22
  139. data/USE_CASES.md +0 -147
  140. data/docker/Dockerfile +0 -12
  141. data/docker/README.md +0 -30
  142. data/lib/sendgrid/client.rb +0 -35
  143. data/test/prism.sh +0 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 796596b834ff9725ad09dd290829bd710b88789f
4
- data.tar.gz: 1d572c07d391a91a4e3f3c279b3fc9ef74128b83
2
+ SHA256:
3
+ metadata.gz: 0007b5954e3a33c0f866a22292cbdbdac34bc9765bf6cbca06e0c0bef6551e6b
4
+ data.tar.gz: 507d9e1a7e29bfb3c8c47d1f78ff8f36ac0d215265387c92e2b87ec41810ebac
5
5
  SHA512:
6
- metadata.gz: 5285bba04ae710a028e424ce7b34676e09a4dbf5b2c20eed61205078d97011a3aadbea65f6562dd84883b6583203f28751834ecde2ad225bdcd7ba5bb8ef71dd
7
- data.tar.gz: e5eb5ec7768129a04c65fcc4e5e3f2ab88013f4d6d79eec9252ed20f72fb3120d10527efda11127e80440f10b1e5a3e72c568afa7b094ceac4b1196424b53804
6
+ metadata.gz: c1895f4561c350751bc1aa22b4995132d04fa6c5b76368f57eccde5673114ef50ca42b7d20ebf71d2a35ba2f03c78ebb5b58733c00a004878088fe146dbd0ba6
7
+ data.tar.gz: f3e132f93d9bca92bcf44540f2520e8f66fff095cfc9057aefedf7ffbdc848326259b249ae1567e380bcc1b76b737a63d8a90ff02df0dd94883b985feb7ac1f7
@@ -0,0 +1,15 @@
1
+ name: Lint PR
2
+ on:
3
+ pull_request_target:
4
+ types: [ opened, edited, synchronize, reopened ]
5
+
6
+ jobs:
7
+ validate:
8
+ name: Validate title
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: amannn/action-semantic-pull-request@v4
12
+ with:
13
+ types: chore docs fix feat test misc
14
+ env:
15
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,120 @@
1
+ name: Test and Deploy
2
+ on:
3
+ push:
4
+ branches: [ '*' ]
5
+ tags: [ '*' ]
6
+ pull_request:
7
+ branches: [ main ]
8
+ schedule:
9
+ # Run automatically at 8AM PST Monday-Friday
10
+ - cron: '0 15 * * 1-5'
11
+ workflow_dispatch:
12
+
13
+ jobs:
14
+ test:
15
+ name: Test
16
+ runs-on: ubuntu-latest
17
+ timeout-minutes: 20
18
+ strategy:
19
+ matrix:
20
+ ruby: [ '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', 'jruby-9.2' ]
21
+ env:
22
+ version: ${{ format('ruby:{0}', matrix.ruby) }}
23
+ DOCKER_LOGIN: ${{ secrets.DOCKER_USERNAME && secrets.DOCKER_AUTH_TOKEN }}
24
+ steps:
25
+ - name: Revise env version if necessary
26
+ run: echo "version=jruby:9.2" >> $GITHUB_ENV
27
+ if: ${{ matrix.ruby == 'jruby-9.2' }}
28
+
29
+ - name: Checkout sendgrid-ruby
30
+ uses: actions/checkout@v2
31
+ with:
32
+ fetch-depth: 0
33
+
34
+ - name: Login to Docker Hub
35
+ if: env.DOCKER_LOGIN
36
+ uses: docker/login-action@v1
37
+ with:
38
+ username: ${{ secrets.DOCKER_USERNAME }}
39
+ password: ${{ secrets.DOCKER_AUTH_TOKEN }}
40
+
41
+ - name: Set up Ruby
42
+ uses: ruby/setup-ruby@v1
43
+ with:
44
+ ruby-version: ${{ matrix.ruby }}
45
+ bundler-cache: true
46
+
47
+ - run: make install
48
+
49
+ - name: Set up linter
50
+ run: bundle add rubocop --version "~> 1.24.1" --group "development" --skip-install
51
+ if: ${{ matrix.ruby != '2.4' }}
52
+
53
+ - run: bundle install --with development
54
+
55
+ - name: Run linter
56
+ run: bundle exec rubocop
57
+ if: ${{ matrix.ruby != '2.4' }}
58
+
59
+ - name: Run tests
60
+ run: make test-docker
61
+
62
+ deploy:
63
+ name: Deploy
64
+ if: success() && github.ref_type == 'tag'
65
+ needs: [ test ]
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - name: Checkout sendgrid-ruby
69
+ uses: actions/checkout@v2
70
+ with:
71
+ fetch-depth: 0
72
+
73
+ - name: Set up Ruby
74
+ uses: ruby/setup-ruby@v1
75
+ with:
76
+ ruby-version: 3.1
77
+ bundler-cache: true
78
+
79
+ - run: make install
80
+
81
+ - name: Create GitHub Release
82
+ uses: sendgrid/dx-automator/actions/release@main
83
+ with:
84
+ footer: '**[RubyGems](https://rubygems.org/gems/sendgrid-ruby/versions/${version})**'
85
+ env:
86
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
87
+
88
+ - name: Publish to Rubygems
89
+ env:
90
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
91
+ run: |
92
+ mkdir -p $HOME/.gem
93
+ touch $HOME/.gem/credentials
94
+ chmod 0600 $HOME/.gem/credentials
95
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
96
+ gem build *.gemspec
97
+ gem push *.gem
98
+
99
+ - name: Submit metric to Datadog
100
+ uses: sendgrid/dx-automator/actions/datadog-release-metric@main
101
+ env:
102
+ DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
103
+
104
+ notify-on-failure:
105
+ name: Slack notify on failure
106
+ if: failure() && github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref_type == 'tag')
107
+ needs: [ test, deploy ]
108
+ runs-on: ubuntu-latest
109
+ steps:
110
+ - uses: rtCamp/action-slack-notify@v2
111
+ env:
112
+ SLACK_COLOR: failure
113
+ SLACK_ICON_EMOJI: ':github:'
114
+ SLACK_MESSAGE: ${{ format('Test *{0}*, Deploy *{1}*, {2}/{3}/actions/runs/{4}', needs.test.result, needs.deploy.result, github.server_url, github.repository, github.run_id) }}
115
+ SLACK_TITLE: Action Failure - ${{ github.repository }}
116
+ SLACK_USERNAME: GitHub Actions
117
+ SLACK_MSG_AUTHOR: twilio-dx
118
+ SLACK_FOOTER: Posted automatically using GitHub Actions
119
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
120
+ MSG_MINIMAL: true
data/.gitignore CHANGED
@@ -39,3 +39,5 @@ Gemfile.lock
39
39
 
40
40
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
41
41
  .rvmrc
42
+
43
+ prism*
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ Style/StringLiterals:
4
+ Enabled: false
5
+
6
+ Metrics/BlockLength:
7
+ Exclude:
8
+ - 'spec/**/*'
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,127 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2022-01-25 23:45:43 UTC using RuboCop version 1.22.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
12
+ # Include: **/*.gemfile, **/Gemfile, **/gems.rb
13
+ Bundler/OrderedGems:
14
+ Exclude:
15
+ - 'Gemfile'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'sendgrid-ruby.gemspec'
23
+
24
+ # Offense count: 1
25
+ # Cop supports --auto-correct.
26
+ # Configuration parameters: EnforcedStyle.
27
+ # SupportedStyles: final_newline, final_blank_line
28
+ Layout/TrailingEmptyLines:
29
+ Exclude:
30
+ - 'Gemfile'
31
+
32
+ # Offense count: 24
33
+ Lint/UselessAssignment:
34
+ Exclude:
35
+ - 'examples/scopes/scopes.rb'
36
+ - 'spec/rack/sendgrid_webhook_verification_spec.rb'
37
+
38
+ # Offense count: 10
39
+ # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
40
+ Metrics/AbcSize:
41
+ Max: 134
42
+
43
+ # Offense count: 3
44
+ # Configuration parameters: CountComments, CountAsOne.
45
+ Metrics/ClassLength:
46
+ Max: 2018
47
+
48
+ # Offense count: 45
49
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
50
+ Metrics/MethodLength:
51
+ Max: 141
52
+
53
+ # Offense count: 4
54
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
55
+ Metrics/ParameterLists:
56
+ Max: 7
57
+
58
+ # Offense count: 4
59
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
60
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
61
+ Naming/FileName:
62
+ Exclude:
63
+ - 'gemfiles/Sinatra_1.gemfile'
64
+ - 'gemfiles/Sinatra_2.gemfile'
65
+ - 'lib/sendgrid-ruby.rb'
66
+ - 'test/sendgrid/test_sendgrid-ruby.rb'
67
+
68
+ # Offense count: 1
69
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
70
+ # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
71
+ Naming/MethodParameterName:
72
+ Exclude:
73
+ - 'lib/sendgrid/helpers/mail/personalization.rb'
74
+
75
+ # Offense count: 1
76
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
77
+ # NamePrefix: is_, has_, have_
78
+ # ForbiddenPrefixes: is_, has_, have_
79
+ # AllowedMethods: is_a?
80
+ # MethodDefinitionMacros: define_method, define_singleton_method
81
+ Naming/PredicateName:
82
+ Exclude:
83
+ - 'spec/**/*'
84
+ - 'examples/helpers/eventwebhook/example.rb'
85
+
86
+ # Offense count: 35
87
+ # Configuration parameters: AllowedConstants.
88
+ Style/Documentation:
89
+ Enabled: false
90
+
91
+ # Offense count: 3
92
+ # Configuration parameters: MaxUnannotatedPlaceholdersAllowed, IgnoredMethods.
93
+ # SupportedStyles: annotated, template, unannotated
94
+ Style/FormatStringToken:
95
+ EnforcedStyle: unannotated
96
+
97
+ # Offense count: 97
98
+ # Cop supports --auto-correct.
99
+ # Configuration parameters: EnforcedStyle.
100
+ # SupportedStyles: always, always_true, never
101
+ Style/FrozenStringLiteralComment:
102
+ Enabled: false
103
+
104
+ # Offense count: 1
105
+ # Cop supports --auto-correct.
106
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
107
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
108
+ Style/HashSyntax:
109
+ Exclude:
110
+ - 'Gemfile'
111
+
112
+ # Offense count: 6
113
+ Style/MixinUsage:
114
+ Exclude:
115
+ - 'examples/helpers/eventwebhook/example.rb'
116
+ - 'examples/helpers/mail/example.rb'
117
+ - 'examples/helpers/settings/example.rb'
118
+ - 'examples/helpers/stats/example.rb'
119
+ - 'test/sendgrid/helpers/mail/test_attachment.rb'
120
+ - 'test/sendgrid/helpers/mail/test_mail.rb'
121
+
122
+ # Offense count: 54
123
+ # Cop supports --auto-correct.
124
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
125
+ # URISchemes: http, https
126
+ Layout/LineLength:
127
+ Max: 381
data/CHANGELOG.md CHANGED
@@ -1,6 +1,259 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ [2023-12-01] Version 6.7.0
5
+ --------------------------
6
+ **Library - Feature**
7
+ - [PR #496](https://github.com/sendgrid/sendgrid-ruby/pull/496): geolocation setter in sendgrid-ruby for GDPR compliance. Thanks to [@manisha1997](https://github.com/manisha1997)!
8
+
9
+ **Library - Test**
10
+ - [PR #488](https://github.com/sendgrid/sendgrid-ruby/pull/488): Adding misc as PR type. Thanks to [@rakatyal](https://github.com/rakatyal)!
11
+
12
+ **Library - Docs**
13
+ - [PR #486](https://github.com/sendgrid/sendgrid-ruby/pull/486): Modify README. Thanks to [@garethpaul](https://github.com/garethpaul)!
14
+
15
+
16
+ [2022-03-09] Version 6.6.2
17
+ --------------------------
18
+ **Library - Chore**
19
+ - [PR #483](https://github.com/sendgrid/sendgrid-ruby/pull/483): push Datadog Release Metric upon deploy success. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
20
+
21
+
22
+ [2022-02-09] Version 6.6.1
23
+ --------------------------
24
+ **Library - Chore**
25
+ - [PR #482](https://github.com/sendgrid/sendgrid-ruby/pull/482): upgrade supported language versions. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
26
+ - [PR #480](https://github.com/sendgrid/sendgrid-ruby/pull/480): add gh release to workflow. Thanks to [@shwetha-manvinkurke](https://github.com/shwetha-manvinkurke)!
27
+ - [PR #478](https://github.com/sendgrid/sendgrid-ruby/pull/478): migrate to gh actions. Thanks to [@beebzz](https://github.com/beebzz)!
28
+
29
+ **Library - Fix**
30
+ - [PR #479](https://github.com/sendgrid/sendgrid-ruby/pull/479): set version env var for tests. Thanks to [@beebzz](https://github.com/beebzz)!
31
+
32
+
33
+ [2021-11-03] Version 6.6.0
34
+ --------------------------
35
+ **Library - Feature**
36
+ - [PR #473](https://github.com/sendgrid/sendgrid-ruby/pull/473): update tests, use-cases, examples and implementation for From personalization. Thanks to [@beebzz](https://github.com/beebzz)!
37
+
38
+
39
+ [2021-10-18] Version 6.5.2
40
+ --------------------------
41
+ **Library - Docs**
42
+ - [PR #472](https://github.com/sendgrid/sendgrid-ruby/pull/472): improve signed webhook event validation docs. Thanks to [@shwetha-manvinkurke](https://github.com/shwetha-manvinkurke)!
43
+
44
+
45
+ [2021-09-08] Version 6.5.1
46
+ --------------------------
47
+ **Library - Chore**
48
+ - [PR #470](https://github.com/sendgrid/sendgrid-ruby/pull/470): add support for ruby 3.0. Thanks to [@shwetha-manvinkurke](https://github.com/shwetha-manvinkurke)!
49
+
50
+
51
+ [2021-08-11] Version 6.5.0
52
+ --------------------------
53
+ **Library - Feature**
54
+ - [PR #466](https://github.com/sendgrid/sendgrid-ruby/pull/466): Add From address to personalization. Thanks to [@grin](https://github.com/grin)!
55
+
56
+
57
+ [2021-02-10] Version 6.4.0
58
+ --------------------------
59
+ **Library - Feature**
60
+ - [PR #455](https://github.com/sendgrid/sendgrid-ruby/pull/455): Add http_options as a param in the SendGrid::API's constructor. Thanks to [@hoangtuanictvn](https://github.com/hoangtuanictvn)!
61
+
62
+
63
+ [2021-01-27] Version 6.3.9
64
+ --------------------------
65
+ **Library - Fix**
66
+ - [PR #446](https://github.com/sendgrid/sendgrid-ruby/pull/446): Accurate duplicate checking when adding email to Personalizations. Thanks to [@mito5525](https://github.com/mito5525)!
67
+ - [PR #457](https://github.com/sendgrid/sendgrid-ruby/pull/457): email is required. Thanks to [@luk4s](https://github.com/luk4s)!
68
+
69
+
70
+ [2020-12-16] Version 6.3.8
71
+ --------------------------
72
+ **Library - Fix**
73
+ - [PR #448](https://github.com/sendgrid/sendgrid-ruby/pull/448): tests failing on rubocop rule. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
74
+
75
+
76
+ [2020-11-05] Version 6.3.7
77
+ --------------------------
78
+ **Library - Chore**
79
+ - [PR #447](https://github.com/sendgrid/sendgrid-ruby/pull/447): fix rubocop styling errors. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
80
+
81
+
82
+ [2020-10-14] Version 6.3.6
83
+ --------------------------
84
+ **Library - Fix**
85
+ - [PR #440](https://github.com/sendgrid/sendgrid-ruby/pull/440): reading position of a request body. Thanks to [@snaka](https://github.com/snaka)!
86
+
87
+
88
+ [2020-09-28] Version 6.3.5
89
+ --------------------------
90
+ **Library - Fix**
91
+ - [PR #437](https://github.com/sendgrid/sendgrid-ruby/pull/437): Raise error when adding duplicate email address in Personalizations. Thanks to [@Pranc1ngPegasus](https://github.com/Pranc1ngPegasus)!
92
+
93
+ **Library - Docs**
94
+ - [PR #322](https://github.com/sendgrid/sendgrid-ruby/pull/322): Update documentation for retrieving a list of all templates. Thanks to [@renshuki](https://github.com/renshuki)!
95
+ - [PR #332](https://github.com/sendgrid/sendgrid-ruby/pull/332): Add Email activity API Documentation. Thanks to [@dhoeric](https://github.com/dhoeric)!
96
+
97
+ **Library - Test**
98
+ - [PR #315](https://github.com/sendgrid/sendgrid-ruby/pull/315): Add rubocop check to CI. Thanks to [@dipil-saud](https://github.com/dipil-saud)!
99
+
100
+ **Library - Chore**
101
+ - [PR #339](https://github.com/sendgrid/sendgrid-ruby/pull/339): Added rubocop configs and changed source files with rubocop "offenses". Thanks to [@douglaslise](https://github.com/douglaslise)!
102
+ - [PR #338](https://github.com/sendgrid/sendgrid-ruby/pull/338): Refactor getters and setters to use ruby accessors. Thanks to [@douglaslise](https://github.com/douglaslise)!
103
+
104
+
105
+ [2020-08-19] Version 6.3.4
106
+ --------------------------
107
+ **Library - Docs**
108
+ - [PR #319](https://github.com/sendgrid/sendgrid-ruby/pull/319): Run all the *.md files through grammar.ly service and update accordingly. Thanks to [@Sarthakagarwal22](https://github.com/Sarthakagarwal22)!
109
+ - [PR #344](https://github.com/sendgrid/sendgrid-ruby/pull/344): Update example.rb. Thanks to [@kylearoberts](https://github.com/kylearoberts)!
110
+
111
+ **Library - Chore**
112
+ - [PR #432](https://github.com/sendgrid/sendgrid-ruby/pull/432): update GitHub branch references to use HEAD. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
113
+
114
+
115
+ [2020-07-22] Version 6.3.3
116
+ --------------------------
117
+ **Library - Chore**
118
+ - [PR #431](https://github.com/sendgrid/sendgrid-ruby/pull/431): migrate to new default sendgrid-oai branch. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
119
+ - [PR #366](https://github.com/sendgrid/sendgrid-ruby/pull/366): add Rubocop configuration file. Thanks to [@RolandBurrows](https://github.com/RolandBurrows)!
120
+
121
+ **Library - Test**
122
+ - [PR #429](https://github.com/sendgrid/sendgrid-ruby/pull/429): fix the license test and actually run the test scripts. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
123
+
124
+ **Library - Docs**
125
+ - [PR #273](https://github.com/sendgrid/sendgrid-ruby/pull/273): Create a Use Cases Directory and Associated Files. Thanks to [@alanunruh](https://github.com/alanunruh)!
126
+
127
+
128
+ [2020-07-08] Version 6.3.2
129
+ --------------------------
130
+ **Library - Test**
131
+ - [PR #368](https://github.com/sendgrid/sendgrid-ruby/pull/368): add Simplecov Local Enhancements. Thanks to [@RolandBurrows](https://github.com/RolandBurrows)!
132
+
133
+
134
+ [2020-06-25] Version 6.3.1
135
+ --------------------------
136
+
137
+
138
+ [2020-06-24] Version 6.3.0
139
+ --------------------------
140
+ **Library - Feature**
141
+ - [PR #428](https://github.com/sendgrid/sendgrid-ruby/pull/428): adds rack middleware to make request verification easier in rack apps. Thanks to [@philnash](https://github.com/philnash)!
142
+ - [PR #425](https://github.com/sendgrid/sendgrid-ruby/pull/425): verify signature from event webhook. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
143
+
144
+ **Library - Fix**
145
+ - [PR #427](https://github.com/sendgrid/sendgrid-ruby/pull/427): drop the starkbank dependency. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
146
+
147
+
148
+ [2020-05-13] Version 6.2.1
149
+ --------------------------
150
+ **Library - Fix**
151
+ - [PR #421](https://github.com/sendgrid/sendgrid-ruby/pull/421): migrate to common prism setup. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
152
+
153
+
154
+ [2020-04-29] Version 6.2.0
155
+ --------------------------
156
+ **Library - Feature**
157
+ - [PR #417](https://github.com/sendgrid/sendgrid-ruby/pull/417): add support for Twilio Email. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
158
+
159
+
160
+ [2020-04-15] Version 6.1.4
161
+ --------------------------
162
+ **Library - Fix**
163
+ - [PR #416](https://github.com/sendgrid/sendgrid-ruby/pull/416): correct the User-Agent casing. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
164
+
165
+
166
+ [2020-04-01] Version 6.1.3
167
+ --------------------------
168
+ **Library - Docs**
169
+ - [PR #414](https://github.com/sendgrid/sendgrid-ruby/pull/414): support verbiage for login issues. Thanks to [@adamchasetaylor](https://github.com/adamchasetaylor)!
170
+
171
+ **Library - Chore**
172
+ - [PR #413](https://github.com/sendgrid/sendgrid-ruby/pull/413): upgrade rake dev dependency. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
173
+
174
+
175
+ [2020-03-18] Version 6.1.2
176
+ --------------------------
177
+ **Library - Chore**
178
+ - [PR #337](https://github.com/sendgrid/sendgrid-ruby/pull/337): Remove unnecessary require statements. Thanks to [@moutten](https://github.com/moutten)!
179
+ - [PR #354](https://github.com/sendgrid/sendgrid-ruby/pull/354): Update Dockerfile ruby version. Thanks to [@Rovel](https://github.com/Rovel)!
180
+
181
+ **Library - Fix**
182
+ - [PR #412](https://github.com/sendgrid/sendgrid-ruby/pull/412): loosen the ruby_http_client version constraint. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
183
+
184
+
185
+ [2020-03-04] Version 6.1.1
186
+ --------------------------
187
+ **Library - Docs**
188
+ - [PR #375](https://github.com/sendgrid/sendgrid-ruby/pull/375): update bug template URL. Thanks to [@divyanshu-rawat](https://github.com/divyanshu-rawat)!
189
+ - [PR #385](https://github.com/sendgrid/sendgrid-ruby/pull/385): Remove announcements (the job posting is filled?). Thanks to [@deyton](https://github.com/deyton)!
190
+
191
+ **Library - Chore**
192
+ - [PR #409](https://github.com/sendgrid/sendgrid-ruby/pull/409): bump `bundler` version to 2.1.2. Thanks to [@chhhris](https://github.com/chhhris)!
193
+ - [PR #408](https://github.com/sendgrid/sendgrid-ruby/pull/408): add Ruby 2.7 to Travis. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
194
+
195
+
196
+ [2020-02-19] Version 6.1.0
197
+ --------------------------
198
+ **Library - Feature**
199
+ - [PR #405](https://github.com/sendgrid/sendgrid-ruby/pull/405): Use latest SendGrid HTTP Client. Thanks to [@saveav](https://github.com/saveav)!
200
+
201
+
202
+ [2020-01-22] Version 6.0.4
203
+ --------------------------
204
+ **Library - Fix**
205
+ - [PR #404](https://github.com/sendgrid/sendgrid-ruby/pull/404): add skip_cleanup flag to fix travis deploy. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
206
+
207
+
208
+ [2020-01-22] Version 6.0.3
209
+ --------------------------
210
+ **Library - Docs**
211
+ - [PR #402](https://github.com/sendgrid/sendgrid-ruby/pull/402): baseline all the templated markdown docs. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
212
+
213
+
214
+ [2020-01-08] Version 6.0.2
215
+ --------------------------
216
+ **Library - Fix**
217
+ - [PR #401](https://github.com/sendgrid/sendgrid-ruby/pull/401): Only try to deploy once to rubygems. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
218
+
219
+
220
+ [2020-01-03] Version 6.0.1
221
+ --------------------------
222
+ **Library - Chore**
223
+ - [PR #400](https://github.com/sendgrid/sendgrid-ruby/pull/400): Add auto-deploy to travis.yml. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
224
+ - [PR #399](https://github.com/sendgrid/sendgrid-ruby/pull/399): Add testing to Makefile. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
225
+ - [PR #396](https://github.com/sendgrid/sendgrid-ruby/pull/396): Adding Makefile to assist with automation. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
226
+
227
+ **Library - Fix**
228
+ - [PR #321](https://github.com/sendgrid/sendgrid-ruby/pull/321): TROUBLESHOOTING.md broken link fix. Thanks to [@arshadkazmi42](https://github.com/arshadkazmi42)!
229
+
230
+
231
+ [2019-06-04] Version 6.0.0
232
+ --------------------------
233
+ ### BREAKING CHANGE
234
+ - [PR #284](https://github.com/sendgrid/sendgrid-ruby/pull/284): The sinatra gem is no longer specified as a dependency of this gem. If you would like to use the inbound processing, please follow the [upgrade guide](UPGRADE.md). Big thanks to [@jjb](https://github.com/jjb) for the PR!
235
+
236
+ ### Added
237
+ - [PR #271](https://github.com/sendgrid/sendgrid-ruby/pull/271): Add ability to impersonate a subuser. Big thanks to [@danilospa](https://github.com/danilospa) for the PR!
238
+ - [PR #278](https://github.com/sendgrid/sendgrid-ruby/pull/278): Make SendGrid permissions management easy. Big thanks to [@sony-mathew](https://github.com/sony-mathew) for the PR!
239
+ - [PR #343](https://github.com/sendgrid/sendgrid-ruby/pull/343) and [PR #345](https://github.com/sendgrid/sendgrid-ruby/pull/345): Update README.md with examples for dynamic templates and corrections to the old legacy template example. Big thanks to [@kylearoberts](https://github.com/kylearoberts) for the PR!
240
+ - [PR #216](https://github.com/sendgrid/sendgrid-ruby/pull/216): Get unassigned IPs example. Big thanks to [@cristianossd](https://github.com/cristianossd) for the PR!
241
+ - [PR #231](https://github.com/sendgrid/sendgrid-ruby/pull/231): Add support for IO objects set as Attachment content. Big thanks to [@awj](https://github.com/awj) for the PR!
242
+ - [PR #232](https://github.com/sendgrid/sendgrid-ruby/pull/232): Add method to check email content for secret keys. Big thanks to [@jaredsilver](https://github.com/jaredsilver) for the PR!
243
+ - [PR #236](https://github.com/sendgrid/sendgrid-ruby/pull/236): Add an IpManagement helper. Big thanks to [@brokenthumbs](https://github.com/brokenthumbs) for the PR!
244
+ - [PR #264](https://github.com/sendgrid/sendgrid-ruby/pull/264): Add Email Statistics helper example. Big thanks to [@jeremyjung](https://github.com/jeremyjung) for the PR!
245
+ - [PR #246](https://github.com/sendgrid/sendgrid-ruby/pull/246): Modified Mail Class calling examples with SendGrid::Mail. Big thanks to [@rohan-techfreak](https://github.com/rohan-techfreak) for the PR!
246
+ - [PR #268](https://github.com/sendgrid/sendgrid-ruby/pull/268): Added Code Review to CONTRIBUTING.md. Big thanks to [@mptap](https://github.com/mptap) for the PR!
247
+ - [PR #276](https://github.com/sendgrid/sendgrid-ruby/pull/276): Codebase Improvement: Use attr_accessor instead of getters and setters. Big thanks to [@rahul26goyal](https://github.com/rahul26goyal) for the PR!
248
+ - [PR #365](https://github.com/sendgrid/sendgrid-ruby/pull/365): Add our Developer Experience Engineer career opportunity to the README. Big thanks to [@mptap](https://github.com/mptap) for the PR!
249
+
250
+ ### Fixes
251
+ - [PR #262](https://github.com/sendgrid/sendgrid-ruby/pull/262): Fix CONTRIBUTING.md formatting. Big thanks to [@thepriefy](https://github.com/thepriefy) for the PR!
252
+ - [PR #277](https://github.com/sendgrid/sendgrid-ruby/pull/277): Fix travis warning. Big thanks to [@rahul26goyal](https://github.com/rahul26goyal) for the PR!
253
+ - [PR #303](https://github.com/sendgrid/sendgrid-ruby/pull/303): Update readme tags and fix minor test failures. Big thanks to [@af4ro](https://github.com/af4ro) for the PR!
254
+ - [PR #370](https://github.com/sendgrid/sendgrid-ruby/pull/370): Remove references to "Whitelabel". Big thanks to [@crweiner](https://github.com/crweiner) for the PR!
255
+ - [PR #383](https://github.com/sendgrid/sendgrid-ruby/pull/383): Correct endpoint for single spam report requests. Big thanks to [@bermannoah](https://github.com/bermannoah) for the PR!
256
+
4
257
  ## [5.3.0] - 2018-10-12 ##
5
258
  ### Added
6
259
  - [PR #300](https://github.com/sendgrid/sendgrid-ruby/pull/300): Support for Dynamic Templates. Big thanks to [@nedcampion](https://github.com/nedcampion) for the PR!
@@ -19,7 +272,7 @@ All notable changes to this project will be documented in this file.
19
272
 
20
273
  ## [5.2.0] - 2017-10-30 ##
21
274
  ### Added
22
- - PR #234: Helpers for email statistics - global, category, subuser
275
+ - PR #234: Helpers for email statistics - global, category, subuser
23
276
  - Thanks to [Awin Abi](https://github.com/awinabi) for the pull request!
24
277
 
25
278
  ## [5.1.0] - 2017-9-1 ##
@@ -45,7 +298,7 @@ All notable changes to this project will be documented in this file.
45
298
  - `mail.headers` becomes `mail.add_header()`
46
299
  - `mail.categories` becomes `mail.add_category()`
47
300
  - `mail.custom_args` becomes `mail.custom_args()`
48
- - For a full example of usage, please [see here](https://github.com/sendgrid/sendgrid-ruby/blob/master/examples/helpers/mail/example.rb#L21).
301
+ - For a full example of usage, please [see here](examples/helpers/mail/example.rb#L21).
49
302
 
50
303
  ## [4.3.3] - 2017-5-2
51
304
  ### Update
@@ -56,7 +309,7 @@ All notable changes to this project will be documented in this file.
56
309
  ## [4.3.2] - 2017-5-1 ##
57
310
  ### Fixes
58
311
  - #161: Fixed problematic Sinatra dependency
59
- - Brings back Rails 4 compatibility (and Rack 1.x applications, in general), also removes release candidate version constraint (both broken in #160). Moreover, ensures that tests are run against two major Sinatra versions, which should protect from compatibility issues in future, somewhat. Related issue: #159.
312
+ - Brings back Rails 4 compatibility (and Rack 1.x applications, in general), also removes release candidate version constraint (both broken in #160). Moreover, ensures that tests are run against two major Sinatra versions, which should protect from compatibility issues in the future, somewhat. Related issue: #159.
60
313
  - Thanks to [Sebastian Skałacki](https://github.com/skalee) for the pull request!
61
314
 
62
315
  ## [4.3.1] - 2017-4-12 ##
@@ -68,7 +321,7 @@ All notable changes to this project will be documented in this file.
68
321
  ## [4.3.0] - 2017-4-12 ##
69
322
  ### Added
70
323
  - #70: Adds an account settings management helper object
71
- - See the [helper README](https://github.com/sendgrid/sendgrid-ruby/tree/master/lib/sendgrid/helpers/settings) for details
324
+ - See the [helper README](lib/sendgrid/helpers/settings) for details
72
325
  - Thanks to [Kyle Kern](https://github.com/kernkw) for the pull request!
73
326
 
74
327
  ## [4.2.1] - 2017-4-10 ##
@@ -78,8 +331,8 @@ All notable changes to this project will be documented in this file.
78
331
 
79
332
  ## [4.2.0] - 2017-4-10 ##
80
333
  ### Added
81
- - #148: Set api_key to empty string
82
- - This makes creating an API key for a SendGrid subuser who does not have an API key easier. See #146 for details
334
+ - #148: Set api_key to an empty string
335
+ - This makes creating an API key for a SendGrid sub-user who does not have an API key easier. See #146 for details
83
336
  - Thanks to [Adam Beck](https://github.com/Gwash3189) for the pull request!
84
337
 
85
338
  ## [4.1.1] - 2017-4-6 ##
@@ -120,7 +373,7 @@ All notable changes to this project will be documented in this file.
120
373
  ## [4.0.3] - 2016-08-24 ##
121
374
  ### Added
122
375
  - Table of Contents in the README
123
- - Added a [USE_CASES.md](https://github.com/sendgrid/sendgrid-ruby/blob/master/USE_CASES.md) section, with the first use case example for transactional templates
376
+ - Added a [USE_CASES.md](USE_CASES.md) section, with the first use case example for transactional templates
124
377
 
125
378
  ## [4.0.2] - 2016-07-26 ##
126
379
  ### Fixed
@@ -128,7 +381,7 @@ All notable changes to this project will be documented in this file.
128
381
 
129
382
  ## [4.0.1] - 2016-07-25 ##
130
383
  ### Added
131
- - [Troubleshooting](https://github.com/sendgrid/sendgrid-ruby/blob/master/TROUBLESHOOTING.md) section
384
+ - [Troubleshooting](TROUBLESHOOTING.md) section
132
385
 
133
386
  ## [4.0.0] - 2016-07-23 ##
134
387
  ### BREAKING CHANGE