Skip to content

Cover the remaining documented API endpoints - #142

Merged
sferik merged 12 commits into
resourcesfrom
api-coverage
Sep 18, 2026
Merged

sferik merged 12 commits into
resourcesfrom
api-coverage

Conversation

@sferik

@sferik sferik commented Sep 10, 2026 •

Copy link
Copy Markdown
Member

Adds every remaining feature documented in the RubyGems.org API docs:

  • autocomplete for gem name suggestions
  • A platform option on version
  • contents for the SHA-256 of every file in a version
  • attestations for a version's sigstore bundles
  • timeframe_versions for versions created in a window of up to seven days, with from and to as Time or ISO 8601 strings
  • A role option on add_owner, and update_owner for changing an existing owner's role
  • profile and me, returning a new Profile resource that is also accepted as a user identifier
  • expires_at, rubygem_name, and mfa options on create_api_key, typed in RBS instead of riding along in the scopes splat
  • The API module split into one mixin per topic (Gems::API::GemEndpoints, VersionEndpoints, and so on), which brings RuboCop's module length back to its default of 100

Based on #140

@sferik
sferik requested a review from hsbt September 10, 2026 15:57
chatgpt-codex-connector[bot]

This comment was marked as resolved.

@sferik
sferik added this pull request to stack #141 September 10, 2026 16:05
@sferik
sferik requested a balanced review from Copilot September 10, 2026 16:20

This comment was marked as resolved.

@sferik
sferik force-pushed the api-coverage branch 2 times, most recently from c2bca44 to f816919 Compare September 10, 2026 16:50
@sferik sferik mentioned this pull request Sep 10, 2026

@hsbt hsbt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed three fixes so that yank, unyank, and downloads keep the platform of a Gems::Version, and profile and owned_gems use the user ID instead of the email address in the URL path when an owner has no handle.

sferik and others added 12 commits September 17, 2026 20:29
yank and unyank resolved only the version number, so passing a Gems::Version for a non-ruby platform yanked the ruby build instead. version, contents, and attestations already default the platform this way.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
downloads joined the gem name and version number by hand, so a Gems::Version for a non-ruby platform fetched the ruby build counts. full_name_of already builds the name the endpoint looks up.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
profile and owned_gems interpolate the identifier into the path, and those endpoints take a handle or a user ID, never an email address. handle_of resolves the email parameter of the owner endpoints, so an owner with no handle produced /api/v1/profiles/someone@example.com.json.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sferik
sferik merged commit 5d21838 into master Sep 18, 2026
20 checks passed
@sferik
sferik deleted the api-coverage branch September 18, 2026 03:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants