@commitspark/git-adapter-github 0.8.3 → 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.
- package/CHANGELOG.md +11 -0
- package/README.md +24 -2
- package/dist/cjs/{axios-cache-key-generator.js → axios/cache-key-generator.js} +4 -4
- package/dist/cjs/axios/cache-key-generator.js.map +1 -0
- package/dist/cjs/axios/cached-instance.js +19 -0
- package/dist/cjs/axios/cached-instance.js.map +1 -0
- package/dist/cjs/github-adapter.js +126 -0
- package/dist/cjs/github-adapter.js.map +1 -0
- package/dist/cjs/index.js +10 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/model/addition.model.js.map +1 -0
- package/dist/cjs/model/deletion.model.js.map +1 -0
- package/dist/cjs/util/entries-to-actions-converter.js +28 -0
- package/dist/cjs/util/entries-to-actions-converter.js.map +1 -0
- package/dist/cjs/util/entry-factory.js +20 -0
- package/dist/cjs/util/entry-factory.js.map +1 -0
- package/dist/cjs/{graphql-query-factory.service.js → util/graphql-query-factory.js} +16 -16
- package/dist/cjs/util/graphql-query-factory.js.map +1 -0
- package/dist/cjs/util/path-factory.js +18 -0
- package/dist/cjs/util/path-factory.js.map +1 -0
- package/dist/cjs/util/types.js +7 -0
- package/dist/cjs/util/types.js.map +1 -0
- package/dist/esm/{axios-cache-key-generator.js → axios/cache-key-generator.js} +2 -3
- package/dist/esm/axios/cache-key-generator.js.map +1 -0
- package/dist/esm/axios/cached-instance.js +12 -0
- package/dist/esm/axios/cached-instance.js.map +1 -0
- package/dist/esm/github-adapter.js +108 -0
- package/dist/esm/github-adapter.js.map +1 -0
- package/dist/esm/index.js +10 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/model/addition.model.js.map +1 -0
- package/dist/esm/model/deletion.model.js.map +1 -0
- package/dist/esm/util/entries-to-actions-converter.js +25 -0
- package/dist/esm/util/entries-to-actions-converter.js.map +1 -0
- package/dist/esm/util/entry-factory.js +17 -0
- package/dist/esm/util/entry-factory.js.map +1 -0
- package/{src/graphql-query-factory.service.ts → dist/esm/util/graphql-query-factory.js} +12 -16
- package/dist/esm/util/graphql-query-factory.js.map +1 -0
- package/dist/esm/util/path-factory.js +12 -0
- package/dist/esm/util/path-factory.js.map +1 -0
- package/dist/esm/util/types.js +4 -0
- package/dist/esm/util/types.js.map +1 -0
- package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.build.types.tsbuildinfo +1 -1
- package/dist/types/axios/cache-key-generator.d.ts +3 -0
- package/dist/types/axios/cache-key-generator.d.ts.map +1 -0
- package/dist/types/axios/cached-instance.d.ts +4 -0
- package/dist/types/axios/cached-instance.d.ts.map +1 -0
- package/dist/types/github-adapter.d.ts +9 -0
- package/dist/types/github-adapter.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model/addition.model.d.ts.map +1 -0
- package/dist/types/model/deletion.model.d.ts.map +1 -0
- package/dist/types/util/entries-to-actions-converter.d.ts +8 -0
- package/dist/types/util/entries-to-actions-converter.d.ts.map +1 -0
- package/dist/types/{entry-factory.service.d.ts → util/entry-factory.d.ts} +2 -4
- package/dist/types/util/entry-factory.d.ts.map +1 -0
- package/dist/types/util/graphql-query-factory.d.ts +5 -0
- package/dist/types/util/graphql-query-factory.d.ts.map +1 -0
- package/dist/types/util/path-factory.d.ts +4 -0
- package/dist/types/util/path-factory.d.ts.map +1 -0
- package/dist/types/util/types.d.ts +4 -0
- package/dist/types/util/types.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/{axios-cache-key-generator.ts → axios/cache-key-generator.ts} +1 -3
- package/src/axios/cached-instance.ts +17 -0
- package/src/github-adapter.ts +179 -0
- package/src/index.ts +24 -7
- package/src/util/entries-to-actions-converter.ts +36 -0
- package/src/util/entry-factory.ts +34 -0
- package/{dist/esm/graphql-query-factory.service.js → src/util/graphql-query-factory.ts} +18 -18
- package/src/util/path-factory.ts +19 -0
- package/src/util/types.ts +3 -0
- package/dist/cjs/addition.model.js.map +0 -1
- package/dist/cjs/axios-cache-key-generator.js.map +0 -1
- package/dist/cjs/container.js +0 -25
- package/dist/cjs/container.js.map +0 -1
- package/dist/cjs/deletion.model.js.map +0 -1
- package/dist/cjs/entries-to-actions-converter.service.js +0 -31
- package/dist/cjs/entries-to-actions-converter.service.js.map +0 -1
- package/dist/cjs/entry-factory.service.js +0 -25
- package/dist/cjs/entry-factory.service.js.map +0 -1
- package/dist/cjs/git-hub-adapter.service.js +0 -154
- package/dist/cjs/git-hub-adapter.service.js.map +0 -1
- package/dist/cjs/graphql-query-factory.service.js.map +0 -1
- package/dist/cjs/path-factory.service.js +0 -20
- package/dist/cjs/path-factory.service.js.map +0 -1
- package/dist/esm/addition.model.js.map +0 -1
- package/dist/esm/axios-cache-key-generator.js.map +0 -1
- package/dist/esm/container.js +0 -19
- package/dist/esm/container.js.map +0 -1
- package/dist/esm/deletion.model.js.map +0 -1
- package/dist/esm/entries-to-actions-converter.service.js +0 -27
- package/dist/esm/entries-to-actions-converter.service.js.map +0 -1
- package/dist/esm/entry-factory.service.js +0 -21
- package/dist/esm/entry-factory.service.js.map +0 -1
- package/dist/esm/git-hub-adapter.service.js +0 -135
- package/dist/esm/git-hub-adapter.service.js.map +0 -1
- package/dist/esm/graphql-query-factory.service.js.map +0 -1
- package/dist/esm/path-factory.service.js +0 -14
- package/dist/esm/path-factory.service.js.map +0 -1
- package/dist/types/addition.model.d.ts.map +0 -1
- package/dist/types/axios-cache-key-generator.d.ts +0 -4
- package/dist/types/axios-cache-key-generator.d.ts.map +0 -1
- package/dist/types/container.d.ts +0 -3
- package/dist/types/container.d.ts.map +0 -1
- package/dist/types/deletion.model.d.ts.map +0 -1
- package/dist/types/entries-to-actions-converter.service.d.ts +0 -10
- package/dist/types/entries-to-actions-converter.service.d.ts.map +0 -1
- package/dist/types/entry-factory.service.d.ts.map +0 -1
- package/dist/types/git-hub-adapter.service.d.ts +0 -24
- package/dist/types/git-hub-adapter.service.d.ts.map +0 -1
- package/dist/types/graphql-query-factory.service.d.ts +0 -7
- package/dist/types/graphql-query-factory.service.d.ts.map +0 -1
- package/dist/types/path-factory.service.d.ts +0 -6
- package/dist/types/path-factory.service.d.ts.map +0 -1
- package/src/container.ts +0 -27
- package/src/entries-to-actions-converter.service.ts +0 -37
- package/src/entry-factory.service.ts +0 -35
- package/src/git-hub-adapter.service.ts +0 -205
- package/src/path-factory.service.ts +0 -21
- /package/dist/cjs/{addition.model.js → model/addition.model.js} +0 -0
- /package/dist/cjs/{deletion.model.js → model/deletion.model.js} +0 -0
- /package/dist/esm/{addition.model.js → model/addition.model.js} +0 -0
- /package/dist/esm/{deletion.model.js → model/deletion.model.js} +0 -0
- /package/dist/types/{addition.model.d.ts → model/addition.model.d.ts} +0 -0
- /package/dist/types/{deletion.model.d.ts → model/deletion.model.d.ts} +0 -0
- /package/src/{addition.model.ts → model/addition.model.ts} +0 -0
- /package/src/{deletion.model.ts → model/deletion.model.ts} +0 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { AxiosCacheInstance, CacheAxiosResponse } from 'axios-cache-interceptor'
|
|
2
|
+
import { Commit, CommitDraft, Entry } from '@commitspark/git-adapter'
|
|
3
|
+
import { GitHubRepositoryOptions } from './index'
|
|
4
|
+
import {
|
|
5
|
+
createBlobContentQuery,
|
|
6
|
+
createBlobsContentQuery,
|
|
7
|
+
createCommitMutation,
|
|
8
|
+
createLatestCommitQuery,
|
|
9
|
+
} from './util/graphql-query-factory'
|
|
10
|
+
import { convertEntriesToActions } from './util/entries-to-actions-converter'
|
|
11
|
+
import { getPathEntryFolder, getPathSchema } from './util/path-factory'
|
|
12
|
+
import { createEntriesFromBlobsQueryResponseData } from './util/entry-factory'
|
|
13
|
+
|
|
14
|
+
export const API_URL = 'https://api.github.com/graphql'
|
|
15
|
+
|
|
16
|
+
export const getEntries = async (
|
|
17
|
+
gitRepositoryOptions: GitHubRepositoryOptions,
|
|
18
|
+
axiosCacheInstance: AxiosCacheInstance,
|
|
19
|
+
commitHash: string,
|
|
20
|
+
): Promise<Entry[]> => {
|
|
21
|
+
const token = gitRepositoryOptions.accessToken
|
|
22
|
+
const pathEntryFolder = getPathEntryFolder(gitRepositoryOptions)
|
|
23
|
+
|
|
24
|
+
const queryFilesContent = createBlobsContentQuery()
|
|
25
|
+
const filesContentResponse = await axiosCacheInstance.post(
|
|
26
|
+
API_URL,
|
|
27
|
+
{
|
|
28
|
+
query: queryFilesContent,
|
|
29
|
+
variables: {
|
|
30
|
+
repositoryOwner: gitRepositoryOptions.repositoryOwner,
|
|
31
|
+
repositoryName: gitRepositoryOptions.repositoryName,
|
|
32
|
+
expression: `${commitHash}:${pathEntryFolder}`,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
headers: {
|
|
37
|
+
authorization: `Bearer ${token}`,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
if (!filesContentResponse.data.data.repository?.object?.entries) {
|
|
43
|
+
return []
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return createEntriesFromBlobsQueryResponseData(
|
|
47
|
+
filesContentResponse.data.data.repository.object.entries,
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const getSchema = async (
|
|
52
|
+
gitRepositoryOptions: GitHubRepositoryOptions,
|
|
53
|
+
axiosCacheInstance: AxiosCacheInstance,
|
|
54
|
+
commitHash: string,
|
|
55
|
+
): Promise<string> => {
|
|
56
|
+
const repositoryOwner = gitRepositoryOptions.repositoryOwner
|
|
57
|
+
const repositoryName = gitRepositoryOptions.repositoryName
|
|
58
|
+
const token = gitRepositoryOptions.accessToken
|
|
59
|
+
const schemaFilePath = getPathSchema(gitRepositoryOptions)
|
|
60
|
+
|
|
61
|
+
const queryContent = createBlobContentQuery()
|
|
62
|
+
const response = await axiosCacheInstance.post(
|
|
63
|
+
API_URL,
|
|
64
|
+
{
|
|
65
|
+
query: queryContent,
|
|
66
|
+
variables: {
|
|
67
|
+
repositoryOwner: repositoryOwner,
|
|
68
|
+
repositoryName: repositoryName,
|
|
69
|
+
expression: `${commitHash}:${schemaFilePath}`,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
headers: {
|
|
74
|
+
authorization: `Bearer ${token}`,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
)
|
|
78
|
+
const schema = response.data?.data?.repository?.object?.text
|
|
79
|
+
|
|
80
|
+
if (!schema) {
|
|
81
|
+
throw new Error(
|
|
82
|
+
`"${schemaFilePath}" not found in Git repository "${repositoryOwner}/${repositoryName}" at commit "${commitHash}"`,
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return schema
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const getLatestCommitHash = async (
|
|
90
|
+
gitRepositoryOptions: GitHubRepositoryOptions,
|
|
91
|
+
axiosCacheInstance: AxiosCacheInstance,
|
|
92
|
+
ref: string,
|
|
93
|
+
): Promise<string> => {
|
|
94
|
+
const token = gitRepositoryOptions.accessToken
|
|
95
|
+
|
|
96
|
+
const queryLatestCommit = createLatestCommitQuery()
|
|
97
|
+
|
|
98
|
+
const response = await axiosCacheInstance.post(
|
|
99
|
+
API_URL,
|
|
100
|
+
{
|
|
101
|
+
query: queryLatestCommit,
|
|
102
|
+
variables: {
|
|
103
|
+
repositoryOwner: gitRepositoryOptions.repositoryOwner,
|
|
104
|
+
repositoryName: gitRepositoryOptions.repositoryName,
|
|
105
|
+
ref: ref,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
cache: false, // must not use cache, so we always get the branch's current head
|
|
110
|
+
headers: {
|
|
111
|
+
authorization: `Bearer ${token}`,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
if (!response.data.data.repository) {
|
|
117
|
+
throw new Error(
|
|
118
|
+
`No repository found "${gitRepositoryOptions.repositoryOwner}/${gitRepositoryOptions.repositoryName}"`,
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const lastCommit =
|
|
123
|
+
response.data.data.repository.ref?.target?.oid ??
|
|
124
|
+
response.data.data.repository.object?.oid ??
|
|
125
|
+
undefined
|
|
126
|
+
if (!lastCommit) {
|
|
127
|
+
throw new Error(`No commit found for ref "${ref}"`)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return lastCommit
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export const createCommit = async (
|
|
134
|
+
gitRepositoryOptions: GitHubRepositoryOptions,
|
|
135
|
+
axiosCacheInstance: AxiosCacheInstance,
|
|
136
|
+
commitDraft: CommitDraft,
|
|
137
|
+
): Promise<Commit> => {
|
|
138
|
+
const token = gitRepositoryOptions.accessToken
|
|
139
|
+
const pathEntryFolder = getPathEntryFolder(gitRepositoryOptions)
|
|
140
|
+
|
|
141
|
+
const { additions, deletions } = convertEntriesToActions(
|
|
142
|
+
commitDraft.entries,
|
|
143
|
+
pathEntryFolder,
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
const mutateCommit = createCommitMutation()
|
|
147
|
+
const response: CacheAxiosResponse = await axiosCacheInstance.post(
|
|
148
|
+
API_URL,
|
|
149
|
+
{
|
|
150
|
+
query: mutateCommit,
|
|
151
|
+
variables: {
|
|
152
|
+
repositoryNameWithOwner: `${gitRepositoryOptions.repositoryOwner}/${gitRepositoryOptions.repositoryName}`,
|
|
153
|
+
branchName: commitDraft.ref,
|
|
154
|
+
commitMessage: commitDraft.message ?? '-',
|
|
155
|
+
precedingCommitSha: commitDraft.parentSha,
|
|
156
|
+
additions: additions,
|
|
157
|
+
deletions: deletions,
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
cache: false,
|
|
162
|
+
headers: {
|
|
163
|
+
authorization: `Bearer ${token}`,
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
if (response.data.errors) {
|
|
169
|
+
throw new Error(JSON.stringify(response.data.errors))
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const mutationResult = response.data.data.commitCreate
|
|
173
|
+
|
|
174
|
+
if (mutationResult.errors) {
|
|
175
|
+
throw new Error(JSON.stringify(mutationResult.errors))
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return { ref: mutationResult.commit.oid }
|
|
179
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { GitAdapter,
|
|
2
|
-
import {
|
|
1
|
+
import { GitAdapter, CommitDraft } from '@commitspark/git-adapter'
|
|
2
|
+
import { createAxiosCachedInstance } from './axios/cached-instance'
|
|
3
|
+
import {
|
|
4
|
+
createCommit,
|
|
5
|
+
getEntries,
|
|
6
|
+
getLatestCommitHash,
|
|
7
|
+
getSchema,
|
|
8
|
+
} from './github-adapter'
|
|
3
9
|
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
export interface GitHubRepositoryOptions extends GitRepositoryOptions {
|
|
10
|
+
export interface GitHubRepositoryOptions {
|
|
7
11
|
repositoryOwner: string
|
|
8
12
|
repositoryName: string
|
|
9
13
|
accessToken: string
|
|
@@ -11,6 +15,19 @@ export interface GitHubRepositoryOptions extends GitRepositoryOptions {
|
|
|
11
15
|
pathEntryFolder?: string
|
|
12
16
|
}
|
|
13
17
|
|
|
14
|
-
export function createAdapter(
|
|
15
|
-
|
|
18
|
+
export function createAdapter(
|
|
19
|
+
gitRepositoryOptions: GitHubRepositoryOptions,
|
|
20
|
+
): GitAdapter {
|
|
21
|
+
const axiosCacheInstance = createAxiosCachedInstance()
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
getEntries: (commitHash: string) =>
|
|
25
|
+
getEntries(gitRepositoryOptions, axiosCacheInstance, commitHash),
|
|
26
|
+
getSchema: (commitHash: string) =>
|
|
27
|
+
getSchema(gitRepositoryOptions, axiosCacheInstance, commitHash),
|
|
28
|
+
getLatestCommitHash: (ref: string) =>
|
|
29
|
+
getLatestCommitHash(gitRepositoryOptions, axiosCacheInstance, ref),
|
|
30
|
+
createCommit: (commitDraft: CommitDraft) =>
|
|
31
|
+
createCommit(gitRepositoryOptions, axiosCacheInstance, commitDraft),
|
|
32
|
+
}
|
|
16
33
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EntryDraft } from '@commitspark/git-adapter'
|
|
2
|
+
import { stringify } from 'yaml'
|
|
3
|
+
import { AdditionModel } from '../model/addition.model'
|
|
4
|
+
import { DeletionModel } from '../model/deletion.model'
|
|
5
|
+
import { ENTRY_EXTENSION } from './types'
|
|
6
|
+
|
|
7
|
+
export function convertEntriesToActions(
|
|
8
|
+
entryDrafts: EntryDraft[],
|
|
9
|
+
pathEntryFolder: string,
|
|
10
|
+
): {
|
|
11
|
+
additions: AdditionModel[]
|
|
12
|
+
deletions: DeletionModel[]
|
|
13
|
+
} {
|
|
14
|
+
const additions: AdditionModel[] = []
|
|
15
|
+
const deletions: DeletionModel[] = []
|
|
16
|
+
entryDrafts.forEach((entryDraft) => {
|
|
17
|
+
const entryPath = `${pathEntryFolder}/${entryDraft.id}${ENTRY_EXTENSION}`
|
|
18
|
+
if (entryDraft.deletion) {
|
|
19
|
+
deletions.push(new DeletionModel(entryPath))
|
|
20
|
+
} else {
|
|
21
|
+
additions.push(
|
|
22
|
+
new AdditionModel(
|
|
23
|
+
entryPath,
|
|
24
|
+
stringify({
|
|
25
|
+
metadata: entryDraft.metadata,
|
|
26
|
+
data: entryDraft.data,
|
|
27
|
+
}),
|
|
28
|
+
),
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
return {
|
|
33
|
+
additions,
|
|
34
|
+
deletions,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { parse } from 'yaml'
|
|
2
|
+
import { Entry } from '@commitspark/git-adapter'
|
|
3
|
+
import { ENTRY_EXTENSION } from './types'
|
|
4
|
+
|
|
5
|
+
interface TreeEntry {
|
|
6
|
+
name: string
|
|
7
|
+
object: {
|
|
8
|
+
__typename: string
|
|
9
|
+
text: string
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function createEntriesFromBlobsQueryResponseData(
|
|
14
|
+
entries: TreeEntry[],
|
|
15
|
+
): Entry[] {
|
|
16
|
+
return entries
|
|
17
|
+
.filter(
|
|
18
|
+
(entry: TreeEntry) =>
|
|
19
|
+
entry.name.endsWith(ENTRY_EXTENSION) &&
|
|
20
|
+
entry.object['__typename'] === 'Blob',
|
|
21
|
+
)
|
|
22
|
+
.map((entry: TreeEntry) => {
|
|
23
|
+
const fileContent = parse(entry.object.text)
|
|
24
|
+
const id = entry.name.substring(
|
|
25
|
+
0,
|
|
26
|
+
entry.name.length - ENTRY_EXTENSION.length,
|
|
27
|
+
)
|
|
28
|
+
return {
|
|
29
|
+
id: id,
|
|
30
|
+
metadata: fileContent.metadata,
|
|
31
|
+
data: fileContent.data,
|
|
32
|
+
} as Entry
|
|
33
|
+
})
|
|
34
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
return `
|
|
1
|
+
export function createBlobsContentQuery(): string {
|
|
2
|
+
return `
|
|
4
3
|
query ($repositoryOwner: String!, $repositoryName: String!, $expression: String!) {
|
|
5
4
|
repository(owner: $repositoryOwner, name: $repositoryName) {
|
|
6
5
|
object(expression: $expression) {
|
|
@@ -18,10 +17,11 @@ export class GraphqlQueryFactoryService {
|
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
`
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function createBlobContentQuery(): string {
|
|
24
|
+
return `
|
|
25
25
|
query ($repositoryOwner: String!, $repositoryName: String!, $expression: String!) {
|
|
26
26
|
repository(owner: $repositoryOwner, name: $repositoryName) {
|
|
27
27
|
object(expression: $expression) {
|
|
@@ -31,10 +31,11 @@ export class GraphqlQueryFactoryService {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
`
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function createCommitMutation(): string {
|
|
38
|
+
return `
|
|
38
39
|
mutation (
|
|
39
40
|
$repositoryNameWithOwner: String!,
|
|
40
41
|
$branchName: String!,
|
|
@@ -63,10 +64,11 @@ export class GraphqlQueryFactoryService {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
`
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function createLatestCommitQuery(): string {
|
|
71
|
+
return `
|
|
70
72
|
query ($repositoryOwner: String!, $repositoryName: String!, $ref: String!) {
|
|
71
73
|
repository(owner: $repositoryOwner, name: $repositoryName) {
|
|
72
74
|
ref(qualifiedName: $ref) {
|
|
@@ -79,7 +81,5 @@ export class GraphqlQueryFactoryService {
|
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
+
`
|
|
84
85
|
}
|
|
85
|
-
//# sourceMappingURL=graphql-query-factory.service.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GitHubRepositoryOptions } from '../index'
|
|
2
|
+
import { PATH_ENTRY_FOLDER, PATH_SCHEMA_FILE } from './types'
|
|
3
|
+
|
|
4
|
+
export function getPathSchema(gitRepositoryOptions: GitHubRepositoryOptions) {
|
|
5
|
+
return gitRepositoryOptions.pathSchemaFile ?? PATH_SCHEMA_FILE
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function getPathEntryFolder(
|
|
9
|
+
gitRepositoryOptions: GitHubRepositoryOptions,
|
|
10
|
+
): string {
|
|
11
|
+
const pathEntryFolder =
|
|
12
|
+
gitRepositoryOptions.pathEntryFolder ?? PATH_ENTRY_FOLDER
|
|
13
|
+
|
|
14
|
+
if (pathEntryFolder.endsWith('/')) {
|
|
15
|
+
return pathEntryFolder.substring(0, pathEntryFolder.length - 1)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return pathEntryFolder
|
|
19
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addition.model.js","sourceRoot":"","sources":["../../src/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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"axios-cache-key-generator.js","sourceRoot":"","sources":["../../src/axios-cache-key-generator.ts"],"names":[],"mappings":";;;AAEA,MAAM,sBAAsB,GAAG,CAC7B,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;AAEQ,wDAAsB"}
|
package/dist/cjs/container.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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.gitHubAdapterService = void 0;
|
|
7
|
-
const entries_to_actions_converter_service_1 = require("./entries-to-actions-converter.service");
|
|
8
|
-
const git_hub_adapter_service_1 = require("./git-hub-adapter.service");
|
|
9
|
-
const graphql_query_factory_service_1 = require("./graphql-query-factory.service");
|
|
10
|
-
const axios_1 = __importDefault(require("axios"));
|
|
11
|
-
const axios_cache_interceptor_1 = require("axios-cache-interceptor");
|
|
12
|
-
const path_factory_service_1 = require("./path-factory.service");
|
|
13
|
-
const entry_factory_service_1 = require("./entry-factory.service");
|
|
14
|
-
const axios_cache_key_generator_1 = require("./axios-cache-key-generator");
|
|
15
|
-
const cachedHttpAdapter = (0, axios_cache_interceptor_1.setupCache)(axios_1.default.create(), {
|
|
16
|
-
ttl: git_hub_adapter_service_1.GitHubAdapterService.QUERY_CACHE_SECONDS * 1000, // milliseconds
|
|
17
|
-
methods: ['get', 'post'],
|
|
18
|
-
generateKey: (0, axios_cache_interceptor_1.buildKeyGenerator)(axios_cache_key_generator_1.axiosCacheKeyGenerator),
|
|
19
|
-
});
|
|
20
|
-
const graphqlQueryFactoryService = new graphql_query_factory_service_1.GraphqlQueryFactoryService();
|
|
21
|
-
const entriesToActionsConverterService = new entries_to_actions_converter_service_1.EntriesToActionsConverterService();
|
|
22
|
-
const pathFactoryService = new path_factory_service_1.PathFactoryService();
|
|
23
|
-
const entryFactoryService = new entry_factory_service_1.EntryFactoryService();
|
|
24
|
-
exports.gitHubAdapterService = new git_hub_adapter_service_1.GitHubAdapterService(cachedHttpAdapter, graphqlQueryFactoryService, entriesToActionsConverterService, pathFactoryService, entryFactoryService);
|
|
25
|
-
//# sourceMappingURL=container.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/container.ts"],"names":[],"mappings":";;;;;;AAAA,iGAAyF;AACzF,uEAAgE;AAChE,mFAA4E;AAC5E,kDAAyB;AACzB,qEAAuE;AACvE,iEAA2D;AAC3D,mEAA6D;AAC7D,2EAAoE;AAEpE,MAAM,iBAAiB,GAAG,IAAA,oCAAU,EAAC,eAAK,CAAC,MAAM,EAAE,EAAE;IACnD,GAAG,EAAE,8CAAoB,CAAC,mBAAmB,GAAG,IAAI,EAAE,eAAe;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAA,2CAAiB,EAAC,kDAAsB,CAAC;CACvD,CAAC,CAAA;AAEF,MAAM,0BAA0B,GAAG,IAAI,0DAA0B,EAAE,CAAA;AACnE,MAAM,gCAAgC,GAAG,IAAI,uEAAgC,EAAE,CAAA;AAC/E,MAAM,kBAAkB,GAAG,IAAI,yCAAkB,EAAE,CAAA;AACnD,MAAM,mBAAmB,GAAG,IAAI,2CAAmB,EAAE,CAAA;AAExC,QAAA,oBAAoB,GAAG,IAAI,8CAAoB,CAC1D,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,EAClB,mBAAmB,CACpB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deletion.model.js","sourceRoot":"","sources":["../../src/deletion.model.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IACxB,YAAqB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACtC;AAFD,sCAEC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntriesToActionsConverterService = void 0;
|
|
4
|
-
const git_adapter_1 = require("@commitspark/git-adapter");
|
|
5
|
-
const yaml_1 = require("yaml");
|
|
6
|
-
const addition_model_1 = require("./addition.model");
|
|
7
|
-
const deletion_model_1 = require("./deletion.model");
|
|
8
|
-
class EntriesToActionsConverterService {
|
|
9
|
-
convert(entryDrafts, pathEntryFolder) {
|
|
10
|
-
const additions = [];
|
|
11
|
-
const deletions = [];
|
|
12
|
-
entryDrafts.forEach((entryDraft) => {
|
|
13
|
-
const entryPath = `${pathEntryFolder}/${entryDraft.id}${git_adapter_1.ENTRY_EXTENSION}`;
|
|
14
|
-
if (entryDraft.deletion) {
|
|
15
|
-
deletions.push(new deletion_model_1.DeletionModel(entryPath));
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
additions.push(new addition_model_1.AdditionModel(entryPath, (0, yaml_1.stringify)({
|
|
19
|
-
metadata: entryDraft.metadata,
|
|
20
|
-
data: entryDraft.data,
|
|
21
|
-
})));
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
return {
|
|
25
|
-
additions,
|
|
26
|
-
deletions,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.EntriesToActionsConverterService = EntriesToActionsConverterService;
|
|
31
|
-
//# sourceMappingURL=entries-to-actions-converter.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entries-to-actions-converter.service.js","sourceRoot":"","sources":["../../src/entries-to-actions-converter.service.ts"],"names":[],"mappings":";;;AAAA,0DAAsE;AACtE,+BAAgC;AAChC,qDAAgD;AAChD,qDAAgD;AAEhD,MAAa,gCAAgC;IAC3C,OAAO,CACL,WAAyB,EACzB,eAAuB;QAKvB,MAAM,SAAS,GAAoB,EAAE,CAAA;QACrC,MAAM,SAAS,GAAoB,EAAE,CAAA;QACrC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,GAAG,eAAe,IAAI,UAAU,CAAC,EAAE,GAAG,6BAAe,EAAE,CAAA;YACzE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CACZ,IAAI,8BAAa,CACf,SAAS,EACT,IAAA,gBAAS,EAAC;oBACR,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;iBACtB,CAAC,CACH,CACF,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO;YACL,SAAS;YACT,SAAS;SACV,CAAA;IACH,CAAC;CACF;AA/BD,4EA+BC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntryFactoryService = void 0;
|
|
4
|
-
const yaml_1 = require("yaml");
|
|
5
|
-
const git_adapter_1 = require("@commitspark/git-adapter");
|
|
6
|
-
class EntryFactoryService {
|
|
7
|
-
createFromBlobsQueryResponseData(entries) {
|
|
8
|
-
{
|
|
9
|
-
return entries
|
|
10
|
-
.filter((entry) => entry.name.endsWith(git_adapter_1.ENTRY_EXTENSION) &&
|
|
11
|
-
entry.object['__typename'] === 'Blob')
|
|
12
|
-
.map((entry) => {
|
|
13
|
-
const fileContent = (0, yaml_1.parse)(entry.object.text);
|
|
14
|
-
const id = entry.name.substring(0, entry.name.length - git_adapter_1.ENTRY_EXTENSION.length);
|
|
15
|
-
return {
|
|
16
|
-
id: id,
|
|
17
|
-
metadata: fileContent.metadata,
|
|
18
|
-
data: fileContent.data,
|
|
19
|
-
};
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.EntryFactoryService = EntryFactoryService;
|
|
25
|
-
//# sourceMappingURL=entry-factory.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry-factory.service.js","sourceRoot":"","sources":["../../src/entry-factory.service.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,0DAAiE;AAUjE,MAAa,mBAAmB;IACvB,gCAAgC,CAAC,OAAoB;QAC1D,CAAC;YACC,OAAO,OAAO;iBACX,MAAM,CACL,CAAC,KAAgB,EAAE,EAAE,CACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,6BAAe,CAAC;gBACpC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,MAAM,CACxC;iBACA,GAAG,CAAC,CAAC,KAAgB,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG,IAAA,YAAK,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAC7B,CAAC,EACD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,6BAAe,CAAC,MAAM,CAC3C,CAAA;gBACD,OAAO;oBACL,EAAE,EAAE,EAAE;oBACN,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;iBACd,CAAA;YACZ,CAAC,CAAC,CAAA;QACN,CAAC;IACH,CAAC;CACF;AAvBD,kDAuBC"}
|
|
@@ -1,154 +0,0 @@
|
|
|
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.GitHubAdapterService = void 0;
|
|
13
|
-
class GitHubAdapterService {
|
|
14
|
-
constructor(cachedHttpAdapter, graphqlQueryFactory, entriesToActionsConverter, pathFactory, entryFactory) {
|
|
15
|
-
this.cachedHttpAdapter = cachedHttpAdapter;
|
|
16
|
-
this.graphqlQueryFactory = graphqlQueryFactory;
|
|
17
|
-
this.entriesToActionsConverter = entriesToActionsConverter;
|
|
18
|
-
this.pathFactory = pathFactory;
|
|
19
|
-
this.entryFactory = entryFactory;
|
|
20
|
-
}
|
|
21
|
-
setRepositoryOptions(repositoryOptions) {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
this.gitRepositoryOptions = repositoryOptions;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
getEntries(commitHash) {
|
|
27
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
var _a, _b;
|
|
29
|
-
if (this.gitRepositoryOptions === undefined) {
|
|
30
|
-
throw new Error('Repository options must be set before reading');
|
|
31
|
-
}
|
|
32
|
-
const token = this.gitRepositoryOptions.accessToken;
|
|
33
|
-
const pathEntryFolder = this.pathFactory.getPathEntryFolder(this.gitRepositoryOptions);
|
|
34
|
-
const queryFilesContent = this.graphqlQueryFactory.createBlobsContentQuery();
|
|
35
|
-
const filesContentResponse = yield this.cachedHttpAdapter.post(GitHubAdapterService.API_URL, {
|
|
36
|
-
query: queryFilesContent,
|
|
37
|
-
variables: {
|
|
38
|
-
repositoryOwner: this.gitRepositoryOptions.repositoryOwner,
|
|
39
|
-
repositoryName: this.gitRepositoryOptions.repositoryName,
|
|
40
|
-
expression: `${commitHash}:${pathEntryFolder}`,
|
|
41
|
-
},
|
|
42
|
-
}, {
|
|
43
|
-
headers: {
|
|
44
|
-
authorization: `Bearer ${token}`,
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
if (!((_b = (_a = filesContentResponse.data.data.repository) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.entries)) {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
return this.entryFactory.createFromBlobsQueryResponseData(filesContentResponse.data.data.repository.object.entries);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
getSchema(commitHash) {
|
|
54
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
var _a, _b, _c, _d;
|
|
56
|
-
if (this.gitRepositoryOptions === undefined) {
|
|
57
|
-
throw new Error('Repository options must be set before reading');
|
|
58
|
-
}
|
|
59
|
-
const repositoryOwner = this.gitRepositoryOptions.repositoryOwner;
|
|
60
|
-
const repositoryName = this.gitRepositoryOptions.repositoryName;
|
|
61
|
-
const token = this.gitRepositoryOptions.accessToken;
|
|
62
|
-
const schemaFilePath = this.pathFactory.getPathSchema(this.gitRepositoryOptions);
|
|
63
|
-
const queryContent = this.graphqlQueryFactory.createBlobContentQuery();
|
|
64
|
-
const response = yield this.cachedHttpAdapter.post(GitHubAdapterService.API_URL, {
|
|
65
|
-
query: queryContent,
|
|
66
|
-
variables: {
|
|
67
|
-
repositoryOwner: repositoryOwner,
|
|
68
|
-
repositoryName: repositoryName,
|
|
69
|
-
expression: `${commitHash}:${schemaFilePath}`,
|
|
70
|
-
},
|
|
71
|
-
}, {
|
|
72
|
-
headers: {
|
|
73
|
-
authorization: `Bearer ${token}`,
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
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;
|
|
77
|
-
if (!schema) {
|
|
78
|
-
throw new Error(`"${schemaFilePath}" not found in Git repository "${repositoryOwner}/${repositoryName}" at commit "${commitHash}"`);
|
|
79
|
-
}
|
|
80
|
-
return schema;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
getLatestCommitHash(ref) {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
var _a, _b, _c, _d, _e;
|
|
86
|
-
if (this.gitRepositoryOptions === undefined) {
|
|
87
|
-
throw new Error('Repository options must be set before reading');
|
|
88
|
-
}
|
|
89
|
-
const token = this.gitRepositoryOptions.accessToken;
|
|
90
|
-
const queryLatestCommit = this.graphqlQueryFactory.createLatestCommitQuery();
|
|
91
|
-
const response = yield this.cachedHttpAdapter.post(GitHubAdapterService.API_URL, {
|
|
92
|
-
query: queryLatestCommit,
|
|
93
|
-
variables: {
|
|
94
|
-
repositoryOwner: this.gitRepositoryOptions.repositoryOwner,
|
|
95
|
-
repositoryName: this.gitRepositoryOptions.repositoryName,
|
|
96
|
-
ref: ref,
|
|
97
|
-
},
|
|
98
|
-
}, {
|
|
99
|
-
cache: false, // must not use cache, so we always get the branch's current head
|
|
100
|
-
headers: {
|
|
101
|
-
authorization: `Bearer ${token}`,
|
|
102
|
-
},
|
|
103
|
-
});
|
|
104
|
-
if (!response.data.data.repository) {
|
|
105
|
-
throw new Error(`No repository found "${this.gitRepositoryOptions.repositoryOwner}/${this.gitRepositoryOptions.repositoryName}"`);
|
|
106
|
-
}
|
|
107
|
-
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;
|
|
108
|
-
if (!lastCommit) {
|
|
109
|
-
throw new Error(`No commit found for ref "${ref}"`);
|
|
110
|
-
}
|
|
111
|
-
return lastCommit;
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
createCommit(commitDraft) {
|
|
115
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
-
var _a;
|
|
117
|
-
if (this.gitRepositoryOptions === undefined) {
|
|
118
|
-
throw new Error('Repository options must be set before committing');
|
|
119
|
-
}
|
|
120
|
-
const token = this.gitRepositoryOptions.accessToken;
|
|
121
|
-
const pathEntryFolder = this.pathFactory.getPathEntryFolder(this.gitRepositoryOptions);
|
|
122
|
-
const { additions, deletions } = this.entriesToActionsConverter.convert(commitDraft.entries, pathEntryFolder);
|
|
123
|
-
const mutateCommit = this.graphqlQueryFactory.createCommitMutation();
|
|
124
|
-
const response = yield this.cachedHttpAdapter.post(GitHubAdapterService.API_URL, {
|
|
125
|
-
query: mutateCommit,
|
|
126
|
-
variables: {
|
|
127
|
-
repositoryNameWithOwner: `${this.gitRepositoryOptions.repositoryOwner}/${this.gitRepositoryOptions.repositoryName}`,
|
|
128
|
-
branchName: commitDraft.ref,
|
|
129
|
-
commitMessage: (_a = commitDraft.message) !== null && _a !== void 0 ? _a : '-',
|
|
130
|
-
precedingCommitSha: commitDraft.parentSha,
|
|
131
|
-
additions: additions,
|
|
132
|
-
deletions: deletions,
|
|
133
|
-
},
|
|
134
|
-
}, {
|
|
135
|
-
cache: false,
|
|
136
|
-
headers: {
|
|
137
|
-
authorization: `Bearer ${token}`,
|
|
138
|
-
},
|
|
139
|
-
});
|
|
140
|
-
if (response.data.errors) {
|
|
141
|
-
throw new Error(JSON.stringify(response.data.errors));
|
|
142
|
-
}
|
|
143
|
-
const mutationResult = response.data.data.commitCreate;
|
|
144
|
-
if (mutationResult.errors) {
|
|
145
|
-
throw new Error(JSON.stringify(mutationResult.errors));
|
|
146
|
-
}
|
|
147
|
-
return { ref: mutationResult.commit.oid };
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
exports.GitHubAdapterService = GitHubAdapterService;
|
|
152
|
-
GitHubAdapterService.QUERY_CACHE_SECONDS = 10 * 60;
|
|
153
|
-
GitHubAdapterService.API_URL = 'https://api.github.com/graphql';
|
|
154
|
-
//# sourceMappingURL=git-hub-adapter.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-hub-adapter.service.js","sourceRoot":"","sources":["../../src/git-hub-adapter.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-query-factory.service.js","sourceRoot":"","sources":["../../src/graphql-query-factory.service.ts"],"names":[],"mappings":";;;AAAA,MAAa,0BAA0B;IAC9B,uBAAuB;QAC5B,OAAO;;;;;;;;;;;;;;;;;;KAkBN,CAAA;IACH,CAAC;IAEM,sBAAsB;QAC3B,OAAO;;;;;;;;;;KAUN,CAAA;IACH,CAAC;IAEM,oBAAoB;QACzB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BN,CAAA;IACH,CAAC;IAEM,uBAAuB;QAC5B,OAAO;;;;;;;;;;;;;KAaN,CAAA;IACH,CAAC;CACF;AAtFD,gEAsFC"}
|