@alpacakit/integrations 0.1.0-beta.24 → 0.1.0-beta.25

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 (44) hide show
  1. package/README.md +7 -0
  2. package/dist/catalog.d.ts +12 -0
  3. package/dist/catalog.d.ts.map +1 -0
  4. package/dist/catalog.js +82 -0
  5. package/dist/code-hosts/account.d.ts.map +1 -1
  6. package/dist/code-hosts/account.js +4 -1
  7. package/dist/code-hosts/facets.d.ts +2 -1
  8. package/dist/code-hosts/facets.d.ts.map +1 -1
  9. package/dist/code-hosts/facets.js +32 -12
  10. package/dist/code-hosts/gitea.d.ts.map +1 -1
  11. package/dist/code-hosts/gitea.js +34 -6
  12. package/dist/code-hosts/github.d.ts.map +1 -1
  13. package/dist/code-hosts/github.js +34 -6
  14. package/dist/code-hosts/gitlab.d.ts.map +1 -1
  15. package/dist/code-hosts/gitlab.js +32 -8
  16. package/dist/code-hosts/helpers.js +4 -4
  17. package/dist/code-hosts/strategy.d.ts +2 -2
  18. package/dist/code-hosts/strategy.d.ts.map +1 -1
  19. package/dist/config/index.d.ts +1 -1
  20. package/dist/config/index.d.ts.map +1 -1
  21. package/dist/config/store.d.ts +2 -2
  22. package/dist/config/store.d.ts.map +1 -1
  23. package/dist/config/store.js +79 -1
  24. package/dist/definition.d.ts +34 -1
  25. package/dist/definition.d.ts.map +1 -1
  26. package/dist/index.d.ts +3 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -1
  29. package/dist/keyring/index.d.ts +1 -1
  30. package/dist/keyring/index.d.ts.map +1 -1
  31. package/dist/keyring/resolver.d.ts +1 -0
  32. package/dist/keyring/resolver.d.ts.map +1 -1
  33. package/dist/keyring/resolver.js +14 -18
  34. package/dist/model.d.ts +14 -8
  35. package/dist/model.d.ts.map +1 -1
  36. package/dist/runtime.d.ts +6 -4
  37. package/dist/runtime.d.ts.map +1 -1
  38. package/dist/runtime.js +3 -0
  39. package/dist/testing/contracts.d.ts.map +1 -1
  40. package/dist/testing/contracts.js +0 -1
  41. package/dist/values.d.ts +12 -0
  42. package/dist/values.d.ts.map +1 -1
  43. package/dist/values.js +12 -0
  44. package/package.json +2 -2
package/README.md CHANGED
@@ -4,3 +4,10 @@ Provider-neutral, import-only TypeScript contracts and HTTP adapters for
4
4
  development-management services. The root export includes the runtime and the
5
5
  built-in GitHub, GitLab, and Gitea definitions. Machine-local config, native
6
6
  keyring support, and test fakes are isolated under subpath exports.
7
+
8
+ Repository setup is split into two provider-owned contracts:
9
+ `RepositoryScopeAdapter` applies provider-neutral repository updates to typed
10
+ connection settings and projects them back to a repository reference, while
11
+ the connection-level `RepositoryHost` finds or creates repositories.
12
+ Repository-scoped issue, pull-request, and file operations remain on
13
+ `Repository`.
@@ -0,0 +1,12 @@
1
+ import { type JsonObject } from "@alpacakit/core";
2
+ import type { IntegrationDefinition, IntegrationSettingsInput } from "./definition.js";
3
+ import type { IntegrationId } from "./ids.js";
4
+ import type { RepositoryRef } from "./model.js";
5
+ type AnyDefinition = IntegrationDefinition<IntegrationId, any, any>;
6
+ export interface IntegrationDefinitionCatalog {
7
+ resolveSettings(integration: IntegrationId, current: JsonObject | null, input: IntegrationSettingsInput): JsonObject;
8
+ projectRepository(integration: IntegrationId, settings: JsonObject): RepositoryRef;
9
+ }
10
+ export declare function createIntegrationDefinitionCatalog(definitions: readonly AnyDefinition[]): IntegrationDefinitionCatalog;
11
+ export {};
12
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,KAAK,aAAa,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpE,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CACb,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,KAAK,EAAE,wBAAwB,GAC9B,UAAU,CAAC;IACd,iBAAiB,CACf,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,UAAU,GACnB,aAAa,CAAC;CAClB;AAED,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,SAAS,aAAa,EAAE,GACpC,4BAA4B,CAE9B"}
@@ -0,0 +1,82 @@
1
+ import { CODEC_DECODE_RESULT_KIND } from "@alpacakit/core";
2
+ import { INTEGRATION_ERROR_CODE, IntegrationError } from "./error.js";
3
+ import { INTEGRATION_SETTINGS_INPUT_KIND, REPOSITORY_SETTINGS_UPDATE_KIND, } from "./values.js";
4
+ export function createIntegrationDefinitionCatalog(definitions) {
5
+ return new DefaultIntegrationDefinitionCatalog(definitions);
6
+ }
7
+ class DefaultIntegrationDefinitionCatalog {
8
+ definitions;
9
+ constructor(definitions) {
10
+ const indexed = new Map();
11
+ for (const definition of definitions) {
12
+ if (indexed.has(definition.id)) {
13
+ throw invalidInput(`Duplicate integration id "${definition.id}"`, `integration id "${definition.id}" registered twice`, definition.id);
14
+ }
15
+ indexed.set(definition.id, definition);
16
+ }
17
+ this.definitions = indexed;
18
+ }
19
+ resolveSettings(id, current, input) {
20
+ const definition = this.requireDefinition(id);
21
+ if (input.kind === INTEGRATION_SETTINGS_INPUT_KIND.raw) {
22
+ this.decodeSettings(definition, input.settings);
23
+ return input.settings;
24
+ }
25
+ const adapter = definition.repositoryScope;
26
+ if (adapter === undefined) {
27
+ throw unsupported(definition.id, "repository settings");
28
+ }
29
+ const currentSettings = current === null ? null : this.decodeSettings(definition, current);
30
+ if (input.update.kind === REPOSITORY_SETTINGS_UPDATE_KIND.baseUrl) {
31
+ if (currentSettings === null) {
32
+ throw invalidInput(`Repository settings are required for integration "${definition.id}"`, "a base URL cannot identify a repository by itself", definition.id);
33
+ }
34
+ }
35
+ const settings = adapter.applySettings({
36
+ current: currentSettings,
37
+ ...input.update,
38
+ });
39
+ this.decodeSettings(definition, settings);
40
+ return settings;
41
+ }
42
+ projectRepository(id, settings) {
43
+ const definition = this.requireDefinition(id);
44
+ const adapter = definition.repositoryScope;
45
+ if (adapter === undefined) {
46
+ throw unsupported(definition.id, "repository settings");
47
+ }
48
+ return adapter.projectRepository(this.decodeSettings(definition, settings));
49
+ }
50
+ requireDefinition(id) {
51
+ const definition = this.definitions.get(id);
52
+ if (definition === undefined) {
53
+ throw invalidInput(`Unknown integration id "${id}"`, `no integration registered with id "${id}"`, id);
54
+ }
55
+ return definition;
56
+ }
57
+ decodeSettings(definition, settings) {
58
+ const decoded = definition.settingsCodec.decode(settings);
59
+ if (decoded.kind === CODEC_DECODE_RESULT_KIND.invalid) {
60
+ throw invalidInput(`Invalid settings for integration "${definition.id}"`, decoded.issues.join("; "), definition.id);
61
+ }
62
+ return decoded.value;
63
+ }
64
+ }
65
+ function invalidInput(message, reason, integrationId) {
66
+ return new IntegrationError({
67
+ code: INTEGRATION_ERROR_CODE.invalidInput,
68
+ message,
69
+ data: { reason },
70
+ integrationId,
71
+ connectionId: null,
72
+ });
73
+ }
74
+ function unsupported(integrationId, operation) {
75
+ return new IntegrationError({
76
+ code: INTEGRATION_ERROR_CODE.unsupported,
77
+ message: `Integration "${integrationId}" does not support ${operation}`,
78
+ data: { operation },
79
+ integrationId,
80
+ connectionId: null,
81
+ });
82
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/code-hosts/account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAEP,cAAc,EAEf,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,cAAc,CAAC;AAStB,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEvE;AAsGD,wBAAgB,WAAW,CACzB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,GACpC,cAAc,CAAC,WAAW,CAAC,CAO7B"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/code-hosts/account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAEP,cAAc,EAEf,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,cAAc,CAAC;AAStB,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEvE;AAyGD,wBAAgB,WAAW,CACzB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,GACpC,cAAc,CAAC,WAAW,CAAC,CAO7B"}
@@ -67,7 +67,10 @@ class CodeHostAccount {
67
67
  if (this.repositoryRequest !== null) {
68
68
  return this.repositoryRequest;
69
69
  }
70
- const pending = this.session.transport.request(this.session.strategy.paths.repository(), rawRepositoryCodec);
70
+ const pending = this.session.transport.request(this.session.strategy.paths.repository({
71
+ owner: this.session.strategy.scope.owner,
72
+ name: this.session.strategy.scope.repository,
73
+ }), rawRepositoryCodec);
71
74
  this.repositoryRequest = pending;
72
75
  void pending.catch(() => {
73
76
  if (this.repositoryRequest === pending) {
@@ -1,5 +1,5 @@
1
1
  import type { DoctorCheck } from "../login.js";
2
- import type { Repository, WorkItems } from "../model.js";
2
+ import type { Repository, RepositoryHost, WorkItems } from "../model.js";
3
3
  import type { HttpTransport } from "../transport/http-transport.js";
4
4
  import { type CodeHostStrategy } from "./strategy.js";
5
5
  export { createCodeHostAccount } from "./account.js";
@@ -9,5 +9,6 @@ export type CodeHostSession = {
9
9
  };
10
10
  export declare function createCodeHostWorkItems(session: CodeHostSession): WorkItems;
11
11
  export declare function createCodeHostRepository(session: CodeHostSession): Repository;
12
+ export declare function createCodeHostRepositoryHost(session: CodeHostSession): RepositoryHost;
12
13
  export declare function probeCodeHostDoctor(session: CodeHostSession): Promise<DoctorCheck[]>;
13
14
  //# sourceMappingURL=facets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../src/code-hosts/facets.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EASV,UAAU,EAKV,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAqCpE,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAavB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAqBrD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,CA0I3E;AAiKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAqF7E;AA0ID,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,EAAE,CAAC,CA8DxB"}
1
+ {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../src/code-hosts/facets.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAQV,UAAU,EACV,cAAc,EAKd,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAuCpE,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAavB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAqBrD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,CA0I3E;AAiKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAoE7E;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,eAAe,GACvB,cAAc,CAwChB;AA0ID,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,EAAE,CAAC,CAgExB"}
@@ -1,7 +1,7 @@
1
1
  import { INTEGRATION_ERROR_CODE, IntegrationError, isIntegrationError, withIntegrationIdentity, } from "../error.js";
2
2
  import { commentReaction, } from "../ids.js";
3
3
  import { collectPaginated } from "../transport/collect.js";
4
- import { DOCTOR_CHECK_STATUS, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
4
+ import { DOCTOR_CHECK_STATUS, ENSURE_REPOSITORY_RESULT_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
5
5
  import { ownerKindOf } from "./account.js";
6
6
  import { commentIdentity } from "./helpers.js";
7
7
  import { normalizeComment, normalizeCommit, normalizePullRequest, normalizeWorkItem, } from "./normalize.js";
@@ -220,7 +220,7 @@ export function createCodeHostRepository(session) {
220
220
  const ensureLinkedBranch = strategy.ensureLinkedBranch;
221
221
  return {
222
222
  info: async () => {
223
- const raw = await transport.request(strategy.paths.repository(), rawRepositoryCodec);
223
+ const raw = await transport.request(strategy.paths.repository(repository), rawRepositoryCodec);
224
224
  return {
225
225
  ref: repository,
226
226
  defaultBranch: raw.defaultBranch,
@@ -258,17 +258,37 @@ export function createCodeHostRepository(session) {
258
258
  : {
259
259
  ensure: async (workItem, branch) => await ensureLinkedBranch(transport, refNumber(workItem), branch),
260
260
  },
261
- provisioning: {
262
- ensureRepository: async (input) => {
263
- const raw = await transport.request(await strategy.provisionRequest(transport, input), rawRepositoryCodec);
261
+ };
262
+ }
263
+ export function createCodeHostRepositoryHost(session) {
264
+ const { transport, strategy } = session;
265
+ const normalizeRepository = (raw, ref) => ({
266
+ ref,
267
+ defaultBranch: raw.defaultBranch,
268
+ url: raw.url,
269
+ isPrivate: raw.isPrivate,
270
+ ownerKind: ownerKindOf(raw, strategy.ownerKind),
271
+ });
272
+ const find = async (ref) => {
273
+ const raw = await transport.requestOptional(strategy.paths.repository(ref), rawRepositoryCodec);
274
+ return raw === null ? null : normalizeRepository(raw, ref);
275
+ };
276
+ return {
277
+ find,
278
+ ensure: async (input) => {
279
+ const { ref } = input;
280
+ const existing = await find(ref);
281
+ if (existing !== null) {
264
282
  return {
265
- ref: { owner: input.owner, name: input.name },
266
- defaultBranch: raw.defaultBranch,
267
- url: raw.url,
268
- isPrivate: raw.isPrivate,
269
- ownerKind: ownerKindOf(raw, strategy.ownerKind),
283
+ kind: ENSURE_REPOSITORY_RESULT_KIND.existing,
284
+ repository: existing,
270
285
  };
271
- },
286
+ }
287
+ const raw = await transport.request(await strategy.provisionRequest(transport, input), rawRepositoryCodec);
288
+ return {
289
+ kind: ENSURE_REPOSITORY_RESULT_KIND.created,
290
+ repository: normalizeRepository(raw, ref),
291
+ };
272
292
  },
273
293
  };
274
294
  }
@@ -364,7 +384,7 @@ function createPullRequests(session, normalizePr, getByRef) {
364
384
  export async function probeCodeHostDoctor(session) {
365
385
  const checks = [];
366
386
  try {
367
- await session.transport.request(session.strategy.paths.repository(), rawRepositoryCodec);
387
+ await session.transport.request(session.strategy.paths.repository(normalizationRepository(session.strategy)), rawRepositoryCodec);
368
388
  checks.push({
369
389
  id: DOCTOR_CHECK_ID.reachable,
370
390
  status: DOCTOR_CHECK_STATUS.ok,
@@ -1 +1 @@
1
- {"version":3,"file":"gitea.d.ts","sourceRoot":"","sources":["../../src/code-hosts/gitea.ts"],"names":[],"mappings":"AAgCA,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,aAAa,CAAC;AA2BrB,eAAO,MAAM,oBAAoB,2DAAyB,CAAC;AAO3D,eAAO,MAAM,oBAAoB,6DAGvB,CAAC;AACX,eAAO,MAAM,2BAA2B;;;CAGA,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAkBF,wBAAgB,KAAK,gJAiCpB"}
1
+ {"version":3,"file":"gitea.d.ts","sourceRoot":"","sources":["../../src/code-hosts/gitea.ts"],"names":[],"mappings":"AAiCA,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,aAAa,CAAC;AA2BrB,eAAO,MAAM,oBAAoB,2DAAyB,CAAC;AAO3D,eAAO,MAAM,oBAAoB,6DAGvB,CAAC;AACX,eAAO,MAAM,2BAA2B;;;CAGA,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAwBF,wBAAgB,KAAK,gJAuDpB"}
@@ -8,8 +8,8 @@ import { integrationId } from "../ids.js";
8
8
  import { collectPaginated } from "../transport/collect.js";
9
9
  import { HttpTransport } from "../transport/http-transport.js";
10
10
  import { LinkHeaderPager } from "../transport/pager.js";
11
- import { AUTHORIZATION_SCHEME, GIT_PROTOCOL, HTTP_METHOD, MERGE_METHOD, OWNER_KIND, PULL_REQUEST_STATE, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
12
- import { createCodeHostAccount, createCodeHostRepository, createCodeHostWorkItems, probeCodeHostDoctor, } from "./facets.js";
11
+ import { AUTHORIZATION_SCHEME, GIT_PROTOCOL, HTTP_METHOD, MERGE_METHOD, OWNER_KIND, PULL_REQUEST_STATE, REPOSITORY_SETTINGS_UPDATE_KIND, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
12
+ import { createCodeHostAccount, createCodeHostRepository, createCodeHostRepositoryHost, createCodeHostWorkItems, probeCodeHostDoctor, } from "./facets.js";
13
13
  import { projectGiteaPullRequestStatus, readGiteaPullRequest, readGiteaPullRequestReviews, readGiteaPullRequestSnapshot, } from "./gitea-pull-request-snapshot.js";
14
14
  import { ambientToken, matchesRemote, orgOrUserRepositoryRequest, } from "./helpers.js";
15
15
  import { normalizeDependencyIssue } from "./normalize.js";
@@ -34,8 +34,14 @@ export const GITEA_GIT_CREDENTIAL_SCHEME = {
34
34
  };
35
35
  const settingsSchema = z
36
36
  .object({
37
- owner: z.string().min(1),
38
- repository: z.string().min(1),
37
+ owner: z
38
+ .string()
39
+ .min(1)
40
+ .regex(/^[^/]+$/),
41
+ repository: z
42
+ .string()
43
+ .min(1)
44
+ .regex(/^[^/]+$/),
39
45
  baseUrl: z.string().url(),
40
46
  })
41
47
  .strict()
@@ -49,6 +55,27 @@ export function gitea() {
49
55
  id: GITEA_INTEGRATION_ID,
50
56
  settingsCodec: createSchemaRuntimeCodec(settingsSchema),
51
57
  remoteMatch: (remoteUrl, settings) => matchesRemote(remoteUrl, new URL(settings.baseUrl).hostname, `${settings.owner}/${settings.repository}`),
58
+ repositoryScope: {
59
+ applySettings: (input) => {
60
+ if (input.kind === REPOSITORY_SETTINGS_UPDATE_KIND.baseUrl) {
61
+ return {
62
+ owner: input.current.owner,
63
+ repository: input.current.repository,
64
+ baseUrl: input.baseUrl,
65
+ };
66
+ }
67
+ const baseUrl = input.baseUrl ?? input.current?.baseUrl;
68
+ return {
69
+ owner: input.repository.owner,
70
+ repository: input.repository.name,
71
+ ...(baseUrl === undefined ? {} : { baseUrl }),
72
+ };
73
+ },
74
+ projectRepository: (settings) => ({
75
+ owner: settings.owner,
76
+ name: settings.repository,
77
+ }),
78
+ },
52
79
  auth: {
53
80
  materials: bearerMaterialHandlers(),
54
81
  ambient: async (env, exec) => await ambientToken({
@@ -65,6 +92,7 @@ export function gitea() {
65
92
  connect: async ({ settings, authorization, ports, connectionId }) => createGiteaSession(settings, authorization, ports, connectionId),
66
93
  workItems: createCodeHostWorkItems,
67
94
  repository: createCodeHostRepository,
95
+ repositoryHost: createCodeHostRepositoryHost,
68
96
  account: createCodeHostAccount,
69
97
  });
70
98
  }
@@ -163,9 +191,9 @@ function giteaStrategy(settings) {
163
191
  });
164
192
  },
165
193
  paths: {
166
- repository: () => ({
194
+ repository: (ref) => ({
167
195
  method: HTTP_METHOD.get,
168
- path: repositoryPath,
196
+ path: `/repos/${encodeURIComponent(ref.owner)}/${encodeURIComponent(ref.name)}`,
169
197
  resource: CODE_HOST_RESOURCE.repository,
170
198
  }),
171
199
  workItemWebUrl: (number) => `${webBaseUrl}/issues/${number}`,
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/code-hosts/github.ts"],"names":[],"mappings":"AAiCA,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,aAAa,CAAC;AAuBrB,eAAO,MAAM,qBAAqB,4DAA0B,CAAC;AA8B7D,eAAO,MAAM,qBAAqB,qCAAsC,CAAC;AACzE,eAAO,MAAM,4BAA4B;;;CAGD,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAoIF,wBAAgB,MAAM,kJA4CrB"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/code-hosts/github.ts"],"names":[],"mappings":"AAkCA,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,aAAa,CAAC;AAuBrB,eAAO,MAAM,qBAAqB,4DAA0B,CAAC;AA8B7D,eAAO,MAAM,qBAAqB,qCAAsC,CAAC;AACzE,eAAO,MAAM,4BAA4B;;;CAGD,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AA0IF,wBAAgB,MAAM,kJAkErB"}
@@ -8,8 +8,8 @@ import { integrationId } from "../ids.js";
8
8
  import { collectPaginated } from "../transport/collect.js";
9
9
  import { HttpTransport } from "../transport/http-transport.js";
10
10
  import { LinkHeaderPager } from "../transport/pager.js";
11
- import { AUTHORIZATION_SCHEME, COMMENT_KIND, GIT_PROTOCOL, HTTP_METHOD, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_STATE, REVIEW_DECISION, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
12
- import { createCodeHostAccount, createCodeHostRepository, createCodeHostWorkItems, probeCodeHostDoctor, } from "./facets.js";
11
+ import { AUTHORIZATION_SCHEME, COMMENT_KIND, GIT_PROTOCOL, HTTP_METHOD, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_STATE, REPOSITORY_SETTINGS_UPDATE_KIND, REVIEW_DECISION, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
12
+ import { createCodeHostAccount, createCodeHostRepository, createCodeHostRepositoryHost, createCodeHostWorkItems, probeCodeHostDoctor, } from "./facets.js";
13
13
  import { githubDeviceLogin } from "./github-login.js";
14
14
  import { ambientToken, matchesRemote, orgOrUserRepositoryRequest, } from "./helpers.js";
15
15
  import { normalizeDependencyIssue } from "./normalize.js";
@@ -51,8 +51,14 @@ export const GITHUB_GIT_CREDENTIAL_SCHEME = {
51
51
  };
52
52
  const githubSettingsSchema = z
53
53
  .object({
54
- owner: z.string().min(1),
55
- repository: z.string().min(1),
54
+ owner: z
55
+ .string()
56
+ .min(1)
57
+ .regex(/^[^/]+$/),
58
+ repository: z
59
+ .string()
60
+ .min(1)
61
+ .regex(/^[^/]+$/),
56
62
  baseUrl: z.string().url().optional(),
57
63
  })
58
64
  .strict()
@@ -170,6 +176,27 @@ export function github() {
170
176
  : base.hostname.replace(/^api\./, "");
171
177
  return matchesRemote(remoteUrl, host, `${settings.owner}/${settings.repository}`);
172
178
  },
179
+ repositoryScope: {
180
+ applySettings: (input) => {
181
+ if (input.kind === REPOSITORY_SETTINGS_UPDATE_KIND.baseUrl) {
182
+ return {
183
+ owner: input.current.owner,
184
+ repository: input.current.repository,
185
+ baseUrl: input.baseUrl,
186
+ };
187
+ }
188
+ const baseUrl = input.baseUrl ?? input.current?.baseUrl;
189
+ return {
190
+ owner: input.repository.owner,
191
+ repository: input.repository.name,
192
+ ...(baseUrl === undefined ? {} : { baseUrl }),
193
+ };
194
+ },
195
+ projectRepository: (settings) => ({
196
+ owner: settings.owner,
197
+ name: settings.repository,
198
+ }),
199
+ },
173
200
  auth: {
174
201
  materials: bearerMaterialHandlers(),
175
202
  ambient: async (env, exec) => await ambientToken({
@@ -191,6 +218,7 @@ export function github() {
191
218
  connect: async ({ settings, authorization, ports, connectionId }) => createGitHubSession(settings, authorization, ports, connectionId),
192
219
  workItems: createCodeHostWorkItems,
193
220
  repository: createCodeHostRepository,
221
+ repositoryHost: createCodeHostRepositoryHost,
194
222
  account: createCodeHostAccount,
195
223
  });
196
224
  }
@@ -426,9 +454,9 @@ function githubStrategy(settings) {
426
454
  });
427
455
  },
428
456
  paths: {
429
- repository: () => ({
457
+ repository: (ref) => ({
430
458
  method: HTTP_METHOD.get,
431
- path: repositoryPath,
459
+ path: `/repos/${encodeURIComponent(ref.owner)}/${encodeURIComponent(ref.name)}`,
432
460
  resource: CODE_HOST_RESOURCE.repository,
433
461
  }),
434
462
  workItemWebUrl: (number) => `${webBaseUrl}/issues/${number}`,
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../src/code-hosts/gitlab.ts"],"names":[],"mappings":"AA2CA,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,aAAa,CAAC;AA4BrB,eAAO,MAAM,qBAAqB,4DAA0B,CAAC;AA8B7D,eAAO,MAAM,qBAAqB,sCAAuC,CAAC;AAC1E,eAAO,MAAM,4BAA4B;;;CAGD,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AA2BF,wBAAgB,MAAM,kJA0CrB"}
1
+ {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../src/code-hosts/gitlab.ts"],"names":[],"mappings":"AA4CA,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,aAAa,CAAC;AA4BrB,eAAO,MAAM,qBAAqB,4DAA0B,CAAC;AA8B7D,eAAO,MAAM,qBAAqB,sCAAuC,CAAC;AAC1E,eAAO,MAAM,4BAA4B;;;CAGD,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AA2BF,wBAAgB,MAAM,kJAkErB"}
@@ -1,4 +1,4 @@
1
- // biome-ignore-all lint/style/useNamingConvention: Provider request fields intentionally mirror GitLab's API.
1
+ // biome-ignore-all lint/style/useNamingConvention lint/nursery/noExcessiveLinesPerFile: Provider request fields and endpoint strategy intentionally stay provider-shaped.
2
2
  import { createSchemaRuntimeCodec } from "@alpacakit/core";
3
3
  import { z } from "zod";
4
4
  import { bearerMaterialHandlers } from "../auth.js";
@@ -9,8 +9,8 @@ import { collectPaginated } from "../transport/collect.js";
9
9
  import { createOpaqueCursorCodec } from "../transport/cursor.js";
10
10
  import { HttpTransport } from "../transport/http-transport.js";
11
11
  import { PageParamPager } from "../transport/pager.js";
12
- import { AUTHORIZATION_SCHEME, GIT_PROTOCOL, HTTP_METHOD, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_STATE, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
13
- import { createCodeHostAccount, createCodeHostRepository, createCodeHostWorkItems, probeCodeHostDoctor, } from "./facets.js";
12
+ import { AUTHORIZATION_SCHEME, GIT_PROTOCOL, HTTP_METHOD, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_STATE, REPOSITORY_SETTINGS_UPDATE_KIND, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_STATE, } from "../values.js";
13
+ import { createCodeHostAccount, createCodeHostRepository, createCodeHostRepositoryHost, createCodeHostWorkItems, probeCodeHostDoctor, } from "./facets.js";
14
14
  import { createGitLabIssueLabelChangeRequests, createGitLabLabelCreateRequest, } from "./gitlab-label-requests.js";
15
15
  import { gitLabDeviceLogin } from "./gitlab-login.js";
16
16
  import { ambientToken, matchesRemote } from "./helpers.js";
@@ -76,6 +76,29 @@ export function gitlab() {
76
76
  id: GITLAB_INTEGRATION_ID,
77
77
  settingsCodec: createSchemaRuntimeCodec(settingsSchema),
78
78
  remoteMatch: (remoteUrl, settings) => matchesRemote(remoteUrl, new URL(settings.baseUrl).hostname, settings.project),
79
+ repositoryScope: {
80
+ applySettings: (input) => {
81
+ if (input.kind === REPOSITORY_SETTINGS_UPDATE_KIND.baseUrl) {
82
+ return {
83
+ project: input.current.project,
84
+ baseUrl: input.baseUrl,
85
+ };
86
+ }
87
+ const project = `${input.repository.owner}/${input.repository.name}`;
88
+ const baseUrl = input.baseUrl ?? input.current?.baseUrl;
89
+ return {
90
+ project,
91
+ ...(baseUrl === undefined ? {} : { baseUrl }),
92
+ };
93
+ },
94
+ projectRepository: (settings) => {
95
+ const parts = settings.project.split("/");
96
+ return {
97
+ owner: parts.slice(0, -1).join("/"),
98
+ name: parts.at(-1) ?? settings.project,
99
+ };
100
+ },
101
+ },
79
102
  auth: {
80
103
  materials: bearerMaterialHandlers(),
81
104
  ambient: async (env, exec) => await ambientToken({
@@ -97,6 +120,7 @@ export function gitlab() {
97
120
  connect: async ({ settings, authorization, ports, connectionId }) => createGitLabSession(settings, authorization, ports, connectionId),
98
121
  workItems: createCodeHostWorkItems,
99
122
  repository: createCodeHostRepository,
123
+ repositoryHost: createCodeHostRepositoryHost,
100
124
  account: createCodeHostAccount,
101
125
  });
102
126
  }
@@ -285,16 +309,16 @@ function gitLabStrategy(settings) {
285
309
  provisionRequest: async (transport, input) => {
286
310
  const namespace = await transport.request({
287
311
  method: HTTP_METHOD.get,
288
- path: `/namespaces/${encodeURIComponent(input.owner)}`,
312
+ path: `/namespaces/${encodeURIComponent(input.ref.owner)}`,
289
313
  resource: CODE_HOST_RESOURCE.namespace,
290
314
  }, rawGitLabNamespaceCodec);
291
315
  return {
292
316
  method: HTTP_METHOD.post,
293
317
  path: "/projects",
294
318
  body: {
295
- name: input.name,
319
+ name: input.ref.name,
296
320
  namespace_id: namespace.id,
297
- visibility: input.private === false
321
+ visibility: input.isPrivate === false
298
322
  ? GITLAB_VISIBILITY.public
299
323
  : GITLAB_VISIBILITY.private,
300
324
  description: input.description ?? "",
@@ -345,9 +369,9 @@ function gitLabStrategy(settings) {
345
369
  });
346
370
  },
347
371
  paths: {
348
- repository: () => ({
372
+ repository: (ref) => ({
349
373
  method: HTTP_METHOD.get,
350
- path: projectPath,
374
+ path: `/projects/${encodeURIComponent(`${ref.owner}/${ref.name}`)}`,
351
375
  resource: CODE_HOST_RESOURCE.repository,
352
376
  }),
353
377
  workItemWebUrl: (number) => `${webBaseUrl}/-/issues/${number}`,
@@ -61,12 +61,12 @@ export async function orgOrUserRepositoryRequest(transport, input) {
61
61
  }, rawViewerCodec);
62
62
  return {
63
63
  method: HTTP_METHOD.post,
64
- path: viewer.login === input.owner
64
+ path: viewer.login === input.ref.owner
65
65
  ? "/user/repos"
66
- : `/orgs/${encodeURIComponent(input.owner)}/repos`,
66
+ : `/orgs/${encodeURIComponent(input.ref.owner)}/repos`,
67
67
  body: {
68
- name: input.name,
69
- private: input.private ?? false,
68
+ name: input.ref.name,
69
+ private: input.isPrivate,
70
70
  description: input.description ?? "",
71
71
  },
72
72
  resource: CODE_HOST_RESOURCE.repository,
@@ -1,5 +1,5 @@
1
1
  import type { ChangeFeedCursor, CommentReaction } from "../ids.js";
2
- import type { ChangeFeedPage, CommentKind, CreateLabelInput, CreatePullRequestInput, CreateWorkItemInput, EnsureRepositoryInput, MergeMethod, OwnerKind, PatchWorkItemInput, PullRequestIdentity, PullRequestReviewContext, PullRequestStatus, WorkItemLabels, WorkItemListQuery, WorkItemRelations, WorkItemSearchQuery } from "../model.js";
2
+ import type { ChangeFeedPage, CommentKind, CreateLabelInput, CreatePullRequestInput, CreateWorkItemInput, EnsureRepositoryInput, MergeMethod, OwnerKind, PatchWorkItemInput, PullRequestIdentity, PullRequestReviewContext, PullRequestStatus, RepositoryRef, WorkItemLabels, WorkItemListQuery, WorkItemRelations, WorkItemSearchQuery } from "../model.js";
3
3
  import type { HttpTransport } from "../transport/http-transport.js";
4
4
  import type { CursorCodec, Pager, RequestSpec } from "../transport/types.js";
5
5
  import type { NormalizationVocabulary } from "./normalize.js";
@@ -12,7 +12,7 @@ export type CodeHostScope = {
12
12
  readonly apiBaseUrl: string;
13
13
  };
14
14
  export type CodeHostPaths = {
15
- readonly repository: () => RequestSpec;
15
+ readonly repository: (ref: RepositoryRef) => RequestSpec;
16
16
  readonly workItems: {
17
17
  readonly get: (number: string) => RequestSpec;
18
18
  readonly list: (query: WorkItemListQuery) => RequestSpec;
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/code-hosts/strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/code-hosts/strategy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { type ConnectionsFile, connectionsFileSchema, INTEGRATIONS_CONFIG_FILE_VERSION, integrationAuthProfileSchema, integrationConnectionRecordSchema, type ProfilesFile, profilesFileSchema, } from "./schema.js";
2
- export { createIntegrationConfigStore, type IntegrationConfigStore, type IntegrationsConfigPaths, integrationsConfigPaths, validateConnectionSettings, } from "./store.js";
2
+ export { type ConnectionSettingsDefinition, createIntegrationConfigStore, type IntegrationConfigStore, type IntegrationsConfigPaths, integrationsConfigPaths, validateConnectionSettings, } from "./store.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,gCAAgC,EAChC,4BAA4B,EAC5B,iCAAiC,EACjC,KAAK,YAAY,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,gCAAgC,EAChC,4BAA4B,EAC5B,iCAAiC,EACjC,KAAK,YAAY,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,YAAY,CAAC"}
@@ -7,7 +7,7 @@ export type IntegrationsConfigPaths = {
7
7
  readonly connectionsFile: string;
8
8
  readonly profilesFile: string;
9
9
  };
10
- type ConnectionSettingsDefinition = {
10
+ export type ConnectionSettingsDefinition = {
11
11
  readonly id: IntegrationId;
12
12
  readonly settingsCodec: Pick<RuntimeCodec<unknown>, "decode">;
13
13
  };
@@ -17,9 +17,9 @@ export interface IntegrationConfigStore {
17
17
  writeConnections(records: readonly IntegrationConnectionRecord[], definitions: readonly ConnectionSettingsDefinition[]): Promise<void>;
18
18
  readProfiles(): Promise<readonly IntegrationAuthProfile[]>;
19
19
  writeProfiles(records: readonly IntegrationAuthProfile[]): Promise<void>;
20
+ runTransaction<Result>(operation: () => Promise<Result>): Promise<Result>;
20
21
  }
21
22
  export declare function integrationsConfigPaths(rootDir: string): IntegrationsConfigPaths;
22
23
  export declare function createIntegrationConfigStore(rootDir: string): IntegrationConfigStore;
23
24
  export declare function validateConnectionSettings(records: readonly IntegrationConnectionRecord[], definitions: readonly ConnectionSettingsDefinition[]): void;
24
- export {};
25
25
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAU/C,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,eAAe,IAAI,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAAC;IACnE,gBAAgB,CACd,OAAO,EAAE,SAAS,2BAA2B,EAAE,EAC/C,WAAW,EAAE,SAAS,4BAA4B,EAAE,GACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,YAAY,IAAI,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GACd,uBAAuB,CAMzB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GACd,sBAAsB,CA2CxB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,2BAA2B,EAAE,EAC/C,WAAW,EAAE,SAAS,4BAA4B,EAAE,GACnD,IAAI,CAqBN"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAWA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAc/C,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,eAAe,IAAI,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAAC;IACnE,gBAAgB,CACd,OAAO,EAAE,SAAS,2BAA2B,EAAE,EAC/C,WAAW,EAAE,SAAS,4BAA4B,EAAE,GACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,YAAY,IAAI,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzE,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3E;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GACd,uBAAuB,CAMzB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GACd,sBAAsB,CA6CxB;AAiFD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,2BAA2B,EAAE,EAC/C,WAAW,EAAE,SAAS,4BAA4B,EAAE,GACnD,IAAI,CAqBN"}
@@ -1,10 +1,14 @@
1
- import { chmod, mkdir, readFile, rename, writeFile } from "node:fs/promises";
1
+ import { chmod, mkdir, open, readFile, rename, rm, stat, writeFile, } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { CODEC_DECODE_RESULT_KIND } from "@alpacakit/core";
4
4
  import { INTEGRATION_ERROR_CODE, IntegrationError } from "../error.js";
5
5
  import { connectionsFileSchema, INTEGRATIONS_CONFIG_FILE_VERSION, profilesFileSchema, } from "./schema.js";
6
6
  const PRIVATE_DIRECTORY_MODE = 0o700;
7
7
  const PRIVATE_FILE_MODE = 0o600;
8
+ const CONFIG_TRANSACTION_LOCK_FILE = ".integrations.config.lock";
9
+ const CONFIG_TRANSACTION_LOCK_RETRY_MS = 25;
10
+ const CONFIG_TRANSACTION_LOCK_TIMEOUT_MS = 5_000;
11
+ const CONFIG_TRANSACTION_LOCK_STALE_MS = 30_000;
8
12
  export function integrationsConfigPaths(rootDir) {
9
13
  return {
10
14
  rootDir,
@@ -46,8 +50,82 @@ export function createIntegrationConfigStore(rootDir) {
46
50
  }, profilesFileSchema);
47
51
  await writeJsonAtomically(paths.profilesFile, file);
48
52
  },
53
+ runTransaction: async (operation) => await withConfigTransactionLock(paths.rootDir, operation),
49
54
  };
50
55
  }
56
+ async function withConfigTransactionLock(rootDir, operation) {
57
+ await mkdir(rootDir, { recursive: true, mode: PRIVATE_DIRECTORY_MODE });
58
+ await chmod(rootDir, PRIVATE_DIRECTORY_MODE);
59
+ const lockPath = path.join(rootDir, CONFIG_TRANSACTION_LOCK_FILE);
60
+ await acquireConfigTransactionLock(lockPath);
61
+ try {
62
+ return await operation();
63
+ }
64
+ finally {
65
+ await rm(lockPath, { force: true });
66
+ }
67
+ }
68
+ async function acquireConfigTransactionLock(lockPath) {
69
+ const deadline = Date.now() + CONFIG_TRANSACTION_LOCK_TIMEOUT_MS;
70
+ for (;;) {
71
+ try {
72
+ const handle = await open(lockPath, "wx", PRIVATE_FILE_MODE);
73
+ try {
74
+ await handle.writeFile(`${process.pid}\n`, "utf8");
75
+ }
76
+ catch (error) {
77
+ await rm(lockPath, { force: true });
78
+ throw error;
79
+ }
80
+ finally {
81
+ await handle.close();
82
+ }
83
+ return;
84
+ }
85
+ catch (error) {
86
+ if (!isErrno(error, "EEXIST")) {
87
+ throw error;
88
+ }
89
+ if (await removeStaleConfigTransactionLock(lockPath)) {
90
+ continue;
91
+ }
92
+ if (Date.now() >= deadline) {
93
+ throw configError(`Timed out waiting for integration config lock "${lockPath}"`, error);
94
+ }
95
+ await wait(CONFIG_TRANSACTION_LOCK_RETRY_MS);
96
+ }
97
+ }
98
+ }
99
+ async function removeStaleConfigTransactionLock(lockPath) {
100
+ let modifiedAt;
101
+ try {
102
+ modifiedAt = (await stat(lockPath)).mtimeMs;
103
+ }
104
+ catch (error) {
105
+ if (isErrno(error, "ENOENT")) {
106
+ return true;
107
+ }
108
+ throw error;
109
+ }
110
+ if (Date.now() - modifiedAt < CONFIG_TRANSACTION_LOCK_STALE_MS) {
111
+ return false;
112
+ }
113
+ const stalePath = `${lockPath}.stale.${process.pid}.${crypto.randomUUID()}`;
114
+ try {
115
+ await rename(lockPath, stalePath);
116
+ }
117
+ catch (error) {
118
+ if (isErrno(error, "ENOENT")) {
119
+ return true;
120
+ }
121
+ throw error;
122
+ }
123
+ await rm(stalePath, { force: true });
124
+ return true;
125
+ }
126
+ async function wait(delayMs) {
127
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
128
+ }
51
129
  export function validateConnectionSettings(records, definitions) {
52
130
  const byId = new Map(definitions.map((definition) => [definition.id, definition]));
53
131
  if (byId.size !== definitions.length) {
@@ -2,8 +2,9 @@ import type { JsonObject, RuntimeCodec } from "@alpacakit/core";
2
2
  import type { Authorization, IntegrationAuthBinding, IntegrationAuthCapability, IntegrationAuthProfile } from "./auth.js";
3
3
  import type { IntegrationAuthProfileId, IntegrationConnectionId, IntegrationId } from "./ids.js";
4
4
  import type { DoctorCapability, IntegrationLoginCapability } from "./login.js";
5
- import type { Account, Repository, WorkItems } from "./model.js";
5
+ import type { Account, Repository, RepositoryHost, RepositoryRef, WorkItems } from "./model.js";
6
6
  import type { SessionPorts } from "./ports.js";
7
+ import type { INTEGRATION_SETTINGS_INPUT_KIND, REPOSITORY_SETTINGS_UPDATE_KIND } from "./values.js";
7
8
  export type IntegrationConnectionRecord = {
8
9
  readonly id: IntegrationConnectionId;
9
10
  readonly integrationId: IntegrationId;
@@ -16,16 +17,48 @@ export type ConnectContext<TSettings> = {
16
17
  readonly authorization: Authorization;
17
18
  readonly ports: SessionPorts;
18
19
  };
20
+ export type RepositorySettingsUpdate = {
21
+ readonly kind: typeof REPOSITORY_SETTINGS_UPDATE_KIND.repository;
22
+ readonly repository: RepositoryRef;
23
+ /** null preserves the current provider URL, or selects its default for a new connection. */
24
+ readonly baseUrl: string | null;
25
+ } | {
26
+ readonly kind: typeof REPOSITORY_SETTINGS_UPDATE_KIND.baseUrl;
27
+ readonly baseUrl: string;
28
+ };
29
+ export type RepositorySettingsApplication<TSettings> = {
30
+ readonly kind: typeof REPOSITORY_SETTINGS_UPDATE_KIND.repository;
31
+ readonly current: TSettings | null;
32
+ readonly repository: RepositoryRef;
33
+ readonly baseUrl: string | null;
34
+ } | {
35
+ readonly kind: typeof REPOSITORY_SETTINGS_UPDATE_KIND.baseUrl;
36
+ readonly current: TSettings;
37
+ readonly baseUrl: string;
38
+ };
39
+ export type IntegrationSettingsInput = {
40
+ readonly kind: typeof INTEGRATION_SETTINGS_INPUT_KIND.repository;
41
+ readonly update: RepositorySettingsUpdate;
42
+ } | {
43
+ readonly kind: typeof INTEGRATION_SETTINGS_INPUT_KIND.raw;
44
+ readonly settings: JsonObject;
45
+ };
46
+ export interface RepositoryScopeAdapter<TSettings> {
47
+ applySettings(input: RepositorySettingsApplication<TSettings>): JsonObject;
48
+ projectRepository(settings: TSettings): RepositoryRef;
49
+ }
19
50
  export interface IntegrationDefinition<Id extends IntegrationId = IntegrationId, TSettings = JsonObject, TSession = unknown> {
20
51
  readonly id: Id;
21
52
  readonly settingsCodec: RuntimeCodec<TSettings>;
22
53
  readonly remoteMatch?: (remoteUrl: string, settings: TSettings) => boolean;
54
+ readonly repositoryScope?: RepositoryScopeAdapter<TSettings>;
23
55
  readonly auth?: IntegrationAuthCapability;
24
56
  readonly login?: IntegrationLoginCapability;
25
57
  readonly doctor?: DoctorCapability<TSettings>;
26
58
  connect(ctx: ConnectContext<TSettings>): Promise<TSession>;
27
59
  readonly workItems?: (session: TSession) => WorkItems;
28
60
  readonly repository?: (session: TSession) => Repository;
61
+ readonly repositoryHost?: (session: TSession) => RepositoryHost;
29
62
  readonly account?: (session: TSession) => Account;
30
63
  }
31
64
  export declare function defineIntegration<const Id extends IntegrationId, TSettings, TSession>(definition: IntegrationDefinition<Id, TSettings, TSession>): IntegrationDefinition<Id, TSettings, TSession>;
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,SAAS,IAAI;IACtC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,qBAAqB,CACpC,EAAE,SAAS,aAAa,GAAG,aAAa,EACxC,SAAS,GAAG,UAAU,EACtB,QAAQ,GAAG,OAAO;IAElB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,UAAU,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC;CACnD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,EAAE,SAAS,aAAa,EAC9B,SAAS,EACT,QAAQ,EAER,UAAU,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,GACzD,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAEhD;AAED,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACzB,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  /** Provider-neutral development-management integration runtime. */
2
2
  export { type AmbientAuthResolver, type Authorization, authorizationHeader, bearerMaterialHandlers, envResolver, type IntegrationAuthBinding, type IntegrationAuthCapability, type IntegrationAuthMaterial, type IntegrationAuthMaterialKind, type IntegrationAuthProfile, type MaterialHandler, type MaterialHandlers, requireSecret, type SecretRef, } from "./auth.js";
3
+ export { createIntegrationDefinitionCatalog, type IntegrationDefinitionCatalog, } from "./catalog.js";
3
4
  export { BUILTIN_INTEGRATION_ID, type BuiltinIntegrationId, gitCredentialScheme, templatePaths, } from "./code-hosts/builtin.js";
4
5
  export { GITEA_INTEGRATION_ID, type GiteaSettings, gitea, } from "./code-hosts/gitea.js";
5
6
  export { GITHUB_INTEGRATION_ID, type GitHubSettings, github, } from "./code-hosts/github.js";
6
7
  export { GITLAB_INTEGRATION_ID, type GitLabSettings, gitlab, } from "./code-hosts/gitlab.js";
7
- export type { ConnectContext, IntegrationConnectionRecord, IntegrationDefinition, } from "./definition.js";
8
+ export type { ConnectContext, IntegrationConnectionRecord, IntegrationDefinition, IntegrationSettingsInput, RepositoryScopeAdapter, RepositorySettingsApplication, RepositorySettingsUpdate, } from "./definition.js";
8
9
  export { defineIntegration } from "./definition.js";
9
10
  export { AUTH_FAILURE_REASON, type AuthFailureReason, INTEGRATION_ERROR_CODE, IntegrationError, type IntegrationErrorCode, type IntegrationErrorData, type IntegrationErrorOptions, isIntegrationError, NOT_AVAILABLE_CAUSE, type NotAvailableCause, } from "./error.js";
10
11
  export type { ChangeFeedCursor, CommentReaction, CommentRef, IntegrationAuthProfileId, IntegrationConnectionId, IntegrationId, MilestoneRef, PullRequestRef, WorkItemRef, } from "./ids.js";
@@ -17,5 +18,5 @@ export { createOpaqueCursorCodec } from "./transport/cursor.js";
17
18
  export { HttpTransport, type HttpTransportOptions, } from "./transport/http-transport.js";
18
19
  export { LinkHeaderPager, PageParamPager, type PageParamPagerOptions, } from "./transport/pager.js";
19
20
  export type { CursorCodec, HttpMethod, Pager, RequestSpec, } from "./transport/types.js";
20
- export { AUTHORIZATION_KIND, AUTHORIZATION_SCHEME, COMMENT_KIND, COMMENT_SIDE, CONNECTION_STATUS, DOCTOR_CHECK_STATUS, EXEC_CHANNEL, FILE_CHANGE_STATUS, GIT_PROTOCOL, HTTP_MEDIA_TYPE, HTTP_METHOD, INTEGRATION_AUTH_BINDING_KIND, INTEGRATION_AUTH_MATERIAL_KIND, INTEGRATION_LOGIN_METHOD, LOG_LEVEL, LOGIN_EVENT_TYPE, MEMBERSHIP, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_FEEDBACK_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, PULL_REQUEST_REVIEW_STATE, PULL_REQUEST_STATE, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_SEARCH_FIELD, WORK_ITEM_STATE, } from "./values.js";
21
+ export { AUTHORIZATION_KIND, AUTHORIZATION_SCHEME, COMMENT_KIND, COMMENT_SIDE, CONNECTION_STATUS, DOCTOR_CHECK_STATUS, ENSURE_REPOSITORY_RESULT_KIND, EXEC_CHANNEL, FILE_CHANGE_STATUS, GIT_PROTOCOL, HTTP_MEDIA_TYPE, HTTP_METHOD, INTEGRATION_AUTH_BINDING_KIND, INTEGRATION_AUTH_MATERIAL_KIND, INTEGRATION_LOGIN_METHOD, INTEGRATION_SETTINGS_INPUT_KIND, LOG_LEVEL, LOGIN_EVENT_TYPE, MEMBERSHIP, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_FEEDBACK_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, PULL_REQUEST_REVIEW_STATE, PULL_REQUEST_STATE, REPOSITORY_SETTINGS_UPDATE_KIND, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_SEARCH_FIELD, WORK_ITEM_STATE, } from "./values.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /** Provider-neutral development-management integration runtime. */
2
2
  export { authorizationHeader, bearerMaterialHandlers, envResolver, requireSecret, } from "./auth.js";
3
+ export { createIntegrationDefinitionCatalog, } from "./catalog.js";
3
4
  export { BUILTIN_INTEGRATION_ID, gitCredentialScheme, templatePaths, } from "./code-hosts/builtin.js";
4
5
  export { GITEA_INTEGRATION_ID, gitea, } from "./code-hosts/gitea.js";
5
6
  export { GITHUB_INTEGRATION_ID, github, } from "./code-hosts/github.js";
@@ -12,4 +13,4 @@ export { createIntegrationRuntime, } from "./runtime.js";
12
13
  export { createOpaqueCursorCodec } from "./transport/cursor.js";
13
14
  export { HttpTransport, } from "./transport/http-transport.js";
14
15
  export { LinkHeaderPager, PageParamPager, } from "./transport/pager.js";
15
- export { AUTHORIZATION_KIND, AUTHORIZATION_SCHEME, COMMENT_KIND, COMMENT_SIDE, CONNECTION_STATUS, DOCTOR_CHECK_STATUS, EXEC_CHANNEL, FILE_CHANGE_STATUS, GIT_PROTOCOL, HTTP_MEDIA_TYPE, HTTP_METHOD, INTEGRATION_AUTH_BINDING_KIND, INTEGRATION_AUTH_MATERIAL_KIND, INTEGRATION_LOGIN_METHOD, LOG_LEVEL, LOGIN_EVENT_TYPE, MEMBERSHIP, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_FEEDBACK_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, PULL_REQUEST_REVIEW_STATE, PULL_REQUEST_STATE, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_SEARCH_FIELD, WORK_ITEM_STATE, } from "./values.js";
16
+ export { AUTHORIZATION_KIND, AUTHORIZATION_SCHEME, COMMENT_KIND, COMMENT_SIDE, CONNECTION_STATUS, DOCTOR_CHECK_STATUS, ENSURE_REPOSITORY_RESULT_KIND, EXEC_CHANNEL, FILE_CHANGE_STATUS, GIT_PROTOCOL, HTTP_MEDIA_TYPE, HTTP_METHOD, INTEGRATION_AUTH_BINDING_KIND, INTEGRATION_AUTH_MATERIAL_KIND, INTEGRATION_LOGIN_METHOD, INTEGRATION_SETTINGS_INPUT_KIND, LOG_LEVEL, LOGIN_EVENT_TYPE, MEMBERSHIP, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_FEEDBACK_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, PULL_REQUEST_REVIEW_STATE, PULL_REQUEST_STATE, REPOSITORY_SETTINGS_UPDATE_KIND, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_SEARCH_FIELD, WORK_ITEM_STATE, } from "./values.js";
@@ -1,2 +1,2 @@
1
- export { keyringResolver, keyringSecretStore, type KeyringSecretStore, } from "./resolver.js";
1
+ export { type KeyringSecretStore, keyringResolver, keyringSecretStore, } from "./resolver.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keyring/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keyring/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,eAAe,EACf,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { SecretResolver } from "../ports.js";
2
2
  export interface KeyringSecretStore {
3
+ get(id: string): Promise<string | null>;
3
4
  set(id: string, value: string): Promise<void>;
4
5
  delete(id: string): Promise<void>;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/keyring/resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkBlD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CA2B/D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwBtE"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/keyring/resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkBlD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAS/D;AAeD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAyBtE"}
@@ -8,25 +8,18 @@ export function keyringResolver(service) {
8
8
  return modulePromise;
9
9
  };
10
10
  return {
11
- resolve: async (id) => {
12
- const module = await load();
13
- try {
14
- const value = await new module.entryConstructor(service, id).getPassword();
15
- return value === "" ? null : value;
16
- }
17
- catch (error) {
18
- throw new IntegrationError({
19
- code: INTEGRATION_ERROR_CODE.failed,
20
- message: `Keyring secret "${id}" could not be read`,
21
- data: { status: null, bodyTail: null },
22
- integrationId: null,
23
- connectionId: null,
24
- cause: error,
25
- });
26
- }
27
- },
11
+ resolve: async (id) => await readKeyringEntry(await load(), service, id),
28
12
  };
29
13
  }
14
+ async function readKeyringEntry(module, service, id) {
15
+ try {
16
+ const value = await new module.entryConstructor(service, id).getPassword();
17
+ return value === "" ? null : value;
18
+ }
19
+ catch (error) {
20
+ throw keyringOperationError(id, "read", error);
21
+ }
22
+ }
30
23
  export function keyringSecretStore(service) {
31
24
  let modulePromise = null;
32
25
  const load = () => {
@@ -34,6 +27,7 @@ export function keyringSecretStore(service) {
34
27
  return modulePromise;
35
28
  };
36
29
  return {
30
+ get: async (id) => await readKeyringEntry(await load(), service, id),
37
31
  set: async (id, value) => {
38
32
  const module = await load();
39
33
  try {
@@ -57,7 +51,9 @@ export function keyringSecretStore(service) {
57
51
  function keyringOperationError(id, operation, cause) {
58
52
  return new IntegrationError({
59
53
  code: INTEGRATION_ERROR_CODE.failed,
60
- message: `Keyring secret "${id}" could not be ${operation}`,
54
+ message: operation === "read"
55
+ ? `Keyring secret "${id}" could not be read`
56
+ : `Keyring secret "${id}" could not be ${operation}`,
61
57
  data: { status: null, bodyTail: null },
62
58
  integrationId: null,
63
59
  connectionId: null,
package/dist/model.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { ValueOf } from "@alpacakit/core";
2
2
  import type { ChangeFeedCursor, CommentReaction, CommentRef, MilestoneRef, PullRequestRef, WorkItemRef } from "./ids.js";
3
- import type { COMMENT_KIND, COMMENT_SIDE, FILE_CHANGE_STATUS, GIT_PROTOCOL, MEMBERSHIP, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_FEEDBACK_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, PULL_REQUEST_REVIEW_STATE, PULL_REQUEST_STATE, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_SEARCH_FIELD, WORK_ITEM_STATE } from "./values.js";
3
+ import type { COMMENT_KIND, COMMENT_SIDE, ENSURE_REPOSITORY_RESULT_KIND, FILE_CHANGE_STATUS, GIT_PROTOCOL, MEMBERSHIP, MERGE_METHOD, MERGE_STATE_STATUS, MERGEABILITY, OWNER_KIND, PULL_REQUEST_FEEDBACK_KIND, PULL_REQUEST_REVIEW_CONTEXT_AVAILABILITY, PULL_REQUEST_REVIEW_STATE, PULL_REQUEST_STATE, REVIEW_DECISION, WORK_ITEM_KIND, WORK_ITEM_QUERY_STATE, WORK_ITEM_SEARCH_FIELD, WORK_ITEM_STATE } from "./values.js";
4
4
  export type WorkItemKind = ValueOf<typeof WORK_ITEM_KIND>;
5
5
  export type WorkItemState = ValueOf<typeof WORK_ITEM_STATE>;
6
6
  export type WorkItemQueryState = ValueOf<typeof WORK_ITEM_QUERY_STATE>;
@@ -299,13 +299,20 @@ export interface LinkedBranch {
299
299
  ensure(workItem: WorkItemRef, branch: string): Promise<void>;
300
300
  }
301
301
  export type EnsureRepositoryInput = {
302
- readonly owner: string;
303
- readonly name: string;
304
- readonly private?: boolean;
305
- readonly description?: string;
302
+ readonly ref: RepositoryRef;
303
+ readonly isPrivate: boolean;
304
+ readonly description: string | null;
305
+ };
306
+ export type EnsureRepositoryResult = {
307
+ readonly kind: typeof ENSURE_REPOSITORY_RESULT_KIND.existing;
308
+ readonly repository: RepositoryInfo;
309
+ } | {
310
+ readonly kind: typeof ENSURE_REPOSITORY_RESULT_KIND.created;
311
+ readonly repository: RepositoryInfo;
306
312
  };
307
- export interface RepositoryProvisioning {
308
- ensureRepository(input: EnsureRepositoryInput): Promise<RepositoryInfo>;
313
+ export interface RepositoryHost {
314
+ find(ref: RepositoryRef): Promise<RepositoryInfo | null>;
315
+ ensure(input: EnsureRepositoryInput): Promise<EnsureRepositoryResult>;
309
316
  }
310
317
  export interface Repository {
311
318
  info(): Promise<RepositoryInfo>;
@@ -314,7 +321,6 @@ export interface Repository {
314
321
  readonly reviewers: PullRequestReviewers | null;
315
322
  readonly draft: PullRequestDraft | null;
316
323
  readonly linkedBranch: LinkedBranch | null;
317
- readonly provisioning: RepositoryProvisioning | null;
318
324
  }
319
325
  export interface MembershipDirectory {
320
326
  /** Resolve one principal without requiring consumers to materialize a directory snapshot. */
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type IntegrationAuthProfile } from "./auth.js";
2
2
  import type { IntegrationConnectionRecord, IntegrationDefinition } from "./definition.js";
3
3
  import { type IntegrationConnectionId, type IntegrationId } from "./ids.js";
4
4
  import { type DoctorCheck, type LoginHandle, type LoginRequest } from "./login.js";
5
- import type { Account, Repository, UserRef, WorkItems } from "./model.js";
5
+ import type { Account, Repository, RepositoryHost, UserRef, WorkItems } from "./model.js";
6
6
  import { type IntegrationPorts } from "./ports.js";
7
7
  import { CONNECTION_STATUS } from "./values.js";
8
8
  export interface Integration {
@@ -10,9 +10,11 @@ export interface Integration {
10
10
  readonly integrationId: IntegrationId;
11
11
  readonly workItems: WorkItems | null;
12
12
  readonly repository: Repository | null;
13
+ readonly repositoryHost: RepositoryHost | null;
13
14
  readonly account: Account | null;
14
15
  requireWorkItems(): WorkItems;
15
16
  requireRepository(): Repository;
17
+ requireRepositoryHost(): RepositoryHost;
16
18
  requireAccount(): Account;
17
19
  }
18
20
  export type ConnectionCheck = {
@@ -28,11 +30,11 @@ export type ConnectionCheck = {
28
30
  readonly viewer: null;
29
31
  readonly detail: string | null;
30
32
  };
31
- export interface IntegrationRuntime<Id extends IntegrationId = IntegrationId> {
33
+ export interface IntegrationRuntime {
32
34
  connect(id: IntegrationConnectionId | string): Promise<Integration>;
33
35
  connections(): IntegrationConnectionId[];
34
36
  resolveRemote(remoteUrl: string): IntegrationConnectionId | null;
35
- login(integration: Id | string, options: LoginRequest): LoginHandle;
37
+ login(integration: string, options: LoginRequest): LoginHandle;
36
38
  checkConnection(connection: IntegrationConnectionId | string): Promise<ConnectionCheck>;
37
39
  doctor(connection: IntegrationConnectionId | string): Promise<DoctorCheck[]>;
38
40
  readonly ports: IntegrationPorts;
@@ -45,6 +47,6 @@ export type IntegrationRuntimeOptions<Defs extends readonly AnyDefinition[]> = {
45
47
  readonly ports?: Partial<IntegrationPorts>;
46
48
  readonly baseEnv: Record<string, string>;
47
49
  };
48
- export declare function createIntegrationRuntime<const Defs extends readonly AnyDefinition[]>(options: IntegrationRuntimeOptions<Defs>): IntegrationRuntime<Defs[number]["id"]>;
50
+ export declare function createIntegrationRuntime<const Defs extends readonly AnyDefinition[]>(options: IntegrationRuntimeOptions<Defs>): IntegrationRuntime;
49
51
  export {};
50
52
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -240,15 +240,18 @@ function bindIntegration(resolved, session) {
240
240
  const { definition, record } = resolved;
241
241
  const workItems = definition.workItems?.(session) ?? null;
242
242
  const repository = definition.repository?.(session) ?? null;
243
+ const repositoryHost = definition.repositoryHost?.(session) ?? null;
243
244
  const account = definition.account?.(session) ?? null;
244
245
  return {
245
246
  connectionId: record.id,
246
247
  integrationId: definition.id,
247
248
  workItems,
248
249
  repository,
250
+ repositoryHost,
249
251
  account,
250
252
  requireWorkItems: () => requireFacet(workItems, "workItems", definition.id, record.id),
251
253
  requireRepository: () => requireFacet(repository, "repository", definition.id, record.id),
254
+ requireRepositoryHost: () => requireFacet(repositoryHost, "repositoryHost", definition.id, record.id),
252
255
  requireAccount: () => requireFacet(account, "account", definition.id, record.id),
253
256
  };
254
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/testing/contracts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;AAEpE,MAAM,MAAM,kCAAkC,GAAG,CAC/C,OAAO,EAAE,SAAS,aAAa,EAAE,KAC9B,OAAO,CAAC;IACX,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,0BAA0B,GAC1C,IAAI,CAsBN;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,0BAA0B,GAC1C,IAAI,CAkBN;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,0BAA0B,GAC1C,IAAI,CAcN;AAED,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,kCAAkC,EACnD,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAgLN"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/testing/contracts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;AAEpE,MAAM,MAAM,kCAAkC,GAAG,CAC/C,OAAO,EAAE,SAAS,aAAa,EAAE,KAC9B,OAAO,CAAC;IACX,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,0BAA0B,GAC1C,IAAI,CAsBN;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,0BAA0B,GAC1C,IAAI,CAiBN;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,0BAA0B,GAC1C,IAAI,CAcN;AAED,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,kCAAkC,EACnD,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAgLN"}
@@ -36,7 +36,6 @@ export function runRepositoryContract(makeIntegration) {
36
36
  expect(facet.reviewers).not.toBeUndefined();
37
37
  expect(facet.draft).not.toBeUndefined();
38
38
  expect(facet.linkedBranch).not.toBeUndefined();
39
- expect(facet.provisioning).not.toBeUndefined();
40
39
  });
41
40
  });
42
41
  }
package/dist/values.d.ts CHANGED
@@ -7,6 +7,18 @@ export declare const INTEGRATION_AUTH_MATERIAL_KIND: {
7
7
  readonly apiKey: "api-key";
8
8
  readonly basic: "basic";
9
9
  };
10
+ export declare const INTEGRATION_SETTINGS_INPUT_KIND: {
11
+ readonly repository: "repository";
12
+ readonly raw: "raw";
13
+ };
14
+ export declare const REPOSITORY_SETTINGS_UPDATE_KIND: {
15
+ readonly repository: "repository";
16
+ readonly baseUrl: "base_url";
17
+ };
18
+ export declare const ENSURE_REPOSITORY_RESULT_KIND: {
19
+ readonly existing: "existing";
20
+ readonly created: "created";
21
+ };
10
22
  export declare const AUTHORIZATION_KIND: {
11
23
  readonly bearer: "bearer";
12
24
  readonly basic: "basic";
@@ -1 +1 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B;;;;CAIhC,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;CAGjC,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;CAGxB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,eAAO,MAAM,wCAAwC;;;;CAI3C,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAC;AAEX,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;CAOrB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAEX,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC"}
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B;;;;CAIhC,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;CAGjC,CAAC;AAEX,eAAO,MAAM,+BAA+B;;;CAGlC,CAAC;AAEX,eAAO,MAAM,+BAA+B;;;CAGlC,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;CAGhC,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;CAGxB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,eAAO,MAAM,wCAAwC;;;;CAI3C,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAC;AAEX,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;CAOrB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAEX,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC"}
package/dist/values.js CHANGED
@@ -7,6 +7,18 @@ export const INTEGRATION_AUTH_MATERIAL_KIND = {
7
7
  apiKey: "api-key",
8
8
  basic: "basic",
9
9
  };
10
+ export const INTEGRATION_SETTINGS_INPUT_KIND = {
11
+ repository: "repository",
12
+ raw: "raw",
13
+ };
14
+ export const REPOSITORY_SETTINGS_UPDATE_KIND = {
15
+ repository: "repository",
16
+ baseUrl: "base_url",
17
+ };
18
+ export const ENSURE_REPOSITORY_RESULT_KIND = {
19
+ existing: "existing",
20
+ created: "created",
21
+ };
10
22
  export const AUTHORIZATION_KIND = {
11
23
  bearer: "bearer",
12
24
  basic: "basic",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpacakit/integrations",
3
- "version": "0.1.0-beta.24",
3
+ "version": "0.1.0-beta.25",
4
4
  "description": "Provider-neutral development-management integrations for issues, pull requests, and repositories.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "zod": "^4.3.6",
40
- "@alpacakit/core": "0.1.0-beta.24"
40
+ "@alpacakit/core": "0.1.0-beta.25"
41
41
  },
42
42
  "devDependencies": {
43
43
  "typescript": "^5.9.3",