@knpkv/codecommit-core 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AwsClient/AwsClientGated.d.ts +3 -0
- package/dist/AwsClient/AwsClientGated.d.ts.map +1 -1
- package/dist/AwsClient/AwsClientGated.js +7 -1
- package/dist/AwsClient/AwsClientGated.js.map +1 -1
- package/dist/AwsClient/createApprovalRule.d.ts +4 -0
- package/dist/AwsClient/createApprovalRule.d.ts.map +1 -0
- package/dist/AwsClient/createApprovalRule.js +17 -0
- package/dist/AwsClient/createApprovalRule.js.map +1 -0
- package/dist/AwsClient/deleteApprovalRule.d.ts +4 -0
- package/dist/AwsClient/deleteApprovalRule.d.ts.map +1 -0
- package/dist/AwsClient/deleteApprovalRule.js +16 -0
- package/dist/AwsClient/deleteApprovalRule.js.map +1 -0
- package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
- package/dist/AwsClient/getPullRequest.js +34 -7
- package/dist/AwsClient/getPullRequest.js.map +1 -1
- package/dist/AwsClient/getPullRequests.d.ts +81 -1
- package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
- package/dist/AwsClient/getPullRequests.js +123 -17
- package/dist/AwsClient/getPullRequests.js.map +1 -1
- package/dist/AwsClient/index.d.ts +13 -1
- package/dist/AwsClient/index.d.ts.map +1 -1
- package/dist/AwsClient/index.js +16 -1
- package/dist/AwsClient/index.js.map +1 -1
- package/dist/AwsClient/internal.d.ts +63 -1
- package/dist/AwsClient/internal.d.ts.map +1 -1
- package/dist/AwsClient/internal.js +37 -3
- package/dist/AwsClient/internal.js.map +1 -1
- package/dist/AwsClient/updateApprovalRule.d.ts +4 -0
- package/dist/AwsClient/updateApprovalRule.d.ts.map +1 -0
- package/dist/AwsClient/updateApprovalRule.js +17 -0
- package/dist/AwsClient/updateApprovalRule.js.map +1 -0
- package/dist/CacheService/Database.d.ts +4 -0
- package/dist/CacheService/Database.d.ts.map +1 -1
- package/dist/CacheService/Database.js +11 -1
- package/dist/CacheService/Database.js.map +1 -1
- package/dist/CacheService/diff.d.ts +17 -1
- package/dist/CacheService/diff.d.ts.map +1 -1
- package/dist/CacheService/diff.js +34 -0
- package/dist/CacheService/diff.js.map +1 -1
- package/dist/CacheService/index.d.ts +5 -1
- package/dist/CacheService/index.d.ts.map +1 -1
- package/dist/CacheService/index.js +5 -1
- package/dist/CacheService/index.js.map +1 -1
- package/dist/CacheService/migrations/0013_approval_rules.d.ts +5 -0
- package/dist/CacheService/migrations/0013_approval_rules.d.ts.map +1 -0
- package/dist/CacheService/migrations/0013_approval_rules.js +4 -0
- package/dist/CacheService/migrations/0013_approval_rules.js.map +1 -0
- package/dist/CacheService/migrations/0014_approved_by_arns.d.ts +5 -0
- package/dist/CacheService/migrations/0014_approved_by_arns.d.ts.map +1 -0
- package/dist/CacheService/migrations/0014_approved_by_arns.js +4 -0
- package/dist/CacheService/migrations/0014_approved_by_arns.js.map +1 -0
- package/dist/CacheService/migrations/0015_repo_account_id.d.ts +5 -0
- package/dist/CacheService/migrations/0015_repo_account_id.d.ts.map +1 -0
- package/dist/CacheService/migrations/0015_repo_account_id.js +4 -0
- package/dist/CacheService/migrations/0015_repo_account_id.js.map +1 -0
- package/dist/CacheService/repos/NotificationRepo.d.ts.map +1 -1
- package/dist/CacheService/repos/NotificationRepo.js +2 -2
- package/dist/CacheService/repos/NotificationRepo.js.map +1 -1
- package/dist/CacheService/repos/PullRequestRepo/index.d.ts +10 -0
- package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -1
- package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +15 -0
- package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -1
- package/dist/CacheService/repos/PullRequestRepo/internal.js +30 -4
- package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -1
- package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +12 -2
- package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -1
- package/dist/CacheService/repos/PullRequestRepo/mutations.js +21 -5
- package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -1
- package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +9 -0
- package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -1
- package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -1
- package/dist/CacheService/repos/StatsRepo/internal.js +5 -4
- package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -1
- package/dist/Domain.d.ts +106 -7
- package/dist/Domain.d.ts.map +1 -1
- package/dist/Domain.js +66 -6
- package/dist/Domain.js.map +1 -1
- package/dist/PRService/internal.d.ts +23 -0
- package/dist/PRService/internal.d.ts.map +1 -1
- package/dist/PRService/internal.js +20 -5
- package/dist/PRService/internal.js.map +1 -1
- package/dist/PRService/refreshFetch.d.ts +5 -1
- package/dist/PRService/refreshFetch.d.ts.map +1 -1
- package/dist/PRService/refreshFetch.js +15 -4
- package/dist/PRService/refreshFetch.js.map +1 -1
- package/dist/PRService/refreshSinglePR.d.ts +7 -0
- package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
- package/dist/PRService/refreshSinglePR.js +16 -3
- package/dist/PRService/refreshSinglePR.js.map +1 -1
- package/dist/PermissionService/AuditLog.d.ts +1 -0
- package/dist/PermissionService/AuditLog.d.ts.map +1 -1
- package/dist/PermissionService/AuditLog.js +34 -20
- package/dist/PermissionService/AuditLog.js.map +1 -1
- package/dist/PermissionService/index.js +1 -1
- package/dist/PermissionService/index.js.map +1 -1
- package/dist/PermissionService/operations.d.ts +14 -1
- package/dist/PermissionService/operations.d.ts.map +1 -1
- package/dist/PermissionService/operations.js +15 -2
- package/dist/PermissionService/operations.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
* PermissionDeniedError → AwsApiError at the boundary for type transparency.
|
|
13
13
|
* The actual PermissionDeniedError is preserved as the AwsApiError's `cause`.
|
|
14
14
|
*
|
|
15
|
+
* All operations — reads, writes, and approval rule CRUD — are gated with
|
|
16
|
+
* the appropriate category for UI badge color and prompt behavior.
|
|
17
|
+
*
|
|
15
18
|
* @module
|
|
16
19
|
*/
|
|
17
20
|
import { Context, Layer } from "effect";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwsClientGated.d.ts","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AwsClientGated.d.ts","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,OAAO,EAAU,KAAK,EAAiB,MAAM,QAAQ,CAAA;AAG9D,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,mBAGjC;CAAG;AAiBN,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAC1C,SAAS,EACT,KAAK,EACL,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAqLnE,CAAA"}
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
* PermissionDeniedError → AwsApiError at the boundary for type transparency.
|
|
13
13
|
* The actual PermissionDeniedError is preserved as the AwsApiError's `cause`.
|
|
14
14
|
*
|
|
15
|
+
* All operations — reads, writes, and approval rule CRUD — are gated with
|
|
16
|
+
* the appropriate category for UI badge color and prompt behavior.
|
|
17
|
+
*
|
|
15
18
|
* @module
|
|
16
19
|
*/
|
|
17
20
|
import { Context, Effect, Layer, Match, Stream } from "effect";
|
|
@@ -99,7 +102,10 @@ export const AwsClientGatedLive = Layer.effect(AwsClient, Effect.gen(function* (
|
|
|
99
102
|
updatePullRequestTitle: gated("updatePullRequestTitle", (p) => `Edit title of PR #${p.pullRequestId}`, nested, inner.updatePullRequestTitle),
|
|
100
103
|
updatePullRequestDescription: gated("updatePullRequestDescription", (p) => `Edit desc of PR #${p.pullRequestId}`, nested, inner.updatePullRequestDescription),
|
|
101
104
|
getPullRequest: gated("getPullRequest", (p) => `Fetch PR #${p.pullRequestId}`, nested, inner.getPullRequest),
|
|
102
|
-
getDifferences: gated("getDifferences", (p) => `Diff for ${p.repositoryName}`, nested, inner.getDifferences)
|
|
105
|
+
getDifferences: gated("getDifferences", (p) => `Diff for ${p.repositoryName}`, nested, inner.getDifferences),
|
|
106
|
+
createApprovalRule: gated("createApprovalRule", (p) => `Create rule "${p.approvalRuleName}" on PR #${p.pullRequestId}`, nested, inner.createApprovalRule),
|
|
107
|
+
updateApprovalRule: gated("updateApprovalRule", (p) => `Update rule "${p.approvalRuleName}" on PR #${p.pullRequestId}`, nested, inner.updateApprovalRule),
|
|
108
|
+
deleteApprovalRule: gated("deleteApprovalRule", (p) => `Delete rule "${p.approvalRuleName}" on PR #${p.pullRequestId}`, nested, inner.deleteApprovalRule)
|
|
103
109
|
};
|
|
104
110
|
}));
|
|
105
111
|
//# sourceMappingURL=AwsClientGated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwsClientGated.js","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AwsClientGated.js","sourceRoot":"","sources":["../../src/AwsClient/AwsClientGated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { type CreateApprovalRuleParams } from "./internal.js";
|
|
3
|
+
export declare const createApprovalRule: (params: CreateApprovalRuleParams) => Effect.Effect<void, import("./internal.js").AwsCredentialError | import("./internal.js").AwsApiError, import("../AwsClientConfig.ts").AwsClientConfig | import("@effect/platform/HttpClient").HttpClient>;
|
|
4
|
+
//# sourceMappingURL=createApprovalRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createApprovalRule.d.ts","sourceRoot":"","sources":["../../src/AwsClient/createApprovalRule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,KAAK,wBAAwB,EAAgC,MAAM,eAAe,CAAA;AAY3F,eAAO,MAAM,kBAAkB,GAAI,QAAQ,wBAAwB,8MACmB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an approval rule on a pull request via
|
|
3
|
+
* `distilled-aws/codecommit.createPullRequestApprovalRule`, wrapped with
|
|
4
|
+
* {@link withAwsContext} for credential acquisition and retry.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
import * as codecommit from "distilled-aws/codecommit";
|
|
9
|
+
import { Effect } from "effect";
|
|
10
|
+
import { makeApiError, withAwsContext } from "./internal.js";
|
|
11
|
+
const callCreateApprovalRule = (params) => codecommit.createPullRequestApprovalRule({
|
|
12
|
+
pullRequestId: params.pullRequestId,
|
|
13
|
+
approvalRuleName: params.approvalRuleName,
|
|
14
|
+
approvalRuleContent: params.approvalRuleContent
|
|
15
|
+
}).pipe(Effect.asVoid, Effect.mapError((cause) => makeApiError("createApprovalRule", params.account.profile, params.account.region, cause)));
|
|
16
|
+
export const createApprovalRule = (params) => withAwsContext("createApprovalRule", params.account, callCreateApprovalRule(params));
|
|
17
|
+
//# sourceMappingURL=createApprovalRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createApprovalRule.js","sourceRoot":"","sources":["../../src/AwsClient/createApprovalRule.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAiC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE3F,MAAM,sBAAsB,GAAG,CAAC,MAAgC,EAAE,EAAE,CAClE,UAAU,CAAC,6BAA6B,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;IACzC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;CAChD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACrH,CAAA;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAgC,EAAE,EAAE,CACrE,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { type DeleteApprovalRuleParams } from "./internal.js";
|
|
3
|
+
export declare const deleteApprovalRule: (params: DeleteApprovalRuleParams) => Effect.Effect<void, import("./internal.js").AwsCredentialError | import("./internal.js").AwsApiError, import("../AwsClientConfig.ts").AwsClientConfig | import("@effect/platform/HttpClient").HttpClient>;
|
|
4
|
+
//# sourceMappingURL=deleteApprovalRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteApprovalRule.d.ts","sourceRoot":"","sources":["../../src/AwsClient/deleteApprovalRule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,KAAK,wBAAwB,EAAgC,MAAM,eAAe,CAAA;AAW3F,eAAO,MAAM,kBAAkB,GAAI,QAAQ,wBAAwB,8MACmB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deletes an approval rule from a pull request via
|
|
3
|
+
* `distilled-aws/codecommit.deletePullRequestApprovalRule`, wrapped with
|
|
4
|
+
* {@link withAwsContext} for credential acquisition and retry.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
import * as codecommit from "distilled-aws/codecommit";
|
|
9
|
+
import { Effect } from "effect";
|
|
10
|
+
import { makeApiError, withAwsContext } from "./internal.js";
|
|
11
|
+
const callDeleteApprovalRule = (params) => codecommit.deletePullRequestApprovalRule({
|
|
12
|
+
pullRequestId: params.pullRequestId,
|
|
13
|
+
approvalRuleName: params.approvalRuleName
|
|
14
|
+
}).pipe(Effect.asVoid, Effect.mapError((cause) => makeApiError("deleteApprovalRule", params.account.profile, params.account.region, cause)));
|
|
15
|
+
export const deleteApprovalRule = (params) => withAwsContext("deleteApprovalRule", params.account, callDeleteApprovalRule(params));
|
|
16
|
+
//# sourceMappingURL=deleteApprovalRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteApprovalRule.js","sourceRoot":"","sources":["../../src/AwsClient/deleteApprovalRule.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAiC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE3F,MAAM,sBAAsB,GAAG,CAAC,MAAgC,EAAE,EAAE,CAClE,UAAU,CAAC,6BAA6B,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;CAC1C,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACrH,CAAA;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAgC,EAAE,EAAE,CACrE,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPullRequest.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPullRequest.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAEvC,OAAO,EACL,KAAK,oBAAoB,EAGzB,iBAAiB,EAElB,MAAM,eAAe,CAAA;AA4FtB,eAAO,MAAM,cAAc,GAAI,QAAQ,oBAAoB,2NACmB,CAAA"}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Fetches a single PR's full detail — metadata, approvers, approval rules,
|
|
3
|
+
* and repo account ID in parallel. Returns a {@link PullRequestDetail}
|
|
4
|
+
* transport object.
|
|
5
|
+
*
|
|
6
|
+
* **Mental model**
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
* codecommit.getPullRequest ─┬─► decodePullRequestDetail
|
|
10
|
+
* ├─► fetchApprovers → { names, arns }
|
|
11
|
+
* ├─► fetchApprovalEvaluation → satisfiedNames
|
|
12
|
+
* └─► fetchRepoAccountId → repo account ID
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* - Shared: {@link buildApprovalRules}, {@link fetchApprovalEvaluation},
|
|
16
|
+
* {@link fetchRepoAccountId} from getPullRequests.ts
|
|
17
|
+
* - Runs inside {@link withAwsContext} (Credentials + Region + AwsClientConfig)
|
|
18
|
+
*
|
|
19
|
+
* **Gotchas**
|
|
20
|
+
*
|
|
21
|
+
* - `PullRequestDetail.approvalRules` uses inline struct, not Schema.Class —
|
|
22
|
+
* class constructors reject plain objects from `buildApprovalRules`
|
|
23
|
+
*
|
|
2
24
|
* @internal
|
|
3
25
|
*/
|
|
4
26
|
import * as codecommit from "distilled-aws/codecommit";
|
|
5
27
|
import { Effect, Schema } from "effect";
|
|
28
|
+
import { buildApprovalRules, fetchApprovalEvaluation, fetchApprovers, fetchRepoAccountId } from "./getPullRequests.js";
|
|
6
29
|
import { makeApiError, normalizeAuthor, PullRequestDetail, withAwsContext } from "./internal.js";
|
|
7
30
|
const EpochFallback = new Date(0);
|
|
8
31
|
// Bidirectional Schema: raw AWS GetPullRequest response ↔ PullRequestDetail
|
|
@@ -63,19 +86,23 @@ const RawToPullRequestDetail = Schema.transform(RawGetPullRequestResponse, PullR
|
|
|
63
86
|
});
|
|
64
87
|
// Effectful decode — ParseError in error channel instead of thrown defect
|
|
65
88
|
const decodePullRequestDetail = (raw) => Schema.decodeUnknown(RawToPullRequestDetail)(raw);
|
|
66
|
-
const fetchApprovers = (pullRequestId, revisionId) => codecommit.getPullRequestApprovalStates({ pullRequestId, revisionId }).pipe(Effect.map((r) => (r.approvals ?? [])
|
|
67
|
-
.filter((a) => a.approvalState === "APPROVE" && a.userArn)
|
|
68
|
-
.map((a) => normalizeAuthor(a.userArn))), Effect.catchAll(() => Effect.succeed([])));
|
|
69
89
|
const callGetPullRequest = (params) => Effect.gen(function* () {
|
|
70
90
|
const resp = yield* codecommit.getPullRequest({ pullRequestId: params.pullRequestId });
|
|
71
91
|
const revisionId = resp.pullRequest?.revisionId ?? "";
|
|
72
|
-
const
|
|
92
|
+
const repoName = resp.pullRequest?.pullRequestTargets?.[0]?.repositoryName ?? "";
|
|
93
|
+
const [detail, approvers, evaluation, repoAccountId] = yield* Effect.all([
|
|
73
94
|
decodePullRequestDetail(resp),
|
|
74
|
-
fetchApprovers(params.pullRequestId, revisionId)
|
|
75
|
-
|
|
95
|
+
fetchApprovers(params.pullRequestId, revisionId),
|
|
96
|
+
fetchApprovalEvaluation(params.pullRequestId, revisionId),
|
|
97
|
+
fetchRepoAccountId(repoName)
|
|
98
|
+
], { concurrency: 4 });
|
|
99
|
+
const approvalRules = buildApprovalRules(resp.pullRequest?.approvalRules ?? [], evaluation.satisfiedNames);
|
|
76
100
|
return new PullRequestDetail({
|
|
77
101
|
...detail,
|
|
78
|
-
approvedBy: approvers
|
|
102
|
+
approvedBy: approvers.names,
|
|
103
|
+
approvedByArns: approvers.arns,
|
|
104
|
+
approvalRules,
|
|
105
|
+
repoAccountId: repoAccountId || undefined
|
|
79
106
|
});
|
|
80
107
|
}).pipe(Effect.mapError((cause) => makeApiError("getPullRequest", params.account.profile, params.account.region, cause)));
|
|
81
108
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"getPullRequest.js","sourceRoot":"","sources":["../../src/AwsClient/getPullRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,92 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Bulk PR fetch — streams all open PRs across repos for one account.
|
|
3
|
+
*
|
|
4
|
+
* Lists all repositories, discovers PR IDs per repo, then fetches full
|
|
5
|
+
* details (approval rules, evaluation state, merge conflicts, approvers,
|
|
6
|
+
* repo account ID) per PR and decodes into {@link PullRequest} domain objects.
|
|
7
|
+
*
|
|
8
|
+
* **Mental model**
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* listRepos → listPRIds → fetchPRDetails → getRepoAccount → decodePullRequest
|
|
12
|
+
* │ │
|
|
13
|
+
* evaluateApprovalRules getRepository
|
|
14
|
+
* getPullRequest (cached per repo)
|
|
15
|
+
* getApprovalStates
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* - Two API responses merged per PR: `getPullRequest.approvalRules` (rule defs)
|
|
19
|
+
* + `evaluateApprovalRules` (satisfied names). Cross-ref via {@link buildApprovalRules}.
|
|
20
|
+
* - {@link parseRuleContent}: AWS JSON `{Version, Statements[{ApprovalPoolMembers}]}`
|
|
21
|
+
* → `poolMembers` (normalized) + `poolMemberArns` (raw ARNs).
|
|
22
|
+
* - {@link fetchRepoAccountId}: `getRepository` once per repo (cached). Needed for
|
|
23
|
+
* cross-account SSO where `getCallerIdentity` ≠ CodeCommit account.
|
|
24
|
+
*
|
|
25
|
+
* **Gotchas**
|
|
26
|
+
*
|
|
27
|
+
* - `evaluateApprovalRules.approvalRulesSatisfied` is `string[]` of rule NAMES, not full objects
|
|
28
|
+
* - `parseRuleContent` falls back silently on malformed JSON (warns if content truthy)
|
|
29
|
+
* - `fetchApprovalEvaluation` uses `throttleRetry` — needs `AwsClientConfig` in context
|
|
30
|
+
*
|
|
2
31
|
* @internal
|
|
3
32
|
*/
|
|
4
33
|
import { HttpClient } from "@effect/platform";
|
|
5
|
-
import {
|
|
34
|
+
import { Credentials, Region } from "distilled-aws";
|
|
35
|
+
import { Effect, Stream } from "effect";
|
|
6
36
|
import { AwsClientConfig } from "../AwsClientConfig.js";
|
|
7
37
|
import { PullRequest } from "../Domain.js";
|
|
8
38
|
import type { AwsClientError } from "../Errors.js";
|
|
9
39
|
import { type AccountParams } from "./internal.js";
|
|
40
|
+
/**
|
|
41
|
+
* Parse AWS approval rule content JSON into pool members + required count.
|
|
42
|
+
* Format: {"Version":"2018-11-08","Statements":[{"Type":"Approvers","NumberOfApprovalsNeeded":N,"ApprovalPoolMembers":["arn:..."]}]}
|
|
43
|
+
*/
|
|
44
|
+
export declare const parseRuleContent: (content?: string) => {
|
|
45
|
+
requiredApprovals: number;
|
|
46
|
+
poolMembers: Array<string>;
|
|
47
|
+
poolMemberArns: Array<string>;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Evaluate which approval rules are satisfied/not, returning just the boolean + satisfied rule names.
|
|
51
|
+
*/
|
|
52
|
+
export declare const fetchApprovalEvaluation: (pullRequestId: string, revisionId: string) => Effect.Effect<{
|
|
53
|
+
isApproved: boolean;
|
|
54
|
+
satisfiedNames: Set<string>;
|
|
55
|
+
} | {
|
|
56
|
+
isApproved: boolean;
|
|
57
|
+
satisfiedNames: Set<string>;
|
|
58
|
+
}, never, AwsClientConfig | HttpClient.HttpClient | Region.Region | Credentials.Credentials>;
|
|
59
|
+
/** Plain data shape matching ApprovalRule — avoids Schema.Class branding. */
|
|
60
|
+
export interface ApprovalRuleData {
|
|
61
|
+
readonly ruleName: string;
|
|
62
|
+
readonly satisfied: boolean;
|
|
63
|
+
readonly requiredApprovals: number;
|
|
64
|
+
readonly poolMembers: Array<string>;
|
|
65
|
+
readonly poolMemberArns: Array<string>;
|
|
66
|
+
readonly fromTemplate?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build ApprovalRule data from getPullRequest's raw rules + evaluation satisfaction state.
|
|
70
|
+
* Filters out rules with empty names (phantom rules from missing AWS data).
|
|
71
|
+
*/
|
|
72
|
+
export declare const buildApprovalRules: (rawRules: ReadonlyArray<{
|
|
73
|
+
approvalRuleName?: string;
|
|
74
|
+
approvalRuleContent?: string;
|
|
75
|
+
originApprovalRuleTemplate?: {
|
|
76
|
+
approvalRuleTemplateName?: string;
|
|
77
|
+
};
|
|
78
|
+
}>, satisfiedNames: Set<string>) => Array<ApprovalRuleData>;
|
|
79
|
+
/**
|
|
80
|
+
* Fetch who approved a PR (ARN list of approvers with APPROVE state).
|
|
81
|
+
*/
|
|
82
|
+
export declare const fetchApprovers: (pullRequestId: string, revisionId: string) => Effect.Effect<{
|
|
83
|
+
names: string[];
|
|
84
|
+
arns: string[];
|
|
85
|
+
} | {
|
|
86
|
+
names: Array<string>;
|
|
87
|
+
arns: Array<string>;
|
|
88
|
+
}, never, AwsClientConfig | HttpClient.HttpClient | Region.Region | Credentials.Credentials>;
|
|
89
|
+
export declare const fetchRepoAccountId: (repoName: string) => Effect.Effect<string, never, HttpClient.HttpClient | Region.Region | Credentials.Credentials>;
|
|
10
90
|
export declare const getPullRequests: (account: AccountParams, options?: {
|
|
11
91
|
status?: "OPEN" | "CLOSED";
|
|
12
92
|
}) => Stream.Stream<PullRequest, AwsClientError, AwsClientConfig | HttpClient.HttpClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPullRequests.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequests.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"getPullRequests.d.ts","sourceRoot":"","sources":["../../src/AwsClient/getPullRequests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAQ,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAA0E,WAAW,EAAE,MAAM,cAAc,CAAA;AAClH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,KAAK,aAAa,EAAoE,MAAM,eAAe,CAAA;AAcpH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,KACf;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAgBxF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,eAAe,MAAM,EAAE,YAAY,MAAM;;;;;;4FAU9E,CAAA;AAEH,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,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;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,aAAa,CACrB;IACE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,0BAA0B,CAAC,EAAE;QAAE,wBAAwB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE,CACF,EACD,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAC1B,KAAK,CAAC,gBAAgB,CAUlB,CAAA;AA8BP;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,eAAe,MAAM,EAAE,YAAY,MAAM;;;;WAYhB,KAAK,CAAC,MAAM,CAAC;UAAc,KAAK,CAAC,MAAM,CAAC;4FAC7F,CAAA;AA2HH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,kGAKhD,CAAA;AAYH,eAAO,MAAM,eAAe,GAC1B,SAAS,aAAa,EACtB,UAAU;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,KACvC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,GAAG,UAAU,CAAC,UAAU,CA6ClF,CAAA"}
|
|
@@ -1,4 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Bulk PR fetch — streams all open PRs across repos for one account.
|
|
3
|
+
*
|
|
4
|
+
* Lists all repositories, discovers PR IDs per repo, then fetches full
|
|
5
|
+
* details (approval rules, evaluation state, merge conflicts, approvers,
|
|
6
|
+
* repo account ID) per PR and decodes into {@link PullRequest} domain objects.
|
|
7
|
+
*
|
|
8
|
+
* **Mental model**
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* listRepos → listPRIds → fetchPRDetails → getRepoAccount → decodePullRequest
|
|
12
|
+
* │ │
|
|
13
|
+
* evaluateApprovalRules getRepository
|
|
14
|
+
* getPullRequest (cached per repo)
|
|
15
|
+
* getApprovalStates
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* - Two API responses merged per PR: `getPullRequest.approvalRules` (rule defs)
|
|
19
|
+
* + `evaluateApprovalRules` (satisfied names). Cross-ref via {@link buildApprovalRules}.
|
|
20
|
+
* - {@link parseRuleContent}: AWS JSON `{Version, Statements[{ApprovalPoolMembers}]}`
|
|
21
|
+
* → `poolMembers` (normalized) + `poolMemberArns` (raw ARNs).
|
|
22
|
+
* - {@link fetchRepoAccountId}: `getRepository` once per repo (cached). Needed for
|
|
23
|
+
* cross-account SSO where `getCallerIdentity` ≠ CodeCommit account.
|
|
24
|
+
*
|
|
25
|
+
* **Gotchas**
|
|
26
|
+
*
|
|
27
|
+
* - `evaluateApprovalRules.approvalRulesSatisfied` is `string[]` of rule NAMES, not full objects
|
|
28
|
+
* - `parseRuleContent` falls back silently on malformed JSON (warns if content truthy)
|
|
29
|
+
* - `fetchApprovalEvaluation` uses `throttleRetry` — needs `AwsClientConfig` in context
|
|
30
|
+
*
|
|
2
31
|
* @internal
|
|
3
32
|
*/
|
|
4
33
|
import { HttpClient } from "@effect/platform";
|
|
@@ -6,7 +35,7 @@ import { Credentials, Region } from "distilled-aws";
|
|
|
6
35
|
import * as codecommit from "distilled-aws/codecommit";
|
|
7
36
|
import { Data, Effect, Schema, Stream } from "effect";
|
|
8
37
|
import { AwsClientConfig } from "../AwsClientConfig.js";
|
|
9
|
-
import { Account, AwsProfileName, AwsRegion, codecommitConsoleUrl, PullRequest } from "../Domain.js";
|
|
38
|
+
import { Account, ApprovalRule, AwsProfileName, AwsRegion, codecommitConsoleUrl, PullRequest } from "../Domain.js";
|
|
10
39
|
import { acquireCredentials, makeApiError, normalizeAuthor, throttleRetry } from "./internal.js";
|
|
11
40
|
// ---------------------------------------------------------------------------
|
|
12
41
|
// Sub-helpers
|
|
@@ -15,6 +44,50 @@ class MissingPullRequestResponse extends Data.TaggedError("MissingPullRequestRes
|
|
|
15
44
|
}
|
|
16
45
|
const decodeAccount = Schema.decodeSync(Account);
|
|
17
46
|
const EpochFallback = new Date(0);
|
|
47
|
+
/**
|
|
48
|
+
* Parse AWS approval rule content JSON into pool members + required count.
|
|
49
|
+
* Format: {"Version":"2018-11-08","Statements":[{"Type":"Approvers","NumberOfApprovalsNeeded":N,"ApprovalPoolMembers":["arn:..."]}]}
|
|
50
|
+
*/
|
|
51
|
+
export const parseRuleContent = (content) => {
|
|
52
|
+
try {
|
|
53
|
+
const parsed = JSON.parse(content ?? "{}");
|
|
54
|
+
// Only first statement parsed — AWS rules typically have one statement per rule
|
|
55
|
+
const stmt = parsed.Statements?.[0];
|
|
56
|
+
const rawArns = stmt?.ApprovalPoolMembers ?? [];
|
|
57
|
+
return {
|
|
58
|
+
requiredApprovals: stmt?.NumberOfApprovalsNeeded ?? 1,
|
|
59
|
+
poolMembers: rawArns.map(normalizeAuthor),
|
|
60
|
+
poolMemberArns: rawArns
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
// eslint-disable-next-line no-console
|
|
65
|
+
if (content)
|
|
66
|
+
console.warn("Failed to parse approval rule content:", content, e);
|
|
67
|
+
return { requiredApprovals: 1, poolMembers: [], poolMemberArns: [] };
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Evaluate which approval rules are satisfied/not, returning just the boolean + satisfied rule names.
|
|
72
|
+
*/
|
|
73
|
+
export const fetchApprovalEvaluation = (pullRequestId, revisionId) => throttleRetry(codecommit.evaluatePullRequestApprovalRules({ pullRequestId, revisionId })).pipe(Effect.map((r) => ({
|
|
74
|
+
isApproved: r.evaluation?.approved ?? false,
|
|
75
|
+
satisfiedNames: new Set(r.evaluation?.approvalRulesSatisfied ?? [])
|
|
76
|
+
})), Effect.tapError((e) => Effect.logWarning("fetchApprovalEvaluation failed", e)), Effect.catchAll(() => Effect.succeed({ isApproved: false, satisfiedNames: new Set() })));
|
|
77
|
+
/**
|
|
78
|
+
* Build ApprovalRule data from getPullRequest's raw rules + evaluation satisfaction state.
|
|
79
|
+
* Filters out rules with empty names (phantom rules from missing AWS data).
|
|
80
|
+
*/
|
|
81
|
+
export const buildApprovalRules = (rawRules, satisfiedNames) => rawRules
|
|
82
|
+
.filter((rule) => rule.approvalRuleName)
|
|
83
|
+
.map((rule) => ({
|
|
84
|
+
ruleName: rule.approvalRuleName ?? "",
|
|
85
|
+
satisfied: satisfiedNames.has(rule.approvalRuleName ?? ""),
|
|
86
|
+
...parseRuleContent(rule.approvalRuleContent),
|
|
87
|
+
...(rule.originApprovalRuleTemplate?.approvalRuleTemplateName
|
|
88
|
+
? { fromTemplate: rule.originApprovalRuleTemplate.approvalRuleTemplateName }
|
|
89
|
+
: {})
|
|
90
|
+
}));
|
|
18
91
|
/**
|
|
19
92
|
* Fetch approval + merge status for a single PR.
|
|
20
93
|
*/
|
|
@@ -24,23 +97,33 @@ const fetchPRDetails = (id, repoName) => Effect.gen(function* () {
|
|
|
24
97
|
if (!pr)
|
|
25
98
|
return yield* new MissingPullRequestResponse({ pullRequestId: id });
|
|
26
99
|
const revisionId = pr.revisionId ?? "";
|
|
27
|
-
const [
|
|
28
|
-
|
|
100
|
+
const [evaluation, isMergeable, approvers] = yield* Effect.all([
|
|
101
|
+
fetchApprovalEvaluation(id, revisionId),
|
|
29
102
|
fetchMergeStatus(repoName, pr.pullRequestTargets?.[0]),
|
|
30
103
|
fetchApprovers(id, revisionId)
|
|
31
104
|
]);
|
|
32
|
-
|
|
105
|
+
const approvalRules = buildApprovalRules(pr.approvalRules ?? [], evaluation.satisfiedNames);
|
|
106
|
+
return {
|
|
107
|
+
...pr,
|
|
108
|
+
repoName,
|
|
109
|
+
isApproved: evaluation.isApproved,
|
|
110
|
+
isMergeable,
|
|
111
|
+
approvers: approvers.names,
|
|
112
|
+
approverArns: approvers.arns,
|
|
113
|
+
approvalRules
|
|
114
|
+
};
|
|
33
115
|
});
|
|
34
|
-
/**
|
|
35
|
-
* Check PR approval status.
|
|
36
|
-
*/
|
|
37
|
-
const fetchApprovalStatus = (pullRequestId, revisionId) => throttleRetry(codecommit.evaluatePullRequestApprovalRules({ pullRequestId, revisionId })).pipe(Effect.map((r) => r.evaluation?.approved ?? false), Effect.catchAll(() => Effect.succeed(false)));
|
|
38
116
|
/**
|
|
39
117
|
* Fetch who approved a PR (ARN list of approvers with APPROVE state).
|
|
40
118
|
*/
|
|
41
|
-
const fetchApprovers = (pullRequestId, revisionId) => throttleRetry(codecommit.getPullRequestApprovalStates({ pullRequestId, revisionId })).pipe(Effect.map((r) =>
|
|
42
|
-
|
|
43
|
-
|
|
119
|
+
export const fetchApprovers = (pullRequestId, revisionId) => throttleRetry(codecommit.getPullRequestApprovalStates({ pullRequestId, revisionId })).pipe(Effect.map((r) => {
|
|
120
|
+
const approved = (r.approvals ?? [])
|
|
121
|
+
.filter((a) => a.approvalState === "APPROVE" && !!a.userArn);
|
|
122
|
+
return {
|
|
123
|
+
names: approved.map((a) => normalizeAuthor(a.userArn)),
|
|
124
|
+
arns: approved.map((a) => a.userArn)
|
|
125
|
+
};
|
|
126
|
+
}), Effect.catchAll(() => Effect.succeed({ names: [], arns: [] })));
|
|
44
127
|
/**
|
|
45
128
|
* Check PR merge status.
|
|
46
129
|
*/
|
|
@@ -74,8 +157,11 @@ const RawPullRequest = Schema.Struct({
|
|
|
74
157
|
isApproved: Schema.Boolean,
|
|
75
158
|
isMergeable: Schema.Boolean,
|
|
76
159
|
approvers: Schema.Array(Schema.String),
|
|
160
|
+
approverArns: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),
|
|
161
|
+
approvalRules: Schema.optionalWith(Schema.Array(ApprovalRule), { default: () => [] }),
|
|
77
162
|
accountProfile: AwsProfileName,
|
|
78
|
-
accountRegion: AwsRegion
|
|
163
|
+
accountRegion: AwsRegion,
|
|
164
|
+
repoAccountId: Schema.optional(Schema.String)
|
|
79
165
|
});
|
|
80
166
|
const RawToPullRequest = Schema.transform(RawPullRequest, PullRequest, {
|
|
81
167
|
strict: false,
|
|
@@ -93,14 +179,20 @@ const RawToPullRequest = Schema.transform(RawPullRequest, PullRequest, {
|
|
|
93
179
|
creationDate: raw.creationDate ?? EpochFallback,
|
|
94
180
|
lastModifiedDate: raw.lastActivityDate ?? EpochFallback,
|
|
95
181
|
link: codecommitConsoleUrl(raw.accountRegion, raw.repoName, raw.pullRequestId ?? ""),
|
|
96
|
-
account: decodeAccount({
|
|
182
|
+
account: decodeAccount({
|
|
183
|
+
profile: raw.accountProfile,
|
|
184
|
+
region: raw.accountRegion,
|
|
185
|
+
repoAccountId: raw.repoAccountId
|
|
186
|
+
}),
|
|
97
187
|
status: isMerged ? "MERGED" : raw.pullRequestStatus === "OPEN" ? "OPEN" : "CLOSED",
|
|
98
188
|
sourceBranch,
|
|
99
189
|
destinationBranch,
|
|
100
190
|
isMergeable: raw.isMergeable,
|
|
101
191
|
isApproved: raw.isApproved,
|
|
102
192
|
approvedBy: raw.approvers,
|
|
103
|
-
|
|
193
|
+
approvedByArns: raw.approverArns,
|
|
194
|
+
commentedBy: [],
|
|
195
|
+
approvalRules: raw.approvalRules
|
|
104
196
|
};
|
|
105
197
|
},
|
|
106
198
|
encode: (pr) => ({
|
|
@@ -119,16 +211,20 @@ const RawToPullRequest = Schema.transform(RawPullRequest, PullRequest, {
|
|
|
119
211
|
isApproved: pr.isApproved,
|
|
120
212
|
isMergeable: pr.isMergeable,
|
|
121
213
|
approvers: pr.approvedBy ?? [],
|
|
214
|
+
approverArns: pr.approvedByArns ?? [],
|
|
215
|
+
approvalRules: pr.approvalRules ?? [],
|
|
122
216
|
accountProfile: pr.account.profile,
|
|
123
|
-
accountRegion: pr.account.region
|
|
217
|
+
accountRegion: pr.account.region,
|
|
218
|
+
repoAccountId: pr.account.repoAccountId
|
|
124
219
|
})
|
|
125
220
|
});
|
|
126
221
|
// Effectful decode — ParseError in error channel instead of thrown defect
|
|
127
|
-
const decodePullRequest = (raw) => Schema.decodeUnknown(RawToPullRequest)(raw)
|
|
222
|
+
const decodePullRequest = (raw) => Schema.decodeUnknown(RawToPullRequest)(raw);
|
|
128
223
|
// ---------------------------------------------------------------------------
|
|
129
224
|
// Stream builders
|
|
130
225
|
// ---------------------------------------------------------------------------
|
|
131
226
|
const listAllRepositories = () => codecommit.listRepositories.pages({}).pipe(Stream.flatMap((page) => Stream.fromIterable(page.repositories ?? [])), Stream.map((repo) => repo.repositoryName ?? ""));
|
|
227
|
+
export const fetchRepoAccountId = (repoName) => codecommit.getRepository({ repositoryName: repoName }).pipe(Effect.map((r) => r.repositoryMetadata?.accountId ?? ""), Effect.tapError((e) => Effect.logWarning("fetchRepoAccountId failed", e)), Effect.catchAll(() => Effect.succeed("")));
|
|
132
228
|
const listPullRequestIds = (repoName, status) => codecommit.listPullRequests.pages({ repositoryName: repoName, pullRequestStatus: status }).pipe(Stream.flatMap((page) => Stream.fromIterable(page.pullRequestIds ?? [])), Stream.map((id) => ({ id, repoName })));
|
|
133
229
|
// ---------------------------------------------------------------------------
|
|
134
230
|
// Main
|
|
@@ -138,7 +234,17 @@ export const getPullRequests = (account, options) => Stream.unwrap(Effect.gen(fu
|
|
|
138
234
|
const httpClient = yield* HttpClient.HttpClient;
|
|
139
235
|
const credentials = yield* acquireCredentials(account.profile, account.region);
|
|
140
236
|
const status = options?.status ?? "OPEN";
|
|
141
|
-
|
|
237
|
+
// Cache repo account IDs (one getRepository call per repo, not per PR)
|
|
238
|
+
const repoAccountCache = new Map();
|
|
239
|
+
const getRepoAccount = (repoName) => repoAccountCache.has(repoName)
|
|
240
|
+
? Effect.succeed(repoAccountCache.get(repoName))
|
|
241
|
+
: fetchRepoAccountId(repoName).pipe(Effect.tap((id) => Effect.sync(() => repoAccountCache.set(repoName, id))));
|
|
242
|
+
const stream = listAllRepositories().pipe(Stream.flatMap((repoName) => listPullRequestIds(repoName, status), { concurrency: 2 }), Stream.mapEffect(({ id, repoName }) => throttleRetry(fetchPRDetails(id, repoName)), { concurrency: 3 }), Stream.mapEffect((pr) => getRepoAccount(pr.repoName).pipe(Effect.flatMap((repoAcct) => decodePullRequest({
|
|
243
|
+
...pr,
|
|
244
|
+
accountProfile: account.profile,
|
|
245
|
+
accountRegion: account.region,
|
|
246
|
+
repoAccountId: repoAcct
|
|
247
|
+
})))), Stream.mapError((cause) => makeApiError("getPullRequests", account.profile, account.region, cause)));
|
|
142
248
|
return stream.pipe(Stream.provideService(HttpClient.HttpClient, httpClient), Stream.provideService(Region.Region, account.region), Stream.provideService(Credentials.Credentials, credentials), Stream.timeout(config.streamTimeout));
|
|
143
249
|
}));
|
|
144
250
|
//# sourceMappingURL=getPullRequests.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPullRequests.js","sourceRoot":"","sources":["../../src/AwsClient/getPullRequests.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getPullRequests.js","sourceRoot":"","sources":["../../src/AwsClient/getPullRequests.ts"],"names":[],"mappings":"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"}
|