sendgrid-ruby 5.3.0 → 6.7.0

Sign up to get free protection for your applications and to get access to all the features.
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