[PR #728] [MERGED] Builds latest expired filter #744

Closed
opened 2026-02-26 22:32:22 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/728
Author: @rudrankriyam
Created: 2/22/2026
Status: Merged
Merged: 2/23/2026
Merged by: @rudrankriyam

Base: mainHead: cursor/builds-latest-expired-filter-7e49


📝 Commits (3)

  • 8e9d8b9 test(builds latest): add exclude-expired coverage
  • b2faf5d feat(builds latest): support exclude-expired filtering
  • e7eb705 test(builds latest): verify invalid exclude-expired usage exit

📊 Changes

9 files changed (+285 additions, -4 deletions)

View changed files

📝 cmd/exit_codes_test.go (+34 -0)
📝 internal/asc/client_builds.go (+5 -2)
📝 internal/asc/client_http_test.go (+32 -0)
📝 internal/asc/client_options.go (+8 -0)
📝 internal/asc/client_queries.go (+1 -0)
📝 internal/asc/client_test.go (+17 -0)
📝 internal/cli/builds/builds_latest.go (+15 -1)
📝 internal/cli/builds/builds_latest_test.go (+11 -1)
📝 internal/cli/cmdtest/builds_latest_output_test.go (+162 -0)

📄 Description

Summary

  • Adds a --exclude-expired flag to asc builds latest to filter out expired builds.
  • Threads this filtering through all latest-build fetch paths, ensuring --next also respects the expired=false filter.
  • Implements WithBuildsExpired option in the ASC client to serialize filter[expired] for /v1/builds API calls.
  • Preserves default behavior when the flag is not provided.
  • Includes comprehensive tests for client query options, CLI flag behavior, and invalid input handling.

Validation

  • make format
  • make lint
  • make test (specifically ASC_BYPASS_KEYCHAIN=1 make test and targeted tests)

Wall of Apps (only if this PR adds/updates a Wall app)

  • I ran make generate app APP="..." LINK="..." CREATOR="..." PLATFORM="..." (or manually edited docs/wall-of-apps.json + ran make update-wall-of-apps)
  • I committed all generated files:
    • docs/wall-of-apps.json
    • README.md

Entry template:

{
  "app": "Your App Name",
  "link": "https://apps.apple.com/app/id1234567890",
  "creator": "your-github-handle",
  "platform": ["iOS"]
}

Common Apple labels: iOS, macOS, watchOS, tvOS, visionOS.


Open in Web Open in Cursor 


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/728 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 2/22/2026 **Status:** ✅ Merged **Merged:** 2/23/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `cursor/builds-latest-expired-filter-7e49` --- ### 📝 Commits (3) - [`8e9d8b9`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/8e9d8b99a1ec9d896bef616b8fe602b80ad3cd9a) test(builds latest): add exclude-expired coverage - [`b2faf5d`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/b2faf5d2ae381c4adfed46c8d8a54bb3e8cd4fb8) feat(builds latest): support exclude-expired filtering - [`e7eb705`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/e7eb7054a50f189cbcd94fbc53f994685818bd30) test(builds latest): verify invalid exclude-expired usage exit ### 📊 Changes **9 files changed** (+285 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `cmd/exit_codes_test.go` (+34 -0) 📝 `internal/asc/client_builds.go` (+5 -2) 📝 `internal/asc/client_http_test.go` (+32 -0) 📝 `internal/asc/client_options.go` (+8 -0) 📝 `internal/asc/client_queries.go` (+1 -0) 📝 `internal/asc/client_test.go` (+17 -0) 📝 `internal/cli/builds/builds_latest.go` (+15 -1) 📝 `internal/cli/builds/builds_latest_test.go` (+11 -1) 📝 `internal/cli/cmdtest/builds_latest_output_test.go` (+162 -0) </details> ### 📄 Description ## Summary - Adds a `--exclude-expired` flag to `asc builds latest` to filter out expired builds. - Threads this filtering through all latest-build fetch paths, ensuring `--next` also respects the `expired=false` filter. - Implements `WithBuildsExpired` option in the ASC client to serialize `filter[expired]` for `/v1/builds` API calls. - Preserves default behavior when the flag is not provided. - Includes comprehensive tests for client query options, CLI flag behavior, and invalid input handling. ## Validation - [x] `make format` - [x] `make lint` - [x] `make test` (specifically `ASC_BYPASS_KEYCHAIN=1 make test` and targeted tests) ## Wall of Apps (only if this PR adds/updates a Wall app) - [ ] I ran `make generate app APP="..." LINK="..." CREATOR="..." PLATFORM="..."` (or manually edited `docs/wall-of-apps.json` + ran `make update-wall-of-apps`) - [ ] I committed all generated files: - `docs/wall-of-apps.json` - `README.md` Entry template: ```json { "app": "Your App Name", "link": "https://apps.apple.com/app/id1234567890", "creator": "your-github-handle", "platform": ["iOS"] } ``` Common Apple labels: `iOS`, `macOS`, `watchOS`, `tvOS`, `visionOS`. --- <p><a href="https://cursor.com/agents?id=bc-76248876-13c2-46d5-943d-4fe33de1b0d7"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-76248876-13c2-46d5-943d-4fe33de1b0d7"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</p> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 22:32:22 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#744
No description provided.