xl-openai
5ee6baee2f
Validate identifiers in plugin creator workflows ( #39131 )
...
## Why
Plugin and marketplace names can flow into generated install commands, so the
plugin creator must reject names outside the supported identifier syntax before
using them or changing files.
## What changed
- Centralize validation for plugin names, including dotted names, and marketplace
names.
- Apply validation when reading marketplaces, validating manifests, updating
cachebusters, and scaffolding plugins.
- Validate existing marketplace state before scaffold writes so invalid or
duplicate entries leave plugin and marketplace files unchanged.
## Testing
Add regression tests for accepted identifiers, unsafe and malformed names,
dotted plugin names, and failure paths that must not modify files.
GitOrigin-RevId: 9db68c2313a1539c5ab44d777966e33b460ceb71
2026-08-18 03:31:06 +00:00
..
2026-07-29 13:53:15 +00:00
2026-08-17 04:01:37 +00:00
2026-07-29 13:53:15 +00:00
2026-08-18 00:45:00 +00:00
2026-08-18 00:45:00 +00:00
2026-08-17 21:49:30 +00:00
2026-07-30 19:47:30 +00:00
2026-08-17 04:01:37 +00:00
2026-08-16 06:48:59 +00:00
2026-08-10 18:44:58 +00:00
2026-08-10 01:39:55 +00:00
2026-08-17 13:20:58 +00:00
2026-08-11 03:39:02 +00:00
2026-08-14 05:03:39 +00:00
2026-08-17 22:37:14 +00:00
2026-08-18 00:31:51 +00:00
2026-08-13 19:35:22 +00:00
2026-08-13 19:35:22 +00:00
2026-08-14 20:42:35 +00:00
2026-08-15 21:26:28 +00:00
2026-08-14 22:40:19 +00:00
2026-08-05 16:09:01 +00:00
2026-08-15 01:34:33 +00:00
2026-07-30 21:49:53 +00:00
2026-08-13 23:13:37 +00:00
2026-08-17 19:38:18 +00:00
2026-08-04 22:58:02 +00:00
2026-08-18 00:45:00 +00:00
2026-08-07 00:23:38 +00:00
2026-08-03 11:39:51 +00:00
2026-08-18 02:23:57 +00:00
2026-08-17 19:22:45 +00:00
2026-08-17 22:26:27 +00:00
2026-08-07 11:30:17 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-17 22:53:55 +00:00
2026-08-17 21:49:30 +00:00
2026-08-17 04:37:50 +00:00
2026-08-17 22:26:27 +00:00
2026-08-17 22:26:27 +00:00
2026-08-17 18:41:50 +00:00
2026-08-07 19:56:29 +00:00
2026-07-31 21:37:56 +00:00
2026-08-17 21:49:30 +00:00
2026-08-10 15:50:53 +00:00
2026-08-14 12:16:51 +00:00
2026-08-17 04:17:45 +00:00
2026-08-17 00:09:44 +00:00
2026-08-10 22:12:14 +00:00
2026-08-17 23:21:28 +00:00
2026-08-17 22:26:27 +00:00
2026-08-17 10:01:59 +00:00
2026-08-14 13:44:51 +00:00
2026-08-17 23:08:26 +00:00
2026-08-14 01:23:59 +00:00
2026-08-17 23:08:26 +00:00
2026-08-17 19:22:45 +00:00
2026-07-30 04:26:36 +00:00
2026-08-17 19:06:53 +00:00
2026-08-10 14:25:13 +00:00
2026-08-17 21:49:30 +00:00
2026-08-17 21:49:30 +00:00
2026-08-15 01:34:33 +00:00
2026-05-07 15:44:17 -07:00
2026-08-17 23:04:09 +00:00
2026-08-17 04:01:37 +00:00
2026-08-06 03:11:42 +00:00
2026-08-17 21:49:30 +00:00
2026-08-10 15:43:10 +00:00
2026-08-18 02:23:57 +00:00
2026-08-08 16:58:26 +00:00
2026-08-18 03:31:06 +00:00
2026-08-17 17:19:46 +00:00
2026-08-04 03:49:53 +00:00
2026-08-18 00:45:00 +00:00
2026-08-17 17:19:46 +00:00
2026-08-14 05:49:33 +00:00
2026-08-18 01:00:48 +00:00
2026-08-17 21:49:30 +00:00
2026-08-17 21:49:30 +00:00
2026-08-15 14:31:04 +00:00
2026-08-17 23:04:09 +00:00
2026-08-17 23:04:09 +00:00
2026-07-29 13:53:15 +00:00
2026-08-11 23:40:07 +00:00