fbe 0.11.0 → 0.12.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: 3201ffc4c057451b41320d5fd1b93a856802015dd3dbfee82dc4859a8cb90eab
4
- data.tar.gz: e1a340dc3d5315d7ee1b5f1087729cc4f22f06bb363c47a478fe5b25716c29e9
3
+ metadata.gz: 9ed20ed25d37fbb0a555303dad81f2ac461a59e17b073af0be21775475d92fc8
4
+ data.tar.gz: 7621cf7d678261979e315b9222843ebaf6f1cdd29e339ddac776393514fefd73
5
5
  SHA512:
6
- metadata.gz: 807f80b0aaa6b93995d57144b2cf129365a0d0646d33b5d53f841b9287abe52bdfd47d2040e7583ee10acf9f97d6578d94be6f714149764fa8dac3e967e209db
7
- data.tar.gz: 0f94c246a1f2ab9132b1dc80fca6c7207ce274b03ce4524dc9b01c7d574cc51e9c97e045fd00a2f5c2749b1a8b62f05496c1b3638e006796c6331bf714cc9f37
6
+ metadata.gz: 4ba5749440eb961591dcc10e8c3457b9b926e55152313670b6e3e220a54e2422b684a9a5f7ede3f873ee38244d7759f0a18f95ae97430296fa328922996e42a6
7
+ data.tar.gz: '08461885b503285fec347a052e9c321535415bb218cd88d6b476b4ec40a9fb44934fddbd276a0c5d4f4bb145db94a71ffedead986787d250ad07dcd0af34b886'
@@ -0,0 +1,19 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Zerocracy
2
+ # SPDX-License-Identifier: MIT
3
+ ---
4
+ # yamllint disable rule:line-length
5
+ name: typos
6
+ 'on':
7
+ push:
8
+ branches:
9
+ - master
10
+ pull_request:
11
+ branches:
12
+ - master
13
+ jobs:
14
+ typos:
15
+ timeout-minutes: 15
16
+ runs-on: ubuntu-24.04
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: crate-ci/typos@v1.32.0
data/.gitignore CHANGED
@@ -1,8 +1,8 @@
1
- *.gem
2
- .DS_Store
3
1
  .bundle/
2
+ .DS_Store
4
3
  .idea/
5
4
  .yardoc/
5
+ *.gem
6
6
  coverage/
7
7
  doc/
8
8
  node_modules/
data/.rubocop.yml CHANGED
@@ -54,3 +54,4 @@ Metrics/ParameterLists:
54
54
  Enabled: false
55
55
  Layout/MultilineAssignmentLayout:
56
56
  Enabled: true
57
+ require: []
data/Gemfile.lock CHANGED
@@ -58,7 +58,7 @@ GEM
58
58
  bigdecimal (3.1.9)
59
59
  builder (3.3.0)
60
60
  concurrent-ruby (1.3.5)
61
- connection_pool (2.5.1)
61
+ connection_pool (2.5.3)
62
62
  crack (1.0.0)
63
63
  bigdecimal
64
64
  rexml
@@ -70,7 +70,7 @@ GEM
70
70
  tago (> 0)
71
71
  ethon (0.16.0)
72
72
  ffi (>= 1.15.0)
73
- factbase (0.10.0)
73
+ factbase (0.10.2)
74
74
  backtrace (~> 0.4)
75
75
  decoor (~> 0.0)
76
76
  json (~> 2.7)
@@ -80,7 +80,7 @@ GEM
80
80
  others (~> 0.0)
81
81
  tago (~> 0.0)
82
82
  yaml (~> 0.3)
83
- faraday (2.13.0)
83
+ faraday (2.13.1)
84
84
  faraday-net_http (>= 2.0, < 3.5)
85
85
  json
86
86
  logger
@@ -99,7 +99,7 @@ GEM
99
99
  fiber-storage (1.0.1)
100
100
  gli (2.22.2)
101
101
  ostruct
102
- graphql (2.5.4)
102
+ graphql (2.5.7)
103
103
  base64
104
104
  fiber-storage
105
105
  logger
@@ -110,8 +110,8 @@ GEM
110
110
  i18n (1.14.7)
111
111
  concurrent-ruby (~> 1.0)
112
112
  iri (0.10.0)
113
- json (2.10.2)
114
- judges (0.41.0)
113
+ json (2.12.0)
114
+ judges (0.42.1)
115
115
  backtrace (~> 0)
116
116
  baza.rb (~> 0)
117
117
  concurrent-ruby (~> 1.2)
@@ -128,11 +128,12 @@ GEM
128
128
  timeout (~> 0)
129
129
  total (~> 0)
130
130
  typhoeus (~> 1.3)
131
- language_server-protocol (3.17.0.4)
131
+ language_server-protocol (3.17.0.5)
132
132
  lint_roller (1.1.0)
133
133
  liquid (5.5.1)
134
134
  logger (1.7.0)
135
- loog (0.6.0)
135
+ loog (0.6.1)
136
+ logger (~> 1.0)
136
137
  minitest (5.25.5)
137
138
  minitest-reporters (1.7.1)
138
139
  ansi
@@ -163,8 +164,8 @@ GEM
163
164
  ast (~> 2.4.1)
164
165
  racc
165
166
  prism (1.4.0)
166
- public_suffix (6.0.1)
167
- qbash (0.4.0)
167
+ public_suffix (6.0.2)
168
+ qbash (0.4.5)
168
169
  backtrace (> 0)
169
170
  elapsed (> 0)
170
171
  loog (> 0)
@@ -175,7 +176,7 @@ GEM
175
176
  regexp_parser (2.10.0)
176
177
  retries (0.0.5)
177
178
  rexml (3.4.1)
178
- rubocop (1.75.4)
179
+ rubocop (1.75.6)
179
180
  json (~> 2.3)
180
181
  language_server-protocol (~> 3.17.0.2)
181
182
  lint_roller (~> 1.1.0)
data/REUSE.toml CHANGED
@@ -4,9 +4,17 @@
4
4
  version = 1
5
5
  [[annotations]]
6
6
  path = [
7
+ ".DS_Store",
8
+ ".gitattributes",
9
+ ".gitignore",
10
+ ".pdd",
7
11
  "**.json",
8
12
  "**.md",
13
+ "**.png",
9
14
  "**.txt",
15
+ "**/.DS_Store",
16
+ "**/.gitignore",
17
+ "**/.pdd",
10
18
  "**/*.csv",
11
19
  "**/*.fe",
12
20
  "**/*.jpg",
@@ -18,15 +26,8 @@ path = [
18
26
  "**/*.svg",
19
27
  "**/*.txt",
20
28
  "**/*.vm",
21
- "**/.DS_Store",
22
- "**/.gitignore",
23
- "**/.pdd",
24
29
  "**/CNAME",
25
30
  "**/Gemfile.lock",
26
- ".DS_Store",
27
- ".gitattributes",
28
- ".gitignore",
29
- ".pdd",
30
31
  "Gemfile.lock",
31
32
  "README.md",
32
33
  "renovate.json",
data/lib/fbe/octo.rb CHANGED
@@ -174,6 +174,173 @@ class Fbe::FakeOctokit
174
174
  ]
175
175
  end
176
176
 
177
+ # Gets repository invitations for the authenticated user.
178
+ #
179
+ # @param [Hash] _options Additional options (not used in mock)
180
+ # @return [Array<Hash>] Array of invitation objects with repository and inviter information
181
+ # @example
182
+ # fake_client = Fbe::FakeOctokit.new
183
+ # fake_client.user_repository_invitations #=> [{:id=>1, :node_id=>"INV_", ...}]
184
+ def user_repository_invitations(_options = {})
185
+ [
186
+ {
187
+ id: 1,
188
+ node_id: 'INV_kwDOJRF-Hq4B_yXr',
189
+ repository: repository('zerocracy/fbe'),
190
+ invitee: user(526_301),
191
+ inviter: user(888),
192
+ permissions: 'write',
193
+ created_at: random_time,
194
+ url: 'https://api.github.com/user/repository_invitations/1',
195
+ html_url: 'https://github.com/zerocracy/fbe/invitations',
196
+ expired: false
197
+ },
198
+ {
199
+ id: 2,
200
+ node_id: 'INV_kwDOJRF-Hq4B_yXs',
201
+ repository: repository('yegor256/takes'),
202
+ invitee: user(526_301),
203
+ inviter: user(888),
204
+ permissions: 'admin',
205
+ created_at: random_time,
206
+ url: 'https://api.github.com/user/repository_invitations/2',
207
+ html_url: 'https://github.com/yegor256/takes/invitations',
208
+ expired: false
209
+ }
210
+ ]
211
+ end
212
+
213
+ # Gets organization memberships for the authenticated user.
214
+ #
215
+ # @param [Hash] _options Additional options (not used in mock)
216
+ # @return [Array<Hash>] Array of organization membership objects
217
+ # @example
218
+ # fake_client = Fbe::FakeOctokit.new
219
+ # fake_client.organization_memberships #=> [{:url=>"https://api.github.com/orgs/...", ...}]
220
+ def organization_memberships(_options = {})
221
+ [
222
+ {
223
+ url: 'https://api.github.com/orgs/zerocracy/memberships/yegor256',
224
+ state: 'active',
225
+ role: 'admin',
226
+ organization_url: 'https://api.github.com/orgs/zerocracy',
227
+ organization: {
228
+ login: 'zerocracy',
229
+ id: 24_234_201,
230
+ node_id: 'MDEyOk9yZ2FuaXphdGlvbjI0MjM0MjAx',
231
+ url: 'https://api.github.com/orgs/zerocracy',
232
+ avatar_url: 'https://avatars.githubusercontent.com/u/24234201?v=4',
233
+ description: 'AI-managed software development',
234
+ name: 'Zerocracy',
235
+ company: nil,
236
+ blog: 'https://www.zerocracy.com',
237
+ location: nil,
238
+ email: 'team@zerocracy.com',
239
+ twitter_username: nil,
240
+ is_verified: false,
241
+ has_organization_projects: true,
242
+ has_repository_projects: true,
243
+ public_repos: 30,
244
+ public_gists: 0,
245
+ followers: 0,
246
+ following: 0,
247
+ html_url: 'https://github.com/zerocracy',
248
+ created_at: random_time,
249
+ updated_at: random_time,
250
+ type: 'Organization'
251
+ },
252
+ user: user(526_301)
253
+ },
254
+ {
255
+ url: 'https://api.github.com/orgs/objectionary/memberships/yegor256',
256
+ state: 'active',
257
+ role: 'member',
258
+ organization_url: 'https://api.github.com/orgs/objectionary',
259
+ organization: {
260
+ login: 'objectionary',
261
+ id: 80_033_603,
262
+ node_id: 'MDEyOk9yZ2FuaXphdGlvbjgwMDMzNjAz',
263
+ url: 'https://api.github.com/orgs/objectionary',
264
+ avatar_url: 'https://avatars.githubusercontent.com/u/80033603?v=4',
265
+ description: 'EO/EOLANG, an object-oriented language',
266
+ name: 'Objectionary',
267
+ company: nil,
268
+ blog: 'https://www.eolang.org',
269
+ location: nil,
270
+ email: nil,
271
+ twitter_username: nil,
272
+ is_verified: false,
273
+ has_organization_projects: true,
274
+ has_repository_projects: true,
275
+ public_repos: 15,
276
+ public_gists: 0,
277
+ followers: 0,
278
+ following: 0,
279
+ html_url: 'https://github.com/objectionary',
280
+ created_at: random_time,
281
+ updated_at: random_time,
282
+ type: 'Organization'
283
+ },
284
+ user: user(526_301)
285
+ }
286
+ ]
287
+ end
288
+
289
+ # Updates the authenticated user's organization membership.
290
+ #
291
+ # @param [String] org The organization name (e.g., 'zerocracy')
292
+ # @param [Hash] _options Additional options (typically includes :state to update membership state)
293
+ # @return [Hash] Updated membership information
294
+ # @example
295
+ # fake_client = Fbe::FakeOctokit.new
296
+ # fake_client.update_organization_membership('zerocracy', state: 'active')
297
+ def update_organization_membership(org, _options = {})
298
+ {
299
+ url: "https://api.github.com/orgs/#{org}/memberships/yegor256",
300
+ state: 'active',
301
+ role: 'member',
302
+ organization_url: "https://api.github.com/orgs/#{org}",
303
+ organization: {
304
+ login: org,
305
+ id: 24_234_201,
306
+ node_id: 'MDEyOk9yZ2FuaXphdGlvbjI0MjM0MjAx',
307
+ url: "https://api.github.com/orgs/#{org}",
308
+ avatar_url: 'https://avatars.githubusercontent.com/u/24234201?v=4',
309
+ description: 'Organization description',
310
+ name: org.capitalize,
311
+ company: nil,
312
+ blog: "https://www.#{org}.com",
313
+ location: nil,
314
+ email: "team@#{org}.com",
315
+ twitter_username: nil,
316
+ is_verified: false,
317
+ has_organization_projects: true,
318
+ has_repository_projects: true,
319
+ public_repos: 30,
320
+ public_gists: 0,
321
+ followers: 0,
322
+ following: 0,
323
+ html_url: "https://github.com/#{org}",
324
+ created_at: random_time,
325
+ updated_at: random_time,
326
+ type: 'Organization'
327
+ },
328
+ user: user(526_301)
329
+ }
330
+ end
331
+
332
+ # Removes a user from an organization.
333
+ #
334
+ # @param [String] org The organization name (e.g., 'zerocracy')
335
+ # @param [String] _user The user login (not used in this mock implementation)
336
+ # @return [Boolean] Returns true when successful (204 No Content in actual API)
337
+ # @example
338
+ # fake_client = Fbe::FakeOctokit.new
339
+ # fake_client.remove_organization_membership('zerocracy') #=> true
340
+ def remove_organization_membership(_org, _user = nil)
341
+ true
342
+ end
343
+
177
344
  # Gives a star to a repository.
178
345
  #
179
346
  # @param [String] _repo The repository name (e.g., 'user/repo')
data/lib/fbe.rb CHANGED
@@ -10,5 +10,5 @@
10
10
  # License:: MIT
11
11
  module Fbe
12
12
  # Current version of the gem (changed by +.rultor.yml+ on every release)
13
- VERSION = '0.11.0' unless const_defined?(:VERSION)
13
+ VERSION = '0.12.0' unless const_defined?(:VERSION)
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fbe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -265,6 +265,7 @@ files:
265
265
  - ".github/workflows/pdd.yml"
266
266
  - ".github/workflows/rake.yml"
267
267
  - ".github/workflows/reuse.yml"
268
+ - ".github/workflows/typos.yml"
268
269
  - ".github/workflows/xcop.yml"
269
270
  - ".github/workflows/yamllint.yml"
270
271
  - ".gitignore"