attio-rails 0.1.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d1ec6aaac56e44c5907ee9287243120a161316e1ad5bf367bdfe1dca11d0e6b
4
- data.tar.gz: 2989026d88094d49cac337ae34102407f3d5924a5274a2188e7c50bff5f5395a
3
+ metadata.gz: 5a8102663f11e79d1701d5535c84d290bbe469eecff5dc9dc184cd32d3cbb6f1
4
+ data.tar.gz: 9c44c1dfec3c6ac14507073dadafad96d2c8778f7243476324244757a13da768
5
5
  SHA512:
6
- metadata.gz: 5c8687f15e21c4a19c39c442afc9425fa5cd9393d3c5de64609242c756dc9ea173a77b94254250f24f132b4f1c8a133f5daeb5c183bbc89188695495d1b17310
7
- data.tar.gz: 8ed8693b3377afa6954ba70b4e4cd8adeb6dbda87f6cb88df0ddc3f4877efe0cdfa34915799f499ce583137d192f925469e399ede25e4234826129cb653273c7
6
+ metadata.gz: 8b36523aa233614f1d9ce43ad20b18080c7459f6bda2e2da67114b926a2dfa10a60cf569e9866ca86a644032daf8c27b6050bd7e99e57366202b5ef8e74255e9
7
+ data.tar.gz: db16d544bcdd62cd6f9f7434c203d252b15eeafb2541a84d57b1196901f3c0ea6a3ac8682b2fc903a38cd8b978e6458208a3380b262374417bc252e2dbf7faf0
@@ -1,4 +1,4 @@
1
- name: Release
1
+ name: Build and Publish
2
2
 
3
3
  on:
4
4
  push:
@@ -6,7 +6,7 @@ on:
6
6
  - 'v*.*.*'
7
7
 
8
8
  jobs:
9
- release:
9
+ build-and-publish:
10
10
  runs-on: ubuntu-latest
11
11
 
12
12
  permissions:
@@ -30,7 +30,7 @@ jobs:
30
30
  mkdir -p ~/.gem
31
31
  cat > ~/.gem/credentials << EOF
32
32
  ---
33
- :rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
33
+ :rubygems_api_key: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
34
34
  EOF
35
35
  chmod 0600 ~/.gem/credentials
36
36
 
@@ -58,13 +58,3 @@ jobs:
58
58
  env:
59
59
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60
60
 
61
- - name: Update GitHub Pages with documentation
62
- run: |
63
- git config --local user.email "action@github.com"
64
- git config --local user.name "GitHub Action"
65
- git checkout --orphan gh-pages
66
- git rm -rf .
67
- cp -r docs/* .
68
- git add -A
69
- git commit -m "Update documentation for ${{ github.ref_name }}"
70
- git push origin gh-pages --force
@@ -48,7 +48,7 @@ jobs:
48
48
 
49
49
  - name: Upload coverage to Codecov
50
50
  if: matrix.ruby-version == '3.4' && matrix.rails-version == '8.0'
51
- uses: codecov/codecov-action@v4
51
+ uses: codecov/codecov-action@v5
52
52
  with:
53
53
  files: ./coverage/coverage.xml,./coverage/.resultset.json
54
54
  flags: unittests
@@ -2,7 +2,7 @@ name: Documentation
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ main ]
5
+ branches: [ master ]
6
6
  workflow_dispatch:
7
7
 
8
8
  permissions:
@@ -28,7 +28,7 @@ jobs:
28
28
  bundler-cache: true
29
29
 
30
30
  - name: Setup Pages
31
- uses: actions/configure-pages@v4
31
+ uses: actions/configure-pages@v5
32
32
 
33
33
  - name: Generate documentation
34
34
  run: |
data/.rubocop.yml CHANGED
@@ -1,65 +1,411 @@
1
- require:
2
- - rubocop-rspec
3
- - rubocop-rails
1
+ inherit_from: .rubocop_todo.yml
4
2
 
5
3
  AllCops:
4
+ DisplayCopNames: true
6
5
  TargetRubyVersion: 3.0
7
6
  NewCops: enable
8
7
  Exclude:
9
- - 'bin/**/*'
10
- - 'db/**/*'
11
8
  - 'vendor/**/*'
12
- - 'spec/dummy/**/*'
13
- - 'node_modules/**/*'
9
+ - 'bin/**/*'
14
10
  - 'tmp/**/*'
15
- - '.git/**/*'
11
+ - 'spec/support/webmock_stubs.rb'
16
12
 
17
- # Style
18
13
  Style/Documentation:
19
14
  Enabled: false
20
15
 
21
- Style/StringLiterals:
22
- EnforcedStyle: double_quotes
16
+ Layout/CaseIndentation:
17
+ EnforcedStyle: end
23
18
 
24
- Style/FrozenStringLiteralComment:
25
- Enabled: true
19
+ Layout/FirstArrayElementIndentation:
20
+ EnforcedStyle: consistent
21
+
22
+ Layout/FirstHashElementIndentation:
23
+ EnforcedStyle: consistent
26
24
 
27
- # Layout
28
25
  Layout/LineLength:
29
26
  Max: 120
30
27
  Exclude:
31
- - 'spec/**/*'
28
+ - "lib/stripe/object_types.rb"
29
+ - "lib/stripe/stripe_client.rb"
30
+ - "lib/stripe/resources/**/*.rb"
31
+ - "lib/stripe/services/**/*.rb"
32
+ - "test/**/*.rb"
33
+ - "*.gemspec"
34
+
35
+ Lint/MissingSuper:
36
+ Exclude:
37
+ - "lib/stripe/resources/**/*.rb"
38
+ - "lib/stripe/services/**/*.rb"
39
+ - "test/stripe/request_params_test.rb"
40
+
41
+ Metrics/AbcSize:
42
+ Enabled: false
32
43
 
33
- # Metrics
34
44
  Metrics/BlockLength:
45
+ Max: 40
46
+ Exclude:
47
+ # `context` in tests are blocks and get quite large, so exclude the test
48
+ # directory from having to adhere to this rule.
49
+ - "test/**/*.rb"
50
+ - "spec/**/*.rb"
51
+ - "*.gemspec"
52
+
53
+ Metrics/ClassLength:
54
+ Enabled: false
55
+
56
+ # There are several methods with many branches in api_requestor due to
57
+ # request logic.
58
+ Metrics/CyclomaticComplexity:
35
59
  Exclude:
36
- - 'spec/**/*'
37
- - '*.gemspec'
38
- - 'lib/generators/**/*'
60
+ - "lib/stripe/api_requestor.rb"
61
+ - "lib/stripe/util.rb"
62
+
63
+ Metrics/PerceivedComplexity:
64
+ Exclude:
65
+ - "lib/stripe/api_requestor.rb"
66
+ - "lib/stripe/stripe_object.rb"
67
+ - "lib/stripe/util.rb"
39
68
 
40
69
  Metrics/MethodLength:
41
- Max: 20
70
+ # There's one long method in `NestedResource`. If we want to truncate it a little,
71
+ # we could move this to be closer to ~30 (but the default of 10 is probably too short).
72
+ Max: 55
73
+ Exclude:
74
+ - "lib/stripe/services/v1_services.rb"
75
+ - "lib/stripe/event_types.rb"
76
+ - "lib/stripe/api_requestor.rb"
77
+ AllowedMethods:
78
+ - initialize
42
79
 
43
- Metrics/ClassLength:
44
- Max: 150
80
+ # TODO(xavdid): remove this once the first `basil` release is out
81
+ Naming/MethodName:
82
+ # these endpoints are removed soon so we pulled their overrides, meaning their names are wrong
83
+ # that won't make it out to users, but it's breaking linting/formatting in the meantime
84
+ Exclude:
85
+ - "lib/stripe/services/invoice_service.rb"
86
+ - "lib/stripe/resources/invoice.rb"
45
87
 
46
- Metrics/AbcSize:
47
- Max: 20
88
+ Metrics/ModuleLength:
89
+ Enabled: false
90
+
91
+ Metrics/ParameterLists:
92
+ # There's 2 methods in `StripeClient` that have long parameter lists.
93
+ Max: 8
94
+ # Optional parameters should be consistent across libraries, we need not be
95
+ # concerned about this. Was introduced with adding `base_address`
96
+ Exclude:
97
+ - "lib/stripe/api_operations/request.rb"
98
+ - "lib/stripe/stripe_object.rb"
99
+ - "lib/stripe/stripe_client.rb"
100
+ - "lib/stripe/resources/**/*.rb"
101
+ - "lib/stripe/services/**/*.rb"
102
+
103
+ Naming/MethodParameterName:
104
+ # We have many parameters that are less than 3 characters for tax codes
105
+ Exclude:
106
+ - "lib/stripe/resources/**/*.rb"
107
+ - "lib/stripe/services/**/*.rb"
48
108
 
49
- # Rails specific
50
- Rails/ApplicationRecord:
109
+ Naming/VariableNumber:
110
+ # We use a variety of variable number syntaxes
51
111
  Exclude:
52
- - 'spec/dummy/**/*'
112
+ - "lib/stripe/resources/**/*.rb"
113
+ - "lib/stripe/services/**/*.rb"
114
+
115
+ Style/AccessModifierDeclarations:
116
+ EnforcedStyle: inline
117
+
118
+ Style/AsciiComments:
119
+ Enabled: false
120
+
121
+ Style/FrozenStringLiteralComment:
122
+ EnforcedStyle: always
53
123
 
54
- Rails/SkipsModelValidations:
124
+ Style/HashEachMethods:
125
+ Enabled: true
126
+
127
+ Style/HashTransformKeys:
128
+ Enabled: true
129
+
130
+ Style/HashTransformValues:
131
+ Enabled: true
132
+
133
+ Style/NumericPredicate:
55
134
  Enabled: false
56
135
 
57
- # RSpec specific
58
- RSpec/ExampleLength:
59
- Max: 10
136
+ Style/StringLiterals:
137
+ EnforcedStyle: double_quotes
138
+
139
+ Style/TrailingCommaInArrayLiteral:
140
+ EnforcedStyleForMultiline: consistent_comma
60
141
 
61
- RSpec/MultipleExpectations:
62
- Max: 3
142
+ Style/TrailingCommaInHashLiteral:
143
+ EnforcedStyleForMultiline: consistent_comma
63
144
 
64
- RSpec/NestedGroups:
65
- Max: 3
145
+ Gemspec/DeprecatedAttributeAssignment: # new in 1.30
146
+ Enabled: true
147
+ Gemspec/DevelopmentDependencies: # new in 1.44
148
+ Enabled: true
149
+ Gemspec/RequireMFA: # new in 1.23
150
+ Enabled: false
151
+ Layout/LineContinuationLeadingSpace: # new in 1.31
152
+ Enabled: true
153
+ Layout/LineContinuationSpacing: # new in 1.31
154
+ Enabled: true
155
+ Layout/LineEndStringConcatenationIndentation: # new in 1.18
156
+ Enabled: true
157
+ Layout/SpaceBeforeBrackets: # new in 1.7
158
+ Enabled: true
159
+ Lint/AmbiguousAssignment: # new in 1.7
160
+ Enabled: true
161
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
162
+ Enabled: true
163
+ Lint/AmbiguousRange: # new in 1.19
164
+ Enabled: true
165
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
166
+ Enabled: true
167
+ Lint/DeprecatedConstants: # new in 1.8
168
+ Enabled: true
169
+ Lint/DuplicateBranch: # new in 1.3
170
+ Enabled: true
171
+ Lint/DuplicateMagicComment: # new in 1.37
172
+ Enabled: true
173
+ Lint/DuplicateMatchPattern: # new in 1.50
174
+ Enabled: true
175
+ Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
176
+ Enabled: true
177
+ Lint/EmptyBlock: # new in 1.1
178
+ Enabled: true
179
+ Lint/EmptyClass: # new in 1.3
180
+ Enabled: true
181
+ Lint/EmptyInPattern: # new in 1.16
182
+ Enabled: true
183
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
184
+ Enabled: true
185
+ Lint/LambdaWithoutLiteralBlock: # new in 1.8
186
+ Enabled: true
187
+ Lint/MixedCaseRange: # new in 1.53
188
+ Enabled: true
189
+ Lint/NoReturnInBeginEndBlocks: # new in 1.2
190
+ Enabled: true
191
+ Lint/NonAtomicFileOperation: # new in 1.31
192
+ Enabled: true
193
+ Lint/NumberedParameterAssignment: # new in 1.9
194
+ Enabled: true
195
+ Lint/OrAssignmentToConstant: # new in 1.9
196
+ Enabled: true
197
+ Lint/RedundantDirGlobSort: # new in 1.8
198
+ Enabled: true
199
+ Lint/RedundantRegexpQuantifiers: # new in 1.53
200
+ Enabled: true
201
+ Lint/RefinementImportMethods: # new in 1.27
202
+ Enabled: true
203
+ Lint/RequireRangeParentheses: # new in 1.32
204
+ Enabled: true
205
+ Lint/RequireRelativeSelfPath: # new in 1.22
206
+ Enabled: true
207
+ Lint/SymbolConversion: # new in 1.9
208
+ Enabled: true
209
+ Lint/ToEnumArguments: # new in 1.1
210
+ Enabled: true
211
+ Lint/TripleQuotes: # new in 1.9
212
+ Enabled: true
213
+ Lint/UnexpectedBlockArity: # new in 1.5
214
+ Enabled: true
215
+ Lint/UnmodifiedReduceAccumulator: # new in 1.1
216
+ Enabled: true
217
+ Lint/UselessAssignment:
218
+ Exclude:
219
+ - "test/stripe/generated_examples_test.rb"
220
+ Lint/UselessRescue: # new in 1.43
221
+ Enabled: true
222
+ Lint/UselessRuby2Keywords: # new in 1.23
223
+ Enabled: true
224
+ Metrics/CollectionLiteralLength: # new in 1.47
225
+ Enabled: true
226
+ Naming/BlockForwarding: # new in 1.24
227
+ Enabled: true
228
+ Security/CompoundHash: # new in 1.28
229
+ Enabled: true
230
+ Security/IoMethods: # new in 1.22
231
+ Enabled: true
232
+ Style/ArgumentsForwarding: # new in 1.1
233
+ Enabled: true
234
+ Style/ArrayIntersect: # new in 1.40
235
+ Enabled: true
236
+ Style/CollectionCompact: # new in 1.2
237
+ Enabled: true
238
+ Style/ComparableClamp: # new in 1.44
239
+ Enabled: true
240
+ Style/ConcatArrayLiterals: # new in 1.41
241
+ Enabled: true
242
+ Style/DataInheritance: # new in 1.49
243
+ Enabled: true
244
+ Style/DirEmpty: # new in 1.48
245
+ Enabled: true
246
+ Style/DocumentDynamicEvalDefinition: # new in 1.1
247
+ Enabled: true
248
+ Style/EmptyHeredoc: # new in 1.32
249
+ Enabled: true
250
+ Style/EndlessMethod: # new in 1.8
251
+ Enabled: true
252
+ Style/EnvHome: # new in 1.29
253
+ Enabled: true
254
+ Style/ExactRegexpMatch: # new in 1.51
255
+ Enabled: true
256
+ Style/FetchEnvVar: # new in 1.28
257
+ Enabled: true
258
+ Style/FileEmpty: # new in 1.48
259
+ Enabled: true
260
+ Style/FileRead: # new in 1.24
261
+ Enabled: true
262
+ Style/FileWrite: # new in 1.24
263
+ Enabled: true
264
+ Style/HashConversion: # new in 1.10
265
+ Enabled: true
266
+ Style/HashExcept: # new in 1.7
267
+ Enabled: true
268
+ Style/IfWithBooleanLiteralBranches: # new in 1.9
269
+ Enabled: true
270
+ Style/InPatternThen: # new in 1.16
271
+ Enabled: true
272
+ Style/MagicCommentFormat: # new in 1.35
273
+ Enabled: true
274
+ Style/MapCompactWithConditionalBlock: # new in 1.30
275
+ Enabled: true
276
+ Style/MapToHash: # new in 1.24
277
+ Enabled: true
278
+ Style/MapToSet: # new in 1.42
279
+ Enabled: true
280
+ Style/MinMaxComparison: # new in 1.42
281
+ Enabled: true
282
+ Style/MultilineInPatternThen: # new in 1.16
283
+ Enabled: true
284
+ Style/NegatedIfElseCondition: # new in 1.2
285
+ Enabled: true
286
+ Style/NestedFileDirname: # new in 1.26
287
+ Enabled: true
288
+ Style/NilLambda: # new in 1.3
289
+ Enabled: true
290
+ Style/NumberedParameters: # new in 1.22
291
+ Enabled: true
292
+ Style/NumberedParametersLimit: # new in 1.22
293
+ Enabled: true
294
+ Style/ObjectThen: # new in 1.28
295
+ Enabled: true
296
+ Style/OpenStructUse: # new in 1.23
297
+ Enabled: true
298
+ Style/OperatorMethodCall: # new in 1.37
299
+ Enabled: true
300
+ Style/QuotedSymbols: # new in 1.16
301
+ Enabled: true
302
+ Style/RedundantArgument: # new in 1.4
303
+ Enabled: true
304
+ Style/RedundantArrayConstructor: # new in 1.52
305
+ Enabled: true
306
+ Style/RedundantConstantBase: # new in 1.40
307
+ Enabled: true
308
+ Style/RedundantCurrentDirectoryInPath: # new in 1.53
309
+ Enabled: true
310
+ Style/RedundantDoubleSplatHashBraces: # new in 1.41
311
+ Enabled: true
312
+ Style/RedundantEach: # new in 1.38
313
+ Enabled: true
314
+ Style/RedundantFilterChain: # new in 1.52
315
+ Enabled: true
316
+ Style/RedundantHeredocDelimiterQuotes: # new in 1.45
317
+ Enabled: true
318
+ Style/RedundantInitialize: # new in 1.27
319
+ Enabled: true
320
+ Style/RedundantLineContinuation: # new in 1.49
321
+ Enabled: true
322
+ Style/RedundantRegexpArgument: # new in 1.53
323
+ Enabled: true
324
+ Style/RedundantRegexpConstructor: # new in 1.52
325
+ Enabled: true
326
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
327
+ Enabled: true
328
+ Style/RedundantStringEscape: # new in 1.37
329
+ Enabled: true
330
+ Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
331
+ Enabled: true
332
+ Style/SelectByRegexp: # new in 1.22
333
+ Enabled: true
334
+ Style/SingleLineDoEndBlock: # new in 1.57
335
+ Enabled: true
336
+ Style/StringChars: # new in 1.12
337
+ Enabled: true
338
+ Style/SwapValues: # new in 1.1
339
+ Enabled: true
340
+ Style/YAMLFileRead: # new in 1.53
341
+ Enabled: true
342
+ Gemspec/AddRuntimeDependency: # new in 1.65
343
+ Enabled: true
344
+ Lint/ArrayLiteralInRegexp: # new in 1.71
345
+ Enabled: true
346
+ Lint/ConstantReassignment: # new in 1.70
347
+ Enabled: true
348
+ Lint/CopDirectiveSyntax: # new in 1.72
349
+ Enabled: true
350
+ Lint/DuplicateSetElement: # new in 1.67
351
+ Enabled: true
352
+ Lint/HashNewWithKeywordArgumentsAsDefault: # new in 1.69
353
+ Enabled: true
354
+ Lint/ItWithoutArgumentsInBlock: # new in 1.59
355
+ Enabled: true
356
+ Lint/LiteralAssignmentInCondition: # new in 1.58
357
+ Enabled: true
358
+ Lint/NumericOperationWithConstantResult: # new in 1.69
359
+ Enabled: true
360
+ Lint/RedundantTypeConversion: # new in 1.72
361
+ Enabled: true
362
+ Lint/SharedMutableDefault: # new in 1.70
363
+ Enabled: true
364
+ Lint/SuppressedExceptionInNumberConversion: # new in 1.72
365
+ Enabled: true
366
+ Lint/UnescapedBracketInRegexp: # new in 1.68
367
+ Enabled: true
368
+ Lint/UselessConstantScoping: # new in 1.72
369
+ Enabled: true
370
+ Lint/UselessDefined: # new in 1.69
371
+ Enabled: true
372
+ Lint/UselessNumericOperation: # new in 1.66
373
+ Enabled: true
374
+ Style/AmbiguousEndlessMethodDefinition: # new in 1.68
375
+ Enabled: true
376
+ Style/BitwisePredicate: # new in 1.68
377
+ Enabled: true
378
+ Style/CombinableDefined: # new in 1.68
379
+ Enabled: true
380
+ Style/ComparableBetween: # new in 1.74
381
+ Enabled: true
382
+ Style/DigChain: # new in 1.69
383
+ Enabled: true
384
+ Style/FileNull: # new in 1.69
385
+ Enabled: true
386
+ Style/FileTouch: # new in 1.69
387
+ Enabled: true
388
+ Style/HashFetchChain: # new in 1.75
389
+ Enabled: true
390
+ Style/HashSlice: # new in 1.71
391
+ Enabled: true
392
+ Style/ItAssignment: # new in 1.70
393
+ Enabled: true
394
+ Style/ItBlockParameter: # new in 1.75
395
+ Enabled: true
396
+ Style/KeywordArgumentsMerging: # new in 1.68
397
+ Enabled: true
398
+ Style/MapIntoArray: # new in 1.63
399
+ Enabled: true
400
+ Style/RedundantFormat: # new in 1.72
401
+ Enabled: true
402
+ Style/RedundantInterpolationUnfreeze: # new in 1.66
403
+ Enabled: true
404
+ Style/SafeNavigationChainLength: # new in 1.68
405
+ Enabled: true
406
+ Style/SendWithLiteralMethodName: # new in 1.64
407
+ Enabled: true
408
+ Style/SuperArguments: # new in 1.64
409
+ Enabled: true
410
+ Style/SuperWithArgsParentheses: # new in 1.58
411
+ Enabled: true
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,2 @@
1
+ # This configuration was generated for compatibility with Stripe's style guide
2
+ # Auto-generated placeholder for RuboCop TODO items
data/CHANGELOG.md CHANGED
@@ -7,6 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2025-01-11
11
+
12
+ ### Added
13
+ - **BatchSync** class for efficient bulk synchronization operations
14
+ - **ActiveJob integration** with dedicated `AttioSyncJob` for background processing
15
+ - **Callbacks support** - `before_attio_sync` and `after_attio_sync` hooks
16
+ - **Transform support** - Custom attribute transformation before syncing
17
+ - **Error handlers** - Configurable error handling with `:on_error` option
18
+ - **RSpec test helpers** - Comprehensive testing utilities for Attio operations
19
+ - **Concepts documentation** - Detailed architecture guide with Mermaid diagrams
20
+ - **Configuration enhancements**:
21
+ - `queue` option for ActiveJob queue configuration
22
+ - `raise_on_missing_record` option for missing record behavior
23
+ - **100% test coverage** with comprehensive test suite
24
+
25
+ ### Changed
26
+ - Enhanced `Syncable` concern with callbacks and transforms
27
+ - Improved error handling with environment-specific behavior
28
+ - Renamed GitHub Actions workflow from `release.yml` to `build-and-publish.yml`
29
+ - Updated README with comprehensive examples and usage patterns
30
+
31
+ ### Fixed
32
+ - RuboCop linting issues for better code quality
33
+ - Test coverage gaps - achieved 100% coverage
34
+
35
+ ## [0.1.2] - 2025-01-11
36
+
37
+ ### Changed
38
+ - Updated attio dependency to 0.1.3
39
+ - Applied Stripe's RuboCop configuration
40
+ - Achieved 100% test coverage
41
+
42
+ ### Fixed
43
+ - All RuboCop offenses auto-corrected
44
+ - Test failures resolved
45
+
10
46
  ## [0.1.1] - 2025-01-11
11
47
 
12
48
  ### Added
@@ -44,5 +80,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
44
80
  - Batch operations support
45
81
  - Custom field transformations
46
82
 
47
- [Unreleased]: https://github.com/idl3/attio-rails/compare/v0.1.0...HEAD
83
+ [Unreleased]: https://github.com/idl3/attio-rails/compare/v0.2.0...HEAD
84
+ [0.2.0]: https://github.com/idl3/attio-rails/compare/v0.1.2...v0.2.0
85
+ [0.1.2]: https://github.com/idl3/attio-rails/compare/v0.1.1...v0.1.2
86
+ [0.1.1]: https://github.com/idl3/attio-rails/compare/v0.1.0...v0.1.1
48
87
  [0.1.0]: https://github.com/idl3/attio-rails/releases/tag/v0.1.0