ghcr-manager 0.9.7 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ghcr-manager might be problematic. Click here for more details.

Files changed (56) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/LICENSE +1 -1
  3. package/README.md +37 -56
  4. package/dist/cleanup-summary/_cleanup-summary-markdown.js +7 -10
  5. package/dist/cleanup-summary/_cleanup-summary.d.ts +3 -4
  6. package/dist/cleanup-summary/_cleanup-summary.js +2 -3
  7. package/dist/cli/_cleanup-command.js +1 -1
  8. package/dist/cli/_tag-selector-resolver.js +29 -9
  9. package/dist/cli/index.js +0 -4
  10. package/dist/core/_types.d.ts +1 -6
  11. package/dist/core/_types.js +1 -1
  12. package/dist/db/_db-merge-scan-copy.js +3 -2
  13. package/dist/db/_manifest-reachability.js +47 -8
  14. package/dist/db/_scan-writer.js +1 -13
  15. package/dist/db/planner/_planner-direct-target-root-options.d.ts +11 -0
  16. package/dist/db/planner/_planner-direct-target-root-options.js +1 -0
  17. package/dist/db/planner/_planner-direct-target-root-tag-filters.d.ts +9 -0
  18. package/dist/db/planner/_planner-direct-target-root-tag-filters.js +42 -0
  19. package/dist/db/planner/_planner-direct-target-roots-combined-sql.d.ts +7 -0
  20. package/dist/db/planner/_planner-direct-target-roots-combined-sql.js +198 -0
  21. package/dist/db/planner/_planner-direct-target-roots-combined.d.ts +4 -0
  22. package/dist/db/planner/_planner-direct-target-roots-combined.js +10 -0
  23. package/dist/db/planner/_planner-direct-target-roots-tagged.d.ts +4 -0
  24. package/dist/db/planner/_planner-direct-target-roots-tagged.js +125 -0
  25. package/dist/db/planner/_planner-direct-target-roots.d.ts +2 -12
  26. package/dist/db/planner/_planner-direct-target-roots.js +8 -203
  27. package/dist/db/planner/_planner-direct-target-tags.js +3 -4
  28. package/dist/db/planner/_planner-output.js +28 -8
  29. package/dist/db/planner/_planner-plan-artifacts-blocked-roots-sql.d.ts +1 -0
  30. package/dist/db/planner/_planner-plan-artifacts-blocked-roots-sql.js +65 -0
  31. package/dist/db/planner/_planner-plan-artifacts-closure-sql.d.ts +1 -0
  32. package/dist/db/planner/_planner-plan-artifacts-closure-sql.js +195 -0
  33. package/dist/db/planner/_planner-plan-artifacts-supported-untag-only-sql.d.ts +1 -0
  34. package/dist/db/planner/_planner-plan-artifacts-supported-untag-only-sql.js +86 -0
  35. package/dist/db/planner/_planner-plan-artifacts.js +26 -128
  36. package/dist/db/planner/_planner-sql.js +13 -2
  37. package/dist/db/planner/_planner-types.d.ts +2 -0
  38. package/dist/db/planner/_planner-types.js +1 -0
  39. package/dist/execute/_plan-executor.js +7 -11
  40. package/dist/execute/_types.d.ts +2 -19
  41. package/dist/execute/_untag-client.d.ts +2 -2
  42. package/dist/execute/_untag-client.js +1 -42
  43. package/dist/execute/index.d.ts +1 -1
  44. package/dist/ingest/github/_manifest-kind.d.ts +6 -0
  45. package/dist/ingest/github/_manifest-kind.js +16 -2
  46. package/package.json +16 -10
  47. package/resources/sql/schema/001_schema.sql +14 -4
  48. package/dist/cli/_untag-command.d.ts +0 -1
  49. package/dist/cli/_untag-command.js +0 -58
  50. package/dist/db/_manifest-kind-refinement.d.ts +0 -2
  51. package/dist/db/_manifest-kind-refinement.js +0 -43
  52. package/resources/sql/views/002_v_scan_root_manifests.sql +0 -44
  53. package/resources/sql/views/003_v_digest_tag_relations.sql +0 -50
  54. package/resources/sql/views/004_v_cleanup_root_closure_members.sql +0 -101
  55. package/resources/sql/views/005_v_cleanup_blocking_overlaps.sql +0 -42
  56. package/resources/sql/views/006_v_cleanup_root_decision_readable.sql +0 -67
@@ -1,42 +0,0 @@
1
- DROP VIEW IF EXISTS v_cleanup_blocking_overlaps;
2
-
3
- CREATE VIEW v_cleanup_blocking_overlaps AS
4
- SELECT
5
- run.cleanup_run_id,
6
- run.scan_id,
7
- ps.owner,
8
- ps.package_name,
9
- block.protected_digest,
10
- protected_manifest.version_id AS protected_version_id,
11
- protected_manifest.manifest_kind AS protected_manifest_kind,
12
- block.blocked_digest,
13
- blocked_manifest.version_id AS blocked_version_id,
14
- blocked_manifest.manifest_kind AS blocked_manifest_kind,
15
- decision.selection_mode AS blocked_selection_mode,
16
- decision.selection_reason AS blocked_selection_reason,
17
- decision.validation_status AS blocked_validation_status,
18
- decision.validation_reason_code AS blocked_validation_reason_code,
19
- decision.validation_reason AS blocked_validation_reason,
20
- block.block_reason_code,
21
- block.overlap_digest,
22
- overlap_manifest.version_id AS overlap_version_id,
23
- overlap_manifest.manifest_kind AS overlap_manifest_kind
24
- FROM cleanup_protected_root_blocks block
25
- JOIN cleanup_runs run
26
- ON run.cleanup_run_id = block.cleanup_run_id
27
- AND run.scan_id = block.scan_id
28
- JOIN package_scans ps
29
- ON ps.scan_id = run.scan_id
30
- JOIN manifests protected_manifest
31
- ON protected_manifest.scan_id = block.scan_id
32
- AND protected_manifest.digest = block.protected_digest
33
- JOIN manifests blocked_manifest
34
- ON blocked_manifest.scan_id = block.scan_id
35
- AND blocked_manifest.digest = block.blocked_digest
36
- JOIN cleanup_root_decisions decision
37
- ON decision.cleanup_run_id = block.cleanup_run_id
38
- AND decision.scan_id = block.scan_id
39
- AND decision.digest = block.blocked_digest
40
- LEFT JOIN manifests overlap_manifest
41
- ON overlap_manifest.scan_id = block.scan_id
42
- AND overlap_manifest.digest = block.overlap_digest;
@@ -1,67 +0,0 @@
1
- DROP VIEW IF EXISTS v_cleanup_root_decision_readable;
2
-
3
- CREATE VIEW v_cleanup_root_decision_readable AS
4
- WITH selected_tag_summary AS (
5
- SELECT
6
- selected.cleanup_run_id,
7
- tag.version_id AS root_version_id,
8
- COUNT(*) AS selected_tag_count,
9
- GROUP_CONCAT(selected.tag, ', ') AS selected_tags
10
- FROM cleanup_selected_tags selected
11
- JOIN tags tag
12
- ON tag.scan_id = selected.scan_id
13
- AND tag.tag = selected.tag
14
- GROUP BY
15
- selected.cleanup_run_id,
16
- tag.version_id
17
- )
18
- SELECT
19
- run.cleanup_run_id,
20
- run.scan_id,
21
- scan.owner,
22
- scan.package_name,
23
- decision.digest AS root_digest,
24
- root_manifest.version_id AS root_version_id,
25
- root_manifest.manifest_kind AS root_manifest_kind,
26
- decision.selection_mode,
27
- CASE decision.selection_mode
28
- WHEN 'delete-root' THEN 'delete root'
29
- WHEN 'untag-only' THEN 'detach selected tags only'
30
- END AS selection_mode_label,
31
- decision.selection_reason,
32
- CASE decision.selection_reason
33
- WHEN 'delete-tags-all-tags-selected' THEN 'all tags on this root were selected'
34
- WHEN 'delete-tags-partial-tag-match' THEN 'only part of this root''s tag set was selected'
35
- WHEN 'delete-untagged' THEN 'root was selected because it is untagged'
36
- WHEN 'keep-n-tagged-overflow' THEN 'root fell outside the tagged keep window'
37
- WHEN 'keep-n-untagged-overflow' THEN 'root fell outside the untagged keep window'
38
- END AS selection_reason_label,
39
- decision.validation_status,
40
- CASE decision.validation_status
41
- WHEN 'fully-deletable' THEN 'root and closure can be deleted'
42
- WHEN 'untag-only' THEN 'only selected tags can be detached'
43
- WHEN 'blocked' THEN 'root deletion is blocked'
44
- END AS validation_status_label,
45
- decision.validation_reason_code,
46
- CASE decision.validation_reason_code
47
- WHEN 'fully-deletable-no-retained-overlap' THEN 'no retained root overlaps this closure'
48
- WHEN 'untag-only-partial-tag-match' THEN 'matched tags cover only part of the root tag set'
49
- WHEN 'blocked-overlap-with-retained-root' THEN 'a retained root still requires an overlapping manifest'
50
- END AS validation_reason_code_label,
51
- decision.validation_reason,
52
- decision.blocking_digest,
53
- decision.overlap_digest,
54
- COALESCE(tag_summary.selected_tag_count, 0) AS selected_tag_count,
55
- tag_summary.selected_tags
56
- FROM cleanup_root_decisions decision
57
- JOIN cleanup_runs run
58
- ON run.cleanup_run_id = decision.cleanup_run_id
59
- AND run.scan_id = decision.scan_id
60
- JOIN package_scans scan
61
- ON scan.scan_id = run.scan_id
62
- JOIN manifests root_manifest
63
- ON root_manifest.scan_id = decision.scan_id
64
- AND root_manifest.digest = decision.digest
65
- LEFT JOIN selected_tag_summary tag_summary
66
- ON tag_summary.cleanup_run_id = decision.cleanup_run_id
67
- AND tag_summary.root_version_id = root_manifest.version_id;