feat(applications): add watch paths for selective deployments

- Implement watch paths feature for GitHub and GitLab applications and compose services
- Add ability to specify paths that trigger deployments when changed
- Update database schemas to support watch paths
- Integrate micromatch for flexible path matching
- Enhance deployment triggers with granular file change detection
This commit is contained in:
Mauricio Siu
2025-03-08 23:32:08 -06:00
parent 1ad25ca6d1
commit c1aeb828d8
24 changed files with 11293 additions and 33 deletions

37
pnpm-lock.yaml generated
View File

@@ -334,6 +334,9 @@ importers:
lucide-react:
specifier: ^0.469.0
version: 0.469.0(react@18.2.0)
micromatch:
specifier: 4.0.8
version: 4.0.8
nanoid:
specifier: '3'
version: 3.3.7
@@ -461,6 +464,9 @@ importers:
'@types/lodash':
specifier: 4.17.4
version: 4.17.4
'@types/micromatch':
specifier: 4.0.9
version: 4.0.9
'@types/node':
specifier: ^18.17.0
version: 18.19.42
@@ -675,6 +681,9 @@ importers:
lucia:
specifier: ^3.0.1
version: 3.2.0
micromatch:
specifier: 4.0.8
version: 4.0.8
nanoid:
specifier: '3'
version: 3.3.7
@@ -745,6 +754,9 @@ importers:
'@types/lodash':
specifier: 4.17.4
version: 4.17.4
'@types/micromatch':
specifier: 4.0.9
version: 4.0.9
'@types/node':
specifier: ^18.17.0
version: 18.19.42
@@ -3576,6 +3588,9 @@ packages:
'@types/body-parser@1.19.5':
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
'@types/braces@3.0.5':
resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==}
'@types/btoa-lite@1.0.2':
resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==}
@@ -3675,6 +3690,9 @@ packages:
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
'@types/micromatch@4.0.9':
resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==}
'@types/mime@1.3.5':
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
@@ -5937,6 +5955,10 @@ packages:
resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
engines: {node: '>=8.6'}
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
@@ -10588,6 +10610,8 @@ snapshots:
'@types/connect': 3.4.38
'@types/node': 20.14.10
'@types/braces@3.0.5': {}
'@types/btoa-lite@1.0.2': {}
'@types/connect@3.4.38':
@@ -10701,6 +10725,10 @@ snapshots:
dependencies:
'@types/unist': 2.0.10
'@types/micromatch@4.0.9':
dependencies:
'@types/braces': 3.0.5
'@types/mime@1.3.5': {}
'@types/ms@0.7.34': {}
@@ -12071,7 +12099,7 @@ snapshots:
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.7
micromatch: 4.0.8
fast-json-patch@3.1.1: {}
@@ -13237,6 +13265,11 @@ snapshots:
braces: 3.0.3
picomatch: 2.3.1
micromatch@4.0.8:
dependencies:
braces: 3.0.3
picomatch: 2.3.1
mime-db@1.52.0: {}
mime-types@2.1.35:
@@ -14690,7 +14723,7 @@ snapshots:
is-glob: 4.0.3
jiti: 1.21.6
lilconfig: 2.1.0
micromatch: 4.0.7
micromatch: 4.0.8
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.1