[action] Add update_app_age_rating action for standalone age rating updates#30025
Conversation
iBotPeaches
left a comment
There was a problem hiding this comment.
Some initial comments! I'll admit this is the first new action to the codebase in a long time. I'll need to carefully review how others were added and consult some other maintainers.
I do believe this is the right path forward though - so do not get discouraged.
There was a problem hiding this comment.
Pull request overview
Adds a new fastlane action for updating App Store Connect age rating metadata independently of the broader deliver metadata upload flow.
Changes:
- Introduces
update_app_age_ratingwith API key / Apple ID authentication, app lookup, JSON parsing, and age rating update logic. - Adds RSpec coverage for authentication, success, failure paths, options, platform support, and metadata helpers.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
fastlane/lib/fastlane/actions/update_app_age_rating.rb |
Adds the new standalone age rating update action. |
fastlane/spec/update_app_age_rating_spec.rb |
Adds tests for the new action behavior and configuration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Added Copilot. The one comment that looks interesting is us not using the shared lane value for an existing appstore connect session. |
|
Hello @iBotPeaches I'm sorry i missed the updates on PR. I'll update the changes today and let you know. Thanks for the review ! |
…context for api_key to match match_nuke pattern. Call map_deprecation_if_possible in build_attributes for deprecated fields.
…tes, deprecated_keys, mapped_keys]. Now we unpack it with attributes, = to extract only the attributes hash, then return it.
|
Hey @iBotPeaches any update on this? |
There was a problem hiding this comment.
Hey @PratikPatil131 👋
Thank you for your contribution to fastlane and congrats on getting this pull request merged 🎉
The code change now lives in the master branch, however it wasn't released to RubyGems yet.
We usually ship about once a month, and your PR will be included in the next one.
Please let us know if this change requires an immediate release by adding a comment here 👍
We'll notify you once we shipped a new release with your changes 🚀"
There was a problem hiding this comment.
Congratulations! 🎉 This was released as part of fastlane 2.236.0 🚀
Summary
Adds a new
update_app_age_ratingaction for standalone App Store Connect age rating updates.This follows the discussion in #30017, where maintainer @iBotPeaches suggested introducing a dedicated action (similar to
match_nuke) instead of extending the existingskip_metadatabehavior.Motivation
Age ratings are app-level metadata and can be updated independently from screenshots, descriptions, or binary uploads.
Currently, automating an age rating update through fastlane requires invoking the broader
delivermetadata flow, even when only the age rating declaration needs to change.This action provides a lightweight and explicit workflow for that use case.
Changes
update_app_age_ratingactionImplementation Details
The action:
Authenticates using either:
Finds the app via bundle identifier
Fetches editable
AppInfoParses the supplied JSON configuration
Reuses existing
AgeRatingDeclarationmapping helpers already used bydeliverUpdates the age rating declaration via Spaceship
No new Spaceship API surface was introduced.
Example
Testing
Checklist
bundle exec rspecfrom the root directory to see all new and existing tests passbundle exec rubocop -aci/circlecibuilds passing