@generacy-ai/orchestrator 0.7.0 → 0.9.0
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.
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +47 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +459 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +13 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/launcher/agent-launcher.d.ts +15 -16
- package/dist/launcher/agent-launcher.d.ts.map +1 -1
- package/dist/launcher/agent-launcher.js +54 -23
- package/dist/launcher/agent-launcher.js.map +1 -1
- package/dist/launcher/constants.d.ts +5 -0
- package/dist/launcher/constants.d.ts.map +1 -0
- package/dist/launcher/constants.js +5 -0
- package/dist/launcher/constants.js.map +1 -0
- package/dist/launcher/errors.d.ts +15 -0
- package/dist/launcher/errors.d.ts.map +1 -0
- package/dist/launcher/errors.js +25 -0
- package/dist/launcher/errors.js.map +1 -0
- package/dist/launcher/generic-subprocess-plugin.d.ts +1 -0
- package/dist/launcher/generic-subprocess-plugin.d.ts.map +1 -1
- package/dist/launcher/generic-subprocess-plugin.js +2 -0
- package/dist/launcher/generic-subprocess-plugin.js.map +1 -1
- package/dist/launcher/index.d.ts +2 -1
- package/dist/launcher/index.d.ts.map +1 -1
- package/dist/launcher/index.js +1 -0
- package/dist/launcher/index.js.map +1 -1
- package/dist/launcher/types.d.ts +81 -4
- package/dist/launcher/types.d.ts.map +1 -1
- package/dist/routes/health.d.ts +7 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +5 -0
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/internal-relay-events.d.ts +2 -2
- package/dist/routes/internal-relay-events.d.ts.map +1 -1
- package/dist/routes/internal-relay-events.js +12 -0
- package/dist/routes/internal-relay-events.js.map +1 -1
- package/dist/routes/retained-tunnel-event.d.ts +20 -0
- package/dist/routes/retained-tunnel-event.d.ts.map +1 -0
- package/dist/routes/retained-tunnel-event.js +67 -0
- package/dist/routes/retained-tunnel-event.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +168 -27
- package/dist/server.js.map +1 -1
- package/dist/services/adaptive-poll-controller.d.ts +75 -0
- package/dist/services/adaptive-poll-controller.d.ts.map +1 -0
- package/dist/services/adaptive-poll-controller.js +96 -0
- package/dist/services/adaptive-poll-controller.js.map +1 -0
- package/dist/services/clarification-answer-monitor-service.d.ts +71 -0
- package/dist/services/clarification-answer-monitor-service.d.ts.map +1 -0
- package/dist/services/clarification-answer-monitor-service.js +366 -0
- package/dist/services/clarification-answer-monitor-service.js.map +1 -0
- package/dist/services/failure-fingerprint-tracker.d.ts +28 -0
- package/dist/services/failure-fingerprint-tracker.d.ts.map +1 -0
- package/dist/services/failure-fingerprint-tracker.js +38 -0
- package/dist/services/failure-fingerprint-tracker.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/label-monitor-service.d.ts +2 -2
- package/dist/services/label-monitor-service.d.ts.map +1 -1
- package/dist/services/label-monitor-service.js +33 -16
- package/dist/services/label-monitor-service.js.map +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -1
- package/dist/services/merge-conflict-monitor-service.js +33 -13
- package/dist/services/merge-conflict-monitor-service.js.map +1 -1
- package/dist/services/post-activation-retry.d.ts +3 -0
- package/dist/services/post-activation-retry.d.ts.map +1 -1
- package/dist/services/post-activation-retry.js +34 -2
- package/dist/services/post-activation-retry.js.map +1 -1
- package/dist/services/pr-feedback-monitor-service.d.ts +1 -1
- package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
- package/dist/services/pr-feedback-monitor-service.js +33 -16
- package/dist/services/pr-feedback-monitor-service.js.map +1 -1
- package/dist/services/relay-bridge.d.ts +1 -0
- package/dist/services/relay-bridge.d.ts.map +1 -1
- package/dist/services/relay-bridge.js +21 -0
- package/dist/services/relay-bridge.js.map +1 -1
- package/dist/services/smee-channel-resolver.d.ts +60 -0
- package/dist/services/smee-channel-resolver.d.ts.map +1 -0
- package/dist/services/smee-channel-resolver.js +177 -0
- package/dist/services/smee-channel-resolver.js.map +1 -0
- package/dist/services/webhook-setup-service.d.ts +115 -111
- package/dist/services/webhook-setup-service.d.ts.map +1 -1
- package/dist/services/webhook-setup-service.js +377 -209
- package/dist/services/webhook-setup-service.js.map +1 -1
- package/dist/types/api.d.ts +3 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +1 -0
- package/dist/types/api.js.map +1 -1
- package/dist/types/monitor.d.ts +15 -2
- package/dist/types/monitor.d.ts.map +1 -1
- package/dist/worker/clarification-markers.d.ts +62 -0
- package/dist/worker/clarification-markers.d.ts.map +1 -1
- package/dist/worker/clarification-markers.js +101 -0
- package/dist/worker/clarification-markers.js.map +1 -1
- package/dist/worker/clarification-poster.d.ts +102 -6
- package/dist/worker/clarification-poster.d.ts.map +1 -1
- package/dist/worker/clarification-poster.js +299 -89
- package/dist/worker/clarification-poster.js.map +1 -1
- package/dist/worker/claude-cli-worker.d.ts +7 -0
- package/dist/worker/claude-cli-worker.d.ts.map +1 -1
- package/dist/worker/claude-cli-worker.js +7 -3
- package/dist/worker/claude-cli-worker.js.map +1 -1
- package/dist/worker/cli-spawner.d.ts.map +1 -1
- package/dist/worker/cli-spawner.js +2 -0
- package/dist/worker/cli-spawner.js.map +1 -1
- package/dist/worker/config.d.ts +396 -0
- package/dist/worker/config.d.ts.map +1 -1
- package/dist/worker/config.js +142 -0
- package/dist/worker/config.js.map +1 -1
- package/dist/worker/failure-fingerprint.d.ts +41 -0
- package/dist/worker/failure-fingerprint.d.ts.map +1 -0
- package/dist/worker/failure-fingerprint.js +75 -0
- package/dist/worker/failure-fingerprint.js.map +1 -0
- package/dist/worker/label-manager.d.ts +42 -0
- package/dist/worker/label-manager.d.ts.map +1 -1
- package/dist/worker/label-manager.js +108 -4
- package/dist/worker/label-manager.js.map +1 -1
- package/dist/worker/phase-loop.d.ts +30 -0
- package/dist/worker/phase-loop.d.ts.map +1 -1
- package/dist/worker/phase-loop.js +158 -27
- package/dist/worker/phase-loop.js.map +1 -1
- package/dist/worker/pr-feedback-handler.d.ts +13 -0
- package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
- package/dist/worker/pr-feedback-handler.js +58 -3
- package/dist/worker/pr-feedback-handler.js.map +1 -1
- package/dist/worker/stage-comment-manager.d.ts +5 -0
- package/dist/worker/stage-comment-manager.d.ts.map +1 -1
- package/dist/worker/stage-comment-manager.js +8 -1
- package/dist/worker/stage-comment-manager.js.map +1 -1
- package/dist/worker/terminal-label-op-error.d.ts +1 -1
- package/dist/worker/terminal-label-op-error.d.ts.map +1 -1
- package/dist/worker/terminal-label-op-error.js.map +1 -1
- package/dist/worker/types.d.ts +51 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/types.js +11 -0
- package/dist/worker/types.js.map +1 -1
- package/package.json +11 -7
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClusterStatus } from './status-reporter.js';
|
|
1
2
|
/**
|
|
2
3
|
* Logger interface matching Pino/Fastify logger shape.
|
|
3
4
|
*
|
|
@@ -60,8 +61,8 @@ export interface WebhookSetupResult {
|
|
|
60
61
|
/**
|
|
61
62
|
* Action taken during webhook setup
|
|
62
63
|
* - `created`: New webhook was created
|
|
63
|
-
* - `skipped`: Active webhook already exists
|
|
64
|
-
* - `reactivated`: Inactive webhook was reactivated
|
|
64
|
+
* - `skipped`: Active webhook already exists (or a foreign hook was left alone)
|
|
65
|
+
* - `reactivated`: Inactive webhook was reactivated, or persisted-URL match PATCHed
|
|
65
66
|
* - `failed`: Setup failed (see `error` field)
|
|
66
67
|
*/
|
|
67
68
|
action: 'created' | 'skipped' | 'reactivated' | 'failed';
|
|
@@ -82,43 +83,75 @@ export interface WebhookSetupSummary {
|
|
|
82
83
|
created: number;
|
|
83
84
|
/** Number of webhooks skipped (already active) */
|
|
84
85
|
skipped: number;
|
|
85
|
-
/** Number of webhooks reactivated (was inactive) */
|
|
86
|
+
/** Number of webhooks reactivated (was inactive or persisted-URL healed) */
|
|
86
87
|
reactivated: number;
|
|
87
88
|
/** Number of repositories that failed webhook setup */
|
|
88
89
|
failed: number;
|
|
89
90
|
/** Detailed results for each repository */
|
|
90
91
|
results: WebhookSetupResult[];
|
|
91
92
|
}
|
|
93
|
+
/** StatusReporter surface the service depends on (kept minimal for DI). */
|
|
94
|
+
interface StatusReporterLike {
|
|
95
|
+
pushStatus(status: ClusterStatus, reason: string): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Constructor options bundle for optional dependency-injection hooks.
|
|
99
|
+
*
|
|
100
|
+
* All fields are optional so existing callers (and the pre-#972 test suite)
|
|
101
|
+
* keep working. When a hook is absent the corresponding side-effect degrades
|
|
102
|
+
* to a no-op, matching pre-#972 behavior.
|
|
103
|
+
*/
|
|
104
|
+
export interface WebhookSetupServiceOptions {
|
|
105
|
+
/**
|
|
106
|
+
* Fires `cluster.bootstrap` relay events on webhook-registration 403.
|
|
107
|
+
* Payload shape per `contracts/webhook-registration-forbidden-event.md`.
|
|
108
|
+
*/
|
|
109
|
+
sendRelayEvent?: (channel: string, payload: unknown) => void;
|
|
110
|
+
/**
|
|
111
|
+
* Pushes `degraded` cluster status on webhook-registration 403.
|
|
112
|
+
* Payload shape per `contracts/degraded-status-transition.md`.
|
|
113
|
+
*/
|
|
114
|
+
statusReporter?: StatusReporterLike;
|
|
115
|
+
/** Path to the persisted smee channel URL file. Defaults to `/var/lib/generacy/smee-channel`. */
|
|
116
|
+
channelFilePath?: string;
|
|
117
|
+
/** Resolves the current github-app installation id for the 403 event payload. */
|
|
118
|
+
installationIdProvider?: () => Promise<number | null>;
|
|
119
|
+
}
|
|
92
120
|
/**
|
|
93
121
|
* Service for auto-configuring GitHub webhooks for monitored repositories.
|
|
94
122
|
*
|
|
95
123
|
* When SMEE_CHANNEL_URL is configured, this service verifies and creates
|
|
96
124
|
* GitHub webhooks for all monitored repositories on orchestrator startup,
|
|
97
125
|
* ensuring near-instant label detection via Smee instead of 15-minute polling.
|
|
98
|
-
*
|
|
99
|
-
* Features:
|
|
100
|
-
* - Creates missing webhooks pointing to Smee channel URL
|
|
101
|
-
* - Skips existing active webhooks (idempotent)
|
|
102
|
-
* - Reactivates inactive webhooks and merges events
|
|
103
|
-
* - Graceful error handling (per-repo failures don't block startup)
|
|
104
|
-
* - Warns on event mismatches without modifying
|
|
105
|
-
* - Validates Smee URL format (warns on non-smee.io URLs)
|
|
106
|
-
*
|
|
107
|
-
* Error Handling:
|
|
108
|
-
* - 403/404 errors: Logged as warnings, system falls back to polling
|
|
109
|
-
* - Network/API errors: Logged and continue with next repo
|
|
110
|
-
* - All errors are non-fatal and don't block orchestrator startup
|
|
111
126
|
*/
|
|
112
127
|
export declare class WebhookSetupService {
|
|
113
128
|
private readonly _logger;
|
|
114
129
|
private readonly _tokenProvider?;
|
|
130
|
+
private readonly _sendRelayEvent?;
|
|
131
|
+
private readonly _statusReporter?;
|
|
132
|
+
private readonly _channelFilePath;
|
|
133
|
+
private readonly _installationIdProvider?;
|
|
134
|
+
/**
|
|
135
|
+
* Set of `owner/repo` values for which the 403 fail-loud triple has already
|
|
136
|
+
* fired within this orchestrator boot. Bounds cloud-side banner noise to
|
|
137
|
+
* at most N events per boot for a cluster with N configured repos
|
|
138
|
+
* (see `contracts/webhook-registration-forbidden-event.md` §"Emission rate").
|
|
139
|
+
*/
|
|
140
|
+
private readonly _forbiddenFiredForRepo;
|
|
141
|
+
/**
|
|
142
|
+
* Cached github-app installation id resolved once at startup via
|
|
143
|
+
* `installationIdProvider`. `undefined` means "not yet resolved this boot";
|
|
144
|
+
* `null` means "resolved, but no id available"; `number` means resolved.
|
|
145
|
+
*/
|
|
146
|
+
private _installationIdCache;
|
|
115
147
|
/**
|
|
116
148
|
* Creates a new WebhookSetupService instance.
|
|
117
149
|
*
|
|
118
150
|
* @param logger - Logger instance for structured logging (Pino/Fastify compatible)
|
|
119
151
|
* @param tokenProvider - Optional async function returning a GH_TOKEN for auth
|
|
152
|
+
* @param options - Optional DI hooks for #972 fail-loud triple + FR-004 persisted-URL healing
|
|
120
153
|
*/
|
|
121
|
-
constructor(logger: Logger, tokenProvider?: () => Promise<string | undefined
|
|
154
|
+
constructor(logger: Logger, tokenProvider?: () => Promise<string | undefined>, options?: WebhookSetupServiceOptions);
|
|
122
155
|
/**
|
|
123
156
|
* Invariant: when a tokenProvider is configured, the env override ALWAYS
|
|
124
157
|
* carries a `GH_TOKEN` key — never `undefined`. Prevents the `gh` subprocess
|
|
@@ -131,111 +164,85 @@ export declare class WebhookSetupService {
|
|
|
131
164
|
/**
|
|
132
165
|
* Ensure webhooks exist for all repositories.
|
|
133
166
|
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* 3. Creates missing webhooks, reactivates inactive ones, or skips active ones
|
|
138
|
-
* 4. Logs results and continues on errors (graceful degradation)
|
|
139
|
-
*
|
|
140
|
-
* Per-repository errors are logged but don't block the overall process,
|
|
141
|
-
* allowing partial success when some repositories fail (e.g., due to
|
|
142
|
-
* insufficient permissions).
|
|
167
|
+
* For each repository, evaluates the decision matrix documented at
|
|
168
|
+
* `specs/972-summary-snappoll-preview/contracts/ensure-webhooks-behavior.md`.
|
|
169
|
+
* Per-repository errors are logged but don't block the overall process.
|
|
143
170
|
*
|
|
144
171
|
* @param smeeChannelUrl - The Smee channel URL to configure webhooks for
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* @param repositories - List of repositories to ensure webhooks for. Each
|
|
148
|
-
* repository is processed sequentially to avoid rate limits.
|
|
149
|
-
* @returns Promise resolving to a summary of webhook setup results, including
|
|
150
|
-
* aggregate counts and detailed per-repository results.
|
|
151
|
-
*
|
|
152
|
-
* @example
|
|
153
|
-
* ```typescript
|
|
154
|
-
* const service = new WebhookSetupService(logger);
|
|
155
|
-
* const summary = await service.ensureWebhooks(
|
|
156
|
-
* 'https://smee.io/abc123',
|
|
157
|
-
* [
|
|
158
|
-
* { owner: 'myorg', repo: 'myrepo' },
|
|
159
|
-
* { owner: 'myorg', repo: 'another-repo' }
|
|
160
|
-
* ]
|
|
161
|
-
* );
|
|
162
|
-
* console.log(`Created: ${summary.created}, Skipped: ${summary.skipped}, Failed: ${summary.failed}`);
|
|
163
|
-
* ```
|
|
164
|
-
*
|
|
165
|
-
* @see {@link WebhookSetupSummary} for the structure of the returned summary
|
|
172
|
+
* @param repositories - List of repositories to ensure webhooks for
|
|
173
|
+
* @returns Promise resolving to a summary of webhook setup results
|
|
166
174
|
*/
|
|
167
175
|
ensureWebhooks(smeeChannelUrl: string, repositories: RepositoryConfig[]): Promise<WebhookSetupSummary>;
|
|
168
176
|
/**
|
|
169
177
|
* Ensure webhook exists for a single repository.
|
|
170
178
|
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* degradation.
|
|
174
|
-
*
|
|
175
|
-
* Logic flow:
|
|
176
|
-
* 1. List existing webhooks
|
|
177
|
-
* 2. Find webhook matching the Smee URL (case-insensitive)
|
|
178
|
-
* 3. If not found: Create new webhook → 'created'
|
|
179
|
-
* 4. If found and active: Skip → 'skipped' (warn on event mismatch)
|
|
180
|
-
* 5. If found but inactive: Reactivate and merge events → 'reactivated'
|
|
181
|
-
*
|
|
182
|
-
* @param owner - Repository owner (organization or user)
|
|
183
|
-
* @param repo - Repository name
|
|
184
|
-
* @param smeeChannelUrl - The Smee channel URL to configure
|
|
185
|
-
* @returns Promise resolving to the result of webhook setup for this repository
|
|
186
|
-
*
|
|
187
|
-
* @throws Never throws - all errors are caught and returned as 'failed' results
|
|
179
|
+
* Implements rows 1-11 of the per-repo decision matrix in
|
|
180
|
+
* `contracts/ensure-webhooks-behavior.md`.
|
|
188
181
|
*/
|
|
189
182
|
private _ensureWebhookForRepo;
|
|
190
183
|
/**
|
|
191
|
-
*
|
|
184
|
+
* Read the previously-persisted smee channel URL from disk.
|
|
192
185
|
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
|
|
196
|
-
|
|
186
|
+
* Returns `null` on ENOENT, on empty content, or on any read/parse error.
|
|
187
|
+
* Written only by `SmeeChannelResolver`; read-only here.
|
|
188
|
+
*/
|
|
189
|
+
private _readPersistedChannelUrl;
|
|
190
|
+
/**
|
|
191
|
+
* Decision matrix for choosing what to do with the existing hook set.
|
|
197
192
|
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
193
|
+
* Implements rows 4-9 of `contracts/ensure-webhooks-behavior.md`. First
|
|
194
|
+
* match wins. `matches(A, B)` is case-insensitive string equality per
|
|
195
|
+
* `data-model.md` §"Field-Level Validation Rules Summary".
|
|
196
|
+
*/
|
|
197
|
+
private _selectExistingHookForUpdate;
|
|
198
|
+
/**
|
|
199
|
+
* Detect whether a `gh api` failure is the 403 fail-loud case.
|
|
201
200
|
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
* // Returns the webhook with id: 1
|
|
209
|
-
* ```
|
|
201
|
+
* Matches the two error patterns GitHub can return for the same underlying
|
|
202
|
+
* failure mode: `HTTP 403` (canonical) and `Resource not accessible by
|
|
203
|
+
* integration` (typical stderr wording). Both patterns fire for the same
|
|
204
|
+
* missing-scope case; matching either is sufficient (case-insensitive
|
|
205
|
+
* substring). See `contracts/webhook-registration-forbidden-event.md`
|
|
206
|
+
* §"Trigger conditions".
|
|
210
207
|
*/
|
|
211
|
-
private
|
|
208
|
+
private _isForbiddenError;
|
|
212
209
|
/**
|
|
213
|
-
*
|
|
210
|
+
* Handle any `gh` failure (list, create, or patch) from within
|
|
211
|
+
* `_ensureWebhookForRepo`. On 403 → emit the fail-loud triple; on 404/500
|
|
212
|
+
* → warn-only; on all other errors → generic warn.
|
|
214
213
|
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
214
|
+
* Guarantees the log line is the audit floor (always fires); relay event +
|
|
215
|
+
* status transition are best-effort per the contracts.
|
|
216
|
+
*/
|
|
217
|
+
private _handleGhFailure;
|
|
218
|
+
/**
|
|
219
|
+
* Emit the fail-loud triple (warn log + relay event + degraded status) for
|
|
220
|
+
* a webhook-registration 403. Bounded to at most once per `(repo, boot)`
|
|
221
|
+
* per `contracts/webhook-registration-forbidden-event.md` §"Emission rate".
|
|
217
222
|
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
|
|
223
|
+
* The log line is synchronous and always succeeds — this is the audit
|
|
224
|
+
* floor. Relay event and status transition are fire-and-forget.
|
|
225
|
+
*/
|
|
226
|
+
private _fireForbiddenTriple;
|
|
227
|
+
/**
|
|
228
|
+
* Resolve the github-app installation id, caching the result for the process
|
|
229
|
+
* lifetime. Returns `null` when no provider is configured or the provider
|
|
230
|
+
* cannot resolve an id (per data-model.md, `null` is a valid emit value).
|
|
231
|
+
*/
|
|
232
|
+
private _resolveInstallationId;
|
|
233
|
+
/**
|
|
234
|
+
* List webhooks for a repository via GitHub API.
|
|
221
235
|
*
|
|
222
|
-
*
|
|
236
|
+
* Errors are thrown so the per-repo catch branch can classify them as 403
|
|
237
|
+
* (fail-loud) vs 404/500 (warn-only). Returns an empty array when the API
|
|
238
|
+
* returns a well-formed non-array response.
|
|
223
239
|
*/
|
|
224
240
|
private _listRepoWebhooks;
|
|
225
241
|
/**
|
|
226
242
|
* Create a new webhook for a repository via GitHub API.
|
|
227
243
|
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
* - `config.content_type`: 'json'
|
|
231
|
-
* - `events`: ['issues']
|
|
232
|
-
* - `active`: true
|
|
233
|
-
*
|
|
234
|
-
* @param owner - Repository owner (organization or user)
|
|
235
|
-
* @param repo - Repository name
|
|
236
|
-
* @param smeeChannelUrl - The Smee channel URL to configure
|
|
237
|
-
* @returns Promise resolving to the webhook ID on success
|
|
238
|
-
* @throws Error if webhook creation fails (caught and logged by caller)
|
|
244
|
+
* FR-001: locks the create-time event list to `issues`, `pull_request`,
|
|
245
|
+
* `check_run`, `check_suite`. `content_type` is `json`; `active` is `true`.
|
|
239
246
|
*
|
|
240
247
|
* @see {@link https://docs.github.com/en/rest/webhooks/repos#create-a-repository-webhook}
|
|
241
248
|
*/
|
|
@@ -243,22 +250,19 @@ export declare class WebhookSetupService {
|
|
|
243
250
|
/**
|
|
244
251
|
* Update an existing webhook (reactivate and/or merge events) via GitHub API.
|
|
245
252
|
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
* @param owner - Repository owner (organization or user)
|
|
251
|
-
* @param repo - Repository name
|
|
252
|
-
* @param webhookId - Webhook ID to update
|
|
253
|
-
* @param updates - Updates to apply
|
|
254
|
-
* @param updates.active - Set webhook active status (true to reactivate)
|
|
255
|
-
* @param updates.events - Event types to subscribe to (merged with existing)
|
|
256
|
-
* @returns Promise resolving to true on success
|
|
257
|
-
* @throws Error if webhook update fails (caught and logged by caller)
|
|
253
|
+
* Used for the `reactivate` decision-matrix row (inactive hook matching
|
|
254
|
+
* current URL). Preserves pre-#972 argv ordering so the existing test
|
|
255
|
+
* assertions (`build correct PATCH request with active flag and merged events`)
|
|
256
|
+
* continue to pass.
|
|
258
257
|
*
|
|
259
258
|
* @see {@link https://docs.github.com/en/rest/webhooks/repos#update-a-repository-webhook}
|
|
260
259
|
*/
|
|
261
260
|
private _updateRepoWebhook;
|
|
261
|
+
/**
|
|
262
|
+
* Update an existing webhook's `config.url` to the current channel (FR-004
|
|
263
|
+
* stale-channel heal). Also enforces the locked events set and active flag.
|
|
264
|
+
*/
|
|
265
|
+
private _updateRepoWebhookConfig;
|
|
262
266
|
}
|
|
263
267
|
export {};
|
|
264
268
|
//# sourceMappingURL=webhook-setup-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-setup-service.d.ts","sourceRoot":"","sources":["../../src/services/webhook-setup-service.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,UAAU,MAAM;IACd,gCAAgC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wDAAwD;IACxD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,0BAA0B;IAC1B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,wBAAwB;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,MAAM,EAAE;QACN,+CAA+C;QAC/C,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,2EAA2E;IAC3E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;IACzD,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"webhook-setup-service.d.ts","sourceRoot":"","sources":["../../src/services/webhook-setup-service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,UAAU,MAAM;IACd,gCAAgC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wDAAwD;IACxD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,0BAA0B;IAC1B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,wBAAwB;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,MAAM,EAAE;QACN,+CAA+C;QAC/C,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,2EAA2E;IAC3E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;IACzD,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAQD,2EAA2E;AAC3E,UAAU,kBAAkB;IAC1B,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,iGAAiG;IACjG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAoC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA8C;IAC/E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAA+B;IAExE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAE5D;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAA4B;IAExD;;;;;;OAMG;gBAED,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,EACjD,OAAO,GAAE,0BAA+B;IAU1C;;;;;;;OAOG;YACW,eAAe;IAM7B;;;;;;;;;;OAUG;IACG,cAAc,CAClB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,gBAAgB,EAAE,GAC/B,OAAO,CAAC,mBAAmB,CAAC;IA6D/B;;;;;OAKG;YACW,qBAAqB;IA+InC;;;;;OAKG;YACW,wBAAwB;IAUtC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAuDpC;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAuF5B;;;;OAIG;YACW,sBAAsB;IAepC;;;;;;OAMG;YACW,iBAAiB;IA6C/B;;;;;;;OAOG;YACW,kBAAkB;IA6BhC;;;;;;;;;OASG;YACW,kBAAkB;IAiChC;;;OAGG;YACW,wBAAwB;CA4BvC"}
|