@knpkv/codecommit-core 0.18.0 → 0.20.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.
Files changed (128) hide show
  1. package/dist/AwsClient/AwsClientGated.d.ts.map +1 -1
  2. package/dist/AwsClient/AwsClientGated.js +0 -2
  3. package/dist/AwsClient/AwsClientGated.js.map +1 -1
  4. package/dist/AwsClient/approvalRuleContent.d.ts +2 -1
  5. package/dist/AwsClient/approvalRuleContent.d.ts.map +1 -1
  6. package/dist/AwsClient/approvalRuleContent.js +25 -18
  7. package/dist/AwsClient/approvalRuleContent.js.map +1 -1
  8. package/dist/AwsClient/getCallerIdentity.d.ts +2 -0
  9. package/dist/AwsClient/getCallerIdentity.d.ts.map +1 -1
  10. package/dist/AwsClient/getCallerIdentity.js +8 -4
  11. package/dist/AwsClient/getCallerIdentity.js.map +1 -1
  12. package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
  13. package/dist/AwsClient/getPullRequest.js +19 -10
  14. package/dist/AwsClient/getPullRequest.js.map +1 -1
  15. package/dist/AwsClient/getPullRequests.d.ts +30 -23
  16. package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
  17. package/dist/AwsClient/getPullRequests.js +47 -32
  18. package/dist/AwsClient/getPullRequests.js.map +1 -1
  19. package/dist/AwsClient/index.d.ts +1 -10
  20. package/dist/AwsClient/index.d.ts.map +1 -1
  21. package/dist/AwsClient/index.js +0 -1
  22. package/dist/AwsClient/index.js.map +1 -1
  23. package/dist/AwsClient/internal.d.ts +11 -1
  24. package/dist/AwsClient/internal.d.ts.map +1 -1
  25. package/dist/AwsClient/internal.js +7 -0
  26. package/dist/AwsClient/internal.js.map +1 -1
  27. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.d.ts +2 -17
  28. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.d.ts.map +1 -1
  29. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.js +2 -6
  30. package/dist/AwsClientConfig/internal/ProfileCredentialProvider.js.map +1 -1
  31. package/dist/AwsClientConfig.js +1 -1
  32. package/dist/AwsClientConfig.js.map +1 -1
  33. package/dist/AwsCredentialErrors.d.ts +8 -0
  34. package/dist/AwsCredentialErrors.d.ts.map +1 -0
  35. package/dist/AwsCredentialErrors.js +40 -0
  36. package/dist/AwsCredentialErrors.js.map +1 -0
  37. package/dist/AwsProfileCredentials.d.ts +23 -0
  38. package/dist/AwsProfileCredentials.d.ts.map +1 -0
  39. package/dist/AwsProfileCredentials.js +29 -0
  40. package/dist/AwsProfileCredentials.js.map +1 -0
  41. package/dist/CacheService/Database.d.ts +1 -1
  42. package/dist/CacheService/Database.d.ts.map +1 -1
  43. package/dist/CacheService/Database.js +6 -2
  44. package/dist/CacheService/Database.js.map +1 -1
  45. package/dist/CacheService/diff.d.ts +10 -0
  46. package/dist/CacheService/diff.d.ts.map +1 -1
  47. package/dist/CacheService/diff.js +12 -1
  48. package/dist/CacheService/diff.js.map +1 -1
  49. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.d.ts +9 -0
  50. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.d.ts.map +1 -0
  51. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.js +8 -0
  52. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.js.map +1 -0
  53. package/dist/CacheService/migrations/0023_pull_request_row_versions.d.ts +17 -0
  54. package/dist/CacheService/migrations/0023_pull_request_row_versions.d.ts.map +1 -0
  55. package/dist/CacheService/migrations/0023_pull_request_row_versions.js +37 -0
  56. package/dist/CacheService/migrations/0023_pull_request_row_versions.js.map +1 -0
  57. package/dist/CacheService/repos/PullRequestRepo/index.d.ts +34 -8
  58. package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -1
  59. package/dist/CacheService/repos/PullRequestRepo/index.js +1 -1
  60. package/dist/CacheService/repos/PullRequestRepo/index.js.map +1 -1
  61. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +69 -2
  62. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -1
  63. package/dist/CacheService/repos/PullRequestRepo/internal.js +73 -2
  64. package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -1
  65. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +39 -16
  66. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -1
  67. package/dist/CacheService/repos/PullRequestRepo/mutations.js +61 -92
  68. package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -1
  69. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +24 -0
  70. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -1
  71. package/dist/CacheService/repos/PullRequestRepo/queries.js +10 -3
  72. package/dist/CacheService/repos/PullRequestRepo/queries.js.map +1 -1
  73. package/dist/CacheService/repos/PullRequestRepo/rowWrites.d.ts +131 -0
  74. package/dist/CacheService/repos/PullRequestRepo/rowWrites.d.ts.map +1 -0
  75. package/dist/CacheService/repos/PullRequestRepo/rowWrites.js +214 -0
  76. package/dist/CacheService/repos/PullRequestRepo/rowWrites.js.map +1 -0
  77. package/dist/CacheService/repos/StatsRepo/internal.d.ts +0 -1
  78. package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -1
  79. package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -1
  80. package/dist/CacheService/repos/StatsRepo/queries.d.ts.map +1 -1
  81. package/dist/CacheService/repos/StatsRepo/queries.js +2 -1
  82. package/dist/CacheService/repos/StatsRepo/queries.js.map +1 -1
  83. package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts.map +1 -1
  84. package/dist/CacheService/repos/StatsRepo/reviewerData.js +1 -2
  85. package/dist/CacheService/repos/StatsRepo/reviewerData.js.map +1 -1
  86. package/dist/Domain.d.ts +153 -7
  87. package/dist/Domain.d.ts.map +1 -1
  88. package/dist/Domain.js +107 -1
  89. package/dist/Domain.js.map +1 -1
  90. package/dist/HealthScore.d.ts +1 -1
  91. package/dist/HealthScore.d.ts.map +1 -1
  92. package/dist/HealthScore.js +20 -5
  93. package/dist/HealthScore.js.map +1 -1
  94. package/dist/IdentityLifecycle.d.ts +288 -0
  95. package/dist/IdentityLifecycle.d.ts.map +1 -0
  96. package/dist/IdentityLifecycle.js +125 -0
  97. package/dist/IdentityLifecycle.js.map +1 -0
  98. package/dist/PRService/internal.d.ts +17 -1
  99. package/dist/PRService/internal.d.ts.map +1 -1
  100. package/dist/PRService/internal.js +8 -0
  101. package/dist/PRService/internal.js.map +1 -1
  102. package/dist/PRService/refresh.d.ts.map +1 -1
  103. package/dist/PRService/refresh.js +2 -1
  104. package/dist/PRService/refresh.js.map +1 -1
  105. package/dist/PRService/refreshDiffs.d.ts.map +1 -1
  106. package/dist/PRService/refreshDiffs.js +8 -5
  107. package/dist/PRService/refreshDiffs.js.map +1 -1
  108. package/dist/PRService/refreshEnrich.d.ts.map +1 -1
  109. package/dist/PRService/refreshEnrich.js +26 -45
  110. package/dist/PRService/refreshEnrich.js.map +1 -1
  111. package/dist/PRService/refreshFetch.d.ts +3 -1
  112. package/dist/PRService/refreshFetch.d.ts.map +1 -1
  113. package/dist/PRService/refreshFetch.js +108 -74
  114. package/dist/PRService/refreshFetch.js.map +1 -1
  115. package/dist/PRService/refreshHistory.d.ts.map +1 -1
  116. package/dist/PRService/refreshHistory.js +19 -11
  117. package/dist/PRService/refreshHistory.js.map +1 -1
  118. package/dist/PRService/refreshResolve.d.ts +10 -0
  119. package/dist/PRService/refreshResolve.d.ts.map +1 -1
  120. package/dist/PRService/refreshResolve.js +43 -28
  121. package/dist/PRService/refreshResolve.js.map +1 -1
  122. package/dist/PRService/refreshScore.d.ts.map +1 -1
  123. package/dist/PRService/refreshScore.js +4 -2
  124. package/dist/PRService/refreshScore.js.map +1 -1
  125. package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
  126. package/dist/PRService/refreshSinglePR.js +44 -25
  127. package/dist/PRService/refreshSinglePR.js.map +1 -1
  128. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AwsClientGated.d.ts","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAS,OAAO,EAAU,KAAK,EAA0B,MAAM,QAAQ,CAAA;AAG9E,OAAO,EAAE,YAAY,EAAyB,MAAM,kCAAkC,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAoD,MAAM,YAAY,CAAA;;AAGxF,qBAAa,cAAe,SAAQ,mBAGQ;CAAG;AA4B/C,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAC1C,SAAS,EACT,KAAK,EACL,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAyMnE,CAAA"}
1
+ {"version":3,"file":"AwsClientGated.d.ts","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAS,OAAO,EAAU,KAAK,EAA0B,MAAM,QAAQ,CAAA;AAG9E,OAAO,EAAE,YAAY,EAAyB,MAAM,kCAAkC,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAuB,MAAM,YAAY,CAAA;;AAG3D,qBAAa,cAAe,SAAQ,mBAGQ;CAAG;AA4B/C,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAC1C,SAAS,EACT,KAAK,EACL,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAiMnE,CAAA"}
@@ -115,8 +115,6 @@ export const AwsClientGatedLive = Layer.effect(AwsClient, Effect.gen(function* (
115
115
  const nested = (p) => p.account;
116
116
  return {
117
117
  getPullRequests: (account, options) => gatedStream("getPullRequests", ({ account }) => `List PRs for ${account.profile}`, nested, ({ account, options }) => inner.getPullRequests(account, options))({ account, options }),
118
- // The same provider read as getPullRequests, so the same permission and audit operation.
119
- getPullRequestRefresh: (account, options) => gatedStream("getPullRequests", ({ account }) => `List PRs for ${account.profile}`, nested, ({ account, options }) => inner.getPullRequestRefresh(account, options))({ account, options }),
120
118
  getCallerIdentity: gated("getCallerIdentity", (a) => `Get identity for ${a.profile}`, self, inner.getCallerIdentity),
121
119
  createPullRequest: gated("createPullRequest", (p) => `Create PR on ${p.repositoryName}`, nested, inner.createPullRequest),
122
120
  listBranches: gated("listBranches", (p) => `List branches in ${p.repositoryName}`, nested, inner.listBranches),
@@ -1 +1 @@
1
- {"version":3,"file":"AwsClientGated.js","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AwsClientGated.js","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ interface ParsedRule {
8
8
  * Parse AWS approval rule content JSON into pool members + required count.
9
9
  * Format: {"Version":"2018-11-08","Statements":[{"Type":"Approvers","NumberOfApprovalsNeeded":N,"ApprovalPoolMembers":["arn:..."]}]}
10
10
  *
11
- * Falls back to defaults on malformed JSON; logs a warning when content was provided.
11
+ * Falls back to defaults on content it cannot read, and logs the schema error, which names the path
12
+ * that failed, so a rule shown with no pool can be traced.
12
13
  */
13
14
  export declare const parseRuleContent: (content?: string) => Effect.Effect<ParsedRule>;
14
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"approvalRuleContent.d.ts","sourceRoot":"","sources":["../../src/AwsClient/approvalRuleContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAiB/C,UAAU,UAAU;IAClB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACvC;AASD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,aAAc,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAexE,CAAA"}
1
+ {"version":3,"file":"approvalRuleContent.d.ts","sourceRoot":"","sources":["../../src/AwsClient/approvalRuleContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,QAAQ,CAAA;AA6BrD,UAAU,UAAU;IAClB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACvC;AASD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,aAAc,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAkBzE,CAAA"}
@@ -1,16 +1,25 @@
1
- import { Effect, Option, Schema } from "effect";
1
+ import { Effect, Schema, SchemaGetter } from "effect";
2
2
  import { normalizeAuthor } from "./internal.js";
3
3
  // AWS returns NumberOfApprovalsNeeded as number or string. A malformed count
4
4
  // must not discard ApprovalPoolMembers, so the count is coerced separately.
5
+ // AWS stores ApprovalPoolMembers as written, and a single member can come back as a bare string
6
+ // (an "anyone" rule written as ["*"] has been read back as "*"), so both forms are read as a list.
7
+ const PoolMembers = Schema.Union([
8
+ Schema.Array(Schema.String),
9
+ Schema.String.pipe(Schema.decodeTo(Schema.Array(Schema.String), {
10
+ decode: SchemaGetter.transform((member) => [member]),
11
+ encode: SchemaGetter.transform((members) => members[0] ?? "")
12
+ }))
13
+ ]);
5
14
  const RuleStatement = Schema.Struct({
6
15
  NumberOfApprovalsNeeded: Schema.optional(Schema.Unknown),
7
- ApprovalPoolMembers: Schema.optional(Schema.Array(Schema.String))
16
+ ApprovalPoolMembers: Schema.optional(PoolMembers)
8
17
  });
9
18
  const RuleContent = Schema.Struct({
10
19
  Statements: Schema.optional(Schema.Array(RuleStatement))
11
20
  });
12
21
  const RuleContentFromJson = Schema.fromJsonString(RuleContent);
13
- const decodeRuleContent = Schema.decodeUnknownOption(RuleContentFromJson);
22
+ const decodeRuleContent = Schema.decodeUnknownEffect(RuleContentFromJson);
14
23
  const ruleDefaults = { requiredApprovals: 1, poolMembers: [], poolMemberArns: [] };
15
24
  const coerceApprovalCount = (raw) => {
16
25
  const n = Number(raw ?? 1);
@@ -20,20 +29,18 @@ const coerceApprovalCount = (raw) => {
20
29
  * Parse AWS approval rule content JSON into pool members + required count.
21
30
  * Format: {"Version":"2018-11-08","Statements":[{"Type":"Approvers","NumberOfApprovalsNeeded":N,"ApprovalPoolMembers":["arn:..."]}]}
22
31
  *
23
- * Falls back to defaults on malformed JSON; logs a warning when content was provided.
32
+ * Falls back to defaults on content it cannot read, and logs the schema error, which names the path
33
+ * that failed, so a rule shown with no pool can be traced.
24
34
  */
25
- export const parseRuleContent = (content) => Option.match(decodeRuleContent(content ?? "{}"), {
26
- onSome: (parsed) => {
27
- const stmt = parsed.Statements?.[0];
28
- const rawArns = stmt?.ApprovalPoolMembers ?? [];
29
- return Effect.succeed({
30
- requiredApprovals: coerceApprovalCount(stmt?.NumberOfApprovalsNeeded),
31
- poolMembers: rawArns.map(normalizeAuthor),
32
- poolMemberArns: [...rawArns]
33
- });
34
- },
35
- onNone: () => content
36
- ? Effect.logWarning("Failed to parse approval rule content", { content }).pipe(Effect.as(ruleDefaults))
37
- : Effect.succeed(ruleDefaults)
38
- });
35
+ export const parseRuleContent = (content) => decodeRuleContent(content ?? "{}").pipe(Effect.map((parsed) => {
36
+ const stmt = parsed.Statements?.[0];
37
+ const rawArns = [...(stmt?.ApprovalPoolMembers ?? [])];
38
+ return {
39
+ requiredApprovals: coerceApprovalCount(stmt?.NumberOfApprovalsNeeded),
40
+ poolMembers: rawArns.map(normalizeAuthor),
41
+ poolMemberArns: rawArns
42
+ };
43
+ }), Effect.catch((error) => content
44
+ ? Effect.logWarning("Failed to parse approval rule content", { error: error.message }).pipe(Effect.as(ruleDefaults))
45
+ : Effect.succeed(ruleDefaults)));
39
46
  //# sourceMappingURL=approvalRuleContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approvalRuleContent.js","sourceRoot":"","sources":["../../src/AwsClient/approvalRuleContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACxD,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAClE,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;CACzD,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAC9D,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAA;AAQzE,MAAM,YAAY,GAAe,EAAE,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;AAE9F,MAAM,mBAAmB,GAAG,CAAgB,GAAkB,EAAU,EAAE;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAA6B,EAAE,CAC9E,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;IAC/C,MAAM,EAAE,CAAC,MAAM,EAA6B,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,EAAE,mBAAmB,IAAI,EAAE,CAAA;QAC/C,OAAO,MAAM,CAAC,OAAO,CAAC;YACpB,iBAAiB,EAAE,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,CAAC;YACrE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACzC,cAAc,EAAE,CAAC,GAAG,OAAO,CAAC;SAC7B,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,CACX,OAAO;QACL,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACvG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;CACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"approvalRuleContent.js","sourceRoot":"","sources":["../../src/AwsClient/approvalRuleContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,6EAA6E;AAC7E,4EAA4E;AAC5E,gGAAgG;AAChG,mGAAmG;AACnG,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC3C,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC,CACH;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACxD,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;CAClD,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;CACzD,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAC9D,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAA;AAQzE,MAAM,YAAY,GAAe,EAAE,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;AAE9F,MAAM,mBAAmB,GAAG,CAAgB,GAAkB,EAAU,EAAE;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAA6B,EAAE,CAC9E,iBAAiB,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAc,EAAE;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAA;IACtD,OAAO;QACL,iBAAiB,EAAE,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,CAAC;QACrE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACzC,cAAc,EAAE,OAAO;KACxB,CAAA;AACH,CAAC,CAAC,EACF,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,OAAO;IACL,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,uCAAuC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACzF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CACxB;IACD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CACjC,CACF,CAAA"}
@@ -3,6 +3,8 @@ import { type AccountParams } from "./internal.js";
3
3
  export interface CallerIdentity {
4
4
  readonly username: string;
5
5
  readonly accountId: string;
6
+ /** Raw STS Arn, e.g. `arn:aws:sts::123:assumed-role/Reviewers/alice`. */
7
+ readonly arn: string;
6
8
  }
7
9
  export declare const getCallerIdentity: (account: AccountParams) => Effect.Effect<CallerIdentity, import("./internal.js").AwsApiError | import("./internal.js").AwsCredentialError, import("../AwsClientConfig.ts").AwsClientConfig | import("effect/http/HttpClient").HttpClient>;
8
10
  //# sourceMappingURL=getCallerIdentity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCallerIdentity.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getCallerIdentity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAiD,MAAM,eAAe,CAAA;AAEjG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAWD,eAAO,MAAM,iBAAiB,YAAa,aAAa,mNACsB,CAAA"}
1
+ {"version":3,"file":"getCallerIdentity.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getCallerIdentity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,KAAK,aAAa,EAAiD,MAAM,eAAe,CAAA;AAEjG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAiBD,eAAO,MAAM,iBAAiB,YAAa,aAAa,mNACsB,CAAA"}
@@ -2,11 +2,15 @@
2
2
  * @internal
3
3
  */
4
4
  import * as sts from "@distilled.cloud/aws/sts";
5
- import { Effect } from "effect";
5
+ import { Effect, Schema } from "effect";
6
6
  import { makeApiError, normalizeAuthor, withAwsContext } from "./internal.js";
7
- const callGetCallerIdentity = (account) => sts.getCallerIdentity({}).pipe(Effect.map((resp) => ({
8
- username: normalizeAuthor(resp.Arn ?? ""),
9
- accountId: resp.Account ?? ""
7
+ /** STS may omit both fields; an identity without them is not resolved, so the lookup fails instead. */
8
+ const StsIdentity = Schema.Struct({ Account: Schema.NonEmptyString, Arn: Schema.NonEmptyString });
9
+ const decodeStsIdentity = Schema.decodeUnknownEffect(StsIdentity);
10
+ const callGetCallerIdentity = (account) => sts.getCallerIdentity({}).pipe(Effect.flatMap(decodeStsIdentity), Effect.map(({ Account, Arn }) => ({
11
+ username: normalizeAuthor(Arn),
12
+ accountId: Account,
13
+ arn: Arn
10
14
  })), Effect.mapError((cause) => makeApiError("getCallerIdentity", account.profile, account.region, cause)));
11
15
  export const getCallerIdentity = (account) => withAwsContext("getCallerIdentity", account, callGetCallerIdentity(account));
12
16
  //# sourceMappingURL=getCallerIdentity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCallerIdentity.js","sourceRoot":"","sources":["../../src/AwsClient/getCallerIdentity.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAsB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAOjG,MAAM,qBAAqB,GAAG,CAAC,OAAsB,EAAE,EAAE,CACvD,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,CAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC;IACpC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;CAC9B,CAAC,CAAC,EACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACtG,CAAA;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAC1D,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"getCallerIdentity.js","sourceRoot":"","sources":["../../src/AwsClient/getCallerIdentity.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAsB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AASjG,uGAAuG;AACvG,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;AACjG,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;AAEjE,MAAM,qBAAqB,GAAG,CAAC,OAAsB,EAAE,EAAE,CACvD,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,CAC5B,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EACjC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAkB,EAAE,CAAC,CAAC;IAChD,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;IAC9B,SAAS,EAAE,OAAO;IAClB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC,EACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACtG,CAAA;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAC1D,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPullRequest.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,MAAM,EAAwB,MAAM,QAAQ,CAAA;AAErD,OAAO,EACL,KAAK,oBAAoB,EAGzB,iBAAiB,EAElB,MAAM,eAAe,CAAA;AAiGtB,eAAO,MAAM,cAAc,WAAY,oBAAoB,sNAKxD,CAAA"}
1
+ {"version":3,"file":"getPullRequest.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,MAAM,EAAwB,MAAM,QAAQ,CAAA;AASrD,OAAO,EACL,KAAK,oBAAoB,EAGzB,iBAAiB,EAElB,MAAM,eAAe,CAAA;AA0GtB,eAAO,MAAM,cAAc,WAAY,oBAAoB,sNAKxD,CAAA"}
@@ -8,11 +8,11 @@
8
8
  * ```
9
9
  * codecommit.getPullRequest ─┬─► decodePullRequestDetail
10
10
  * ├─► fetchApprovers → { names, arns }
11
- * ├─► fetchApprovalEvaluation → satisfiedNames
11
+ * ├─► evaluateApproval → satisfiedNames, or approval unknown
12
12
  * └─► fetchRepoAccountId → repo account ID
13
13
  * ```
14
14
  *
15
- * - Shared: {@link buildApprovalRules}, {@link fetchApprovalEvaluation},
15
+ * - Shared: {@link buildApprovalRules}, {@link evaluateApproval},
16
16
  * {@link fetchRepoAccountId} from getPullRequests.ts
17
17
  * - Runs inside {@link withAwsContext} (Credentials + Region + AwsClientConfig)
18
18
  *
@@ -25,7 +25,7 @@
25
25
  */
26
26
  import * as codecommit from "@distilled.cloud/aws/codecommit";
27
27
  import { Effect, Schema, SchemaGetter } from "effect";
28
- import { buildApprovalRules, fetchApprovalEvaluation, fetchApprovers, fetchRepoAccountId } from "./getPullRequests.js";
28
+ import { buildApprovalRules, evaluateApproval, fetchApprovers, fetchMergeStatus, fetchRepoAccountId, MissingPullRequestResponse } from "./getPullRequests.js";
29
29
  import { makeApiError, normalizeAuthor, PullRequestDetail, withAwsContext } from "./internal.js";
30
30
  const EpochFallback = new Date(0);
31
31
  // Bidirectional Schema: raw AWS GetPullRequest response ↔ PullRequestDetail
@@ -94,21 +94,30 @@ const RawToPullRequestDetail = RawGetPullRequestResponse.pipe(Schema.decodeTo(Pu
94
94
  const decodePullRequestDetail = (raw) => Schema.decodeUnknownEffect(RawToPullRequestDetail)(raw);
95
95
  const callGetPullRequest = (params) => Effect.gen(function* () {
96
96
  const resp = yield* codecommit.getPullRequest({ pullRequestId: params.pullRequestId });
97
- const revisionId = resp.pullRequest?.revisionId ?? "";
98
- const repoName = resp.pullRequest?.pullRequestTargets?.[0]?.repositoryName ?? "";
99
- const [detail, approvers, evaluation, repoAccountId] = yield* Effect.all([
97
+ // Approval unknown is only truthful about a pull request that was read.
98
+ if (resp.pullRequest === undefined) {
99
+ return yield* new MissingPullRequestResponse({ pullRequestId: params.pullRequestId });
100
+ }
101
+ const revisionId = resp.pullRequest.revisionId ?? "";
102
+ const repoName = resp.pullRequest.pullRequestTargets?.[0]?.repositoryName ?? "";
103
+ const [detail, approvers, evaluation, repoAccountId, isMergeable] = yield* Effect.all([
100
104
  decodePullRequestDetail(resp),
101
105
  fetchApprovers(params.pullRequestId, revisionId),
102
- fetchApprovalEvaluation(params.pullRequestId, revisionId),
103
- fetchRepoAccountId(repoName)
104
- ], { concurrency: 4 });
106
+ evaluateApproval(params.pullRequestId, revisionId),
107
+ fetchRepoAccountId(repoName),
108
+ // As the listing reads it, so a re-read writes the whole row, mergeability included.
109
+ fetchMergeStatus(repoName, resp.pullRequest.pullRequestTargets?.[0])
110
+ ], { concurrency: 5 });
105
111
  const approvalRules = yield* buildApprovalRules(resp.pullRequest?.approvalRules ?? [], evaluation.satisfiedNames);
106
112
  return new PullRequestDetail({
107
113
  ...detail,
108
114
  approvedBy: approvers.names,
109
115
  approvedByArns: approvers.arns,
110
116
  approvalRules,
111
- repoAccountId: repoAccountId || undefined
117
+ repoAccountId: repoAccountId || undefined,
118
+ isMergeable,
119
+ isApproved: evaluation.isApproved,
120
+ approvalUnknown: evaluation.approvalUnknown
112
121
  });
113
122
  }).pipe(Effect.mapError((cause) => makeApiError("getPullRequest", params.account.profile, params.account.region, cause)));
114
123
  export const getPullRequest = (params) => withAwsContext("getPullRequest", params.account, callGetPullRequest(params));
@@ -1 +1 @@
1
- {"version":3,"file":"getPullRequest.js","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPullRequest.js","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"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"}
@@ -31,14 +31,23 @@
31
31
  * @internal
32
32
  */
33
33
  import type { Credentials, Region } from "@distilled.cloud/aws";
34
+ import * as codecommit from "@distilled.cloud/aws/codecommit";
34
35
  import { Effect, Schema, Stream } from "effect";
35
36
  import { HttpClient } from "effect/http";
36
37
  import { AwsClientConfig } from "../AwsClientConfig.js";
37
- import { PullRequest } from "../Domain.js";
38
+ import { ApprovalUnknownReason, PullRequest } from "../Domain.js";
38
39
  import type { AwsClientError } from "../Errors.js";
39
40
  import { type AccountParams } from "./internal.js";
40
41
  type AwsMethodEnv = AwsClientConfig | Credentials.Credentials | Region.Region | HttpClient.HttpClient;
41
42
  type AwsStreamEnv = Credentials.Credentials | Region.Region | HttpClient.HttpClient;
43
+ declare const MissingPullRequestResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
44
+ readonly _tag: "MissingPullRequestResponse";
45
+ } & Readonly<A>;
46
+ /** CodeCommit answered GetPullRequest without a pull request: nothing was read, so nothing can be reported about it. */
47
+ export declare class MissingPullRequestResponse extends MissingPullRequestResponse_base<{
48
+ readonly pullRequestId: string;
49
+ }> {
50
+ }
42
51
  declare const ApprovalEvaluationError_base: Schema.Class<ApprovalEvaluationError, Schema.TaggedStruct<"ApprovalEvaluationError", {
43
52
  readonly pullRequestId: Schema.String;
44
53
  readonly revisionId: Schema.String;
@@ -60,6 +69,17 @@ export declare const fetchApprovalEvaluation: (pullRequestId: string, revisionId
60
69
  readonly isApproved: boolean;
61
70
  readonly satisfiedNames: Set<string>;
62
71
  }, ApprovalEvaluationError, AwsMethodEnv>;
72
+ /** Why an evaluation failed, decided from the provider error's type, never its message text. */
73
+ export declare const approvalUnknownReasonOf: (error: ApprovalEvaluationError) => ApprovalUnknownReason;
74
+ /**
75
+ * Evaluate a revision's approval rules without failing: a failed evaluation leaves approval unknown,
76
+ * with no satisfied rules, and logs the provider's message.
77
+ */
78
+ export declare const evaluateApproval: (pullRequestId: string, revisionId: string) => Effect.Effect<{
79
+ readonly isApproved: boolean;
80
+ readonly satisfiedNames: Set<string>;
81
+ readonly approvalUnknown: ApprovalUnknownReason | undefined;
82
+ }, ApprovalEvaluationError, AwsMethodEnv>;
63
83
  /** Plain data shape matching ApprovalRule — avoids Schema.Class branding. */
64
84
  export interface ApprovalRuleData {
65
85
  readonly ruleName: string;
@@ -87,31 +107,18 @@ export declare const fetchApprovers: (pullRequestId: string, revisionId: string)
87
107
  readonly names: Array<string>;
88
108
  readonly arns: Array<string>;
89
109
  }, never, AwsMethodEnv>;
90
- export declare const fetchRepoAccountId: (repoName: string) => Effect.Effect<string | undefined, never, AwsStreamEnv>;
91
- /**
92
- * One pull request from a refresh: fetched in full, or read but with approval rules that could not be
93
- * evaluated. A failed evaluation affects only that pull request, so a refresh carries on with the rest.
94
- */
95
- export type PullRequestRefreshItem = {
96
- readonly _tag: "Fetched";
97
- readonly pullRequest: PullRequest;
98
- } | {
99
- readonly _tag: "EvaluationFailed";
100
- readonly pullRequestId: string;
101
- readonly repositoryName: string;
102
- readonly error: ApprovalEvaluationError;
103
- };
104
110
  /**
105
- * Stream every pull request of one account, isolating approval-evaluation failures per pull request.
106
- * Any other failure (listing, reading, decoding) still fails the stream with an `AwsApiError`.
111
+ * Check PR merge status.
107
112
  */
108
- export declare const getPullRequestRefresh: (account: AccountParams, options?: {
109
- status?: "OPEN" | "CLOSED";
110
- repositoryName?: string;
111
- }) => Stream.Stream<PullRequestRefreshItem, AwsClientError, AwsClientConfig | HttpClient.HttpClient>;
113
+ export declare const fetchMergeStatus: (repoName: string, target?: {
114
+ destinationCommit?: string;
115
+ sourceCommit?: string;
116
+ }) => Effect.Effect<boolean, codecommit.GetMergeConflictsError, AwsClientConfig | Credentials.Credentials | HttpClient.HttpClient>;
117
+ export declare const fetchRepoAccountId: (repoName: string) => Effect.Effect<string | undefined, never, AwsStreamEnv>;
112
118
  /**
113
- * Stream every pull request of one account. A pull request whose approval rules cannot be evaluated
114
- * fails the stream, because a listing without its approval state would misreport it as pending.
119
+ * Stream every pull request of one account. A pull request whose approval rules cannot be evaluated is
120
+ * still listed, with `approvalUnknown` set. Any other failure (listing, reading, decoding) fails the
121
+ * stream with an `AwsApiError`.
115
122
  */
116
123
  export declare const getPullRequests: (account: AccountParams, options?: {
117
124
  status?: "OPEN" | "CLOSED";
@@ -1 +1 @@
1
- {"version":3,"file":"getPullRequests.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPullRequests.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequests.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,16 @@ import * as DistilledRegion from "@distilled.cloud/aws/Region";
4
4
  import { Data, Effect, Predicate, Schema, SchemaGetter, Stream } from "effect";
5
5
  import { HttpClient } from "effect/http";
6
6
  import { AwsClientConfig } from "../AwsClientConfig.js";
7
- import { Account, ApprovalRule, codecommitConsoleUrl, normalizeAccountId, PullRequest } from "../Domain.js";
7
+ import { isCredentialInvalidCause } from "../AwsCredentialErrors.js";
8
+ import { Account, ApprovalRule, ApprovalUnknownReason, codecommitConsoleUrl, normalizeAccountId, PullRequest } from "../Domain.js";
8
9
  import { parseRuleContent } from "./approvalRuleContent.js";
9
- import { acquireCredentials, makeApiError, normalizeAuthor, throttleRetry } from "./internal.js";
10
+ import { acquireCredentials, isThrottlingError, makeApiError, normalizeAuthor, throttleRetry } from "./internal.js";
10
11
  const listPullRequestsPages = (input) => codecommit.listPullRequests.pages(input);
11
12
  // ---------------------------------------------------------------------------
12
13
  // Sub-helpers
13
14
  // ---------------------------------------------------------------------------
14
- class MissingPullRequestResponse extends Data.TaggedError("MissingPullRequestResponse") {
15
+ /** CodeCommit answered GetPullRequest without a pull request: nothing was read, so nothing can be reported about it. */
16
+ export class MissingPullRequestResponse extends Data.TaggedError("MissingPullRequestResponse") {
15
17
  }
16
18
  const decodeAccount = Schema.decodeSync(Account);
17
19
  const decodeApprovalRule = Schema.decodeSync(ApprovalRule);
@@ -50,6 +52,28 @@ export const fetchApprovalEvaluation = (pullRequestId, revisionId) => throttleRe
50
52
  isApproved: r.evaluation?.approved ?? false,
51
53
  satisfiedNames: new Set(r.evaluation?.approvalRulesSatisfied ?? [])
52
54
  })), Effect.mapError((cause) => new ApprovalEvaluationError({ pullRequestId, revisionId, cause })));
55
+ /** Provider tags that mean the caller may not evaluate approval rules. */
56
+ const notPermittedTags = new Set(["AccessDeniedException", "AccessDenied", "NotAuthorized"]);
57
+ const tagOf = (cause, key) => Predicate.hasProperty(cause, key) && Predicate.isString(cause[key]) ? cause[key] : "";
58
+ /** Why an evaluation failed, decided from the provider error's type, never its message text. */
59
+ export const approvalUnknownReasonOf = (error) => isThrottlingError(error.cause)
60
+ ? ApprovalUnknownReason.cases.Throttled.make({})
61
+ : notPermittedTags.has(tagOf(error.cause, "_tag")) ||
62
+ (tagOf(error.cause, "_tag") === "UnknownAwsError" && notPermittedTags.has(tagOf(error.cause, "errorTag")))
63
+ ? ApprovalUnknownReason.cases.NotPermitted.make({})
64
+ : ApprovalUnknownReason.cases.ProviderFailed.make({});
65
+ /**
66
+ * Evaluate a revision's approval rules without failing: a failed evaluation leaves approval unknown,
67
+ * with no satisfied rules, and logs the provider's message.
68
+ */
69
+ export const evaluateApproval = (pullRequestId, revisionId) => fetchApprovalEvaluation(pullRequestId, revisionId).pipe(Effect.map((evaluation) => ({ ...evaluation, approvalUnknown: undefined })),
70
+ // Credentials that stopped working are not an unknown approval: the failure stays typed, so the
71
+ // refresh marks the account signed out rather than listing it as signed in.
72
+ Effect.catchIf((error) => !isCredentialInvalidCause(error.cause), (error) => Effect.logWarning(error.message).pipe(Effect.as({
73
+ isApproved: false,
74
+ satisfiedNames: new Set(),
75
+ approvalUnknown: approvalUnknownReasonOf(error)
76
+ }))));
53
77
  /**
54
78
  * Build ApprovalRule data from getPullRequest's raw rules + evaluation satisfaction state.
55
79
  * Filters out rules with empty names (phantom rules from missing AWS data).
@@ -71,7 +95,7 @@ const fetchPRDetails = (id, repoName) => Effect.gen(function* () {
71
95
  return yield* new MissingPullRequestResponse({ pullRequestId: id });
72
96
  const revisionId = pr.revisionId ?? "";
73
97
  const [evaluation, isMergeable, approvers] = yield* Effect.all([
74
- fetchApprovalEvaluation(id, revisionId),
98
+ evaluateApproval(id, revisionId),
75
99
  fetchMergeStatus(repoName, pr.pullRequestTargets?.[0]),
76
100
  fetchApprovers(id, revisionId)
77
101
  ]);
@@ -80,6 +104,7 @@ const fetchPRDetails = (id, repoName) => Effect.gen(function* () {
80
104
  ...pr,
81
105
  repoName,
82
106
  isApproved: evaluation.isApproved,
107
+ approvalUnknown: evaluation.approvalUnknown,
83
108
  isMergeable,
84
109
  approvers: approvers.names,
85
110
  approverArns: approvers.arns,
@@ -100,7 +125,7 @@ export const fetchApprovers = (pullRequestId, revisionId) => throttleRetry(codec
100
125
  /**
101
126
  * Check PR merge status.
102
127
  */
103
- const fetchMergeStatus = (repoName, target) => {
128
+ export const fetchMergeStatus = (repoName, target) => {
104
129
  if (target === undefined)
105
130
  return Effect.succeed(true);
106
131
  return throttleRetry(codecommit.getMergeConflicts({
@@ -128,6 +153,7 @@ const RawPullRequest = Schema.Struct({
128
153
  }))),
129
154
  repoName: Schema.String,
130
155
  isApproved: Schema.Boolean,
156
+ approvalUnknown: Schema.optional(ApprovalUnknownReason),
131
157
  isMergeable: Schema.Boolean,
132
158
  approvers: Schema.Array(Schema.String),
133
159
  approverArns: Schema.Array(Schema.String).pipe(Schema.withDecodingDefaultTypeKey(Effect.succeed([]))),
@@ -161,6 +187,7 @@ const RawToPullRequest = RawPullRequest.pipe(Schema.decodeTo(PullRequest, {
161
187
  destinationBranch,
162
188
  isMergeable: raw.isMergeable,
163
189
  isApproved: raw.isApproved,
190
+ ...(raw.approvalUnknown !== undefined && { approvalUnknown: raw.approvalUnknown }),
164
191
  approvedBy: raw.approvers,
165
192
  approvedByArns: raw.approverArns,
166
193
  commentedBy: [],
@@ -181,6 +208,7 @@ const RawToPullRequest = RawPullRequest.pipe(Schema.decodeTo(PullRequest, {
181
208
  }],
182
209
  repoName: pr.repositoryName,
183
210
  isApproved: pr.isApproved,
211
+ approvalUnknown: pr.approvalUnknown,
184
212
  isMergeable: pr.isMergeable,
185
213
  approvers: pr.approvedBy ?? [],
186
214
  approverArns: pr.approvedByArns ?? [],
@@ -198,11 +226,15 @@ const decodePullRequest = (raw) => Schema.decodeUnknownEffect(RawToPullRequest)(
198
226
  const listAllRepositories = () => codecommit.listRepositories.pages({}).pipe(Stream.flatMap((page) => Stream.fromIterable(page.repositories ?? [])), Stream.map((repo) => repo.repositoryName ?? ""));
199
227
  export const fetchRepoAccountId = (repoName) => codecommit.getRepository({ repositoryName: repoName }).pipe(Effect.map((r) => normalizeAccountId(r.repositoryMetadata?.accountId)), Effect.tapError((e) => Effect.logWarning("fetchRepoAccountId failed", e)), Effect.catch(() => Effect.void.pipe(Effect.as(undefined))));
200
228
  const listPullRequestIds = (repoName, status) => listPullRequestsPages({ repositoryName: repoName, pullRequestStatus: status }).pipe(Stream.flatMap((page) => Stream.fromIterable(page.pullRequestIds ?? [])), Stream.map((id) => ({ id, repoName })));
229
+ // ---------------------------------------------------------------------------
230
+ // Main
231
+ // ---------------------------------------------------------------------------
201
232
  /**
202
- * Stream every pull request of one account, isolating approval-evaluation failures per pull request.
203
- * Any other failure (listing, reading, decoding) still fails the stream with an `AwsApiError`.
233
+ * Stream every pull request of one account. A pull request whose approval rules cannot be evaluated is
234
+ * still listed, with `approvalUnknown` set. Any other failure (listing, reading, decoding) fails the
235
+ * stream with an `AwsApiError`.
204
236
  */
205
- export const getPullRequestRefresh = (account, options) => {
237
+ export const getPullRequests = (account, options) => {
206
238
  const pullRequestsEffect = Effect.gen(function* () {
207
239
  const config = yield* AwsClientConfig;
208
240
  const httpClient = yield* HttpClient.HttpClient;
@@ -219,33 +251,16 @@ export const getPullRequestRefresh = (account, options) => {
219
251
  const repositories = options?.repositoryName === undefined
220
252
  ? listAllRepositories()
221
253
  : Stream.make(options.repositoryName);
222
- // The approval-evaluation failure becomes a value inside the retried effect: fetchApprovalEvaluation
223
- // has already spent its own retries, and its message can still read like throttling.
224
- const read = (id, repoName) => throttleRetry(fetchPRDetails(id, repoName).pipe(Effect.map((pr) => ({ _tag: "Read", pr })), Effect.catchTag("ApprovalEvaluationError", (error) => Effect.succeed({
225
- _tag: "EvaluationFailed",
226
- pullRequestId: id,
227
- repositoryName: repoName,
228
- error
229
- }))));
230
- const stream = repositories.pipe(Stream.flatMap((repoName) => listPullRequestIds(repoName, status), { concurrency: 2 }), Stream.mapEffect(({ id, repoName }) => read(id, repoName), { concurrency: 3 }),
254
+ const stream = repositories.pipe(Stream.flatMap((repoName) => listPullRequestIds(repoName, status), { concurrency: 2 }), Stream.mapEffect(({ id, repoName }) => throttleRetry(fetchPRDetails(id, repoName)), { concurrency: 3 }),
231
255
  // Serial, as before: one GetRepository per repository, cached before the next pull request asks.
232
- Stream.mapEffect((item) => item._tag !== "Read"
233
- ? Effect.succeed(item)
234
- : getRepoAccount(item.pr.repoName).pipe(Effect.flatMap((repoAcct) => decodePullRequest({
235
- ...item.pr,
236
- accountProfile: account.profile,
237
- accountRegion: account.region,
238
- repoAccountId: repoAcct
239
- })), Effect.map((pullRequest) => ({ _tag: "Fetched", pullRequest })))), Stream.mapError((cause) => makeApiError("getPullRequests", account.profile, account.region, cause)));
256
+ Stream.mapEffect((pr) => getRepoAccount(pr.repoName).pipe(Effect.flatMap((repoAcct) => decodePullRequest({
257
+ ...pr,
258
+ accountProfile: account.profile,
259
+ accountRegion: account.region,
260
+ repoAccountId: repoAcct
261
+ })))), Stream.mapError((cause) => makeApiError("getPullRequests", account.profile, account.region, cause)));
240
262
  return stream.pipe(Stream.provide(DistilledCredentials.fromCredentials(credentials, account.region)), Stream.provideService(HttpClient.HttpClient, httpClient), Stream.provideService(DistilledRegion.Region, Effect.succeed(account.region)), Stream.timeout(config.streamTimeout));
241
263
  });
242
264
  return Stream.unwrap(pullRequestsEffect);
243
265
  };
244
- /**
245
- * Stream every pull request of one account. A pull request whose approval rules cannot be evaluated
246
- * fails the stream, because a listing without its approval state would misreport it as pending.
247
- */
248
- export const getPullRequests = (account, options) => getPullRequestRefresh(account, options).pipe(Stream.mapEffect((item) => item._tag === "Fetched"
249
- ? Effect.succeed(item.pullRequest)
250
- : Effect.fail(makeApiError("getPullRequests", account.profile, account.region, item.error))));
251
266
  //# sourceMappingURL=getPullRequests.js.map