pipecraft 0.29.3 → 0.36.14

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.
Files changed (142) hide show
  1. package/README.md +128 -54
  2. package/dist/cli/index.d.ts +3 -3
  3. package/dist/cli/index.js +68 -25
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/generators/init.tpl.d.ts +4 -4
  6. package/dist/generators/init.tpl.d.ts.map +1 -1
  7. package/dist/generators/init.tpl.js +214 -108
  8. package/dist/generators/init.tpl.js.map +1 -1
  9. package/dist/generators/workflows.tpl.d.ts +9 -9
  10. package/dist/generators/workflows.tpl.d.ts.map +1 -1
  11. package/dist/generators/workflows.tpl.js +33 -36
  12. package/dist/generators/workflows.tpl.js.map +1 -1
  13. package/dist/templates/actions/calculate-version.yml.tpl.d.ts +7 -4
  14. package/dist/templates/actions/calculate-version.yml.tpl.d.ts.map +1 -1
  15. package/dist/templates/actions/calculate-version.yml.tpl.js +49 -23
  16. package/dist/templates/actions/calculate-version.yml.tpl.js.map +1 -1
  17. package/dist/templates/actions/create-pr.yml.tpl.d.ts +5 -2
  18. package/dist/templates/actions/create-pr.yml.tpl.d.ts.map +1 -1
  19. package/dist/templates/actions/create-pr.yml.tpl.js +14 -8
  20. package/dist/templates/actions/create-pr.yml.tpl.js.map +1 -1
  21. package/dist/templates/actions/create-release.yml.tpl.d.ts +5 -2
  22. package/dist/templates/actions/create-release.yml.tpl.d.ts.map +1 -1
  23. package/dist/templates/actions/create-release.yml.tpl.js +16 -11
  24. package/dist/templates/actions/create-release.yml.tpl.js.map +1 -1
  25. package/dist/templates/actions/create-tag.yml.tpl.d.ts +5 -2
  26. package/dist/templates/actions/create-tag.yml.tpl.d.ts.map +1 -1
  27. package/dist/templates/actions/create-tag.yml.tpl.js +13 -9
  28. package/dist/templates/actions/create-tag.yml.tpl.js.map +1 -1
  29. package/dist/templates/actions/detect-changes.yml.tpl.d.ts +17 -51
  30. package/dist/templates/actions/detect-changes.yml.tpl.d.ts.map +1 -1
  31. package/dist/templates/actions/detect-changes.yml.tpl.js +130 -110
  32. package/dist/templates/actions/detect-changes.yml.tpl.js.map +1 -1
  33. package/dist/templates/actions/manage-branch.yml.tpl.d.ts +5 -2
  34. package/dist/templates/actions/manage-branch.yml.tpl.d.ts.map +1 -1
  35. package/dist/templates/actions/manage-branch.yml.tpl.js +13 -9
  36. package/dist/templates/actions/manage-branch.yml.tpl.js.map +1 -1
  37. package/dist/templates/actions/promote-branch.yml.tpl.d.ts +5 -2
  38. package/dist/templates/actions/promote-branch.yml.tpl.d.ts.map +1 -1
  39. package/dist/templates/actions/promote-branch.yml.tpl.js +39 -92
  40. package/dist/templates/actions/promote-branch.yml.tpl.js.map +1 -1
  41. package/dist/templates/release-it.cjs.tpl.d.ts +1 -1
  42. package/dist/templates/release-it.cjs.tpl.d.ts.map +1 -1
  43. package/dist/templates/release-it.cjs.tpl.js +38 -29
  44. package/dist/templates/release-it.cjs.tpl.js.map +1 -1
  45. package/dist/templates/workflows/enforce-pr-target.yml.tpl.d.ts +1 -1
  46. package/dist/templates/workflows/enforce-pr-target.yml.tpl.d.ts.map +1 -1
  47. package/dist/templates/workflows/enforce-pr-target.yml.tpl.js +2 -3
  48. package/dist/templates/workflows/enforce-pr-target.yml.tpl.js.map +1 -1
  49. package/dist/templates/workflows/pipeline.yml.tpl.d.ts +2 -2
  50. package/dist/templates/workflows/pipeline.yml.tpl.d.ts.map +1 -1
  51. package/dist/templates/workflows/pipeline.yml.tpl.js +337 -84
  52. package/dist/templates/workflows/pipeline.yml.tpl.js.map +1 -1
  53. package/dist/templates/workflows/pr-title-check.yml.tpl.d.ts +1 -1
  54. package/dist/templates/workflows/pr-title-check.yml.tpl.d.ts.map +1 -1
  55. package/dist/templates/workflows/pr-title-check.yml.tpl.js +101 -22
  56. package/dist/templates/workflows/pr-title-check.yml.tpl.js.map +1 -1
  57. package/dist/templates/workflows/shared/index.d.ts +4 -2
  58. package/dist/templates/workflows/shared/index.d.ts.map +1 -1
  59. package/dist/templates/workflows/shared/index.js +4 -2
  60. package/dist/templates/workflows/shared/index.js.map +1 -1
  61. package/dist/templates/workflows/shared/managed-workflow.d.ts +32 -0
  62. package/dist/templates/workflows/shared/managed-workflow.d.ts.map +1 -0
  63. package/dist/templates/workflows/shared/managed-workflow.js +51 -0
  64. package/dist/templates/workflows/shared/managed-workflow.js.map +1 -0
  65. package/dist/templates/workflows/shared/operations-changes.d.ts +13 -3
  66. package/dist/templates/workflows/shared/operations-changes.d.ts.map +1 -1
  67. package/dist/templates/workflows/shared/operations-changes.js +42 -16
  68. package/dist/templates/workflows/shared/operations-changes.js.map +1 -1
  69. package/dist/templates/workflows/shared/operations-domain-jobs.d.ts +18 -1
  70. package/dist/templates/workflows/shared/operations-domain-jobs.d.ts.map +1 -1
  71. package/dist/templates/workflows/shared/operations-domain-jobs.js +142 -17
  72. package/dist/templates/workflows/shared/operations-domain-jobs.js.map +1 -1
  73. package/dist/templates/workflows/shared/operations-gate.d.ts +6 -0
  74. package/dist/templates/workflows/shared/operations-gate.d.ts.map +1 -0
  75. package/dist/templates/workflows/shared/operations-gate.js +116 -0
  76. package/dist/templates/workflows/shared/operations-gate.js.map +1 -0
  77. package/dist/templates/workflows/shared/operations-header.d.ts +11 -1
  78. package/dist/templates/workflows/shared/operations-header.d.ts.map +1 -1
  79. package/dist/templates/workflows/shared/operations-header.js +66 -7
  80. package/dist/templates/workflows/shared/operations-header.js.map +1 -1
  81. package/dist/templates/workflows/shared/operations-tag-promote.d.ts +4 -3
  82. package/dist/templates/workflows/shared/operations-tag-promote.d.ts.map +1 -1
  83. package/dist/templates/workflows/shared/operations-tag-promote.js +144 -33
  84. package/dist/templates/workflows/shared/operations-tag-promote.js.map +1 -1
  85. package/dist/templates/workflows/shared/operations-version.d.ts +3 -2
  86. package/dist/templates/workflows/shared/operations-version.d.ts.map +1 -1
  87. package/dist/templates/workflows/shared/operations-version.js +17 -16
  88. package/dist/templates/workflows/shared/operations-version.js.map +1 -1
  89. package/dist/templates/yaml-format-utils.d.ts.map +1 -1
  90. package/dist/templates/yaml-format-utils.js +1 -5
  91. package/dist/templates/yaml-format-utils.js.map +1 -1
  92. package/dist/types/index.d.ts +65 -53
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/utils/action-reference.d.ts +73 -0
  95. package/dist/utils/action-reference.d.ts.map +1 -0
  96. package/dist/utils/action-reference.js +120 -0
  97. package/dist/utils/action-reference.js.map +1 -0
  98. package/dist/utils/ast-path-operations.d.ts +3 -3
  99. package/dist/utils/ast-path-operations.d.ts.map +1 -1
  100. package/dist/utils/ast-path-operations.js +58 -17
  101. package/dist/utils/ast-path-operations.js.map +1 -1
  102. package/dist/utils/config.d.ts +16 -5
  103. package/dist/utils/config.d.ts.map +1 -1
  104. package/dist/utils/config.js +69 -12
  105. package/dist/utils/config.js.map +1 -1
  106. package/dist/utils/github-setup.d.ts +7 -7
  107. package/dist/utils/github-setup.d.ts.map +1 -1
  108. package/dist/utils/github-setup.js +84 -63
  109. package/dist/utils/github-setup.js.map +1 -1
  110. package/dist/utils/logger.d.ts.map +1 -1
  111. package/dist/utils/logger.js.map +1 -1
  112. package/dist/utils/messaging.d.ts +2 -2
  113. package/dist/utils/messaging.d.ts.map +1 -1
  114. package/dist/utils/messaging.js +12 -8
  115. package/dist/utils/messaging.js.map +1 -1
  116. package/dist/utils/preflight.d.ts +2 -2
  117. package/dist/utils/preflight.d.ts.map +1 -1
  118. package/dist/utils/preflight.js +43 -41
  119. package/dist/utils/preflight.js.map +1 -1
  120. package/dist/utils/versioning.d.ts +1 -1
  121. package/dist/utils/versioning.d.ts.map +1 -1
  122. package/dist/utils/versioning.js +10 -10
  123. package/dist/utils/versioning.js.map +1 -1
  124. package/dist/utils/workflow-semantics.d.ts +61 -0
  125. package/dist/utils/workflow-semantics.d.ts.map +1 -0
  126. package/dist/utils/workflow-semantics.js +230 -0
  127. package/dist/utils/workflow-semantics.js.map +1 -0
  128. package/package.json +12 -4
  129. package/src/generators/init.tpl.ts +275 -128
  130. package/src/generators/workflows.tpl.ts +54 -57
  131. package/dist/templates/actions/detect-changes-nx.yml.tpl.d.ts +0 -32
  132. package/dist/templates/actions/detect-changes-nx.yml.tpl.d.ts.map +0 -1
  133. package/dist/templates/actions/detect-changes-nx.yml.tpl.js +0 -227
  134. package/dist/templates/actions/detect-changes-nx.yml.tpl.js.map +0 -1
  135. package/dist/templates/workflows/pipeline-nx.yml.tpl.d.ts +0 -22
  136. package/dist/templates/workflows/pipeline-nx.yml.tpl.d.ts.map +0 -1
  137. package/dist/templates/workflows/pipeline-nx.yml.tpl.js +0 -196
  138. package/dist/templates/workflows/pipeline-nx.yml.tpl.js.map +0 -1
  139. package/dist/utils/idempotency.d.ts +0 -187
  140. package/dist/utils/idempotency.d.ts.map +0 -1
  141. package/dist/utils/idempotency.js +0 -304
  142. package/dist/utils/idempotency.js.map +0 -1
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Action Reference Utilities
3
+ *
4
+ * Helper functions for generating action references in workflows based on
5
+ * the configured action source mode (embedded, marketplace, or repository).
6
+ *
7
+ * @module utils/action-reference
8
+ */
9
+ import type { PipecraftConfig } from '../types/index.js';
10
+ /**
11
+ * Generate the action reference path based on configuration.
12
+ *
13
+ * @param actionName - Name of the action (e.g., 'detect-changes', 'create-tag')
14
+ * @param config - PipeCraft configuration
15
+ * @returns The action reference string to use in workflows
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // Embedded mode (default)
20
+ * getActionReference('detect-changes', { actionSourceMode: 'local' })
21
+ * // Returns: './.github/actions/detect-changes'
22
+ *
23
+ * // Marketplace mode
24
+ * getActionReference('detect-changes', {
25
+ * actionSourceMode: 'remote',
26
+ * actionVersion: 'v1.2.3'
27
+ * })
28
+ * // Returns: 'the-craftlab/pipecraft/actions/detect-changes@v1.2.3'
29
+ *
30
+ * // Repository mode (PipeCraft's own CI)
31
+ * getActionReference('detect-changes', { actionSourceMode: 'source' })
32
+ * // Returns: './actions/detect-changes'
33
+ * ```
34
+ */
35
+ export declare function getActionReference(actionName: string, config: Partial<PipecraftConfig>): string;
36
+ /**
37
+ * Get the output directory for action files during generation.
38
+ *
39
+ * @param config - PipeCraft configuration
40
+ * @returns Directory path where actions should be generated
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * getActionOutputDir({ actionSourceMode: 'local' })
45
+ * // Returns: '.github/actions'
46
+ *
47
+ * getActionOutputDir({ actionSourceMode: 'source' })
48
+ * // Returns: 'actions'
49
+ * ```
50
+ */
51
+ export declare function getActionOutputDir(config: Partial<PipecraftConfig>): string;
52
+ /**
53
+ * Check if actions should be generated locally.
54
+ *
55
+ * @param config - PipeCraft configuration
56
+ * @returns True if actions should be generated, false if using marketplace
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * shouldGenerateActions({ actionSourceMode: 'local' }) // true
61
+ * shouldGenerateActions({ actionSourceMode: 'remote' }) // false
62
+ * shouldGenerateActions({ actionSourceMode: 'source' }) // true
63
+ * ```
64
+ */
65
+ export declare function shouldGenerateActions(config: Partial<PipecraftConfig>): boolean;
66
+ /**
67
+ * Get human-readable description of the action source mode.
68
+ *
69
+ * @param config - PipeCraft configuration
70
+ * @returns Description string for logging/display
71
+ */
72
+ export declare function getActionSourceDescription(config: Partial<PipecraftConfig>): string;
73
+ //# sourceMappingURL=action-reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-reference.d.ts","sourceRoot":"","sources":["../../src/utils/action-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAsB/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAiB3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAG/E;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAkBnF"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Action Reference Utilities
3
+ *
4
+ * Helper functions for generating action references in workflows based on
5
+ * the configured action source mode (embedded, marketplace, or repository).
6
+ *
7
+ * @module utils/action-reference
8
+ */
9
+ /**
10
+ * Generate the action reference path based on configuration.
11
+ *
12
+ * @param actionName - Name of the action (e.g., 'detect-changes', 'create-tag')
13
+ * @param config - PipeCraft configuration
14
+ * @returns The action reference string to use in workflows
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Embedded mode (default)
19
+ * getActionReference('detect-changes', { actionSourceMode: 'local' })
20
+ * // Returns: './.github/actions/detect-changes'
21
+ *
22
+ * // Marketplace mode
23
+ * getActionReference('detect-changes', {
24
+ * actionSourceMode: 'remote',
25
+ * actionVersion: 'v1.2.3'
26
+ * })
27
+ * // Returns: 'the-craftlab/pipecraft/actions/detect-changes@v1.2.3'
28
+ *
29
+ * // Repository mode (PipeCraft's own CI)
30
+ * getActionReference('detect-changes', { actionSourceMode: 'source' })
31
+ * // Returns: './actions/detect-changes'
32
+ * ```
33
+ */
34
+ export function getActionReference(actionName, config) {
35
+ const mode = config.actionSourceMode || 'local';
36
+ switch (mode) {
37
+ case 'local':
38
+ // Default: Actions in .github/actions/ (user repos)
39
+ return `./.github/actions/${actionName}`;
40
+ case 'remote': {
41
+ // Reference published marketplace actions
42
+ const version = config.actionVersion || 'v1';
43
+ return `the-craftlab/pipecraft/actions/${actionName}@${version}`;
44
+ }
45
+ case 'source':
46
+ // Internal: Actions in /actions/ (PipeCraft repo only)
47
+ return `./actions/${actionName}`;
48
+ default:
49
+ // Fallback to local mode
50
+ return `./.github/actions/${actionName}`;
51
+ }
52
+ }
53
+ /**
54
+ * Get the output directory for action files during generation.
55
+ *
56
+ * @param config - PipeCraft configuration
57
+ * @returns Directory path where actions should be generated
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * getActionOutputDir({ actionSourceMode: 'local' })
62
+ * // Returns: '.github/actions'
63
+ *
64
+ * getActionOutputDir({ actionSourceMode: 'source' })
65
+ * // Returns: 'actions'
66
+ * ```
67
+ */
68
+ export function getActionOutputDir(config) {
69
+ const mode = config.actionSourceMode || 'local';
70
+ switch (mode) {
71
+ case 'local':
72
+ return '.github/actions';
73
+ case 'remote':
74
+ // Don't generate actions locally in remote mode
75
+ return '';
76
+ case 'source':
77
+ return 'actions';
78
+ default:
79
+ return '.github/actions';
80
+ }
81
+ }
82
+ /**
83
+ * Check if actions should be generated locally.
84
+ *
85
+ * @param config - PipeCraft configuration
86
+ * @returns True if actions should be generated, false if using marketplace
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * shouldGenerateActions({ actionSourceMode: 'local' }) // true
91
+ * shouldGenerateActions({ actionSourceMode: 'remote' }) // false
92
+ * shouldGenerateActions({ actionSourceMode: 'source' }) // true
93
+ * ```
94
+ */
95
+ export function shouldGenerateActions(config) {
96
+ const mode = config.actionSourceMode || 'local';
97
+ return mode !== 'remote';
98
+ }
99
+ /**
100
+ * Get human-readable description of the action source mode.
101
+ *
102
+ * @param config - PipeCraft configuration
103
+ * @returns Description string for logging/display
104
+ */
105
+ export function getActionSourceDescription(config) {
106
+ const mode = config.actionSourceMode || 'local';
107
+ switch (mode) {
108
+ case 'local':
109
+ return 'Local actions (full control, in .github/actions/)';
110
+ case 'remote': {
111
+ const version = config.actionVersion || 'v1';
112
+ return `Marketplace actions (pinned to ${version})`;
113
+ }
114
+ case 'source':
115
+ return 'Repository actions (dogfooding /actions/ folder)';
116
+ default:
117
+ return 'Local actions (default mode)';
118
+ }
119
+ }
120
+ //# sourceMappingURL=action-reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-reference.js","sourceRoot":"","sources":["../../src/utils/action-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,MAAgC;IACrF,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAA;IAE/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,oDAAoD;YACpD,OAAO,qBAAqB,UAAU,EAAE,CAAA;QAE1C,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,0CAA0C;YAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAA;YAC5C,OAAO,kCAAkC,UAAU,IAAI,OAAO,EAAE,CAAA;QAClE,CAAC;QAED,KAAK,QAAQ;YACX,uDAAuD;YACvD,OAAO,aAAa,UAAU,EAAE,CAAA;QAElC;YACE,yBAAyB;YACzB,OAAO,qBAAqB,UAAU,EAAE,CAAA;IAC5C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAgC;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAA;IAE/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAA;QAE1B,KAAK,QAAQ;YACX,gDAAgD;YAChD,OAAO,EAAE,CAAA;QAEX,KAAK,QAAQ;YACX,OAAO,SAAS,CAAA;QAElB;YACE,OAAO,iBAAiB,CAAA;IAC5B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAgC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAA;IAC/C,OAAO,IAAI,KAAK,QAAQ,CAAA;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAgC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAA;IAE/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,mDAAmD,CAAA;QAE5D,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAA;YAC5C,OAAO,kCAAkC,OAAO,GAAG,CAAA;QACrD,CAAC;QAED,KAAK,QAAQ;YACX,OAAO,kDAAkD,CAAA;QAE3D;YACE,OAAO,8BAA8B,CAAA;IACzC,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { YAMLMap, Node } from 'yaml';
1
+ import { type Node, YAMLMap } from 'yaml';
2
2
  /**
3
3
  * # AST Path Operations for YAML Manipulation
4
4
  *
@@ -43,7 +43,7 @@ import { YAMLMap, Node } from 'yaml';
43
43
  * value: createValueFromString(`
44
44
  * runs-on: ubuntu-latest
45
45
  * steps:
46
- * - uses: ./.github/actions/detect-changes
46
+ * - uses: ./actions/detect-changes
47
47
  * with:
48
48
  * baseRef: ${{ inputs.baseRef || 'main' }}
49
49
  * `)
@@ -215,7 +215,7 @@ export declare function ensurePathAndApply(doc: YAMLMap, config: PathOperationCo
215
215
  * value: createValueFromString(`
216
216
  * runs-on: ubuntu-latest
217
217
  * steps:
218
- * - uses: ./.github/actions/detect-changes
218
+ * - uses: ./actions/detect-changes
219
219
  * `)
220
220
  * }
221
221
  * ]
@@ -1 +1 @@
1
- {"version":3,"file":"ast-path-operations.d.ts","sourceRoot":"","sources":["../../src/utils/ast-path-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAA;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,EAAE,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,aAAa,CAAA;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI,CAwErJ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAcpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAmCN;AAgID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,mBAAmB,EAAE,EACjC,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAIN;AAED;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CA0B7F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAKlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAErD"}
1
+ {"version":3,"file":"ast-path-operations.d.ts","sourceRoot":"","sources":["../../src/utils/ast-path-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAoC,OAAO,EAAW,MAAM,MAAM,CAAA;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAA;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,EAAE,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,aAAa,CAAA;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,GAAG,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,OAAO,GAC3B,IAAI,CAiFN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAcpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAmCN;AAkID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,mBAAmB,EAAE,EACjC,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAIN;AAED;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CA+B7F;AAoCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAKlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAErD"}
@@ -1,4 +1,4 @@
1
- import { parseDocument, stringify, YAMLMap, YAMLSeq, Scalar } from 'yaml';
1
+ import { parseDocument, Scalar, stringify, YAMLMap, YAMLSeq } from 'yaml';
2
2
  /**
3
3
  * Set a value at a specific path in the YAML AST
4
4
  *
@@ -55,11 +55,9 @@ export function setPathValue(doc, path, value, document, commentBefore, spaceBef
55
55
  // For job keys, we create Scalar keys so we can add comments to the KEY later (in template code).
56
56
  // For non-job paths with comments, we add comments to the VALUE node.
57
57
  const isJobKey = pathParts.length === 2 && pathParts[0] === 'jobs';
58
- // Check if key already exists - if so, delete it first to avoid duplicates
58
+ // Check if key already exists
59
59
  const existingValue = current.get(finalKey);
60
- if (existingValue !== undefined) {
61
- current.delete(finalKey);
62
- }
60
+ const keyExists = existingValue !== undefined;
63
61
  if (isJobKey || commentBefore || spaceBeforeComment) {
64
62
  // For job keys OR any field with comments/spacing: Create a Scalar key
65
63
  // Comments and spacing should be attached to keys, not values, for proper YAML formatting
@@ -67,24 +65,34 @@ export function setPathValue(doc, path, value, document, commentBefore, spaceBef
67
65
  if (commentBefore) {
68
66
  ;
69
67
  scalarKey.commentBefore = commentBefore;
70
- // For job keys, also add to value for backwards compatibility with tests
71
- if (isJobKey && node) {
72
- ;
73
- node.commentBefore = commentBefore;
74
- }
75
68
  }
76
69
  if (spaceBeforeComment) {
77
70
  ;
78
71
  scalarKey.spaceBefore = true;
79
- if (isJobKey && node) {
80
- ;
81
- node.spaceBefore = true;
72
+ }
73
+ if (keyExists) {
74
+ // Update existing key in-place to preserve order
75
+ // Find the existing pair and update it
76
+ const pair = current.items.find((p) => {
77
+ const keyStr = p.key instanceof Scalar ? p.key.value : p.key;
78
+ return keyStr === finalKey;
79
+ });
80
+ if (pair) {
81
+ pair.key = scalarKey;
82
+ pair.value = node;
83
+ }
84
+ else {
85
+ // Shouldn't happen, but fallback to add
86
+ current.add({ key: scalarKey, value: node });
82
87
  }
83
88
  }
84
- current.add({ key: scalarKey, value: node });
89
+ else {
90
+ // Key doesn't exist, add it
91
+ current.add({ key: scalarKey, value: node });
92
+ }
85
93
  }
86
94
  else {
87
- // Normal case: use the simple set() method which creates a string key
95
+ // Normal case: use the simple set() method which updates in-place and preserves order
88
96
  current.set(finalKey, node);
89
97
  }
90
98
  }
@@ -324,7 +332,7 @@ function createNode(value) {
324
332
  * value: createValueFromString(`
325
333
  * runs-on: ubuntu-latest
326
334
  * steps:
327
- * - uses: ./.github/actions/detect-changes
335
+ * - uses: ./actions/detect-changes
328
336
  * `)
329
337
  * }
330
338
  * ]
@@ -388,7 +396,40 @@ export function createValueFromString(yamlString, context, document) {
388
396
  }
389
397
  // Parse the YAML string and return the root content as a proper Node
390
398
  const doc = parseDocument(processedString);
391
- return doc.contents;
399
+ const contents = doc.contents;
400
+ // Set all maps and seqs to use block style (not flow/compact)
401
+ setBlockStyle(contents);
402
+ return contents;
403
+ }
404
+ /**
405
+ * Recursively set block style on all YAMLMap and YAMLSeq nodes
406
+ * This ensures proper YAML formatting instead of compact JSON-like flow style
407
+ */
408
+ function setBlockStyle(node) {
409
+ if (node instanceof YAMLMap) {
410
+ node.flow = false;
411
+ for (const pair of node.items) {
412
+ if (pair.value) {
413
+ setBlockStyle(pair.value);
414
+ }
415
+ }
416
+ }
417
+ else if (node instanceof YAMLSeq) {
418
+ // Check if this is a simple array (only scalar values)
419
+ const isSimpleArray = node.items.every(item => {
420
+ return (item instanceof Scalar ||
421
+ typeof item === 'string' ||
422
+ typeof item === 'number' ||
423
+ typeof item === 'boolean');
424
+ });
425
+ // Keep flow style (inline) for simple arrays, use block style for complex arrays
426
+ node.flow = isSimpleArray;
427
+ for (const item of node.items) {
428
+ if (item && typeof item === 'object' && !(item instanceof Scalar)) {
429
+ setBlockStyle(item);
430
+ }
431
+ }
432
+ }
392
433
  }
393
434
  /**
394
435
  * Create a YAML node from a JavaScript object
@@ -1 +1 @@
1
- {"version":3,"file":"ast-path-operations.js","sourceRoot":"","sources":["../../src/utils/ast-path-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-path-operations.js","sourceRoot":"","sources":["../../src/utils/ast-path-operations.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,11 @@
3
3
  *
4
4
  * This module provides functions to load and validate PipeCraft configuration files.
5
5
  * It uses cosmiconfig to search for configuration in multiple locations:
6
+ * - .pipecraftrc (YAML or JSON, recommended)
6
7
  * - .pipecraftrc.json
7
- * - .pipecraftrc (JSON or YAML)
8
+ * - .pipecraftrc.yaml
9
+ * - .pipecraftrc.yml
10
+ * - .pipecraftrc.js
8
11
  * - pipecraft.config.js
9
12
  * - package.json (pipecraft key)
10
13
  *
@@ -13,16 +16,24 @@
13
16
  *
14
17
  * @module utils/config
15
18
  */
19
+ /**
20
+ * Reserved job names that cannot be used as domain names.
21
+ * These are managed by Pipecraft and would conflict with generated workflow jobs.
22
+ */
23
+ export declare const RESERVED_JOB_NAMES: readonly ["version", "changes", "gate", "tag", "promote", "release"];
16
24
  /**
17
25
  * Load PipeCraft configuration from filesystem.
18
26
  *
19
27
  * Uses cosmiconfig to search for configuration files in standard locations.
20
28
  * If no path is provided, searches the current directory and ancestors for
21
29
  * configuration files in this order:
22
- * 1. .pipecraftrc.json
23
- * 2. .pipecraftrc
24
- * 3. pipecraft.config.js
25
- * 4. package.json (pipecraft key)
30
+ * 1. .pipecraftrc (YAML or JSON, recommended)
31
+ * 2. .pipecraftrc.json
32
+ * 3. .pipecraftrc.yaml
33
+ * 4. .pipecraftrc.yml
34
+ * 5. .pipecraftrc.js
35
+ * 6. pipecraft.config.js
36
+ * 7. package.json (pipecraft key)
26
37
  *
27
38
  * @param configPath - Optional explicit path to configuration file
28
39
  * @returns Parsed configuration object
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,QAS7C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,GAAG,YAyDzC,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sEAOrB,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,QAwB7C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,GAAG,YAgGzC,CAAA"}
@@ -3,8 +3,11 @@
3
3
  *
4
4
  * This module provides functions to load and validate PipeCraft configuration files.
5
5
  * It uses cosmiconfig to search for configuration in multiple locations:
6
+ * - .pipecraftrc (YAML or JSON, recommended)
6
7
  * - .pipecraftrc.json
7
- * - .pipecraftrc (JSON or YAML)
8
+ * - .pipecraftrc.yaml
9
+ * - .pipecraftrc.yml
10
+ * - .pipecraftrc.js
8
11
  * - pipecraft.config.js
9
12
  * - package.json (pipecraft key)
10
13
  *
@@ -14,16 +17,31 @@
14
17
  * @module utils/config
15
18
  */
16
19
  import { cosmiconfigSync } from 'cosmiconfig';
20
+ /**
21
+ * Reserved job names that cannot be used as domain names.
22
+ * These are managed by Pipecraft and would conflict with generated workflow jobs.
23
+ */
24
+ export const RESERVED_JOB_NAMES = [
25
+ 'version',
26
+ 'changes',
27
+ 'gate',
28
+ 'tag',
29
+ 'promote',
30
+ 'release'
31
+ ];
17
32
  /**
18
33
  * Load PipeCraft configuration from filesystem.
19
34
  *
20
35
  * Uses cosmiconfig to search for configuration files in standard locations.
21
36
  * If no path is provided, searches the current directory and ancestors for
22
37
  * configuration files in this order:
23
- * 1. .pipecraftrc.json
24
- * 2. .pipecraftrc
25
- * 3. pipecraft.config.js
26
- * 4. package.json (pipecraft key)
38
+ * 1. .pipecraftrc (YAML or JSON, recommended)
39
+ * 2. .pipecraftrc.json
40
+ * 3. .pipecraftrc.yaml
41
+ * 4. .pipecraftrc.yml
42
+ * 5. .pipecraftrc.js
43
+ * 6. pipecraft.config.js
44
+ * 7. package.json (pipecraft key)
27
45
  *
28
46
  * @param configPath - Optional explicit path to configuration file
29
47
  * @returns Parsed configuration object
@@ -39,10 +57,21 @@ import { cosmiconfigSync } from 'cosmiconfig';
39
57
  * ```
40
58
  */
41
59
  export const loadConfig = (configPath) => {
42
- const explorer = cosmiconfigSync('pipecraft');
60
+ const explorer = cosmiconfigSync('pipecraft', {
61
+ searchPlaces: [
62
+ '.pipecraftrc',
63
+ '.pipecraftrc.json',
64
+ '.pipecraftrc.yaml',
65
+ '.pipecraftrc.yml',
66
+ '.pipecraftrc.js',
67
+ 'pipecraft.config.js',
68
+ 'package.json'
69
+ ]
70
+ });
43
71
  const result = configPath ? explorer.load(configPath) : explorer.search();
44
72
  if (!result) {
45
- throw new Error(`No configuration file found. Expected: ${configPath || '.pipecraftrc.json'}`);
73
+ throw new Error(`No configuration file found. Expected: ${configPath ||
74
+ '.pipecraftrc, .pipecraftrc.json, .pipecraftrc.yml, .pipecraftrc.yaml, or .pipecraftrc.js'}`);
46
75
  }
47
76
  return result.config;
48
77
  };
@@ -72,7 +101,15 @@ export const loadConfig = (configPath) => {
72
101
  */
73
102
  export const validateConfig = (config) => {
74
103
  // Check for all required top-level fields
75
- const requiredFields = ['ciProvider', 'mergeStrategy', 'requireConventionalCommits', 'initialBranch', 'finalBranch', 'branchFlow', 'domains'];
104
+ const requiredFields = [
105
+ 'ciProvider',
106
+ 'mergeStrategy',
107
+ 'requireConventionalCommits',
108
+ 'initialBranch',
109
+ 'finalBranch',
110
+ 'branchFlow',
111
+ 'domains'
112
+ ];
76
113
  for (const field of requiredFields) {
77
114
  if (!(field in config)) {
78
115
  throw new Error(`Missing required field: ${field}`);
@@ -86,15 +123,35 @@ export const validateConfig = (config) => {
86
123
  if (!['fast-forward', 'merge'].includes(config.mergeStrategy)) {
87
124
  throw new Error('mergeStrategy must be either "fast-forward" or "merge"');
88
125
  }
89
- // Validate branchFlow is a non-empty array with at least 2 branches
90
- // (minimum trunk-based flow requires at least develop → main)
91
- if (!Array.isArray(config.branchFlow) || config.branchFlow.length < 2) {
92
- throw new Error('branchFlow must be an array with at least 2 branches');
126
+ // Validate branchFlow is a non-empty array
127
+ // Single-branch workflows are valid (e.g., GitHub Actions, libraries that publish from main)
128
+ if (!Array.isArray(config.branchFlow) || config.branchFlow.length < 1) {
129
+ throw new Error('branchFlow must be an array with at least 1 branch');
130
+ }
131
+ // Validate initialBranch is first in branchFlow
132
+ if (config.branchFlow[0] !== config.initialBranch) {
133
+ throw new Error(`initialBranch "${config.initialBranch}" must be the first branch in branchFlow. ` +
134
+ `Got branchFlow: [${config.branchFlow.join(', ')}]`);
135
+ }
136
+ // Validate finalBranch is last in branchFlow
137
+ if (config.branchFlow[config.branchFlow.length - 1] !== config.finalBranch) {
138
+ throw new Error(`finalBranch "${config.finalBranch}" must be the last branch in branchFlow. ` +
139
+ `Got branchFlow: [${config.branchFlow.join(', ')}]`);
93
140
  }
94
141
  // Validate domains structure
95
142
  if (typeof config.domains !== 'object') {
96
143
  throw new Error('domains must be an object');
97
144
  }
145
+ // Validate domain names don't conflict with reserved job names
146
+ const domainNames = Object.keys(config.domains);
147
+ for (const domainName of domainNames) {
148
+ const lowerName = domainName.toLowerCase();
149
+ if (RESERVED_JOB_NAMES.includes(lowerName)) {
150
+ throw new Error(`Domain name "${domainName}" is reserved and cannot be used. ` +
151
+ `Reserved names: ${RESERVED_JOB_NAMES.join(', ')}. ` +
152
+ `These names are used by Pipecraft-managed workflow jobs.`);
153
+ }
154
+ }
98
155
  // Validate each domain configuration
99
156
  for (const [domainName, domainConfig] of Object.entries(config.domains)) {
100
157
  if (!domainConfig || typeof domainConfig !== 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  * and settings for PipeCraft workflows to function properly, including:
16
16
  * - Workflows can create pull requests
17
17
  * - Merge commits always use PR titles (not individual commit messages)
18
- * - Auto-merge is enabled based on .pipecraftrc.json config
18
+ * - Auto-merge is enabled based on .pipecraftrc config
19
19
  * - Branch protection is configured appropriately
20
20
  * - Required status checks are enforced
21
21
  *
@@ -26,18 +26,18 @@
26
26
  * 1. **Repository-Level Setting** (`allow_auto_merge`):
27
27
  * - Must be ON for auto-merge to be available at all
28
28
  * - Controls whether the "Enable auto-merge" button appears on PRs
29
- * - Configured by this module based on .pipecraftrc.json
29
+ * - Configured by this module based on .pipecraftrc
30
30
  *
31
31
  * 2. **Per-PR Activation**:
32
32
  * - Must be explicitly enabled on each PR (via button, CLI, or API)
33
33
  * - Pipecraft workflows automatically enable it for configured branches
34
- * - Configured per-branch in .pipecraftrc.json autoMerge setting
34
+ * - Configured per-branch in .pipecraftrc autoPromote setting
35
35
  *
36
36
  * Example config:
37
37
  * ```json
38
38
  * {
39
39
  * "branchFlow": ["develop", "staging", "main"],
40
- * "autoMerge": {
40
+ * "autoPromote": {
41
41
  * "staging": true, // Auto-merge PRs to staging
42
42
  * "main": true // Auto-merge PRs to main
43
43
  * }
@@ -332,17 +332,17 @@ export declare function getRequiredMergeCommitChanges(currentSettings: MergeComm
332
332
  */
333
333
  export declare function promptMergeCommitChanges(currentSettings: MergeCommitSettings): Promise<MergeCommitSettings | null | 'declined'>;
334
334
  /**
335
- * Check if auto-merge should be enabled based on .pipecraftrc.json config.
335
+ * Check if auto-merge should be enabled based on .pipecraftrc config.
336
336
  *
337
337
  * Auto-merge should be enabled at the repository level if ANY branch
338
- * has autoMerge configured in the config file.
338
+ * has autoPromote configured in the config file.
339
339
  */
340
340
  export declare function shouldEnableAutoMerge(): boolean;
341
341
  /**
342
342
  * Get Pipecraft's recommended repository settings.
343
343
  *
344
344
  * These are the settings that work best with Pipecraft workflows:
345
- * - Allow auto-merge: ON if any branch has autoMerge in config, OFF otherwise
345
+ * - Allow auto-merge: ON if any branch has autoPromote in config, OFF otherwise
346
346
  * - Always suggest updating PR branches: ON
347
347
  * - Allow merge commits: OFF
348
348
  * - Allow rebase merging: OFF