Azure / Azure/apiops-cli

Scoped-delete semantics for --filter + --delete-unmatched

Offen
#275 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
type:feature
Vorherrschende Sprache
TypeScript
Sterne
26
Forks
9
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
20

Beschreibung

### Problem or use case

In #215, combining `--filter` with `--delete-unmatched` was intentionally left to fail fast until
scoped-delete semantics are designed:

> Combining `--filter` with `--delete-unmatched` should fail fast with a clear error until
> scoped-delete semantics are designed.

Designing and enabling that combination would allow deletion tracking for a filtered subset of the
artifact tree, rather than requiring a full-tree `--delete-unmatched` run just to track any
deletions at all.

### Proposed solution

Is there a plan or timeline for designing scoped-delete semantics, or a place to follow along?

As a workaround, expanding the following:

```diff
export function hasMutuallyExclusivePublishOptions(
deleteUnmatched: boolean,
_commitId?: string,
hasFilter = false
): boolean {
- return deleteUnmatched && hasFilter;
+ return deleteUnmatched && hasFilter && !_commitId;
}
```

produced correctly-scoped create/update/delete requests when tested against a simple,
self-contained API with no shared dependencies, but this doesn't address resources with shared dependencies that would need more thoughtful deletion orchestration.

### Affected command

apiops publish

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit dem apiops publish-Befehl und hasMutuallyExclusivePublishOptions und prüfe anschließend Issue #215 auf das bestehende fail-fast-Verhalten. Definiere die scoped-delete-Semantik für gefilterte Artefaktbäume einschließlich gemeinsam genutzter Abhängigkeiten und dokumentiere oder implementiere das vereinbarte Verhalten, damit gefilterte Create-, Update- und Delete-Requests korrekt orchestriert werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, typescript
Bereich
api, cli
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Aktiv
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.