my_api_client 2.0.0 → 2.1.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: f8d67936b7bbacf5cfe58e3c642d532be762848659f1839a920ea40795414931
4
- data.tar.gz: c290910ca41637527fac5461a280d6ce3a22ba680fccb67f5eff4593a0cbea96
3
+ metadata.gz: 8c810e4644f4b3276f9be5b136b196040081204ffd2c1a4590d35f75f7267f37
4
+ data.tar.gz: a20a2ad006d18a8211ab056d760d9454f6883dcd6e4f88fcdcda38f6f9bb524b
5
5
  SHA512:
6
- metadata.gz: dea3cf5c8b42477b130ea300427be44275c2e040ad167c0ff5052e77c5d8c41fd819d1352c15b7ce2051fe652114fb007e663e580ce08958f1c1a27400e4cdcb
7
- data.tar.gz: 39d3f36f90c2e3f8c0099e9aa117e76430c9b72a20780edf0ebb21317e435b2f92abb16bbf6abe4b3eb147f6fe333d2e35fa4ad7de919def333993118597b202
6
+ metadata.gz: 3c6a1873fb33961931afccaee071ad8c2f734c1bcf3d29937274eae92cac18727a881edb00cd02890a6e7d566d1e8168b12a5cf8c5b124ef61aff27a960e9a50
7
+ data.tar.gz: c78a1a59b9f50c89b4489a23fd6fb501727f4e412b184acf5ae9f8be6fe7d1a93a621f1620bc67a25b20193c7a9f766b9d0fdc9642b0e488d45c3a1eeca6b81a
@@ -1,4 +1,7 @@
1
1
  version: 2
2
+ # cooldown: defer version bumps until a release has aged, reducing the risk of
3
+ # adopting a compromised or broken version right after publication. Longer for
4
+ # higher-impact bumps (major > minor > patch).
2
5
  updates:
3
6
  - package-ecosystem: bundler
4
7
  directory: "/"
@@ -6,6 +9,11 @@ updates:
6
9
  interval: weekly
7
10
  time: "08:00"
8
11
  timezone: Asia/Tokyo
12
+ cooldown:
13
+ default-days: 7
14
+ semver-major-days: 14
15
+ semver-minor-days: 7
16
+ semver-patch-days: 3
9
17
  open-pull-requests-limit: 10
10
18
  assignees:
11
19
  - ryz310
@@ -21,6 +29,11 @@ updates:
21
29
  interval: weekly
22
30
  time: "08:00"
23
31
  timezone: Asia/Tokyo
32
+ cooldown:
33
+ default-days: 7
34
+ semver-major-days: 14
35
+ semver-minor-days: 7
36
+ semver-patch-days: 3
24
37
  open-pull-requests-limit: 10
25
38
  assignees:
26
39
  - ryz310
@@ -32,6 +45,11 @@ updates:
32
45
  interval: weekly
33
46
  time: "08:00"
34
47
  timezone: Asia/Tokyo
48
+ cooldown:
49
+ default-days: 7
50
+ semver-major-days: 14
51
+ semver-minor-days: 7
52
+ semver-patch-days: 3
35
53
  open-pull-requests-limit: 10
36
54
  assignees:
37
55
  - ryz310
@@ -43,6 +61,11 @@ updates:
43
61
  interval: weekly
44
62
  time: "08:00"
45
63
  timezone: Asia/Tokyo
64
+ cooldown:
65
+ default-days: 7
66
+ semver-major-days: 14
67
+ semver-minor-days: 7
68
+ semver-patch-days: 3
46
69
  open-pull-requests-limit: 10
47
70
  assignees:
48
71
  - ryz310
@@ -54,6 +77,11 @@ updates:
54
77
  interval: weekly
55
78
  time: "08:00"
56
79
  timezone: Asia/Tokyo
80
+ cooldown:
81
+ default-days: 7
82
+ semver-major-days: 14
83
+ semver-minor-days: 7
84
+ semver-patch-days: 3
57
85
  open-pull-requests-limit: 10
58
86
  assignees:
59
87
  - ryz310
@@ -65,6 +93,11 @@ updates:
65
93
  interval: weekly
66
94
  time: "08:00"
67
95
  timezone: Asia/Tokyo
96
+ cooldown:
97
+ default-days: 7
98
+ semver-major-days: 14
99
+ semver-minor-days: 7
100
+ semver-patch-days: 3
68
101
  open-pull-requests-limit: 10
69
102
  assignees:
70
103
  - ryz310
@@ -76,6 +109,11 @@ updates:
76
109
  interval: weekly
77
110
  time: "08:00"
78
111
  timezone: Asia/Tokyo
112
+ cooldown:
113
+ default-days: 7
114
+ semver-major-days: 14
115
+ semver-minor-days: 7
116
+ semver-patch-days: 3
79
117
  open-pull-requests-limit: 10
80
118
  assignees:
81
119
  - ryz310
@@ -88,6 +126,11 @@ updates:
88
126
  day: monday
89
127
  time: "08:00"
90
128
  timezone: Asia/Tokyo
129
+ cooldown:
130
+ default-days: 7
131
+ semver-major-days: 14
132
+ semver-minor-days: 7
133
+ semver-patch-days: 3
91
134
  open-pull-requests-limit: 10
92
135
  assignees:
93
136
  - ryz310
@@ -100,6 +143,11 @@ updates:
100
143
  day: monday
101
144
  time: "08:00"
102
145
  timezone: Asia/Tokyo
146
+ cooldown:
147
+ default-days: 7
148
+ semver-major-days: 14
149
+ semver-minor-days: 7
150
+ semver-patch-days: 3
103
151
  open-pull-requests-limit: 10
104
152
  assignees:
105
153
  - ryz310
@@ -18,7 +18,7 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby_version: ['3.2', '3.3', '3.4', '4.0']
21
+ ruby_version: ['3.3', '3.4', '4.0']
22
22
  rails_version: ['7.2', '8.0', '8.1']
23
23
  bundler_option:
24
24
  - name: with_integrations
@@ -28,10 +28,12 @@ jobs:
28
28
  with: ""
29
29
  without: integrations
30
30
  steps:
31
- - uses: actions/checkout@v6
31
+ - uses: actions/checkout@v7
32
+ with:
33
+ persist-credentials: false
32
34
 
33
35
  - name: Set up Ruby ${{ matrix.ruby_version }}
34
- uses: ruby/setup-ruby@v1
36
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
35
37
  with:
36
38
  ruby-version: ${{ matrix.ruby_version }}
37
39
  bundler-cache: false
@@ -92,16 +94,18 @@ jobs:
92
94
  strategy:
93
95
  fail-fast: false
94
96
  matrix:
95
- ruby_version: ['3.2', '3.3', '3.4', '4.0']
97
+ ruby_version: ['3.3', '3.4', '4.0']
96
98
  rails_version: ['7.2', '8.0', '8.1']
97
99
  defaults:
98
100
  run:
99
101
  working-directory: rails_app/rails_${{ matrix.rails_version }}
100
102
  steps:
101
- - uses: actions/checkout@v6
103
+ - uses: actions/checkout@v7
104
+ with:
105
+ persist-credentials: false
102
106
 
103
107
  - name: Set up Ruby ${{ matrix.ruby_version }}
104
- uses: ruby/setup-ruby@v1
108
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
105
109
  with:
106
110
  ruby-version: ${{ matrix.ruby_version }}
107
111
  bundler-cache: false
@@ -141,7 +145,9 @@ jobs:
141
145
  name: integration_api_via_docker_compose
142
146
  runs-on: ubuntu-latest
143
147
  steps:
144
- - uses: actions/checkout@v6
148
+ - uses: actions/checkout@v7
149
+ with:
150
+ persist-credentials: false
145
151
 
146
152
  - name: Build and start my_api
147
153
  run: docker compose up -d --build my_api
@@ -184,7 +190,9 @@ jobs:
184
190
  name: my_api_request_specs_via_docker_compose
185
191
  runs-on: ubuntu-latest
186
192
  steps:
187
- - uses: actions/checkout@v6
193
+ - uses: actions/checkout@v7
194
+ with:
195
+ persist-credentials: false
188
196
 
189
197
  - name: Build and start my_api
190
198
  run: docker compose up -d --build my_api
@@ -220,10 +228,12 @@ jobs:
220
228
  rubocop:
221
229
  runs-on: ubuntu-latest
222
230
  steps:
223
- - uses: actions/checkout@v6
231
+ - uses: actions/checkout@v7
232
+ with:
233
+ persist-credentials: false
224
234
 
225
235
  - name: Set up Ruby
226
- uses: ruby/setup-ruby@v1
236
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
227
237
  with:
228
238
  ruby-version: '4.0'
229
239
  bundler-cache: false
@@ -240,10 +250,12 @@ jobs:
240
250
  yardoc:
241
251
  runs-on: ubuntu-latest
242
252
  steps:
243
- - uses: actions/checkout@v6
253
+ - uses: actions/checkout@v7
254
+ with:
255
+ persist-credentials: false
244
256
 
245
257
  - name: Set up Ruby
246
- uses: ruby/setup-ruby@v1
258
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
247
259
  with:
248
260
  ruby-version: '4.0'
249
261
  bundler-cache: false
@@ -279,10 +291,12 @@ jobs:
279
291
  env:
280
292
  QLTY_COVERAGE_TOKEN: ${{ secrets.QLTY_COVERAGE_TOKEN }}
281
293
  steps:
282
- - uses: actions/checkout@v6
294
+ - uses: actions/checkout@v7
295
+ with:
296
+ persist-credentials: false
283
297
 
284
298
  - name: Set up Ruby
285
- uses: ruby/setup-ruby@v1
299
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
286
300
  with:
287
301
  ruby-version: '4.0'
288
302
  bundler-cache: false
@@ -323,7 +337,7 @@ jobs:
323
337
 
324
338
  - name: Upload coverage to Qlty
325
339
  if: ${{ env.QLTY_COVERAGE_TOKEN != '' && hashFiles('coverage/coverage.json') != '' }}
326
- uses: qltysh/qlty-action/coverage@v2
340
+ uses: qltysh/qlty-action/coverage@08a0a862c159eae9b9003081da6663d96efef637 # v2.3.0
327
341
  with:
328
342
  token: ${{ env.QLTY_COVERAGE_TOKEN }}
329
343
  files: coverage/coverage.json
@@ -1,43 +1,95 @@
1
1
  name: Dependabot Auto Merge
2
2
 
3
3
  on:
4
- pull_request_target:
4
+ pull_request:
5
5
  types:
6
6
  - opened
7
7
  - reopened
8
8
  - synchronize
9
9
 
10
- permissions:
11
- contents: write
12
- pull-requests: write
10
+ permissions: {}
13
11
 
14
12
  jobs:
15
13
  enable-automerge-bundler:
16
- if: ${{ github.actor == 'dependabot[bot]' }}
14
+ if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
17
15
  runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: write
18
+ pull-requests: write
18
19
 
19
20
  steps:
20
21
  - name: Fetch Dependabot metadata
21
22
  id: metadata
22
- uses: dependabot/fetch-metadata@v2
23
+ uses: dependabot/fetch-metadata@v3
23
24
  with:
24
25
  github-token: ${{ secrets.GITHUB_TOKEN }}
25
26
 
26
- - name: Enable auto-merge for bundler patch/minor updates (rails_app or direct development)
27
- if: ${{ steps.metadata.outputs.package-ecosystem == 'bundler' && (steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor') && (contains(github.event.pull_request.head.ref, '/rails_app/') || steps.metadata.outputs.dependency-type == 'direct:development') }}
27
+ - name: Validate bundler update safety
28
+ id: guard
29
+ if: ${{ steps.metadata.outputs.package-ecosystem == 'bundler' }}
30
+ env:
31
+ HEAD_REF: ${{ github.event.pull_request.head.ref }}
32
+ UPDATE_TYPE: ${{ steps.metadata.outputs.update-type }}
33
+ DEPENDENCY_TYPE: ${{ steps.metadata.outputs.dependency-type }}
34
+ DEPENDENCY_NAME: ${{ steps.metadata.outputs.dependency-name }}
35
+ DEPENDENCY_NAMES: ${{ steps.metadata.outputs.dependency-names }}
36
+ run: |
37
+ set -euo pipefail
38
+
39
+ safe=false
40
+
41
+ deps="$DEPENDENCY_NAMES"
42
+ if [[ -z "$deps" ]]; then
43
+ deps="$DEPENDENCY_NAME"
44
+ fi
45
+
46
+ rails_involved=false
47
+ while IFS= read -r dep; do
48
+ dep="$(echo "$dep" | xargs)"
49
+ [[ -z "$dep" ]] && continue
50
+ if [[ "$dep" == "rails" ]]; then
51
+ rails_involved=true
52
+ fi
53
+ done < <(echo "$deps" | tr ',' '\n')
54
+
55
+ if [[ "$HEAD_REF" == *"/rails_app/"* ]]; then
56
+ # Verification Rails apps: always auto-merge, except a major bump of the rails gem itself.
57
+ if [[ "$UPDATE_TYPE" == "version-update:semver-major" && "$rails_involved" == "true" ]]; then
58
+ echo "Skip auto-merge: major update of the rails gem in a rails_app verification app."
59
+ safe=false
60
+ else
61
+ safe=true
62
+ fi
63
+ elif [[ "$HEAD_REF" == *"/my_api/"* ]]; then
64
+ # Verification API app: always auto-merge regardless of update type.
65
+ safe=true
66
+ elif [[ ("$UPDATE_TYPE" == "version-update:semver-patch" || "$UPDATE_TYPE" == "version-update:semver-minor") && "$DEPENDENCY_TYPE" == "direct:development" ]]; then
67
+ # The gem itself (root Gemfile): only direct development patch/minor updates.
68
+ safe=true
69
+ else
70
+ echo "Skip auto-merge: gem update does not match auto-merge policy ($UPDATE_TYPE, $DEPENDENCY_TYPE)."
71
+ fi
72
+
73
+ echo "safe=$safe" >> "$GITHUB_OUTPUT"
74
+
75
+ - name: Enable auto-merge for safe bundler updates
76
+ if: ${{ steps.metadata.outputs.package-ecosystem == 'bundler' && steps.guard.outputs.safe == 'true' }}
28
77
  env:
29
78
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30
79
  PR_NUMBER: ${{ github.event.pull_request.number }}
31
80
  run: gh pr merge --repo "$GITHUB_REPOSITORY" --auto --merge "$PR_NUMBER"
32
81
 
33
82
  enable-automerge-github-actions:
34
- if: ${{ github.actor == 'dependabot[bot]' }}
83
+ if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
35
84
  runs-on: ubuntu-latest
85
+ permissions:
86
+ contents: write
87
+ pull-requests: write
36
88
 
37
89
  steps:
38
90
  - name: Fetch Dependabot metadata
39
91
  id: metadata
40
- uses: dependabot/fetch-metadata@v2
92
+ uses: dependabot/fetch-metadata@v3
41
93
  with:
42
94
  github-token: ${{ secrets.GITHUB_TOKEN }}
43
95
 
@@ -18,13 +18,15 @@ jobs:
18
18
  release:
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
- - uses: actions/checkout@v6
21
+ # rubygems/release-gem runs `rake release`, which pushes the git tag,
22
+ # so the checkout credentials must persist for this release job.
23
+ - uses: actions/checkout@v7 # zizmor: ignore[artipacked]
22
24
  with:
23
25
  fetch-depth: 0
24
26
  ref: ${{ github.ref_name }}
25
27
 
26
28
  - name: Set up Ruby
27
- uses: ruby/setup-ruby@v1
29
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
28
30
  with:
29
31
  ruby-version: '4.0'
30
32
  bundler-cache: true
@@ -18,10 +18,12 @@ jobs:
18
18
  if: ${{ github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/master' }}
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
- - uses: actions/checkout@v6
21
+ # rubocop_challenger pushes a branch and opens a pull request,
22
+ # so the checkout credentials must persist for the git push.
23
+ - uses: actions/checkout@v7 # zizmor: ignore[artipacked]
22
24
 
23
25
  - name: Set up Ruby
24
- uses: ruby/setup-ruby@v1
26
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
25
27
  with:
26
28
  ruby-version: '4.0'
27
29
 
data/.rubocop.yml CHANGED
@@ -7,7 +7,7 @@ plugins:
7
7
  inherit_from: .rubocop_todo.yml
8
8
 
9
9
  AllCops:
10
- TargetRubyVersion: 3.2
10
+ TargetRubyVersion: 3.3
11
11
  NewCops: enable
12
12
  Exclude:
13
13
  - rails_app/**/*
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.2.9
1
+ 3.3.12
data/AGENTS.md CHANGED
@@ -5,18 +5,21 @@
5
5
  - Always create a new branch from `master`.
6
6
  - Before creating a branch, update local `master` with the latest commits from `origin`.
7
7
  - After updating local `master`, reload and re-read `AGENTS.md` before starting any new task.
8
- - Example flow:
8
+ - Use a branch prefix that matches the agent tool in use:
9
+ - Codex: `codex/<new-branch-name>`
10
+ - Claude Code: `claude/<new-branch-name>`
11
+ - Example flow (replace `<prefix>` with the prefix for your tool):
9
12
  1. `git checkout master`
10
13
  2. `git fetch origin`
11
14
  3. `git pull --ff-only origin master`
12
15
  4. Re-open `AGENTS.md` and confirm instructions
13
- 5. `git checkout -b codex/<new-branch-name>`
16
+ 5. `git checkout -b <prefix>/<new-branch-name>`
14
17
 
15
18
  ## Development Version Policy
16
19
 
17
20
  - In development environments, always use the oldest versions among currently supported Ruby and Rails.
18
- - Current baseline: Ruby 3.2 and Rails 7.2.
19
- - Patch versions may be updated to the latest available releases within the selected baseline (e.g., Ruby 3.2.x and Rails 7.2.x).
21
+ - Current baseline: Ruby 3.3 and Rails 7.2.
22
+ - Patch versions may be updated to the latest available releases within the selected baseline (e.g., Ruby 3.3.x and Rails 7.2.x).
20
23
  - When updating support policy, also update `.ruby-version`, `Dockerfile` (`ARG RUBY_VERSION` and `BUNDLE_GEMFILE`), and development Dockerfiles under `rails_app/`.
21
24
 
22
25
  ## Support Matrix Update Procedure
@@ -32,15 +35,25 @@
32
35
  - Check other workflows under `.github/workflows/` for fixed Ruby versions and align them when support policy changes.
33
36
  - Update supported versions in:
34
37
  - `README.md`
38
+ - `AGENTS.md` (`Development Version Policy` baseline line)
35
39
  - Keep development baseline files aligned:
36
40
  - `.ruby-version`
37
41
  - `Dockerfile` (`ARG RUBY_VERSION`)
38
42
  - `rails_app/*/Dockerfile` (`ARG RUBY_VERSION`) for supported Rails verification apps
43
+ - `rails_app/*/.ruby-version` for supported Rails verification apps (Dependabot
44
+ reads the per-directory `.ruby-version` to resolve the path gem; a stale value
45
+ breaks `@dependabot rebase` with "can't resolve your Ruby dependency files")
46
+ - Before commit, list every `.ruby-version` in the repo and confirm each matches
47
+ the intended baseline:
48
+ `find . -name .ruby-version | xargs -I{} sh -c 'echo "{}: $(cat {})"'`
39
49
  - Keep verification assets aligned with supported Rails:
40
50
  - remove unsupported `gemfiles/rails_*.gemfile`
41
51
  - remove unsupported `rails_app/rails_*` directories
42
52
  - keep only supported Rails verification app directories
43
- - Validate before commit:
53
+ - Validate before commit. A support matrix change affects config files
54
+ (e.g. `.rubocop.yml` `TargetRubyVersion`, gemspec constraints) that break
55
+ lint/specs even without any `.rb` change, so always run all three below
56
+ regardless of the general Validation Rule:
44
57
  - `docker run --rm -v "$PWD":/app -w /app my_api_client-dev bundle exec rspec`
45
58
  - `docker run --rm -v "$PWD":/app -w /app my_api_client-dev bundle exec rubocop`
46
59
  - `docker run --rm -v "$PWD":/app -w /app my_api_client-dev bundle exec rake build`
@@ -101,6 +114,7 @@
101
114
  ## Pull Request Description Rule
102
115
 
103
116
  - In PR descriptions, include a `Purpose of this change` section that explains why the change is needed, not only what changed.
117
+ - Write PR titles and descriptions in English to keep them consistent across the repository.
104
118
 
105
119
  ## GitHub CLI Body Safety
106
120
 
@@ -109,12 +123,19 @@
109
123
  - Use plain text without backticks in inline `--body`.
110
124
  - Write the body to a temporary file and pass it via file-based options (or equivalent safe method) to prevent shell command substitution.
111
125
 
126
+ ## GitHub Actions Pinning Policy
127
+
128
+ - Pin third-party actions to a full commit SHA with a version comment (e.g. `uses: ruby/setup-ruby@<sha> # v1.321.0`) to satisfy zizmor `unpinned-uses`.
129
+ - GitHub-owned actions (`actions/*`, `github/*`, `rubygems/*`, `dependabot/*`) may stay ref-pinned; Dependabot (`github-actions`) keeps the pins and version comments updated.
130
+
112
131
  ## Runbook
113
132
 
114
133
  - Dependabot PR review and auto-merge operation steps are documented in `docs/runbooks/dependabot_pr_auto_merge.md`.
115
134
 
116
135
  ## CHANGELOG Organization Rule
117
136
 
137
+ - Do NOT add `CHANGELOG.md` entries in individual feature/fix PRs.
138
+ Entries are compiled and added at gem release time, not per-PR.
118
139
  - Follow the format of past versions in `CHANGELOG.md`.
119
140
  - Use `-` for bullet list items (not `*`).
120
141
  - Categorize entries under these headings, keeping only the headings that have entries (omit empty ones):
data/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Change log
2
2
 
3
+ ## v2.1.0 (Aug 11, 2026)
4
+
5
+ ### Security
6
+
7
+ - [#1335](https://github.com/ryz310/my_api_client/pull/1335) Pin third-party actions to commit SHA ([@ryz310](https://github.com/ryz310))
8
+ - [#1337](https://github.com/ryz310/my_api_client/pull/1337) Scope Dependabot auto-merge permissions per job ([@ryz310](https://github.com/ryz310))
9
+ - [#1338](https://github.com/ryz310/my_api_client/pull/1338) Use non-spoofable actor check for Dependabot auto-merge ([@ryz310](https://github.com/ryz310))
10
+ - [#1339](https://github.com/ryz310/my_api_client/pull/1339) Use pull_request trigger for Dependabot auto-merge ([@ryz310](https://github.com/ryz310))
11
+ - [#1340](https://github.com/ryz310/my_api_client/pull/1340) Disable credential persistence on checkout (zizmor artipacked) ([@ryz310](https://github.com/ryz310))
12
+
13
+ ### Dependabot
14
+
15
+ - [#1237](https://github.com/ryz310/my_api_client/pull/1237) Bump dependabot/fetch-metadata from 2 to 3 ([@ryz310](https://github.com/ryz310))
16
+ - [#1291](https://github.com/ryz310/my_api_client/pull/1291) Bump actions/checkout from 6 to 7 ([@ryz310](https://github.com/ryz310))
17
+ - [#1317](https://github.com/ryz310/my_api_client/pull/1317) Bump simplecov from 0.22.0 to 1.0.3 ([@ryz310](https://github.com/ryz310))
18
+ - [#1323](https://github.com/ryz310/my_api_client/pull/1323) Bump activesupport from 8.1.3 to 8.1.3.1 ([@ryz310](https://github.com/ryz310))
19
+ - [#1329](https://github.com/ryz310/my_api_client/pull/1329) Bump json from 2.21.1 to 2.21.2 ([@ryz310](https://github.com/ryz310))
20
+
21
+ ### Misc
22
+
23
+ - [#1330](https://github.com/ryz310/my_api_client/pull/1330) Add dependency cooldown to Gemfile and Dependabot ([@ryz310](https://github.com/ryz310))
24
+ - [#1331](https://github.com/ryz310/my_api_client/pull/1331) Always auto-merge verification app Dependabot PRs (except rails major) ([@ryz310](https://github.com/ryz310))
25
+ - [#1332](https://github.com/ryz310/my_api_client/pull/1332) Drop Ruby 3.2 support (EOL) ([@ryz310](https://github.com/ryz310))
26
+ - [#1334](https://github.com/ryz310/my_api_client/pull/1334) Require English for PR titles and descriptions ([@ryz310](https://github.com/ryz310))
27
+ - [#1336](https://github.com/ryz310/my_api_client/pull/1336) Use tool-specific branch prefix in branch creation rule ([@ryz310](https://github.com/ryz310))
28
+ - [#1341](https://github.com/ryz310/my_api_client/pull/1341) Align rails_app .ruby-version with Ruby 3.3 baseline ([@ryz310](https://github.com/ryz310))
29
+
3
30
  ## v2.0.0 (Jul 21, 2026)
4
31
 
5
32
  This major release marks the shift to an AI-assisted (agent-driven) development workflow.
data/Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # syntax=docker/dockerfile:1
2
2
 
3
- ARG RUBY_VERSION=3.2.9
3
+ ARG RUBY_VERSION=3.3.12
4
4
  FROM ruby:${RUBY_VERSION}-slim
5
5
 
6
6
  WORKDIR /app
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ # cooldown: skip gem versions published within the last 7 days to reduce the
4
+ # risk of pulling in a compromised or broken release right after publication.
5
+ source 'https://rubygems.org', cooldown: 7
4
6
 
5
7
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
8
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- my_api_client (2.0.0)
4
+ my_api_client (2.1.0)
5
5
  activesupport (>= 7.2.0)
6
6
  faraday (>= 0.17.1)
7
7
  jsonpath
@@ -10,7 +10,7 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (8.1.3)
13
+ activesupport (8.1.3.1)
14
14
  base64
15
15
  bigdecimal
16
16
  concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -39,7 +39,6 @@ GEM
39
39
  bigdecimal
40
40
  rexml
41
41
  diff-lcs (1.6.2)
42
- docile (1.4.1)
43
42
  drb (2.2.3)
44
43
  faraday (2.14.3)
45
44
  faraday-net_http (>= 2.0, < 3.5)
@@ -51,7 +50,7 @@ GEM
51
50
  i18n (1.15.2)
52
51
  concurrent-ruby (~> 1.0)
53
52
  io-console (0.8.2)
54
- json (2.21.1)
53
+ json (2.21.2)
55
54
  jsonpath (1.1.5)
56
55
  multi_json
57
56
  language_server-protocol (3.17.0.6)
@@ -133,12 +132,7 @@ GEM
133
132
  addressable (>= 2.3.5)
134
133
  faraday (>= 0.17.3, < 3)
135
134
  securerandom (0.4.1)
136
- simplecov (0.22.0)
137
- docile (~> 1.1)
138
- simplecov-html (~> 0.11)
139
- simplecov_json_formatter (~> 0.1)
140
- simplecov-html (0.13.2)
141
- simplecov_json_formatter (0.1.4)
135
+ simplecov (1.0.3)
142
136
  tzinfo (2.0.6)
143
137
  concurrent-ruby (~> 1.0)
144
138
  unicode-display_width (3.2.0)
@@ -167,7 +161,7 @@ DEPENDENCIES
167
161
  rubocop-rake
168
162
  rubocop-rspec
169
163
  rubocop-rspec_rails
170
- simplecov (= 0.22.0)
164
+ simplecov (= 1.0.3)
171
165
  webmock
172
166
  yard
173
167
 
data/README.md CHANGED
@@ -16,7 +16,7 @@ It is primarily designed for Ruby on Rails, but it also works in other environme
16
16
 
17
17
  ## Supported Versions
18
18
 
19
- - Ruby 3.2, 3.3, 3.4, 4.0
19
+ - Ruby 3.3, 3.4, 4.0
20
20
  - Rails 7.2, 8.0, 8.1
21
21
 
22
22
  ## Installation
@@ -24,6 +24,15 @@ sed -n '1,260p' AGENTS.md
24
24
  ## Auto-merge workflow policy
25
25
  - Keep `package-ecosystem` decisions separated in `.github/workflows/dependabot-auto-merge.yml`.
26
26
  - Apply independent conditions for each ecosystem to avoid cross-ecosystem condition mixing.
27
+ - For `bundler` ecosystem auto-merge:
28
+ - Verification apps (`rails_app/*` and `my_api`) are always auto-merged regardless of update type
29
+ (including major), because bundle update failures there do not affect the published gem and are
30
+ gated by CI/branch protection.
31
+ - Exception: a major update of the `rails` gem itself under `rails_app/*` is NOT auto-merged,
32
+ because a Rails major bump is treated as an explicit support-matrix decision that requires manual
33
+ review. Other gems' major updates under `rails_app/*` are still auto-merged.
34
+ - The gem itself (root `Gemfile`) is auto-merged only for `direct:development` dependencies on
35
+ non-major updates (patch/minor).
27
36
  - For `github-actions` ecosystem auto-merge, require all of the following:
28
37
  - GitHub official actions only (`actions/*` or `github/*`)
29
38
  - non-major updates only (patch/minor)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MyApiClient
4
- VERSION = '2.0.0'
4
+ VERSION = '2.1.0'
5
5
  end