Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Feb 11, 2026

  • Phase 1: Remove deprecated endpoint request classes, tests, and fixtures
  • Phase 2: Add new /me/library endpoints (SaveToLibraryRequest, RemoveFromLibraryRequest)
  • Phase 3: Update model classes to remove/rename fields
  • Phase 4: Update test fixtures for model changes
  • Phase 5: Add tests for new endpoints (278 tests pass)
  • Phase 6: Code review and security scan
  • Phase 7: Update examples directory
    • Remove 20 example files for deleted endpoints
    • Add SaveToLibraryExample and RemoveFromLibraryExample
    • Fix pre-existing SavedEpisode import bug
    • Add compile-examples Maven profile (pom.xml)
    • Add CI step to compile examples during builds (ci.yml)
  • Phase 8: Address review feedback
    • Fix Javadoc @param tags for renamed playlist fields
    • Add @OverRide to library request execute() methods
Original prompt

This section details on the original issue you should resolve

<issue_title>feat(spotify)!: technical specification for changes to the api starting 2026-02-11</issue_title>
<issue_description># Technical changes for #445

Minimal instructions for agentic work to resolve the issue.

🔄 Endpoint Changes

❌ Removed Endpoints

  • Create Playlist for User
    POST /users/{user_id}/playlists
    Create a playlist for a Spotify user.
    ➡️ Use POST /me/playlists instead

  • Get Artist's Top Tracks
    GET /artists/{id}/top-tracks
    Get Spotify catalog information about an artist's top tracks by country.

  • Get Available Markets
    GET /markets
    Get the list of markets where Spotify is available.

  • Get New Releases
    GET /browse/new-releases
    Get a list of new album releases featured in Spotify.

  • Get Several Albums
    GET /albums

  • Get Several Artists
    GET /artists

  • Get Several Audiobooks
    GET /audiobooks

  • Get Several Browse Categories
    GET /browse/categories

  • Get Several Chapters
    GET /chapters

  • Get Several Episodes
    GET /episodes

  • Get Several Shows
    GET /shows

  • Get Several Tracks
    GET /tracks

  • Get Single Browse Category
    GET /browse/categories/{id}

  • Get User's Playlists
    GET /users/{id}/playlists

  • Get User's Profile
    GET /users/{id}


➕ Added Endpoints

  • Save to Library
    PUT /me/library
    Save a list of Spotify URIs to the user's library.

  • Remove from Library
    DELETE /me/library
    Remove a list of Spotify URIs from the user's library.


❌ Removed (Replaced by /me/library)

  • Remove Albums for Current User
    DELETE /me/albums
    ➡️ Use DELETE /me/library

  • Remove Audiobooks for Current User
    DELETE /me/audiobooks
    ➡️ Use DELETE /me/library

  • Remove Episodes for Current User
    DELETE /me/episodes
    ➡️ Use DELETE /me/library

  • Remove Shows for Current User
    DELETE /me/shows
    ➡️ Use DELETE /me/library

  • Remove Tracks for Current User
    DELETE /me/tracks
    ➡️ Use DELETE /me/library

  • Save Albums for Current User
    PUT /me/albums
    ➡️ Use PUT /me/library

  • Save Audiobooks for Current User
    PUT /me/audiobooks
    ➡️ Use PUT /me/library

  • Save Episodes for Current User
    PUT /me/episodes
    ➡️ Use PUT /me/library

  • Save Shows for Current User
    PUT /me/shows
    ➡️ Use PUT /me/library

  • Save Tracks for Current User
    PUT /me/tracks
    ➡️ Use PUT /me/library


🧩 Response Field Changes

These changes apply wherever the following objects appear in API responses.


Album

Removed fields:

  • album_group
  • available_markets
  • external_ids
  • label
  • popularity

Artist

Removed fields:

  • followers
  • popularity

Audiobook

Removed fields:

  • available_markets
  • publisher

Chapter

Removed fields:

  • available_markets

Playlist

Only user-owned playlists will return playlist contents.
Other playlists return metadata only.

Renamed fields:

  • tracksitems
  • tracks.tracksitems.items
  • tracks.tracks.trackitems.items.item

Show

Removed fields:

  • available_markets
  • publisher

Track

Removed fields:

  • available_markets
  • external_ids
  • linked_from
  • popularity

User

Removed fields:

  • country
  • email
  • explicit_content
  • followers
  • product

✅ Expected Work

  • Remove deprecated endpoints and related request/response models
  • Add /me/library PUT and DELETE endpoints
  • Update DTOs / models to reflect removed fields
  • Rename playlist-related fields as specified
  • Adjust deserialization logic accordingly
  • Update tests and documentation where applicable

📌 Notes

These changes apply globally across all affected endpoints and models.</issue_description>

<agent_instructions>Additionally, create (an) agent skill(s) / instruction(s) based on the analysis you run on this repo in the discovery phase that will be used to speed up project understanding in future runs of any relevant coding agent.</agent_instructions>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 14 commits February 11, 2026 11:03
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
…ethods in SpotifyApi.java

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
- Remove 20 deprecated request classes (GET several/top, POST/GET user-specific, PUT/DELETE per-type library)
- Remove corresponding 20 test classes and 12 test fixtures
- Remove 28 builder methods from SpotifyApi.java
- Add SaveToLibraryRequest (PUT /me/library) and RemoveFromLibraryRequest (DELETE /me/library)
- Add saveToLibrary() and removeFromLibrary() builder methods to SpotifyApi.java

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
…om Album model

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
…ds from Track model

Remove field declarations, constructor assignments, getter methods, Builder setter
methods, and JsonUtil deserialization code for the four fields. Also remove unused
imports (CountryCode, ExternalId, TrackLink, Gson) and update toString method.
Update GetTrackRequestTest to remove assertions for removed fields.

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
…fied

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
…ied, and PlaylistTrack

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
…ints

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Copilot AI changed the title [WIP] Remove deprecated API endpoints in Spotify integration feat!: Spotify Web API breaking changes for 2026-02-11 Feb 11, 2026
Copilot AI requested a review from dargmuesli February 11, 2026 11:45
@codecov
Copy link

codecov bot commented Feb 11, 2026

Codecov Report

❌ Patch coverage is 43.37349% with 47 lines in your changes missing coverage. Please review.
✅ Project coverage is 49.72%. Comparing base (90c6508) to head (c4c1394).
⚠️ Report is 1 commits behind head on beta.

Files with missing lines Patch % Lines
...xamples/data/library/RemoveFromLibraryExample.java 0.00% 9 Missing ⚠️
examples/data/library/SaveToLibraryExample.java 0.00% 9 Missing ⚠️
...lin/spotify/model_objects/specification/Album.java 0.00% 5 Missing ⚠️
...mples/data/playlists/GetPlaylistsItemsExample.java 0.00% 4 Missing ⚠️
...odel_objects/specification/PlaylistSimplified.java 57.14% 2 Missing and 1 partial ⚠️
...equests/data/library/RemoveFromLibraryRequest.java 57.14% 0 Missing and 3 partials ⚠️
...fy/requests/data/library/SaveToLibraryRequest.java 78.57% 0 Missing and 3 partials ⚠️
.../spotify/model_objects/specification/Playlist.java 71.42% 1 Missing and 1 partial ⚠️
...elin/spotify/model_objects/specification/User.java 0.00% 2 Missing ⚠️
...y/model_objects/specification/AlbumSimplified.java 0.00% 1 Missing ⚠️
... and 6 more

❗ There is a different number of reports uploaded between BASE (90c6508) and HEAD (c4c1394). Click for more details.

HEAD has 4 uploads less than BASE
Flag BASE (90c6508) HEAD (c4c1394)
6 2
Additional details and impacted files
@@              Coverage Diff              @@
##               beta     #448       +/-   ##
=============================================
- Coverage     66.64%   49.72%   -16.92%     
+ Complexity      672      579       -93     
=============================================
  Files           184      242       +58     
  Lines          7264     8605     +1341     
  Branches       1151     1050      -101     
=============================================
- Hits           4841     4279      -562     
- Misses         1520     3528     +2008     
+ Partials        903      798      -105     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dargmuesli
Copy link
Member

@copilot make sure to apply the changes to the sources in the /examples directory as well. You can also commit potentially necessary changes to the build setup that indicate the /examples directory must be able to compile with the project's base sources at all times in the future.

… step

- Remove 20 example files for deleted endpoints
- Add SaveToLibraryExample and RemoveFromLibraryExample
- Fix pre-existing SavedEpisode import bug in GetUsersSavedEpisodesExample
- Add compile-examples Maven profile to compile examples with project sources
- Add CI step to compile examples during builds

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 11, 2026

@copilot make sure to apply the changes to the sources in the /examples directory as well. You can also commit potentially necessary changes to the build setup that indicate the /examples director...

Done in 9988692. Removed 20 example files for deleted endpoints, added SaveToLibraryExample and RemoveFromLibraryExample, and fixed a pre-existing SavedEpisode import bug. Added a compile-examples Maven profile using build-helper-maven-plugin and a CI step (mvn compile -P compile-examples) so examples are verified to compile with the project sources on every build.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates this Java Spotify Web API wrapper for the Spotify Web API breaking changes effective 2026-02-11, removing endpoints/fields Spotify no longer serves and introducing the new unified /me/library save/remove operations.

Changes:

  • Removed request classes, tests, fixtures, and examples for endpoints Spotify removed (e.g., /users/{id}, /tracks, /albums, /browse/*, etc.).
  • Added new library endpoints: SaveToLibraryRequest (PUT /me/library) and RemoveFromLibraryRequest (DELETE /me/library), plus examples and tests.
  • Updated models/fixtures for response changes (notably playlist tracksitems and playlist item trackitem, plus removed fields like popularity/followers/available_markets in several models).

Reviewed changes

Copilot reviewed 106 out of 106 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/main/java/se/michaelthelin/spotify/requests/data/library/SaveToLibraryRequest.java Adds PUT /me/library request implementation.
src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveFromLibraryRequest.java Updates request to DELETE /me/library with uris body.
src/main/java/se/michaelthelin/spotify/model_objects/specification/PlaylistTrack.java Renames playlist entry trackitem and updates JSON parsing.
src/main/java/se/michaelthelin/spotify/model_objects/specification/PlaylistSimplified.java Renames tracksitems and updates JSON parsing.
src/main/java/se/michaelthelin/spotify/model_objects/specification/Playlist.java Renames tracksitems and updates JSON parsing.
src/main/java/se/michaelthelin/spotify/model_objects/specification/TrackSimplified.java Removes fields no longer returned (e.g., available markets / linked-from).
src/main/java/se/michaelthelin/spotify/model_objects/specification/AlbumSimplified.java Removes fields no longer returned (e.g., album_group / available_markets).
src/main/java/se/michaelthelin/spotify/model_objects/specification/Artist.java Removes fields no longer returned (e.g., followers / popularity).
src/main/java/se/michaelthelin/spotify/model_objects/specification/ShowSimplified.java Removes fields no longer returned (e.g., available_markets / publisher).
src/main/java/se/michaelthelin/spotify/model_objects/specification/Show.java Removes fields no longer returned (e.g., available_markets / publisher).
src/main/java/se/michaelthelin/spotify/requests/data/users_profile/GetUsersProfileRequest.java Removes deleted endpoint request (GET /users/{id}).
src/main/java/se/michaelthelin/spotify/requests/data/tracks/GetSeveralTracksRequest.java Removes deleted endpoint request (GET /tracks).
src/main/java/se/michaelthelin/spotify/requests/data/shows/GetSeveralShowsRequest.java Removes deleted endpoint request (GET /shows).
src/main/java/se/michaelthelin/spotify/requests/data/playlists/GetListOfUsersPlaylistsRequest.java Removes deleted endpoint request (GET /users/{id}/playlists).
src/main/java/se/michaelthelin/spotify/requests/data/playlists/CreatePlaylistRequest.java Removes deleted endpoint request (POST /users/{id}/playlists).
src/main/java/se/michaelthelin/spotify/requests/data/library/SaveShowsForCurrentUserRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/library/SaveEpisodesForCurrentUserRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/library/SaveAlbumsForCurrentUserRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveUsersSavedTracksRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveUsersSavedShowsRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveUsersSavedEpisodesRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/library/RemoveAlbumsForCurrentUserRequest.java Removes deprecated library endpoint request.
src/main/java/se/michaelthelin/spotify/requests/data/episodes/GetSeveralEpisodesRequest.java Removes deleted endpoint request (GET /episodes).
src/main/java/se/michaelthelin/spotify/requests/data/browse/GetListOfNewReleasesRequest.java Removes deleted endpoint request (GET /browse/new-releases).
src/main/java/se/michaelthelin/spotify/requests/data/browse/GetListOfCategoriesRequest.java Removes deleted endpoint request (GET /browse/categories).
src/main/java/se/michaelthelin/spotify/requests/data/browse/GetCategoryRequest.java Removes deleted endpoint request (GET /browse/categories/{id}).
src/main/java/se/michaelthelin/spotify/requests/data/artists/GetSeveralArtistsRequest.java Removes deleted endpoint request (GET /artists).
src/main/java/se/michaelthelin/spotify/requests/data/artists/GetArtistsTopTracksRequest.java Removes deleted endpoint request (GET /artists/{id}/top-tracks).
src/main/java/se/michaelthelin/spotify/requests/data/albums/GetSeveralAlbumsRequest.java Removes deleted endpoint request (GET /albums).
src/test/java/se/michaelthelin/spotify/requests/data/library/SaveToLibraryRequestTest.java Adds test coverage for PUT /me/library (currently light assertions).
src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveFromLibraryRequestTest.java Adds test coverage for DELETE /me/library (currently light assertions).
src/test/java/se/michaelthelin/spotify/requests/data/users_profile/GetUsersProfileRequestTest.java Removes tests for deleted endpoint (GET /users/{id}).
src/test/java/se/michaelthelin/spotify/requests/data/users_profile/GetCurrentUsersProfileRequestTest.java Updates assertions for removed User fields (country/email/followers/product).
src/test/java/se/michaelthelin/spotify/requests/data/tracks/GetTrackRequestTest.java Updates assertions for removed Track fields (available_markets/external_ids/popularity).
src/test/java/se/michaelthelin/spotify/requests/data/shows/GetShowRequestTest.java Updates assertions for removed Show fields (available_markets/publisher).
src/test/java/se/michaelthelin/spotify/requests/data/shows/GetSeveralShowsRequestTest.java Removes tests for deleted endpoint (GET /shows).
src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistsItemsRequestTest.java Updates tests for playlist item trackitem.
src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetPlaylistRequestTest.java Updates tests for playlist tracksitems.
src/test/java/se/michaelthelin/spotify/requests/data/playlists/GetListOfUsersPlaylistsRequestTest.java Removes tests for deleted endpoint (GET /users/{id}/playlists).
src/test/java/se/michaelthelin/spotify/requests/data/playlists/CreatePlaylistRequestTest.java Removes tests for deleted endpoint (POST /users/{id}/playlists).
src/test/java/se/michaelthelin/spotify/requests/data/playlists/CreatePlaylistRequestNumericStringTest.java Removes tests tied to removed request.
src/test/java/se/michaelthelin/spotify/requests/data/library/SaveTracksForUserRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/SaveShowsForCurrentUserRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/SaveEpisodesForCurrentUserRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/SaveAlbumsForCurrentUserRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveUsersSavedTracksRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveUsersSavedShowsRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveUsersSavedEpisodesRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveAlbumsForCurrentUserRequestTest.java Removes tests for deprecated library endpoint.
src/test/java/se/michaelthelin/spotify/requests/data/episodes/GetSeveralEpisodesRequestTest.java Removes tests for deleted endpoint (GET /episodes).
src/test/java/se/michaelthelin/spotify/requests/data/browse/GetListOfNewReleasesRequestTest.java Removes tests for deleted endpoint (GET /browse/new-releases).
src/test/java/se/michaelthelin/spotify/requests/data/browse/GetListOfCategoriesRequestTest.java Removes tests for deleted endpoint (GET /browse/categories).
src/test/java/se/michaelthelin/spotify/requests/data/browse/GetCategoryRequestTest.java Removes tests for deleted endpoint (GET /browse/categories/{id}).
src/test/java/se/michaelthelin/spotify/requests/data/artists/GetSeveralArtistsRequestTest.java Removes tests for deleted endpoint (GET /artists).
src/test/java/se/michaelthelin/spotify/requests/data/artists/GetArtistsAlbumsRequestTest.java Updates assertions for removed album_group.
src/test/java/se/michaelthelin/spotify/requests/data/artists/GetArtistRequestTest.java Updates assertions for removed followers/popularity.
src/test/java/se/michaelthelin/spotify/requests/data/albums/GetSeveralAlbumsRequestTest.java Removes tests for deleted endpoint (GET /albums).
src/test/java/se/michaelthelin/spotify/requests/data/albums/GetAlbumRequestTest.java Updates assertions for removed album fields (available_markets/external_ids/label/popularity).
src/test/fixtures/requests/data/search/simplified/SearchPlaylistsRequest.json Renames playlist tracks object to items in fixture.
src/test/fixtures/requests/data/playlists/GetPlaylistsItemsRequest.json Renames playlist entry track to item in fixture.
src/test/fixtures/requests/data/playlists/GetPlaylistsItemsRequest_Episode.json Renames playlist entry track to item in fixture.
src/test/fixtures/requests/data/playlists/GetPlaylistRequest.json Renames playlist tracks to items and entry track to item.
src/test/fixtures/requests/data/playlists/GetListOfUsersPlaylistsRequest_UserWith$.json Renames playlist tracks to items in fixture.
src/test/fixtures/requests/data/playlists/GetListOfCurrentUsersPlaylistsRequest.json Renames playlist tracks to items in fixture.
src/test/fixtures/requests/data/browse/GetListOfFeaturedPlaylistsRequest.json Renames playlist tracks to items in fixture.
src/test/fixtures/requests/data/browse/GetCategorysPlaylistsRequest.json Renames playlist tracks to items in fixture.
src/test/fixtures/requests/data/users_profile/GetUsersProfileRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/shows/GetSeveralShowsRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/playlists/GetListOfUsersPlaylistsRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/playlists/CreatePlaylistRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/browse/GetListOfNewReleasesRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/browse/GetListOfCategoriesRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/browse/GetCategoryRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/artists/GetSeveralArtistsRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/artists/GetArtistsTopTracksRequest.json Removes fixture for deleted endpoint.
src/test/fixtures/requests/data/albums/GetSeveralAlbumsRequest.json Removes fixture for deleted endpoint.
examples/data/playlists/GetPlaylistsItemsExample.java Updates example for getItem() rename.
examples/data/library/SaveToLibraryExample.java Adds example for PUT /me/library.
examples/data/library/RemoveFromLibraryExample.java Adds example for DELETE /me/library.
examples/data/library/GetUsersSavedEpisodesExample.java Fixes SavedEpisode import path.
examples/data/users_profile/GetUsersProfileExample.java Removes example for deleted endpoint.
examples/data/tracks/GetSeveralTracksExample.java Removes example for deleted endpoint.
examples/data/shows/GetSeveralShowsExample.java Removes example for deleted endpoint.
examples/data/playlists/GetListOfUsersPlaylistsExample.java Removes example for deleted endpoint.
examples/data/playlists/CreatePlaylistExample.java Removes example for deleted endpoint.
examples/data/library/SaveTracksForUserExample.java Removes example for deprecated endpoint.
examples/data/library/SaveShowsForCurrentUserExample.java Removes example for deprecated endpoint.
examples/data/library/SaveEpisodesForCurrentUserExample.java Removes example for deprecated endpoint.
examples/data/library/SaveAlbumsForCurrentUserExample.java Removes example for deprecated endpoint.
examples/data/library/RemoveUsersSavedTracksExample.java Removes example for deprecated endpoint.
examples/data/library/RemoveUsersSavedShowsExample.java Removes example for deprecated endpoint.
examples/data/episodes/GetSeveralEpisodesExample.java Removes example for deleted endpoint.
examples/data/browse/GetListOfNewReleasesExample.java Removes example for deleted endpoint.
examples/data/browse/GetListOfCategoriesExample.java Removes example for deleted endpoint.
examples/data/browse/GetCategoryExample.java Removes example for deleted endpoint.
examples/data/artists/GetSeveralArtistsExample.java Removes example for deleted endpoint.
examples/data/artists/GetArtistsTopTracksExample.java Removes example for deleted endpoint.
examples/data/albums/GetSeveralAlbumsExample.java Removes example for deleted endpoint.
pom.xml Adds compile-examples profile (and plugin config) to compile examples in CI.
.github/workflows/ci.yml Adds CI step to compile examples via Maven profile.
Comments suppressed due to low confidence (4)

src/test/java/se/michaelthelin/spotify/requests/data/library/SaveToLibraryRequestTest.java:31

  • shouldComplyWithReference only asserts the auth header and URI. Since this request now sends a JSON body, the test should also assert the Content-Type: application/json header and that the uris body parameter is present (similar to other request tests using assertHasHeader/assertHasBodyParameter).
    src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveFromLibraryRequestTest.java:31
  • shouldComplyWithReference currently doesn't verify the JSON request body/header. Since removeFromLibrary is a JSON-body DELETE, add assertions for Content-Type: application/json and for the uris body parameter (mirroring other request tests).
    src/test/java/se/michaelthelin/spotify/requests/data/library/SaveToLibraryRequestTest.java:43
  • This method overrides ITest.shouldReturnDefault; it is advisable to add an Override annotation.
    src/test/java/se/michaelthelin/spotify/requests/data/library/RemoveFromLibraryRequestTest.java:43
  • This method overrides ITest.shouldReturnDefault; it is advisable to add an Override annotation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dargmuesli
Copy link
Member

@copilot apply changes based on the comments in this thread

…request execute methods

- PlaylistSimplified.setItems(): update @param tracks → items
- Playlist.setItems(): update Javadoc wording and @param tracks → items
- PlaylistTrack.setItem(): update Javadoc wording and @param track → item
- SaveToLibraryRequest.execute(): add @OverRide annotation
- RemoveFromLibraryRequest.execute(): add @OverRide annotation

Co-authored-by: dargmuesli <4778485+dargmuesli@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 11, 2026

@copilot apply changes based on the comments in this thread

Applied all four review comments in b51a79f: fixed Javadoc @param tags for the renamed playlist fields (tracksitems, trackitem) in Playlist.java, PlaylistSimplified.java, and PlaylistTrack.java, and added @Override annotations to the execute() methods in both SaveToLibraryRequest and RemoveFromLibraryRequest.

@dargmuesli dargmuesli marked this pull request as ready for review February 11, 2026 15:23
@dargmuesli dargmuesli requested a review from Selbi182 February 11, 2026 15:24
@dargmuesli dargmuesli merged commit 761d87d into beta Feb 11, 2026
7 checks passed
@dargmuesli dargmuesli deleted the copilot/remove-deprecated-api-endpoints branch February 11, 2026 15:38
@dargmuesli dargmuesli mentioned this pull request Feb 11, 2026
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.

feat(spotify)!: technical specification for changes to the api starting 2026-02-11 feat(spotify)!: major changes to the api starting 2026-02-11

2 participants