@ankhorage/repository 0.7.0 → 0.8.1
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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/github/index.d.ts +3 -0
- package/dist/github/index.d.ts.map +1 -1
- package/dist/github/index.js +1 -0
- package/dist/github/index.js.map +1 -1
- package/dist/github/index.test.d.ts +2 -0
- package/dist/github/index.test.d.ts.map +1 -0
- package/dist/github/index.test.js +6 -0
- package/dist/github/index.test.js.map +1 -0
- package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.js +14 -2
- package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.js.map +1 -1
- package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.js +6 -0
- package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.js.map +1 -1
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.d.ts +9 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.d.ts.map +1 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.js +2 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.js.map +1 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionResult.d.ts +15 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionResult.d.ts.map +1 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionResult.js +2 -0
- package/dist/providers/github/definitions/GitHubRepositoryRevisionResolutionResult.js.map +1 -0
- package/dist/providers/github/ports/GitHubRepositoryReadGateway.d.ts +3 -0
- package/dist/providers/github/ports/GitHubRepositoryReadGateway.d.ts.map +1 -1
- package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.d.ts.map +1 -1
- package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.js +12 -113
- package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.js.map +1 -1
- package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.js +8 -1
- package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.js.map +1 -1
- package/dist/providers/github/services/parseGitHubRepositoryUrl.d.ts +8 -0
- package/dist/providers/github/services/parseGitHubRepositoryUrl.d.ts.map +1 -0
- package/dist/providers/github/services/parseGitHubRepositoryUrl.js +80 -0
- package/dist/providers/github/services/parseGitHubRepositoryUrl.js.map +1 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionAsync.d.ts +5 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionAsync.d.ts.map +1 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionAsync.js +9 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionAsync.js.map +1 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.d.ts +6 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.d.ts.map +1 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.js +20 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.js.map +1 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.d.ts +2 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.d.ts.map +1 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.js +111 -0
- package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.js.map +1 -0
- package/dist/providers/github/services/resolveGitHubUrlRevisionAsync.d.ts +9 -0
- package/dist/providers/github/services/resolveGitHubUrlRevisionAsync.d.ts.map +1 -0
- package/dist/providers/github/services/resolveGitHubUrlRevisionAsync.js +22 -0
- package/dist/providers/github/services/resolveGitHubUrlRevisionAsync.js.map +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ankhorage/repository
|
|
2
2
|
|
|
3
|
+
## 0.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- bc9525b: Update dependencies: `@ankhorage/contracts`.
|
|
8
|
+
|
|
9
|
+
## 0.8.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- a809734: Add public GitHub repository revision resolution for immutable repository analysis.
|
|
14
|
+
|
|
3
15
|
## 0.7.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/repository
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Standalone repository capability for connecting and managing an app project's source repository.
|
|
9
9
|
|
package/dist/github/index.d.ts
CHANGED
|
@@ -4,8 +4,11 @@ export type { GitHubRepositoryAuthentication, GitHubRepositoryDiscoveryOptions,
|
|
|
4
4
|
export { type GitHubOwnerType, GitHubRepositoryDiscoveryError, type GitHubRepositoryDiscoveryErrorCode, type GitHubRepositoryDiscoveryRepository, type GitHubRepositoryDiscoveryResult, } from '../providers/github/definitions/GitHubRepositoryDiscoveryResult.js';
|
|
5
5
|
export type { GitHubRepositoryMaterializationOptions } from '../providers/github/definitions/GitHubRepositoryMaterializationOptions.js';
|
|
6
6
|
export type { GitHubRepositoryMaterializationDiagnostic, GitHubRepositoryMaterializationResult, } from '../providers/github/definitions/GitHubRepositoryMaterializationResult.js';
|
|
7
|
+
export type { GitHubRepositoryRevisionResolutionOptions } from '../providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.js';
|
|
8
|
+
export type { GitHubRepositoryRevisionResolutionResult } from '../providers/github/definitions/GitHubRepositoryRevisionResolutionResult.js';
|
|
7
9
|
export type { GitHubRepositoryVisibility } from '../providers/github/definitions/GitHubRepositoryVisibility.js';
|
|
8
10
|
export { connectGitHubRepositoryAsync } from '../providers/github/services/connectGitHubRepositoryAsync.js';
|
|
9
11
|
export { discoverGitHubRepositoriesAsync } from '../providers/github/services/discoverGitHubRepositoriesAsync.js';
|
|
10
12
|
export { materializeGitHubRepositoryAsync } from '../providers/github/services/materializeGitHubRepositoryAsync.js';
|
|
13
|
+
export { resolveGitHubRepositoryRevisionAsync } from '../providers/github/services/resolveGitHubRepositoryRevisionAsync.js';
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iCAAiC,EAAE,MAAM,sEAAsE,CAAC;AAC9H,YAAY,EACV,iCAAiC,EACjC,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qEAAqE,CAAC;AAC7E,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EACL,KAAK,eAAe,EACpB,8BAA8B,EAC9B,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,+BAA+B,GACrC,MAAM,oEAAoE,CAAC;AAC5E,YAAY,EAAE,sCAAsC,EAAE,MAAM,2EAA2E,CAAC;AACxI,YAAY,EACV,yCAAyC,EACzC,qCAAqC,GACtC,MAAM,0EAA0E,CAAC;AAClF,YAAY,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAC;AAChH,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iCAAiC,EAAE,MAAM,sEAAsE,CAAC;AAC9H,YAAY,EACV,iCAAiC,EACjC,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qEAAqE,CAAC;AAC7E,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EACL,KAAK,eAAe,EACpB,8BAA8B,EAC9B,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,+BAA+B,GACrC,MAAM,oEAAoE,CAAC;AAC5E,YAAY,EAAE,sCAAsC,EAAE,MAAM,2EAA2E,CAAC;AACxI,YAAY,EACV,yCAAyC,EACzC,qCAAqC,GACtC,MAAM,0EAA0E,CAAC;AAClF,YAAY,EAAE,yCAAyC,EAAE,MAAM,8EAA8E,CAAC;AAC9I,YAAY,EAAE,wCAAwC,EAAE,MAAM,6EAA6E,CAAC;AAC5I,YAAY,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAC;AAChH,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC;AACpH,OAAO,EAAE,oCAAoC,EAAE,MAAM,sEAAsE,CAAC"}
|
package/dist/github/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { GitHubRepositoryDiscoveryError, } from '../providers/github/definitions
|
|
|
2
2
|
export { connectGitHubRepositoryAsync } from '../providers/github/services/connectGitHubRepositoryAsync.js';
|
|
3
3
|
export { discoverGitHubRepositoriesAsync } from '../providers/github/services/discoverGitHubRepositoriesAsync.js';
|
|
4
4
|
export { materializeGitHubRepositoryAsync } from '../providers/github/services/materializeGitHubRepositoryAsync.js';
|
|
5
|
+
export { resolveGitHubRepositoryRevisionAsync } from '../providers/github/services/resolveGitHubRepositoryRevisionAsync.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/github/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,8BAA8B,GAI/B,MAAM,oEAAoE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,8BAA8B,GAI/B,MAAM,oEAAoE,CAAC;AAS5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC;AACpH,OAAO,EAAE,oCAAoC,EAAE,MAAM,sEAAsE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/github/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/github/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AAErC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACrD,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,YAAY,EAAE,CAAC;AACrE,CAAC,CAAC,CAAC"}
|
|
@@ -19,8 +19,14 @@ async function inspectRepositoryAsync(client, target, signal) {
|
|
|
19
19
|
const value = await client.requestJsonResponseAsync(`${API_ORIGIN}/repos/${encodeURIComponent(target.owner)}/${encodeURIComponent(target.name)}`, 'repository metadata', signal);
|
|
20
20
|
const record = requireRecord(value.value, 'repository metadata');
|
|
21
21
|
const defaultBranch = requireString(record.default_branch, 'repository default branch');
|
|
22
|
-
const
|
|
23
|
-
return {
|
|
22
|
+
const owner = requireRecord(record.owner, 'repository owner');
|
|
23
|
+
return {
|
|
24
|
+
id: String(requireSafeInteger(record.id, 'repository ID')),
|
|
25
|
+
owner: requireString(owner.login, 'repository owner login'),
|
|
26
|
+
name: requireString(record.name, 'repository name'),
|
|
27
|
+
defaultBranch,
|
|
28
|
+
url: requireString(record.html_url, 'repository URL'),
|
|
29
|
+
};
|
|
24
30
|
}
|
|
25
31
|
/*** Resolve a branch, tag, or commit ref to an immutable commit and tree SHA. */
|
|
26
32
|
async function resolveRevisionAsync(client, target, ref, signal) {
|
|
@@ -81,4 +87,10 @@ function requireString(value, subject) {
|
|
|
81
87
|
throw new Error(`GitHub returned invalid ${subject}.`);
|
|
82
88
|
return value;
|
|
83
89
|
}
|
|
90
|
+
/** Require a safe integer GitHub resource ID before exposing its canonical string form. */
|
|
91
|
+
function requireSafeInteger(value, subject) {
|
|
92
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0)
|
|
93
|
+
throw new Error(`GitHub returned invalid ${subject}.`);
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
84
96
|
//# sourceMappingURL=createGitHubHttpRepositoryReadGateway.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGitHubHttpRepositoryReadGateway.js","sourceRoot":"","sources":["../../../../src/providers/github/adapters/createGitHubHttpRepositoryReadGateway.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,0CAA0C,EAAE,MAAM,iDAAiD,CAAC;AAE7G,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,UAAU,GAAG,mCAAmC,CAAC;AAEvD,gGAAgG;AAChG,MAAM,UAAU,qCAAqC,CACnD,UAAwB,KAAK,EAC7B,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,0CAA0C,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3F,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CACtD,CAAC;IACF,OAAO;QACL,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC1F,oBAAoB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAC5C,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC;QACnD,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QAC1F,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAChD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;QACvD,GAAG,gBAAgB;KACpB,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,KAAK,UAAU,sBAAsB,CACnC,MAAiD,EACjD,MAAkC,EAClC,MAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjD,GAAG,UAAU,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAC5F,qBAAqB,EACrB,MAAM,CACP,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;IACxF,MAAM,
|
|
1
|
+
{"version":3,"file":"createGitHubHttpRepositoryReadGateway.js","sourceRoot":"","sources":["../../../../src/providers/github/adapters/createGitHubHttpRepositoryReadGateway.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,0CAA0C,EAAE,MAAM,iDAAiD,CAAC;AAE7G,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,UAAU,GAAG,mCAAmC,CAAC;AAEvD,gGAAgG;AAChG,MAAM,UAAU,qCAAqC,CACnD,UAAwB,KAAK,EAC7B,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,0CAA0C,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3F,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CACtD,CAAC;IACF,OAAO;QACL,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC1F,oBAAoB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAC5C,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC;QACnD,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QAC1F,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAChD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;QACvD,GAAG,gBAAgB;KACpB,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,KAAK,UAAU,sBAAsB,CACnC,MAAiD,EACjD,MAAkC,EAClC,MAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjD,GAAG,UAAU,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAC5F,qBAAqB,EACrB,MAAM,CACP,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC9D,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAC1D,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,wBAAwB,CAAC;QAC3D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACnD,aAAa;QACb,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,KAAK,UAAU,oBAAoB,CACjC,MAAiD,EACjD,MAAkC,EAClC,GAAW,EACX,MAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjD,GAAG,UAAU,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAC/H,qBAAqB,EACrB,MAAM,CACP,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAClE,OAAO;QACL,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAuB,CAAC;QAC7D,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,aAAa,CAC1B,MAAiD,EACjD,MAAkC,EAClC,OAAe,EACf,MAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjD,GAAG,UAAU,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,kBAAkB,CAAC,OAAO,CAAC,cAAc,EACjJ,iBAAiB,EACjB,MAAM,CACP,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChG,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1D,SAAS,EAAE,MAAM,CAAC,SAAS,KAAK,IAAI;KACrC,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,KAAK,UAAU,aAAa,CAC1B,MAAiD,EACjD,MAAkC,EAClC,QAAgB,EAChB,IAAY,EACZ,MAA+B;IAE/B,MAAM,WAAW,GAAG,IAAI;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,MAAM,CAAC,iBAAiB,CAC7B,GAAG,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,EACrI,iBAAiB,EACjB,MAAM,CACP,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ;QACzD,MAAM,IAAI,KAAK,CAAC,8DAA8D,IAAI,GAAG,CAAC,CAAC;IACzF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC;QAC9D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC;QAC9D,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,2BAA2B,CAAC;QAC3D,IAAI;QACJ,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,SAAS,aAAa,CAAC,KAAc,EAAE,OAAe;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,kDAAkD;AAClD,SAAS,aAAa,CAAC,KAAc,EAAE,OAAe;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2FAA2F;AAC3F,SAAS,kBAAkB,CAAC,KAAc,EAAE,OAAe;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -9,6 +9,9 @@ test('reads repository metadata, immutable revision, tree, and raw file content'
|
|
|
9
9
|
url: 'https://github.com/ankhorage/demo',
|
|
10
10
|
};
|
|
11
11
|
expect(await gateway.inspectRepositoryAsync(target)).toEqual({
|
|
12
|
+
id: '1',
|
|
13
|
+
owner: 'ankhorage',
|
|
14
|
+
name: 'demo',
|
|
12
15
|
defaultBranch: 'main',
|
|
13
16
|
url: 'https://github.com/ankhorage/demo',
|
|
14
17
|
});
|
|
@@ -173,6 +176,9 @@ function requestUrl(input) {
|
|
|
173
176
|
function responseForUrl(url) {
|
|
174
177
|
if (url.endsWith('/repos/ankhorage/demo')) {
|
|
175
178
|
return Response.json({
|
|
179
|
+
id: 1,
|
|
180
|
+
name: 'demo',
|
|
181
|
+
owner: { login: 'ankhorage' },
|
|
176
182
|
default_branch: 'main',
|
|
177
183
|
html_url: 'https://github.com/ankhorage/demo',
|
|
178
184
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGitHubHttpRepositoryReadGateway.test.js","sourceRoot":"","sources":["../../../../src/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createGitHubHttpRepositoryReadGateway.test.js","sourceRoot":"","sources":["../../../../src/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { GitHubRepositoryAuthentication } from './GitHubRepositoryDiscoveryOptions.js';
|
|
2
|
+
/** Options for resolving a GitHub repository URL to one immutable revision. */
|
|
3
|
+
export interface GitHubRepositoryRevisionResolutionOptions {
|
|
4
|
+
readonly url: string;
|
|
5
|
+
/** Defaults to anonymous access so public resolution cannot inherit server credentials. */
|
|
6
|
+
readonly authentication?: GitHubRepositoryAuthentication;
|
|
7
|
+
readonly signal?: AbortSignal;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=GitHubRepositoryRevisionResolutionOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubRepositoryRevisionResolutionOptions.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAE5F,+EAA+E;AAC/E,MAAM,WAAW,yCAAyC;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubRepositoryRevisionResolutionOptions.js","sourceRoot":"","sources":["../../../../src/providers/github/definitions/GitHubRepositoryRevisionResolutionOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** A verified GitHub repository identity and the immutable revision selected from its URL. */
|
|
2
|
+
export interface GitHubRepositoryRevisionResolutionResult {
|
|
3
|
+
readonly repository: {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly owner: string;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly url: string;
|
|
8
|
+
readonly defaultBranch: string;
|
|
9
|
+
};
|
|
10
|
+
readonly revision: {
|
|
11
|
+
readonly commitSha: string;
|
|
12
|
+
readonly ref: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GitHubRepositoryRevisionResolutionResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubRepositoryRevisionResolutionResult.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/definitions/GitHubRepositoryRevisionResolutionResult.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubRepositoryRevisionResolutionResult.js","sourceRoot":"","sources":["../../../../src/providers/github/definitions/GitHubRepositoryRevisionResolutionResult.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitHubRepositoryReadGateway.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/ports/GitHubRepositoryReadGateway.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB,CACpB,MAAM,EAAE,0BAA0B,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACzC,oBAAoB,CAClB,MAAM,EAAE,0BAA0B,EAClC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,aAAa,CACX,MAAM,EAAE,0BAA0B,EAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"GitHubRepositoryReadGateway.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/ports/GitHubRepositoryReadGateway.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB,CACpB,MAAM,EAAE,0BAA0B,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACzC,oBAAoB,CAClB,MAAM,EAAE,0BAA0B,EAClC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,aAAa,CACX,MAAM,EAAE,0BAA0B,EAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializeGitHubRepositoryWithGatewayAsync.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"materializeGitHubRepositoryWithGatewayAsync.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,0DAA0D,CAAC;AACvH,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,yDAAyD,CAAC;AACrH,OAAO,KAAK,EACV,2BAA2B,EAG5B,MAAM,yCAAyC,CAAC;AAIjD,mGAAmG;AACnG,wBAAsB,2CAA2C,CAC/D,OAAO,EAAE,sCAAsC,EAC/C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,qCAAqC,CAAC,CAgDhD"}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { chmod, mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { tmpdir } from 'node:os';
|
|
3
3
|
import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
4
|
-
import {
|
|
4
|
+
import { parseGitHubRepositoryUrl } from './parseGitHubRepositoryUrl.js';
|
|
5
|
+
import { resolveGitHubUrlRevisionAsync } from './resolveGitHubUrlRevisionAsync.js';
|
|
5
6
|
/*** Materialize a GitHub repository through an injected read gateway for deterministic testing. */
|
|
6
7
|
export async function materializeGitHubRepositoryWithGatewayAsync(options, gateway) {
|
|
7
8
|
const parsed = parseGitHubRepositoryUrl(options.url);
|
|
8
9
|
const repository = await gateway.inspectRepositoryAsync(parsed.target, options.signal);
|
|
10
|
+
const target = { owner: repository.owner, name: repository.name, url: repository.url };
|
|
9
11
|
const explicitRef = normalizeRef(options.ref);
|
|
10
12
|
const revision = explicitRef === undefined
|
|
11
|
-
? await
|
|
12
|
-
:
|
|
13
|
-
|
|
13
|
+
? await resolveGitHubUrlRevisionAsync(gateway, parsed, target, repository.defaultBranch, options.signal)
|
|
14
|
+
: {
|
|
15
|
+
...(await gateway.resolveRevisionAsync(target, explicitRef, options.signal)),
|
|
16
|
+
ref: explicitRef,
|
|
17
|
+
};
|
|
18
|
+
const tree = await gateway.readTreeAsync(target, revision.treeSha, options.signal);
|
|
14
19
|
const validated = validateTree(tree.entries, tree.truncated);
|
|
15
20
|
const rootPath = await createMaterializationRootAsync(options.destinationPath);
|
|
16
21
|
try {
|
|
17
|
-
await writeFileBatchesAsync(gateway,
|
|
22
|
+
await writeFileBatchesAsync(gateway, target, revision.commitSha, rootPath, validated.files, options.signal);
|
|
18
23
|
}
|
|
19
24
|
catch (error) {
|
|
20
25
|
await rm(rootPath, { force: true, recursive: true });
|
|
@@ -25,8 +30,8 @@ export async function materializeGitHubRepositoryWithGatewayAsync(options, gatew
|
|
|
25
30
|
revision: revision.commitSha,
|
|
26
31
|
diagnostics: validated.diagnostics,
|
|
27
32
|
repository: {
|
|
28
|
-
owner:
|
|
29
|
-
name:
|
|
33
|
+
owner: repository.owner,
|
|
34
|
+
name: repository.name,
|
|
30
35
|
url: repository.url,
|
|
31
36
|
defaultBranch: repository.defaultBranch,
|
|
32
37
|
},
|
|
@@ -36,112 +41,6 @@ export async function materializeGitHubRepositoryWithGatewayAsync(options, gatew
|
|
|
36
41
|
const MAX_FILE_COUNT = 20_000;
|
|
37
42
|
const MAX_TOTAL_BYTES = 256 * 1024 * 1024;
|
|
38
43
|
const WRITE_BATCH_SIZE = 8;
|
|
39
|
-
/*** Parse a normal GitHub repository, tree, blob, or commit URL into repository and ref intent. */
|
|
40
|
-
function parseGitHubRepositoryUrl(value) {
|
|
41
|
-
const url = parseRepositoryUrl(value);
|
|
42
|
-
assertGitHubRepositoryUrl(url);
|
|
43
|
-
const segments = decodePathSegments(url);
|
|
44
|
-
if (segments.length < 2) {
|
|
45
|
-
throw invalidRepositoryUrl();
|
|
46
|
-
}
|
|
47
|
-
const [owner = '', repositorySegment = '', route] = segments;
|
|
48
|
-
const name = repositorySegment.endsWith('.git')
|
|
49
|
-
? repositorySegment.slice(0, -4)
|
|
50
|
-
: repositorySegment;
|
|
51
|
-
assertRepositoryIdentity(owner, name);
|
|
52
|
-
const routeSegments = segments.slice(3);
|
|
53
|
-
if (route === undefined) {
|
|
54
|
-
return {
|
|
55
|
-
target: { owner, name, url: `https://github.com/${owner}/${name}` },
|
|
56
|
-
refCandidates: [],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
if (route === 'commit') {
|
|
60
|
-
if (routeSegments.length !== 1)
|
|
61
|
-
throw invalidRepositoryUrl();
|
|
62
|
-
return {
|
|
63
|
-
target: { owner, name, url: `https://github.com/${owner}/${name}` },
|
|
64
|
-
refCandidates: [routeSegments[0] ?? ''],
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
if (route !== 'tree' && route !== 'blob')
|
|
68
|
-
throw invalidRepositoryUrl();
|
|
69
|
-
if (routeSegments.length === 0)
|
|
70
|
-
throw invalidRepositoryUrl();
|
|
71
|
-
return {
|
|
72
|
-
target: { owner, name, url: `https://github.com/${owner}/${name}` },
|
|
73
|
-
refCandidates: createRefCandidates(routeSegments),
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
/*** Parse a repository URL while preserving the original parsing failure as the cause. */
|
|
77
|
-
function parseRepositoryUrl(value) {
|
|
78
|
-
try {
|
|
79
|
-
return new URL(value);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
throw new Error('Repository URL must be a valid GitHub HTTPS URL.', { cause: error });
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/*** Reject non-GitHub origins and embedded credentials while ignoring normal page query/anchor state. */
|
|
86
|
-
function assertGitHubRepositoryUrl(url) {
|
|
87
|
-
if (url.protocol !== 'https:' ||
|
|
88
|
-
url.hostname.toLowerCase() !== 'github.com' ||
|
|
89
|
-
url.username !== '' ||
|
|
90
|
-
url.password !== '') {
|
|
91
|
-
throw invalidRepositoryUrl();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/*** Decode normal GitHub path segments and reject malformed encoded paths. */
|
|
95
|
-
function decodePathSegments(url) {
|
|
96
|
-
try {
|
|
97
|
-
return url.pathname
|
|
98
|
-
.split('/')
|
|
99
|
-
.filter(Boolean)
|
|
100
|
-
.map((segment) => decodeURIComponent(segment));
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
throw new Error('Repository URL contains an invalid encoded path.', { cause: error });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/*** Build longest-first ref candidates so slash-containing branch/tag names resolve like GitHub URLs. */
|
|
107
|
-
function createRefCandidates(segments) {
|
|
108
|
-
return Array.from({ length: segments.length }, (_, index) => segments.slice(0, segments.length - index).join('/'));
|
|
109
|
-
}
|
|
110
|
-
/*** Resolve URL-derived ref candidates, falling back to the repository default branch. */
|
|
111
|
-
async function resolveUrlRevisionAsync(gateway, parsed, defaultBranch, signal) {
|
|
112
|
-
if (parsed.refCandidates.length === 0) {
|
|
113
|
-
return gateway.resolveRevisionAsync(parsed.target, defaultBranch, signal);
|
|
114
|
-
}
|
|
115
|
-
for (const candidate of parsed.refCandidates) {
|
|
116
|
-
try {
|
|
117
|
-
return await gateway.resolveRevisionAsync(parsed.target, candidate, signal);
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
if (isCancellationError(error))
|
|
121
|
-
throw error;
|
|
122
|
-
// GitHub tree/blob URLs can contain both slash-containing refs and trailing repository paths.
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
throw new Error('GitHub repository URL does not resolve to a branch, tag, or commit.');
|
|
126
|
-
}
|
|
127
|
-
/*** Preserve caller cancellation and deadlines instead of mistaking them for an ambiguous URL ref. */
|
|
128
|
-
function isCancellationError(error) {
|
|
129
|
-
return (error instanceof GitHubRepositoryDiscoveryError &&
|
|
130
|
-
(error.code === 'cancelled' || error.code === 'timeout'));
|
|
131
|
-
}
|
|
132
|
-
/*** Create the consistent public error for unsupported GitHub URL shapes. */
|
|
133
|
-
function invalidRepositoryUrl() {
|
|
134
|
-
return new Error('Repository URL must be a GitHub repository, tree, blob, or commit HTTPS URL.');
|
|
135
|
-
}
|
|
136
|
-
/*** Validate canonical GitHub owner and repository path segments. */
|
|
137
|
-
function assertRepositoryIdentity(owner, name) {
|
|
138
|
-
if (!/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,98}[A-Za-z0-9])?$/u.test(owner)) {
|
|
139
|
-
throw new Error('GitHub repository owner is invalid.');
|
|
140
|
-
}
|
|
141
|
-
if (!/^[A-Za-z0-9._-]{1,100}$/u.test(name) || name === '.' || name === '..') {
|
|
142
|
-
throw new Error('GitHub repository name is invalid.');
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
44
|
/*** Normalize an optional requested ref while rejecting an explicitly empty value. */
|
|
146
45
|
function normalizeRef(value) {
|
|
147
46
|
if (value === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializeGitHubRepositoryWithGatewayAsync.js","sourceRoot":"","sources":["../../../../src/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"materializeGitHubRepositoryWithGatewayAsync.js","sourceRoot":"","sources":["../../../../src/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { access, readFile } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { expect, test } from 'bun:test';
|
|
4
|
+
import { GitHubRepositoryDiscoveryError } from '../definitions/GitHubRepositoryDiscoveryResult.js';
|
|
4
5
|
import { materializeGitHubRepositoryWithGatewayAsync } from './materializeGitHubRepositoryWithGatewayAsync.js';
|
|
5
6
|
test('materializes an exact explicit GitHub revision and cleans up the isolated root', async () => {
|
|
6
7
|
const requestedRefs = [];
|
|
@@ -128,13 +129,16 @@ function createGateway(options) {
|
|
|
128
129
|
}));
|
|
129
130
|
return {
|
|
130
131
|
inspectRepositoryAsync: (target) => Promise.resolve({
|
|
132
|
+
id: '1',
|
|
133
|
+
owner: target.owner,
|
|
134
|
+
name: target.name,
|
|
131
135
|
defaultBranch: options.defaultBranch ?? 'main',
|
|
132
136
|
url: target.url,
|
|
133
137
|
}),
|
|
134
138
|
resolveRevisionAsync: (_target, ref) => {
|
|
135
139
|
options.requestedRefs?.push(ref);
|
|
136
140
|
if (options.acceptedRefs !== undefined && !options.acceptedRefs.includes(ref)) {
|
|
137
|
-
return Promise.reject(
|
|
141
|
+
return Promise.reject(refNotFoundError());
|
|
138
142
|
}
|
|
139
143
|
return Promise.resolve({ commitSha: 'commit-sha', treeSha: 'tree-sha' });
|
|
140
144
|
},
|
|
@@ -152,6 +156,9 @@ function createGateway(options) {
|
|
|
152
156
|
},
|
|
153
157
|
};
|
|
154
158
|
}
|
|
159
|
+
function refNotFoundError() {
|
|
160
|
+
return new GitHubRepositoryDiscoveryError('api-failure', 'GitHub repository revision request failed with HTTP 404.');
|
|
161
|
+
}
|
|
155
162
|
async function expectFailureAsync(operation, message) {
|
|
156
163
|
try {
|
|
157
164
|
await operation();
|
package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializeGitHubRepositoryWithGatewayAsync.test.js","sourceRoot":"","sources":["../../../../src/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"materializeGitHubRepositoryWithGatewayAsync.test.js","sourceRoot":"","sources":["../../../../src/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GitHubRepositoryReadTarget } from '../ports/GitHubRepositoryReadGateway.js';
|
|
2
|
+
export interface ParsedGitHubRepositoryUrl {
|
|
3
|
+
readonly target: GitHubRepositoryReadTarget;
|
|
4
|
+
readonly refCandidates: readonly string[];
|
|
5
|
+
}
|
|
6
|
+
/** Parse a normal GitHub repository, tree, blob, or commit URL into repository and ref intent. */
|
|
7
|
+
export declare function parseGitHubRepositoryUrl(value: string): ParsedGitHubRepositoryUrl;
|
|
8
|
+
//# sourceMappingURL=parseGitHubRepositoryUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseGitHubRepositoryUrl.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/parseGitHubRepositoryUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,yBAAyB,CA6BjF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** Parse a normal GitHub repository, tree, blob, or commit URL into repository and ref intent. */
|
|
2
|
+
export function parseGitHubRepositoryUrl(value) {
|
|
3
|
+
const url = parseRepositoryUrl(value);
|
|
4
|
+
assertGitHubRepositoryUrl(url);
|
|
5
|
+
const segments = decodePathSegments(url);
|
|
6
|
+
if (segments.length < 2)
|
|
7
|
+
throw invalidRepositoryUrl();
|
|
8
|
+
const [owner = '', repositorySegment = '', route] = segments;
|
|
9
|
+
const name = repositorySegment.endsWith('.git')
|
|
10
|
+
? repositorySegment.slice(0, -4)
|
|
11
|
+
: repositorySegment;
|
|
12
|
+
assertRepositoryIdentity(owner, name);
|
|
13
|
+
const routeSegments = segments.slice(3);
|
|
14
|
+
if (route === undefined)
|
|
15
|
+
return {
|
|
16
|
+
target: { owner, name, url: `https://github.com/${owner}/${name}` },
|
|
17
|
+
refCandidates: [],
|
|
18
|
+
};
|
|
19
|
+
if (route === 'commit') {
|
|
20
|
+
if (routeSegments.length !== 1)
|
|
21
|
+
throw invalidRepositoryUrl();
|
|
22
|
+
return {
|
|
23
|
+
target: { owner, name, url: `https://github.com/${owner}/${name}` },
|
|
24
|
+
refCandidates: [routeSegments[0] ?? ''],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (route !== 'tree' && route !== 'blob')
|
|
28
|
+
throw invalidRepositoryUrl();
|
|
29
|
+
if (routeSegments.length === 0)
|
|
30
|
+
throw invalidRepositoryUrl();
|
|
31
|
+
return {
|
|
32
|
+
target: { owner, name, url: `https://github.com/${owner}/${name}` },
|
|
33
|
+
refCandidates: createRefCandidates(routeSegments),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Parse a repository URL while preserving the original parsing failure as the cause. */
|
|
37
|
+
function parseRepositoryUrl(value) {
|
|
38
|
+
try {
|
|
39
|
+
return new URL(value);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
throw new Error('Repository URL must be a valid GitHub HTTPS URL.', { cause: error });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Reject non-GitHub origins and embedded credentials while ignoring normal page query/anchor state. */
|
|
46
|
+
function assertGitHubRepositoryUrl(url) {
|
|
47
|
+
if (url.protocol !== 'https:' ||
|
|
48
|
+
url.hostname.toLowerCase() !== 'github.com' ||
|
|
49
|
+
url.username !== '' ||
|
|
50
|
+
url.password !== '')
|
|
51
|
+
throw invalidRepositoryUrl();
|
|
52
|
+
}
|
|
53
|
+
/** Decode normal GitHub path segments and reject malformed encoded paths. */
|
|
54
|
+
function decodePathSegments(url) {
|
|
55
|
+
try {
|
|
56
|
+
return url.pathname
|
|
57
|
+
.split('/')
|
|
58
|
+
.filter(Boolean)
|
|
59
|
+
.map((segment) => decodeURIComponent(segment));
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
throw new Error('Repository URL contains an invalid encoded path.', { cause: error });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** Build longest-first ref candidates so slash-containing branch/tag names resolve like GitHub URLs. */
|
|
66
|
+
function createRefCandidates(segments) {
|
|
67
|
+
return Array.from({ length: segments.length }, (_, index) => segments.slice(0, segments.length - index).join('/'));
|
|
68
|
+
}
|
|
69
|
+
/** Create the consistent public error for unsupported GitHub URL shapes. */
|
|
70
|
+
function invalidRepositoryUrl() {
|
|
71
|
+
return new Error('Repository URL must be a GitHub repository, tree, blob, or commit HTTPS URL.');
|
|
72
|
+
}
|
|
73
|
+
/** Validate canonical GitHub owner and repository path segments. */
|
|
74
|
+
function assertRepositoryIdentity(owner, name) {
|
|
75
|
+
if (!/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,98}[A-Za-z0-9])?$/u.test(owner))
|
|
76
|
+
throw new Error('GitHub repository owner is invalid.');
|
|
77
|
+
if (!/^[A-Za-z0-9._-]{1,100}$/u.test(name) || name === '.' || name === '..')
|
|
78
|
+
throw new Error('GitHub repository name is invalid.');
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=parseGitHubRepositoryUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseGitHubRepositoryUrl.js","sourceRoot":"","sources":["../../../../src/providers/github/services/parseGitHubRepositoryUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GitHubRepositoryRevisionResolutionOptions } from '../definitions/GitHubRepositoryRevisionResolutionOptions.js';
|
|
2
|
+
import type { GitHubRepositoryRevisionResolutionResult } from '../definitions/GitHubRepositoryRevisionResolutionResult.js';
|
|
3
|
+
/** Resolve a GitHub URL to its verified identity and immutable commit without materializing it. */
|
|
4
|
+
export declare function resolveGitHubRepositoryRevisionAsync(options: GitHubRepositoryRevisionResolutionOptions): Promise<GitHubRepositoryRevisionResolutionResult>;
|
|
5
|
+
//# sourceMappingURL=resolveGitHubRepositoryRevisionAsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubRepositoryRevisionAsync.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubRepositoryRevisionAsync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,6DAA6D,CAAC;AAC7H,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,4DAA4D,CAAC;AAG3H,mGAAmG;AACnG,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,yCAAyC,GACjD,OAAO,CAAC,wCAAwC,CAAC,CAOnD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createGitHubHttpRepositoryReadGateway } from '../adapters/createGitHubHttpRepositoryReadGateway.js';
|
|
2
|
+
import { resolveGitHubRepositoryRevisionWithGatewayAsync } from './resolveGitHubRepositoryRevisionWithGatewayAsync.js';
|
|
3
|
+
/** Resolve a GitHub URL to its verified identity and immutable commit without materializing it. */
|
|
4
|
+
export function resolveGitHubRepositoryRevisionAsync(options) {
|
|
5
|
+
return resolveGitHubRepositoryRevisionWithGatewayAsync(options, createGitHubHttpRepositoryReadGateway(fetch, {
|
|
6
|
+
authentication: options.authentication ?? 'anonymous',
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=resolveGitHubRepositoryRevisionAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubRepositoryRevisionAsync.js","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubRepositoryRevisionAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,sDAAsD,CAAC;AAG7G,OAAO,EAAE,+CAA+C,EAAE,MAAM,sDAAsD,CAAC;AAEvH,mGAAmG;AACnG,MAAM,UAAU,oCAAoC,CAClD,OAAkD;IAElD,OAAO,+CAA+C,CACpD,OAAO,EACP,qCAAqC,CAAC,KAAK,EAAE;QAC3C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,WAAW;KACtD,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { GitHubRepositoryRevisionResolutionOptions } from '../definitions/GitHubRepositoryRevisionResolutionOptions.js';
|
|
2
|
+
import type { GitHubRepositoryRevisionResolutionResult } from '../definitions/GitHubRepositoryRevisionResolutionResult.js';
|
|
3
|
+
import type { GitHubRepositoryReadGateway } from '../ports/GitHubRepositoryReadGateway.js';
|
|
4
|
+
/** Resolve a GitHub URL through an injected read gateway for deterministic testing. */
|
|
5
|
+
export declare function resolveGitHubRepositoryRevisionWithGatewayAsync(options: GitHubRepositoryRevisionResolutionOptions, gateway: Pick<GitHubRepositoryReadGateway, 'inspectRepositoryAsync' | 'resolveRevisionAsync'>): Promise<GitHubRepositoryRevisionResolutionResult>;
|
|
6
|
+
//# sourceMappingURL=resolveGitHubRepositoryRevisionWithGatewayAsync.d.ts.map
|
package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubRepositoryRevisionWithGatewayAsync.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,6DAA6D,CAAC;AAC7H,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,4DAA4D,CAAC;AAC3H,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAI3F,uFAAuF;AACvF,wBAAsB,+CAA+C,CACnE,OAAO,EAAE,yCAAyC,EAClD,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,wBAAwB,GAAG,sBAAsB,CAAC,GAC5F,OAAO,CAAC,wCAAwC,CAAC,CAqBnD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parseGitHubRepositoryUrl } from './parseGitHubRepositoryUrl.js';
|
|
2
|
+
import { resolveGitHubUrlRevisionAsync } from './resolveGitHubUrlRevisionAsync.js';
|
|
3
|
+
/** Resolve a GitHub URL through an injected read gateway for deterministic testing. */
|
|
4
|
+
export async function resolveGitHubRepositoryRevisionWithGatewayAsync(options, gateway) {
|
|
5
|
+
const parsed = parseGitHubRepositoryUrl(options.url);
|
|
6
|
+
const metadata = await gateway.inspectRepositoryAsync(parsed.target, options.signal);
|
|
7
|
+
const target = { owner: metadata.owner, name: metadata.name, url: metadata.url };
|
|
8
|
+
const revision = await resolveGitHubUrlRevisionAsync(gateway, parsed, target, metadata.defaultBranch, options.signal);
|
|
9
|
+
return {
|
|
10
|
+
repository: {
|
|
11
|
+
id: metadata.id,
|
|
12
|
+
owner: metadata.owner,
|
|
13
|
+
name: metadata.name,
|
|
14
|
+
url: metadata.url,
|
|
15
|
+
defaultBranch: metadata.defaultBranch,
|
|
16
|
+
},
|
|
17
|
+
revision: { commitSha: revision.commitSha, ref: revision.ref },
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=resolveGitHubRepositoryRevisionWithGatewayAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubRepositoryRevisionWithGatewayAsync.js","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,+CAA+C,CACnE,OAAkD,EAClD,OAA6F;IAE7F,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAClD,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,CAAC,aAAa,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;IACF,OAAO;QACL,UAAU,EAAE;YACV,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,aAAa,EAAE,QAAQ,CAAC,aAAa;SACtC;QACD,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;KAC/D,CAAC;AACJ,CAAC"}
|
package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubRepositoryRevisionWithGatewayAsync.test.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.ts"],"names":[],"mappings":""}
|
package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { expect, test } from 'bun:test';
|
|
2
|
+
import { GitHubRepositoryDiscoveryError } from '../definitions/GitHubRepositoryDiscoveryResult.js';
|
|
3
|
+
import { resolveGitHubRepositoryRevisionWithGatewayAsync } from './resolveGitHubRepositoryRevisionWithGatewayAsync.js';
|
|
4
|
+
test.each([
|
|
5
|
+
['https://github.com/legacy/example', 'main'],
|
|
6
|
+
['https://github.com/legacy/example/tree/feature/read', 'feature/read'],
|
|
7
|
+
['https://github.com/legacy/example/tree/v1.2.3', 'v1.2.3'],
|
|
8
|
+
['https://github.com/legacy/example/commit/immutable-sha', 'immutable-sha'],
|
|
9
|
+
])('resolves %s to its immutable revision', async (url, expectedRef) => {
|
|
10
|
+
const requests = [];
|
|
11
|
+
const result = await resolveGitHubRepositoryRevisionWithGatewayAsync({ url }, createGateway(requests));
|
|
12
|
+
expect(result).toEqual({
|
|
13
|
+
repository: {
|
|
14
|
+
id: '42',
|
|
15
|
+
owner: 'canonical-owner',
|
|
16
|
+
name: 'renamed-repository',
|
|
17
|
+
url: 'https://github.com/canonical-owner/renamed-repository',
|
|
18
|
+
defaultBranch: 'main',
|
|
19
|
+
},
|
|
20
|
+
revision: { commitSha: 'immutable-sha', ref: expectedRef },
|
|
21
|
+
});
|
|
22
|
+
expect(requests).toEqual([expectedRef]);
|
|
23
|
+
});
|
|
24
|
+
test('preserves typed GitHub failures and forwards cancellation without materialization calls', async () => {
|
|
25
|
+
const permission = new GitHubRepositoryDiscoveryError('permission-denied', 'GitHub denied access to this resource.');
|
|
26
|
+
const rateLimit = new GitHubRepositoryDiscoveryError('rate-limited', 'GitHub rate limit reached. Retry after the reported delay.', 1000);
|
|
27
|
+
const controller = new AbortController();
|
|
28
|
+
controller.abort();
|
|
29
|
+
await expectFailureAsync(() => resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository' }, createGateway([], permission)), (error) => expect(error).toBe(permission));
|
|
30
|
+
await expectFailureAsync(() => resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository' }, createGateway([], rateLimit)), (error) => expect(error).toBe(rateLimit));
|
|
31
|
+
await expectFailureAsync(() => resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository', signal: controller.signal }, createGateway([])), (error) => expect(error).toMatchObject({ code: 'cancelled' }));
|
|
32
|
+
});
|
|
33
|
+
test('falls back from a missing longest URL ref candidate to a shorter ref', async () => {
|
|
34
|
+
const requests = [];
|
|
35
|
+
const result = await resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository/blob/main/src/index.ts' }, createGateway(requests, refNotFoundError(), 'main'));
|
|
36
|
+
expect(requests).toEqual(['main/src/index.ts', 'main/src', 'main']);
|
|
37
|
+
expect(result.revision.ref).toBe('main');
|
|
38
|
+
});
|
|
39
|
+
test('propagates an unexpected revision error without trying a shorter URL ref candidate', async () => {
|
|
40
|
+
const requests = [];
|
|
41
|
+
const unexpected = new Error('GitHub response schema is invalid.');
|
|
42
|
+
await expectFailureAsync(() => resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository/blob/main/src/index.ts' }, createGateway(requests, unexpected)), (error) => expect(error).toBe(unexpected));
|
|
43
|
+
expect(requests).toEqual(['main/src/index.ts']);
|
|
44
|
+
});
|
|
45
|
+
test.each([
|
|
46
|
+
[
|
|
47
|
+
'rate-limit',
|
|
48
|
+
new GitHubRepositoryDiscoveryError('rate-limited', 'GitHub rate limit reached. Retry after the reported delay.', 1000),
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'permission denial',
|
|
52
|
+
new GitHubRepositoryDiscoveryError('permission-denied', 'GitHub denied access to this resource.'),
|
|
53
|
+
],
|
|
54
|
+
['timeout', new GitHubRepositoryDiscoveryError('timeout', 'GitHub request timed out.')],
|
|
55
|
+
[
|
|
56
|
+
'cancellation',
|
|
57
|
+
new GitHubRepositoryDiscoveryError('cancelled', 'GitHub repository operation was cancelled.'),
|
|
58
|
+
],
|
|
59
|
+
])('does not fall back after a %s failure', async (_name, failure) => {
|
|
60
|
+
const requests = [];
|
|
61
|
+
await expectFailureAsync(() => resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository/blob/main/src/index.ts' }, createGateway(requests, failure)), (error) => expect(error).toBe(failure));
|
|
62
|
+
expect(requests).toEqual(['main/src/index.ts']);
|
|
63
|
+
});
|
|
64
|
+
test('reports a URL that has no resolvable ref candidates after genuine 404 responses', async () => {
|
|
65
|
+
const requests = [];
|
|
66
|
+
await expectFailureAsync(() => resolveGitHubRepositoryRevisionWithGatewayAsync({ url: 'https://github.com/owner/repository/blob/main/src/index.ts' }, createGateway(requests, refNotFoundError())), (error) => expect(error).toMatchObject({
|
|
67
|
+
message: 'GitHub repository URL does not resolve to a branch, tag, or commit.',
|
|
68
|
+
}));
|
|
69
|
+
expect(requests).toEqual(['main/src/index.ts', 'main/src', 'main']);
|
|
70
|
+
});
|
|
71
|
+
/** Create a read gateway that records only revision requests and rejects materialization methods. */
|
|
72
|
+
function createGateway(requests, revisionFailure, acceptedRef) {
|
|
73
|
+
return {
|
|
74
|
+
inspectRepositoryAsync: (_target, signal) => {
|
|
75
|
+
if (signal?.aborted)
|
|
76
|
+
return Promise.reject(new GitHubRepositoryDiscoveryError('cancelled', 'GitHub repository operation was cancelled.'));
|
|
77
|
+
return Promise.resolve({
|
|
78
|
+
id: '42',
|
|
79
|
+
owner: 'canonical-owner',
|
|
80
|
+
name: 'renamed-repository',
|
|
81
|
+
url: 'https://github.com/canonical-owner/renamed-repository',
|
|
82
|
+
defaultBranch: 'main',
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
resolveRevisionAsync: (_target, ref) => {
|
|
86
|
+
requests.push(ref);
|
|
87
|
+
if (acceptedRef === ref)
|
|
88
|
+
return Promise.resolve({ commitSha: 'immutable-sha', treeSha: 'tree-sha' });
|
|
89
|
+
return revisionFailure === undefined
|
|
90
|
+
? Promise.resolve({ commitSha: 'immutable-sha', treeSha: 'tree-sha' })
|
|
91
|
+
: Promise.reject(revisionFailure);
|
|
92
|
+
},
|
|
93
|
+
readTreeAsync: () => Promise.reject(new Error('Revision resolution must not read a tree.')),
|
|
94
|
+
readFileAsync: () => Promise.reject(new Error('Revision resolution must not read a file.')),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function refNotFoundError() {
|
|
98
|
+
return new GitHubRepositoryDiscoveryError('api-failure', 'GitHub repository revision request failed with HTTP 404.');
|
|
99
|
+
}
|
|
100
|
+
/** Assert an async operation fails with the expected error while keeping rejection handling explicit. */
|
|
101
|
+
async function expectFailureAsync(operation, verify) {
|
|
102
|
+
try {
|
|
103
|
+
await operation();
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
verify(error);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
throw new Error('Expected the operation to fail.');
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=resolveGitHubRepositoryRevisionWithGatewayAsync.test.js.map
|
package/dist/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubRepositoryRevisionWithGatewayAsync.test.js","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubRepositoryRevisionWithGatewayAsync.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { GitHubRepositoryReadGateway, GitHubRepositoryReadTarget } from '../ports/GitHubRepositoryReadGateway.js';
|
|
2
|
+
import type { ParsedGitHubRepositoryUrl } from './parseGitHubRepositoryUrl.js';
|
|
3
|
+
/** Resolve URL-derived ref candidates, falling back to the repository default branch. */
|
|
4
|
+
export declare function resolveGitHubUrlRevisionAsync(gateway: Pick<GitHubRepositoryReadGateway, 'resolveRevisionAsync'>, parsed: ParsedGitHubRepositoryUrl, target: GitHubRepositoryReadTarget, defaultBranch: string, signal: AbortSignal | undefined): Promise<{
|
|
5
|
+
readonly commitSha: string;
|
|
6
|
+
readonly treeSha: string;
|
|
7
|
+
readonly ref: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=resolveGitHubUrlRevisionAsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubUrlRevisionAsync.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubUrlRevisionAsync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,yFAAyF;AACzF,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,sBAAsB,CAAC,EAClE,MAAM,EAAE,yBAAyB,EACjC,MAAM,EAAE,0BAA0B,EAClC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAUzF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GitHubRepositoryDiscoveryError } from '../definitions/GitHubRepositoryDiscoveryResult.js';
|
|
2
|
+
/** Resolve URL-derived ref candidates, falling back to the repository default branch. */
|
|
3
|
+
export async function resolveGitHubUrlRevisionAsync(gateway, parsed, target, defaultBranch, signal) {
|
|
4
|
+
const candidates = parsed.refCandidates.length === 0 ? [defaultBranch] : parsed.refCandidates;
|
|
5
|
+
for (const ref of candidates) {
|
|
6
|
+
try {
|
|
7
|
+
return { ...(await gateway.resolveRevisionAsync(target, ref, signal)), ref };
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
if (!isRefNotFoundError(error))
|
|
11
|
+
throw error;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
throw new Error('GitHub repository URL does not resolve to a branch, tag, or commit.');
|
|
15
|
+
}
|
|
16
|
+
/** Identify only ambiguous URL ref failures that may have a trailing repository path. */
|
|
17
|
+
function isRefNotFoundError(error) {
|
|
18
|
+
return (error instanceof GitHubRepositoryDiscoveryError &&
|
|
19
|
+
error.code === 'api-failure' &&
|
|
20
|
+
error.message.includes('HTTP 404'));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=resolveGitHubUrlRevisionAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGitHubUrlRevisionAsync.js","sourceRoot":"","sources":["../../../../src/providers/github/services/resolveGitHubUrlRevisionAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AAOnG,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAkE,EAClE,MAAiC,EACjC,MAAkC,EAClC,aAAqB,EACrB,MAA+B;IAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAC9F,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACzF,CAAC;AAED,yFAAyF;AACzF,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,KAAK,YAAY,8BAA8B;QAC/C,KAAK,CAAC,IAAI,KAAK,aAAa;QAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CACnC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/repository",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Standalone repository capability for connecting and managing an app project's source repository.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"knip:check": "ankhorage-knip"
|
|
109
109
|
},
|
|
110
110
|
"devDependencies": {
|
|
111
|
-
"@ankhorage/devtools": "^2.3.
|
|
111
|
+
"@ankhorage/devtools": "^2.3.47",
|
|
112
112
|
"@ankhorage/paradox": "^0.3.6",
|
|
113
113
|
"@types/bun": "^1.4.2",
|
|
114
114
|
"@types/node": "^26.6.6",
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"dependencies": {
|
|
119
119
|
"@ankhorage/ankh": "^0.13.3",
|
|
120
120
|
"@ankhorage/capability": "^0.2.2",
|
|
121
|
-
"@ankhorage/contracts": "^26.
|
|
121
|
+
"@ankhorage/contracts": "^26.4.0",
|
|
122
122
|
"ignore": "^7.0.14"
|
|
123
123
|
}
|
|
124
124
|
}
|