github-repository-provider 7.30.20 → 7.30.23

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/README.md CHANGED
@@ -38,17 +38,15 @@ console.log(entry.name);
38
38
  * [Parameters](#parameters)
39
39
  * [commit](#commit)
40
40
  * [Parameters](#parameters-1)
41
- * [commitForSha](#commitforsha)
42
- * [Parameters](#parameters-2)
43
41
  * [entry](#entry)
44
- * [Parameters](#parameters-3)
42
+ * [Parameters](#parameters-2)
45
43
  * [removeEntries](#removeentries)
46
- * [Parameters](#parameters-4)
44
+ * [Parameters](#parameters-3)
47
45
  * [GithubOwner](#githubowner)
48
46
  * [createRepository](#createrepository)
49
- * [Parameters](#parameters-5)
47
+ * [Parameters](#parameters-4)
50
48
  * [deleteRepository](#deleterepository)
51
- * [Parameters](#parameters-6)
49
+ * [Parameters](#parameters-5)
52
50
  * [attributeMapping](#attributemapping)
53
51
  * [GithubProvider](#githubprovider)
54
52
  * [Examples](#examples)
@@ -58,16 +56,18 @@ console.log(entry.name);
58
56
  * [instanceIdentifier](#instanceidentifier)
59
57
  * [GithubPullRequest](#githubpullrequest)
60
58
  * [\_merge](#\_merge)
61
- * [Parameters](#parameters-7)
59
+ * [Parameters](#parameters-6)
62
60
  * [update](#update)
63
61
  * [validMergeMethods](#validmergemethods)
64
62
  * [list](#list)
65
- * [Parameters](#parameters-8)
63
+ * [Parameters](#parameters-7)
66
64
  * [open](#open)
67
- * [Parameters](#parameters-9)
65
+ * [Parameters](#parameters-8)
68
66
  * [GithubRepository](#githubrepository)
69
67
  * [defaultBranchName](#defaultbranchname)
70
68
  * [commits](#commits)
69
+ * [Parameters](#parameters-9)
70
+ * [commitForSha](#commitforsha)
71
71
  * [Parameters](#parameters-10)
72
72
  * [tree](#tree)
73
73
  * [Parameters](#parameters-11)
@@ -82,8 +82,10 @@ console.log(entry.name);
82
82
  * [update](#update-1)
83
83
  * [refId](#refid)
84
84
  * [Parameters](#parameters-13)
85
- * [deletePullRequest](#deletepullrequest)
85
+ * [setRefId](#setrefid)
86
86
  * [Parameters](#parameters-14)
87
+ * [deletePullRequest](#deletepullrequest)
88
+ * [Parameters](#parameters-15)
87
89
  * [initializeHooks](#initializehooks)
88
90
 
89
91
  ## GithubBranch
@@ -115,16 +117,6 @@ Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/
115
117
  * `entries` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\<ContentEntry>**
116
118
  * `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
117
119
 
118
- ### commitForSha
119
-
120
- <https://developer.github.com/v3/git/commits/#get-a-commit>
121
-
122
- #### Parameters
123
-
124
- * `sha` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
125
-
126
- Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** response
127
-
128
120
  ### entry
129
121
 
130
122
  <https://developer.github.com/v3/repos/contents/#get-repository-content>
@@ -288,6 +280,16 @@ Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/G
288
280
 
289
281
  Returns **AsyncIterator\<Commit>**
290
282
 
283
+ ### commitForSha
284
+
285
+ <https://developer.github.com/v3/git/commits/#get-a-commit>
286
+
287
+ #### Parameters
288
+
289
+ * `sha` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
290
+
291
+ Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** response
292
+
291
293
  ### tree
292
294
 
293
295
  * **See**: <https://developer.github.com/v3/git/trees/>
@@ -354,6 +356,18 @@ Get sha of a ref.
354
356
 
355
357
  Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** sha of the ref
356
358
 
359
+ ### setRefId
360
+
361
+ <https://docs.github.com/en/github-ae@latest/rest/git/refs#update-a-reference>
362
+
363
+ #### Parameters
364
+
365
+ * `ref` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
366
+ * `sha` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
367
+ * `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
368
+
369
+ Returns **any**
370
+
357
371
  ### deletePullRequest
358
372
 
359
373
  <https://developer.github.com/v3/pulls/#update-a-pull-request>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-repository-provider",
3
- "version": "7.30.20",
3
+ "version": "7.30.23",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -36,7 +36,7 @@
36
36
  "matching-iterator": "^2.0.6",
37
37
  "node-fetch": "^3.2.6",
38
38
  "one-time-execution-method": "^3.0.3",
39
- "repository-provider": "^31.2.7"
39
+ "repository-provider": "^31.2.9"
40
40
  },
41
41
  "devDependencies": {
42
42
  "ava": "^4.3.0",
@@ -45,7 +45,7 @@
45
45
  "etag-cache-leveldb": "^1.2.4",
46
46
  "leveldown": "^6.1.1",
47
47
  "levelup": "^5.1.1",
48
- "repository-provider-test-support": "^2.2.5",
48
+ "repository-provider-test-support": "^2.2.6",
49
49
  "semantic-release": "^19.0.3"
50
50
  },
51
51
  "engines": {
@@ -11,7 +11,6 @@ import {
11
11
  */
12
12
  export class GithubBranch extends Branch {
13
13
  #entries = new Map();
14
- #commits = new Map();
15
14
 
16
15
  /**
17
16
  * Writes content into the branch
@@ -44,10 +43,6 @@ export class GithubBranch extends Branch {
44
43
  * @param {Object} options
45
44
  */
46
45
  async commit(message, entries, options) {
47
- const updates = await Promise.all(
48
- entries.map(entry => this.writeEntry(entry))
49
- );
50
-
51
46
  /*
52
47
  * 1st. commit on empty tree
53
48
  * https://stackoverflow.com/questions/9765453/is-gits-semi-secret-empty-tree-object-reliable-and-why-is-there-not-a-symbolic/9766506#9766506
@@ -56,42 +51,20 @@ export class GithubBranch extends Branch {
56
51
  * sha256:6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321
57
52
  */
58
53
 
59
- const shaLatestCommit = await this.refId();
60
- const commit = await this.commitForSha(shaLatestCommit);
61
- const tree = await this.owner.addTree(updates, commit.tree.sha);
62
-
63
- let r = await this.provider.fetchJSON(`${this.api}/git/commits`, {
64
- method: "POST",
65
- body: JSON.stringify({
66
- message,
67
- tree: tree.sha,
68
- parents: [shaLatestCommit]
69
- })
70
- });
71
-
72
- this.#commits.set(r.json.sha, r.json);
73
-
74
- return this.owner.setRefId(this.ref, r.json.sha, options);
75
- }
76
-
77
- /**
78
- * {@link https://developer.github.com/v3/git/commits/#get-a-commit}
79
- * @param {string} sha
80
- * @return {Object} response
81
- */
82
- async commitForSha(sha) {
83
- const commit = this.#commits.get(sha);
84
- if (commit) {
85
- return commit;
86
- }
87
-
88
- const { json } = await this.provider.fetchJSON(
89
- `${this.api}/git/commits/${sha}`
54
+ const updates = await Promise.all(
55
+ entries.map(entry => this.writeEntry(entry))
90
56
  );
91
57
 
92
- this.#commits.set(sha, json);
58
+ const shaLatestCommit = await this.refId();
59
+ const latestCommit = await this.owner.commitForSha(shaLatestCommit);
60
+ const tree = await this.owner.addTree(updates, latestCommit.tree.sha);
61
+ const commit = await this.owner.addCommit(
62
+ tree.sha,
63
+ [shaLatestCommit],
64
+ message
65
+ );
93
66
 
94
- return json;
67
+ return this.owner.setRefId(this.ref, commit.sha, options);
95
68
  }
96
69
 
97
70
  /**
@@ -126,7 +99,7 @@ export class GithubBranch extends Branch {
126
99
  }
127
100
 
128
101
  async *entries(patterns) {
129
- const commit = await this.commitForSha(await this.refId());
102
+ const commit = await this.owner.commitForSha(await this.refId());
130
103
 
131
104
  for (const entry of matcher(
132
105
  await this.owner.tree(commit.tree.sha),
@@ -14,6 +14,7 @@ const conflictErrorActions = {
14
14
  export class GithubRepository extends Repository {
15
15
  #refs = new Map();
16
16
  #trees = new Map();
17
+ #commits = new Map();
17
18
 
18
19
  static get attributeMapping() {
19
20
  return {
@@ -62,6 +63,8 @@ export class GithubRepository extends Repository {
62
63
  const { response, json } = await this.provider.fetchJSON(next);
63
64
 
64
65
  for (const c of json) {
66
+ this.#commits.set(c.sha, json);
67
+
65
68
  yield {
66
69
  sha: c.sha,
67
70
  message: c.message,
@@ -73,6 +76,40 @@ export class GithubRepository extends Repository {
73
76
  } while (next);
74
77
  }
75
78
 
79
+ async addCommit(tree, parents, message) {
80
+ let r = await this.provider.fetchJSON(`${this.api}/git/commits`, {
81
+ method: "POST",
82
+ body: JSON.stringify({
83
+ tree,
84
+ parents,
85
+ message
86
+ })
87
+ });
88
+
89
+ this.#commits.set(r.json.sha, r.json);
90
+ return r.json;
91
+ }
92
+
93
+ /**
94
+ * {@link https://developer.github.com/v3/git/commits/#get-a-commit}
95
+ * @param {string} sha
96
+ * @return {Object} response
97
+ */
98
+ async commitForSha(sha) {
99
+ const commit = this.#commits.get(sha);
100
+ if (commit) {
101
+ return commit;
102
+ }
103
+
104
+ const { json } = await this.provider.fetchJSON(
105
+ `${this.api}/git/commits/${sha}`
106
+ );
107
+
108
+ this.#commits.set(sha, json);
109
+
110
+ return json;
111
+ }
112
+
76
113
  /**
77
114
  * @see https://developer.github.com/v3/git/trees/
78
115
  * @param {string} sha