Skip to content

feat(scripts): open an issue when a Linux Spotify build has no classmap - #21

Merged
afonsojramos merged 1 commit into
mainfrom
feat/watch-spotify
Sep 30, 2026
Merged

afonsojramos merged 1 commit into
mainfrom
feat/watch-spotify

Conversation

@afonsojramos

Copy link
Copy Markdown
Member

Summary

  • scripts/watch-spotify.ts reads Spotify's Linux apt channels (stable and testing) and finds builds without a published key. For each one it:
    • downloads the .deb and checks it against the index's SHA-256;
    • extracts the stock xpui.spa and runs the CLI's static verifier with the newest older key's map;
    • opens an issue. If no hashed class went missing, the issue says to publish an inherited key and gives the command. Otherwise it lists the leaves that lost a hashed class and points to the migration steps.
  • Leaves the base key already records as stale or unverified don't count as rehashed.
  • .github/workflows/watch-spotify.yml runs it daily and on demand. It checks out spicetify/cli v3-beta for the verifier, with contents: read and issues: write. It doesn't open a second issue for a title that already exists.
  • --dry-run --only <key> re-assesses a published build without opening an issue.

macOS and Windows builds come from an endpoint that needs a signed-in client, so the job can't see them.

Verification

  • Dry run on the live channels: 1.2.95 and 1.2.96 both have keys, so nothing is reported.
  • --dry-run --only 1020096 on the real 1.2.96.518 package: 33/36 leaves in the stock CSS. The three missing hashed classes are ones 1020095 already records as stale or unverified, so the verdict is "inherit", which is how 1020096 was published.
  • pnpm check passes (66 tests).
  • The workflow can't be dispatched until it's on main. I'll run it once after merging and read the token's permissions from the job header.

A daily workflow reads Spotify's apt channels, statically verifies the newest older key against each unpublished build's stock CSS, and opens an issue that says whether to publish an inherited key or migrate.
@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 10 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: ec10dd29-b591-4b85-8b94-11c6ad171f12

📥 Commits

Reviewing files that changed from the base of the PR and between 556cd17 and 8cdc200.

📒 Files selected for processing (4)
  • .github/workflows/watch-spotify.yml
  • README.md
  • scripts/watch-spotify.test.mts
  • scripts/watch-spotify.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@afonsojramos
afonsojramos merged commit 05a51c8 into main Sep 30, 2026
2 checks passed
@afonsojramos
afonsojramos deleted the feat/watch-spotify branch September 30, 2026 13:46
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.

1 participant