@commitspark/git-adapter-github 0.8.2 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +19 -2
  2. package/README.md +24 -2
  3. package/dist/cjs/{axios-cache-key-generator.js → axios/cache-key-generator.js} +4 -4
  4. package/dist/cjs/axios/cache-key-generator.js.map +1 -0
  5. package/dist/cjs/axios/cached-instance.js +19 -0
  6. package/dist/cjs/axios/cached-instance.js.map +1 -0
  7. package/dist/cjs/github-adapter.js +126 -0
  8. package/dist/cjs/github-adapter.js.map +1 -0
  9. package/dist/cjs/index.js +10 -6
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/model/addition.model.js.map +1 -0
  12. package/dist/cjs/model/deletion.model.js.map +1 -0
  13. package/dist/cjs/util/entries-to-actions-converter.js +28 -0
  14. package/dist/cjs/util/entries-to-actions-converter.js.map +1 -0
  15. package/dist/cjs/util/entry-factory.js +20 -0
  16. package/dist/cjs/util/entry-factory.js.map +1 -0
  17. package/dist/cjs/{graphql-query-factory.service.js → util/graphql-query-factory.js} +16 -16
  18. package/dist/cjs/util/graphql-query-factory.js.map +1 -0
  19. package/dist/cjs/util/path-factory.js +18 -0
  20. package/dist/cjs/util/path-factory.js.map +1 -0
  21. package/dist/cjs/util/types.js +7 -0
  22. package/dist/cjs/util/types.js.map +1 -0
  23. package/dist/esm/{axios-cache-key-generator.js → axios/cache-key-generator.js} +2 -3
  24. package/dist/esm/axios/cache-key-generator.js.map +1 -0
  25. package/dist/esm/axios/cached-instance.js +12 -0
  26. package/dist/esm/axios/cached-instance.js.map +1 -0
  27. package/dist/esm/github-adapter.js +108 -0
  28. package/dist/esm/github-adapter.js.map +1 -0
  29. package/dist/esm/index.js +10 -4
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/model/addition.model.js.map +1 -0
  32. package/dist/esm/model/deletion.model.js.map +1 -0
  33. package/dist/esm/util/entries-to-actions-converter.js +25 -0
  34. package/dist/esm/util/entries-to-actions-converter.js.map +1 -0
  35. package/dist/esm/util/entry-factory.js +17 -0
  36. package/dist/esm/util/entry-factory.js.map +1 -0
  37. package/{src/graphql-query-factory.service.ts → dist/esm/util/graphql-query-factory.js} +12 -16
  38. package/dist/esm/util/graphql-query-factory.js.map +1 -0
  39. package/dist/esm/util/path-factory.js +12 -0
  40. package/dist/esm/util/path-factory.js.map +1 -0
  41. package/dist/esm/util/types.js +4 -0
  42. package/dist/esm/util/types.js.map +1 -0
  43. package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
  44. package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
  45. package/dist/tsconfig.build.types.tsbuildinfo +1 -1
  46. package/dist/types/axios/cache-key-generator.d.ts +3 -0
  47. package/dist/types/axios/cache-key-generator.d.ts.map +1 -0
  48. package/dist/types/axios/cached-instance.d.ts +4 -0
  49. package/dist/types/axios/cached-instance.d.ts.map +1 -0
  50. package/dist/types/github-adapter.d.ts +9 -0
  51. package/dist/types/github-adapter.d.ts.map +1 -0
  52. package/dist/types/index.d.ts +3 -4
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/model/addition.model.d.ts.map +1 -0
  55. package/dist/types/model/deletion.model.d.ts.map +1 -0
  56. package/dist/types/util/entries-to-actions-converter.d.ts +8 -0
  57. package/dist/types/util/entries-to-actions-converter.d.ts.map +1 -0
  58. package/dist/types/{entry-factory.service.d.ts → util/entry-factory.d.ts} +2 -4
  59. package/dist/types/util/entry-factory.d.ts.map +1 -0
  60. package/dist/types/util/graphql-query-factory.d.ts +5 -0
  61. package/dist/types/util/graphql-query-factory.d.ts.map +1 -0
  62. package/dist/types/util/path-factory.d.ts +4 -0
  63. package/dist/types/util/path-factory.d.ts.map +1 -0
  64. package/dist/types/util/types.d.ts +4 -0
  65. package/dist/types/util/types.d.ts.map +1 -0
  66. package/package.json +3 -3
  67. package/src/{axios-cache-key-generator.ts → axios/cache-key-generator.ts} +1 -3
  68. package/src/axios/cached-instance.ts +17 -0
  69. package/src/github-adapter.ts +179 -0
  70. package/src/index.ts +24 -7
  71. package/src/util/entries-to-actions-converter.ts +36 -0
  72. package/src/util/entry-factory.ts +34 -0
  73. package/{dist/esm/graphql-query-factory.service.js → src/util/graphql-query-factory.ts} +18 -18
  74. package/src/util/path-factory.ts +19 -0
  75. package/src/util/types.ts +3 -0
  76. package/dist/cjs/addition.model.js.map +0 -1
  77. package/dist/cjs/axios-cache-key-generator.js.map +0 -1
  78. package/dist/cjs/container.js +0 -25
  79. package/dist/cjs/container.js.map +0 -1
  80. package/dist/cjs/deletion.model.js.map +0 -1
  81. package/dist/cjs/entries-to-actions-converter.service.js +0 -31
  82. package/dist/cjs/entries-to-actions-converter.service.js.map +0 -1
  83. package/dist/cjs/entry-factory.service.js +0 -25
  84. package/dist/cjs/entry-factory.service.js.map +0 -1
  85. package/dist/cjs/git-hub-adapter.service.js +0 -154
  86. package/dist/cjs/git-hub-adapter.service.js.map +0 -1
  87. package/dist/cjs/graphql-query-factory.service.js.map +0 -1
  88. package/dist/cjs/path-factory.service.js +0 -20
  89. package/dist/cjs/path-factory.service.js.map +0 -1
  90. package/dist/esm/addition.model.js.map +0 -1
  91. package/dist/esm/axios-cache-key-generator.js.map +0 -1
  92. package/dist/esm/container.js +0 -19
  93. package/dist/esm/container.js.map +0 -1
  94. package/dist/esm/deletion.model.js.map +0 -1
  95. package/dist/esm/entries-to-actions-converter.service.js +0 -27
  96. package/dist/esm/entries-to-actions-converter.service.js.map +0 -1
  97. package/dist/esm/entry-factory.service.js +0 -21
  98. package/dist/esm/entry-factory.service.js.map +0 -1
  99. package/dist/esm/git-hub-adapter.service.js +0 -135
  100. package/dist/esm/git-hub-adapter.service.js.map +0 -1
  101. package/dist/esm/graphql-query-factory.service.js.map +0 -1
  102. package/dist/esm/path-factory.service.js +0 -14
  103. package/dist/esm/path-factory.service.js.map +0 -1
  104. package/dist/types/addition.model.d.ts.map +0 -1
  105. package/dist/types/axios-cache-key-generator.d.ts +0 -4
  106. package/dist/types/axios-cache-key-generator.d.ts.map +0 -1
  107. package/dist/types/container.d.ts +0 -3
  108. package/dist/types/container.d.ts.map +0 -1
  109. package/dist/types/deletion.model.d.ts.map +0 -1
  110. package/dist/types/entries-to-actions-converter.service.d.ts +0 -10
  111. package/dist/types/entries-to-actions-converter.service.d.ts.map +0 -1
  112. package/dist/types/entry-factory.service.d.ts.map +0 -1
  113. package/dist/types/git-hub-adapter.service.d.ts +0 -24
  114. package/dist/types/git-hub-adapter.service.d.ts.map +0 -1
  115. package/dist/types/graphql-query-factory.service.d.ts +0 -7
  116. package/dist/types/graphql-query-factory.service.d.ts.map +0 -1
  117. package/dist/types/path-factory.service.d.ts +0 -6
  118. package/dist/types/path-factory.service.d.ts.map +0 -1
  119. package/src/container.ts +0 -27
  120. package/src/entries-to-actions-converter.service.ts +0 -37
  121. package/src/entry-factory.service.ts +0 -35
  122. package/src/git-hub-adapter.service.ts +0 -205
  123. package/src/path-factory.service.ts +0 -21
  124. /package/dist/cjs/{addition.model.js → model/addition.model.js} +0 -0
  125. /package/dist/cjs/{deletion.model.js → model/deletion.model.js} +0 -0
  126. /package/dist/esm/{addition.model.js → model/addition.model.js} +0 -0
  127. /package/dist/esm/{deletion.model.js → model/deletion.model.js} +0 -0
  128. /package/dist/types/{addition.model.d.ts → model/addition.model.d.ts} +0 -0
  129. /package/dist/types/{deletion.model.d.ts → model/deletion.model.d.ts} +0 -0
  130. /package/src/{addition.model.ts → model/addition.model.ts} +0 -0
  131. /package/src/{deletion.model.ts → model/deletion.model.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -5,7 +5,24 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [0.8.2]
8
+ ## [0.20.0] - 2025-11-08
9
+
10
+ ### Changed
11
+
12
+ - Upgrade to `@commitspark/git-adapter` 0.20.0
13
+ - Refactor implementation to drop dependency injection pattern
14
+
15
+ ### Removed
16
+
17
+ - Removed separate `setRepositoryOptions()` in favor of less complex configuration on instantiation
18
+
19
+ ## [0.8.3] - 2025-09-16
20
+
21
+ ### Changed
22
+
23
+ - Upgrade dependencies
24
+
25
+ ## [0.8.2] - 2025-06-20
9
26
 
10
27
  ### Fixed
11
28
 
@@ -15,7 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
32
 
16
33
  - Upgrade dependencies
17
34
 
18
- ## [0.8.1]
35
+ ## [0.8.1] - 2025-04-16
19
36
 
20
37
  ### Fixed
21
38
 
package/README.md CHANGED
@@ -5,10 +5,15 @@
5
5
  This repository holds code for a [Commitspark Git adapter](https://github.com/commitspark/git-adapter) that provides
6
6
  access to Git repositories hosted on GitHub.
7
7
 
8
+ # Installation
9
+
10
+ ```shell
11
+ npm i @commitspark/git-adapter-github
12
+ ```
13
+
8
14
  # Usage
9
15
 
10
- Instantiate the adapter with `createAdapter()` and then call `setRepositoryOptions()` with `GitHubRepositoryOptions` on
11
- the instance. These options are as follows:
16
+ Instantiate the adapter with `createAdapter()`, providing `GitHubRepositoryOptions` with the following parameters:
12
17
 
13
18
  | Option name | Required | Default value | Description |
14
19
  |-------------------|----------|-------------------------------------|---------------------------------------------------|
@@ -53,6 +58,23 @@ Access tokens for a user obtained
53
58
  from an [OAuth app](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/authorizing-oauth-apps) can be used in
54
59
  the same way (including permissions) as fine-grained personal access tokens.
55
60
 
61
+ # Example
62
+
63
+ To use this adapter together with the Commitspark GraphQL API library, your code could be the following:
64
+
65
+ ```typescript
66
+ import { createAdapter } from '@commitspark/git-adapter-github'
67
+ import { createClient } from '@commitspark/graphql-api'
68
+
69
+ const gitHubAdapter = createAdapter({
70
+ repositoryOwner: process.env.GITHUB_REPOSITORY_OWNER,
71
+ repositoryName: process.env.GITHUB_REPOSITORY_NAME,
72
+ accessToken: process.env.GITHUB_ACCESS_TOKEN,
73
+ })
74
+
75
+ const client = await createClient(gitHubAdapter)
76
+ ```
77
+
56
78
  # License
57
79
 
58
80
  The code in this repository is licensed under the permissive ISC license (see [LICENSE](LICENSE)).
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.axiosCacheKeyGenerator = void 0;
4
- const axiosCacheKeyGenerator = (request) => {
3
+ exports.cacheKeyGenerator = void 0;
4
+ const cacheKeyGenerator = (request) => {
5
5
  var _a;
6
6
  const authorization = (_a = request.headers) === null || _a === void 0 ? void 0 : _a.authorization;
7
7
  const key = {
@@ -16,5 +16,5 @@ const axiosCacheKeyGenerator = (request) => {
16
16
  }
17
17
  return key;
18
18
  };
19
- exports.axiosCacheKeyGenerator = axiosCacheKeyGenerator;
20
- //# sourceMappingURL=axios-cache-key-generator.js.map
19
+ exports.cacheKeyGenerator = cacheKeyGenerator;
20
+ //# sourceMappingURL=cache-key-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-key-generator.js","sourceRoot":"","sources":["../../../src/axios/cache-key-generator.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,CAC/B,OAAiC,EACjC,EAAE;;IACF,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,aAAa,CAAA;IACpD,MAAM,GAAG,GAA2C;QAClD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,uCAAuC;KAC5D,CAAA;IAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,uGAAuG;QACvG,+EAA+E;QAC/E,GAAG,CAAC,MAAM,CAAC,GAAG,aAAa,CAAA;IAC7B,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAjBY,QAAA,iBAAiB,qBAiB7B"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createAxiosCachedInstance = exports.QUERY_CACHE_SECONDS = void 0;
7
+ const axios_cache_interceptor_1 = require("axios-cache-interceptor");
8
+ const axios_1 = __importDefault(require("axios"));
9
+ const cache_key_generator_1 = require("./cache-key-generator");
10
+ exports.QUERY_CACHE_SECONDS = 10 * 60;
11
+ const createAxiosCachedInstance = () => {
12
+ return (0, axios_cache_interceptor_1.setupCache)(axios_1.default.create(), {
13
+ ttl: exports.QUERY_CACHE_SECONDS * 1000, // milliseconds
14
+ methods: ['get', 'post'],
15
+ generateKey: (0, axios_cache_interceptor_1.buildKeyGenerator)(cache_key_generator_1.cacheKeyGenerator), //
16
+ });
17
+ };
18
+ exports.createAxiosCachedInstance = createAxiosCachedInstance;
19
+ //# sourceMappingURL=cached-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-instance.js","sourceRoot":"","sources":["../../../src/axios/cached-instance.ts"],"names":[],"mappings":";;;;;;AAAA,qEAIgC;AAChC,kDAAyB;AACzB,+DAAyD;AAE5C,QAAA,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAA;AAEnC,MAAM,yBAAyB,GAAG,GAAuB,EAAE;IAChE,OAAO,IAAA,oCAAU,EAAC,eAAK,CAAC,MAAM,EAAE,EAAE;QAChC,GAAG,EAAE,2BAAmB,GAAG,IAAI,EAAE,eAAe;QAChD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,IAAA,2CAAiB,EAAC,uCAAiB,CAAC,EAAE,EAAE;KACtD,CAAC,CAAA;AACJ,CAAC,CAAA;AANY,QAAA,yBAAyB,6BAMrC"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createCommit = exports.getLatestCommitHash = exports.getSchema = exports.getEntries = exports.API_URL = void 0;
13
+ const graphql_query_factory_1 = require("./util/graphql-query-factory");
14
+ const entries_to_actions_converter_1 = require("./util/entries-to-actions-converter");
15
+ const path_factory_1 = require("./util/path-factory");
16
+ const entry_factory_1 = require("./util/entry-factory");
17
+ exports.API_URL = 'https://api.github.com/graphql';
18
+ const getEntries = (gitRepositoryOptions, axiosCacheInstance, commitHash) => __awaiter(void 0, void 0, void 0, function* () {
19
+ var _a, _b;
20
+ const token = gitRepositoryOptions.accessToken;
21
+ const pathEntryFolder = (0, path_factory_1.getPathEntryFolder)(gitRepositoryOptions);
22
+ const queryFilesContent = (0, graphql_query_factory_1.createBlobsContentQuery)();
23
+ const filesContentResponse = yield axiosCacheInstance.post(exports.API_URL, {
24
+ query: queryFilesContent,
25
+ variables: {
26
+ repositoryOwner: gitRepositoryOptions.repositoryOwner,
27
+ repositoryName: gitRepositoryOptions.repositoryName,
28
+ expression: `${commitHash}:${pathEntryFolder}`,
29
+ },
30
+ }, {
31
+ headers: {
32
+ authorization: `Bearer ${token}`,
33
+ },
34
+ });
35
+ if (!((_b = (_a = filesContentResponse.data.data.repository) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.entries)) {
36
+ return [];
37
+ }
38
+ return (0, entry_factory_1.createEntriesFromBlobsQueryResponseData)(filesContentResponse.data.data.repository.object.entries);
39
+ });
40
+ exports.getEntries = getEntries;
41
+ const getSchema = (gitRepositoryOptions, axiosCacheInstance, commitHash) => __awaiter(void 0, void 0, void 0, function* () {
42
+ var _a, _b, _c, _d;
43
+ const repositoryOwner = gitRepositoryOptions.repositoryOwner;
44
+ const repositoryName = gitRepositoryOptions.repositoryName;
45
+ const token = gitRepositoryOptions.accessToken;
46
+ const schemaFilePath = (0, path_factory_1.getPathSchema)(gitRepositoryOptions);
47
+ const queryContent = (0, graphql_query_factory_1.createBlobContentQuery)();
48
+ const response = yield axiosCacheInstance.post(exports.API_URL, {
49
+ query: queryContent,
50
+ variables: {
51
+ repositoryOwner: repositoryOwner,
52
+ repositoryName: repositoryName,
53
+ expression: `${commitHash}:${schemaFilePath}`,
54
+ },
55
+ }, {
56
+ headers: {
57
+ authorization: `Bearer ${token}`,
58
+ },
59
+ });
60
+ const schema = (_d = (_c = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.repository) === null || _c === void 0 ? void 0 : _c.object) === null || _d === void 0 ? void 0 : _d.text;
61
+ if (!schema) {
62
+ throw new Error(`"${schemaFilePath}" not found in Git repository "${repositoryOwner}/${repositoryName}" at commit "${commitHash}"`);
63
+ }
64
+ return schema;
65
+ });
66
+ exports.getSchema = getSchema;
67
+ const getLatestCommitHash = (gitRepositoryOptions, axiosCacheInstance, ref) => __awaiter(void 0, void 0, void 0, function* () {
68
+ var _a, _b, _c, _d, _e;
69
+ const token = gitRepositoryOptions.accessToken;
70
+ const queryLatestCommit = (0, graphql_query_factory_1.createLatestCommitQuery)();
71
+ const response = yield axiosCacheInstance.post(exports.API_URL, {
72
+ query: queryLatestCommit,
73
+ variables: {
74
+ repositoryOwner: gitRepositoryOptions.repositoryOwner,
75
+ repositoryName: gitRepositoryOptions.repositoryName,
76
+ ref: ref,
77
+ },
78
+ }, {
79
+ cache: false, // must not use cache, so we always get the branch's current head
80
+ headers: {
81
+ authorization: `Bearer ${token}`,
82
+ },
83
+ });
84
+ if (!response.data.data.repository) {
85
+ throw new Error(`No repository found "${gitRepositoryOptions.repositoryOwner}/${gitRepositoryOptions.repositoryName}"`);
86
+ }
87
+ const lastCommit = (_e = (_c = (_b = (_a = response.data.data.repository.ref) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.oid) !== null && _c !== void 0 ? _c : (_d = response.data.data.repository.object) === null || _d === void 0 ? void 0 : _d.oid) !== null && _e !== void 0 ? _e : undefined;
88
+ if (!lastCommit) {
89
+ throw new Error(`No commit found for ref "${ref}"`);
90
+ }
91
+ return lastCommit;
92
+ });
93
+ exports.getLatestCommitHash = getLatestCommitHash;
94
+ const createCommit = (gitRepositoryOptions, axiosCacheInstance, commitDraft) => __awaiter(void 0, void 0, void 0, function* () {
95
+ var _a;
96
+ const token = gitRepositoryOptions.accessToken;
97
+ const pathEntryFolder = (0, path_factory_1.getPathEntryFolder)(gitRepositoryOptions);
98
+ const { additions, deletions } = (0, entries_to_actions_converter_1.convertEntriesToActions)(commitDraft.entries, pathEntryFolder);
99
+ const mutateCommit = (0, graphql_query_factory_1.createCommitMutation)();
100
+ const response = yield axiosCacheInstance.post(exports.API_URL, {
101
+ query: mutateCommit,
102
+ variables: {
103
+ repositoryNameWithOwner: `${gitRepositoryOptions.repositoryOwner}/${gitRepositoryOptions.repositoryName}`,
104
+ branchName: commitDraft.ref,
105
+ commitMessage: (_a = commitDraft.message) !== null && _a !== void 0 ? _a : '-',
106
+ precedingCommitSha: commitDraft.parentSha,
107
+ additions: additions,
108
+ deletions: deletions,
109
+ },
110
+ }, {
111
+ cache: false,
112
+ headers: {
113
+ authorization: `Bearer ${token}`,
114
+ },
115
+ });
116
+ if (response.data.errors) {
117
+ throw new Error(JSON.stringify(response.data.errors));
118
+ }
119
+ const mutationResult = response.data.data.commitCreate;
120
+ if (mutationResult.errors) {
121
+ throw new Error(JSON.stringify(mutationResult.errors));
122
+ }
123
+ return { ref: mutationResult.commit.oid };
124
+ });
125
+ exports.createCommit = createCommit;
126
+ //# sourceMappingURL=github-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-adapter.js","sourceRoot":"","sources":["../../src/github-adapter.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GitHubAdapterService = void 0;
4
3
  exports.createAdapter = createAdapter;
5
- const container_1 = require("./container");
6
- var git_hub_adapter_service_1 = require("./git-hub-adapter.service");
7
- Object.defineProperty(exports, "GitHubAdapterService", { enumerable: true, get: function () { return git_hub_adapter_service_1.GitHubAdapterService; } });
8
- function createAdapter() {
9
- return container_1.gitHubAdapterService;
4
+ const cached_instance_1 = require("./axios/cached-instance");
5
+ const github_adapter_1 = require("./github-adapter");
6
+ function createAdapter(gitRepositoryOptions) {
7
+ const axiosCacheInstance = (0, cached_instance_1.createAxiosCachedInstance)();
8
+ return {
9
+ getEntries: (commitHash) => (0, github_adapter_1.getEntries)(gitRepositoryOptions, axiosCacheInstance, commitHash),
10
+ getSchema: (commitHash) => (0, github_adapter_1.getSchema)(gitRepositoryOptions, axiosCacheInstance, commitHash),
11
+ getLatestCommitHash: (ref) => (0, github_adapter_1.getLatestCommitHash)(gitRepositoryOptions, axiosCacheInstance, ref),
12
+ createCommit: (commitDraft) => (0, github_adapter_1.createCommit)(gitRepositoryOptions, axiosCacheInstance, commitDraft),
13
+ };
10
14
  }
11
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAaA,sCAEC;AAdD,2CAAkD;AAElD,qEAAgE;AAAvD,+HAAA,oBAAoB,OAAA;AAU7B,SAAgB,aAAa;IAC3B,OAAO,gCAAoB,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAiBA,sCAeC;AA/BD,6DAAmE;AACnE,qDAKyB;AAUzB,SAAgB,aAAa,CAC3B,oBAA6C;IAE7C,MAAM,kBAAkB,GAAG,IAAA,2CAAyB,GAAE,CAAA;IAEtD,OAAO;QACL,UAAU,EAAE,CAAC,UAAkB,EAAE,EAAE,CACjC,IAAA,2BAAU,EAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;QAClE,SAAS,EAAE,CAAC,UAAkB,EAAE,EAAE,CAChC,IAAA,0BAAS,EAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;QACjE,mBAAmB,EAAE,CAAC,GAAW,EAAE,EAAE,CACnC,IAAA,oCAAmB,EAAC,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,CAAC;QACpE,YAAY,EAAE,CAAC,WAAwB,EAAE,EAAE,CACzC,IAAA,6BAAY,EAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC;KACtE,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addition.model.js","sourceRoot":"","sources":["../../../src/model/addition.model.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IAExB,YACW,IAAY,EACrB,QAAgB;QADP,SAAI,GAAJ,IAAI,CAAQ;QAGrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE,CAAC;CACF;AARD,sCAQC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deletion.model.js","sourceRoot":"","sources":["../../../src/model/deletion.model.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IACxB,YAAqB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACtC;AAFD,sCAEC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertEntriesToActions = convertEntriesToActions;
4
+ const yaml_1 = require("yaml");
5
+ const addition_model_1 = require("../model/addition.model");
6
+ const deletion_model_1 = require("../model/deletion.model");
7
+ const types_1 = require("./types");
8
+ function convertEntriesToActions(entryDrafts, pathEntryFolder) {
9
+ const additions = [];
10
+ const deletions = [];
11
+ entryDrafts.forEach((entryDraft) => {
12
+ const entryPath = `${pathEntryFolder}/${entryDraft.id}${types_1.ENTRY_EXTENSION}`;
13
+ if (entryDraft.deletion) {
14
+ deletions.push(new deletion_model_1.DeletionModel(entryPath));
15
+ }
16
+ else {
17
+ additions.push(new addition_model_1.AdditionModel(entryPath, (0, yaml_1.stringify)({
18
+ metadata: entryDraft.metadata,
19
+ data: entryDraft.data,
20
+ })));
21
+ }
22
+ });
23
+ return {
24
+ additions,
25
+ deletions,
26
+ };
27
+ }
28
+ //# sourceMappingURL=entries-to-actions-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries-to-actions-converter.js","sourceRoot":"","sources":["../../../src/util/entries-to-actions-converter.ts"],"names":[],"mappings":";;AAMA,0DA6BC;AAlCD,+BAAgC;AAChC,4DAAuD;AACvD,4DAAuD;AACvD,mCAAyC;AAEzC,SAAgB,uBAAuB,CACrC,WAAyB,EACzB,eAAuB;IAKvB,MAAM,SAAS,GAAoB,EAAE,CAAA;IACrC,MAAM,SAAS,GAAoB,EAAE,CAAA;IACrC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,GAAG,eAAe,IAAI,UAAU,CAAC,EAAE,GAAG,uBAAe,EAAE,CAAA;QACzE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,IAAI,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CACZ,IAAI,8BAAa,CACf,SAAS,EACT,IAAA,gBAAS,EAAC;gBACR,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC,CACH,CACF,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO;QACL,SAAS;QACT,SAAS;KACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createEntriesFromBlobsQueryResponseData = createEntriesFromBlobsQueryResponseData;
4
+ const yaml_1 = require("yaml");
5
+ const types_1 = require("./types");
6
+ function createEntriesFromBlobsQueryResponseData(entries) {
7
+ return entries
8
+ .filter((entry) => entry.name.endsWith(types_1.ENTRY_EXTENSION) &&
9
+ entry.object['__typename'] === 'Blob')
10
+ .map((entry) => {
11
+ const fileContent = (0, yaml_1.parse)(entry.object.text);
12
+ const id = entry.name.substring(0, entry.name.length - types_1.ENTRY_EXTENSION.length);
13
+ return {
14
+ id: id,
15
+ metadata: fileContent.metadata,
16
+ data: fileContent.data,
17
+ };
18
+ });
19
+ }
20
+ //# sourceMappingURL=entry-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-factory.js","sourceRoot":"","sources":["../../../src/util/entry-factory.ts"],"names":[],"mappings":";;AAYA,0FAqBC;AAjCD,+BAA4B;AAE5B,mCAAyC;AAUzC,SAAgB,uCAAuC,CACrD,OAAoB;IAEpB,OAAO,OAAO;SACX,MAAM,CACL,CAAC,KAAgB,EAAE,EAAE,CACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAe,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,MAAM,CACxC;SACA,GAAG,CAAC,CAAC,KAAgB,EAAE,EAAE;QACxB,MAAM,WAAW,GAAG,IAAA,YAAK,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAC7B,CAAC,EACD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,uBAAe,CAAC,MAAM,CAC3C,CAAA;QACD,OAAO;YACL,EAAE,EAAE,EAAE;YACN,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;SACd,CAAA;IACZ,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphqlQueryFactoryService = void 0;
4
- class GraphqlQueryFactoryService {
5
- createBlobsContentQuery() {
6
- return `
3
+ exports.createBlobsContentQuery = createBlobsContentQuery;
4
+ exports.createBlobContentQuery = createBlobContentQuery;
5
+ exports.createCommitMutation = createCommitMutation;
6
+ exports.createLatestCommitQuery = createLatestCommitQuery;
7
+ function createBlobsContentQuery() {
8
+ return `
7
9
  query ($repositoryOwner: String!, $repositoryName: String!, $expression: String!) {
8
10
  repository(owner: $repositoryOwner, name: $repositoryName) {
9
11
  object(expression: $expression) {
@@ -22,9 +24,9 @@ class GraphqlQueryFactoryService {
22
24
  }
23
25
  }
24
26
  `;
25
- }
26
- createBlobContentQuery() {
27
- return `
27
+ }
28
+ function createBlobContentQuery() {
29
+ return `
28
30
  query ($repositoryOwner: String!, $repositoryName: String!, $expression: String!) {
29
31
  repository(owner: $repositoryOwner, name: $repositoryName) {
30
32
  object(expression: $expression) {
@@ -35,9 +37,9 @@ class GraphqlQueryFactoryService {
35
37
  }
36
38
  }
37
39
  `;
38
- }
39
- createCommitMutation() {
40
- return `
40
+ }
41
+ function createCommitMutation() {
42
+ return `
41
43
  mutation (
42
44
  $repositoryNameWithOwner: String!,
43
45
  $branchName: String!,
@@ -67,9 +69,9 @@ class GraphqlQueryFactoryService {
67
69
  }
68
70
  }
69
71
  `;
70
- }
71
- createLatestCommitQuery() {
72
- return `
72
+ }
73
+ function createLatestCommitQuery() {
74
+ return `
73
75
  query ($repositoryOwner: String!, $repositoryName: String!, $ref: String!) {
74
76
  repository(owner: $repositoryOwner, name: $repositoryName) {
75
77
  ref(qualifiedName: $ref) {
@@ -83,7 +85,5 @@ class GraphqlQueryFactoryService {
83
85
  }
84
86
  }
85
87
  `;
86
- }
87
88
  }
88
- exports.GraphqlQueryFactoryService = GraphqlQueryFactoryService;
89
- //# sourceMappingURL=graphql-query-factory.service.js.map
89
+ //# sourceMappingURL=graphql-query-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-query-factory.js","sourceRoot":"","sources":["../../../src/util/graphql-query-factory.ts"],"names":[],"mappings":";;AAAA,0DAoBC;AAED,wDAYC;AAED,oDA+BC;AAED,0DAeC;AApFD,SAAgB,uBAAuB;IACrC,OAAO;;;;;;;;;;;;;;;;;;KAkBJ,CAAA;AACL,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO;;;;;;;;;;KAUJ,CAAA;AACL,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BJ,CAAA;AACL,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO;;;;;;;;;;;;;KAaJ,CAAA;AACL,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPathSchema = getPathSchema;
4
+ exports.getPathEntryFolder = getPathEntryFolder;
5
+ const types_1 = require("./types");
6
+ function getPathSchema(gitRepositoryOptions) {
7
+ var _a;
8
+ return (_a = gitRepositoryOptions.pathSchemaFile) !== null && _a !== void 0 ? _a : types_1.PATH_SCHEMA_FILE;
9
+ }
10
+ function getPathEntryFolder(gitRepositoryOptions) {
11
+ var _a;
12
+ const pathEntryFolder = (_a = gitRepositoryOptions.pathEntryFolder) !== null && _a !== void 0 ? _a : types_1.PATH_ENTRY_FOLDER;
13
+ if (pathEntryFolder.endsWith('/')) {
14
+ return pathEntryFolder.substring(0, pathEntryFolder.length - 1);
15
+ }
16
+ return pathEntryFolder;
17
+ }
18
+ //# sourceMappingURL=path-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-factory.js","sourceRoot":"","sources":["../../../src/util/path-factory.ts"],"names":[],"mappings":";;AAGA,sCAEC;AAED,gDAWC;AAjBD,mCAA6D;AAE7D,SAAgB,aAAa,CAAC,oBAA6C;;IACzE,OAAO,MAAA,oBAAoB,CAAC,cAAc,mCAAI,wBAAgB,CAAA;AAChE,CAAC;AAED,SAAgB,kBAAkB,CAChC,oBAA6C;;IAE7C,MAAM,eAAe,GACnB,MAAA,oBAAoB,CAAC,eAAe,mCAAI,yBAAiB,CAAA;IAE3D,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PATH_ENTRY_FOLDER = exports.PATH_SCHEMA_FILE = exports.ENTRY_EXTENSION = void 0;
4
+ exports.ENTRY_EXTENSION = '.yaml';
5
+ exports.PATH_SCHEMA_FILE = 'commitspark/schema/schema.graphql';
6
+ exports.PATH_ENTRY_FOLDER = 'commitspark/entries/';
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/util/types.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,OAAO,CAAA;AACzB,QAAA,gBAAgB,GAAG,mCAAmC,CAAA;AACtD,QAAA,iBAAiB,GAAG,sBAAsB,CAAA"}
@@ -1,4 +1,4 @@
1
- const axiosCacheKeyGenerator = (request) => {
1
+ export const cacheKeyGenerator = (request) => {
2
2
  const authorization = request.headers?.authorization;
3
3
  const key = {
4
4
  method: request.method,
@@ -12,5 +12,4 @@ const axiosCacheKeyGenerator = (request) => {
12
12
  }
13
13
  return key;
14
14
  };
15
- export { axiosCacheKeyGenerator };
16
- //# sourceMappingURL=axios-cache-key-generator.js.map
15
+ //# sourceMappingURL=cache-key-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-key-generator.js","sourceRoot":"","sources":["../../../src/axios/cache-key-generator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAiC,EACjC,EAAE;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAA;IACpD,MAAM,GAAG,GAA2C;QAClD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,uCAAuC;KAC5D,CAAA;IAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,uGAAuG;QACvG,+EAA+E;QAC/E,GAAG,CAAC,MAAM,CAAC,GAAG,aAAa,CAAA;IAC7B,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { buildKeyGenerator, setupCache, } from 'axios-cache-interceptor';
2
+ import axios from 'axios';
3
+ import { cacheKeyGenerator } from './cache-key-generator';
4
+ export const QUERY_CACHE_SECONDS = 10 * 60;
5
+ export const createAxiosCachedInstance = () => {
6
+ return setupCache(axios.create(), {
7
+ ttl: QUERY_CACHE_SECONDS * 1000, // milliseconds
8
+ methods: ['get', 'post'],
9
+ generateKey: buildKeyGenerator(cacheKeyGenerator), //
10
+ });
11
+ };
12
+ //# sourceMappingURL=cached-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-instance.js","sourceRoot":"","sources":["../../../src/axios/cached-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,UAAU,GACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAuB,EAAE;IAChE,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;QAChC,GAAG,EAAE,mBAAmB,GAAG,IAAI,EAAE,eAAe;QAChD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,EAAE;KACtD,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,108 @@
1
+ import { createBlobContentQuery, createBlobsContentQuery, createCommitMutation, createLatestCommitQuery, } from './util/graphql-query-factory';
2
+ import { convertEntriesToActions } from './util/entries-to-actions-converter';
3
+ import { getPathEntryFolder, getPathSchema } from './util/path-factory';
4
+ import { createEntriesFromBlobsQueryResponseData } from './util/entry-factory';
5
+ export const API_URL = 'https://api.github.com/graphql';
6
+ export const getEntries = async (gitRepositoryOptions, axiosCacheInstance, commitHash) => {
7
+ const token = gitRepositoryOptions.accessToken;
8
+ const pathEntryFolder = getPathEntryFolder(gitRepositoryOptions);
9
+ const queryFilesContent = createBlobsContentQuery();
10
+ const filesContentResponse = await axiosCacheInstance.post(API_URL, {
11
+ query: queryFilesContent,
12
+ variables: {
13
+ repositoryOwner: gitRepositoryOptions.repositoryOwner,
14
+ repositoryName: gitRepositoryOptions.repositoryName,
15
+ expression: `${commitHash}:${pathEntryFolder}`,
16
+ },
17
+ }, {
18
+ headers: {
19
+ authorization: `Bearer ${token}`,
20
+ },
21
+ });
22
+ if (!filesContentResponse.data.data.repository?.object?.entries) {
23
+ return [];
24
+ }
25
+ return createEntriesFromBlobsQueryResponseData(filesContentResponse.data.data.repository.object.entries);
26
+ };
27
+ export const getSchema = async (gitRepositoryOptions, axiosCacheInstance, commitHash) => {
28
+ const repositoryOwner = gitRepositoryOptions.repositoryOwner;
29
+ const repositoryName = gitRepositoryOptions.repositoryName;
30
+ const token = gitRepositoryOptions.accessToken;
31
+ const schemaFilePath = getPathSchema(gitRepositoryOptions);
32
+ const queryContent = createBlobContentQuery();
33
+ const response = await axiosCacheInstance.post(API_URL, {
34
+ query: queryContent,
35
+ variables: {
36
+ repositoryOwner: repositoryOwner,
37
+ repositoryName: repositoryName,
38
+ expression: `${commitHash}:${schemaFilePath}`,
39
+ },
40
+ }, {
41
+ headers: {
42
+ authorization: `Bearer ${token}`,
43
+ },
44
+ });
45
+ const schema = response.data?.data?.repository?.object?.text;
46
+ if (!schema) {
47
+ throw new Error(`"${schemaFilePath}" not found in Git repository "${repositoryOwner}/${repositoryName}" at commit "${commitHash}"`);
48
+ }
49
+ return schema;
50
+ };
51
+ export const getLatestCommitHash = async (gitRepositoryOptions, axiosCacheInstance, ref) => {
52
+ const token = gitRepositoryOptions.accessToken;
53
+ const queryLatestCommit = createLatestCommitQuery();
54
+ const response = await axiosCacheInstance.post(API_URL, {
55
+ query: queryLatestCommit,
56
+ variables: {
57
+ repositoryOwner: gitRepositoryOptions.repositoryOwner,
58
+ repositoryName: gitRepositoryOptions.repositoryName,
59
+ ref: ref,
60
+ },
61
+ }, {
62
+ cache: false, // must not use cache, so we always get the branch's current head
63
+ headers: {
64
+ authorization: `Bearer ${token}`,
65
+ },
66
+ });
67
+ if (!response.data.data.repository) {
68
+ throw new Error(`No repository found "${gitRepositoryOptions.repositoryOwner}/${gitRepositoryOptions.repositoryName}"`);
69
+ }
70
+ const lastCommit = response.data.data.repository.ref?.target?.oid ??
71
+ response.data.data.repository.object?.oid ??
72
+ undefined;
73
+ if (!lastCommit) {
74
+ throw new Error(`No commit found for ref "${ref}"`);
75
+ }
76
+ return lastCommit;
77
+ };
78
+ export const createCommit = async (gitRepositoryOptions, axiosCacheInstance, commitDraft) => {
79
+ const token = gitRepositoryOptions.accessToken;
80
+ const pathEntryFolder = getPathEntryFolder(gitRepositoryOptions);
81
+ const { additions, deletions } = convertEntriesToActions(commitDraft.entries, pathEntryFolder);
82
+ const mutateCommit = createCommitMutation();
83
+ const response = await axiosCacheInstance.post(API_URL, {
84
+ query: mutateCommit,
85
+ variables: {
86
+ repositoryNameWithOwner: `${gitRepositoryOptions.repositoryOwner}/${gitRepositoryOptions.repositoryName}`,
87
+ branchName: commitDraft.ref,
88
+ commitMessage: commitDraft.message ?? '-',
89
+ precedingCommitSha: commitDraft.parentSha,
90
+ additions: additions,
91
+ deletions: deletions,
92
+ },
93
+ }, {
94
+ cache: false,
95
+ headers: {
96
+ authorization: `Bearer ${token}`,
97
+ },
98
+ });
99
+ if (response.data.errors) {
100
+ throw new Error(JSON.stringify(response.data.errors));
101
+ }
102
+ const mutationResult = response.data.data.commitCreate;
103
+ if (mutationResult.errors) {
104
+ throw new Error(JSON.stringify(mutationResult.errors));
105
+ }
106
+ return { ref: mutationResult.commit.oid };
107
+ };
108
+ //# sourceMappingURL=github-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-adapter.js","sourceRoot":"","sources":["../../src/github-adapter.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,6 +1,12 @@
1
- import { gitHubAdapterService } from './container';
2
- export { GitHubAdapterService } from './git-hub-adapter.service';
3
- export function createAdapter() {
4
- return gitHubAdapterService;
1
+ import { createAxiosCachedInstance } from './axios/cached-instance';
2
+ import { createCommit, getEntries, getLatestCommitHash, getSchema, } from './github-adapter';
3
+ export function createAdapter(gitRepositoryOptions) {
4
+ const axiosCacheInstance = createAxiosCachedInstance();
5
+ return {
6
+ getEntries: (commitHash) => getEntries(gitRepositoryOptions, axiosCacheInstance, commitHash),
7
+ getSchema: (commitHash) => getSchema(gitRepositoryOptions, axiosCacheInstance, commitHash),
8
+ getLatestCommitHash: (ref) => getLatestCommitHash(gitRepositoryOptions, axiosCacheInstance, ref),
9
+ createCommit: (commitDraft) => createCommit(gitRepositoryOptions, axiosCacheInstance, commitDraft),
10
+ };
5
11
  }
6
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAUhE,MAAM,UAAU,aAAa;IAC3B,OAAO,oBAAoB,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,MAAM,kBAAkB,CAAA;AAUzB,MAAM,UAAU,aAAa,CAC3B,oBAA6C;IAE7C,MAAM,kBAAkB,GAAG,yBAAyB,EAAE,CAAA;IAEtD,OAAO;QACL,UAAU,EAAE,CAAC,UAAkB,EAAE,EAAE,CACjC,UAAU,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;QAClE,SAAS,EAAE,CAAC,UAAkB,EAAE,EAAE,CAChC,SAAS,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;QACjE,mBAAmB,EAAE,CAAC,GAAW,EAAE,EAAE,CACnC,mBAAmB,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,CAAC;QACpE,YAAY,EAAE,CAAC,WAAwB,EAAE,EAAE,CACzC,YAAY,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC;KACtE,CAAA;AACH,CAAC"}