github-repository-provider 7.30.24 → 7.31.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-repository-provider",
3
- "version": "7.30.24",
3
+ "version": "7.31.0",
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": "^32.0.0"
39
+ "repository-provider": "^32.0.2"
40
40
  },
41
41
  "devDependencies": {
42
42
  "ava": "^4.3.0",
@@ -12,6 +12,14 @@ import {
12
12
  export class GithubBranch extends Branch {
13
13
  #entries = new Map();
14
14
 
15
+ constructor(owner, name, options) {
16
+ super(owner, name, options);
17
+
18
+ if (options && options.commit) {
19
+ owner._setRefId(this.ref, options.commit.sha);
20
+ }
21
+ }
22
+
15
23
  /**
16
24
  * Writes content into the branch
17
25
  * {@link https://developer.github.com/v3/git/blobs/#get-a-blob}
@@ -55,14 +63,10 @@ export class GithubBranch extends Branch {
55
63
  entries.map(entry => this.writeEntry(entry))
56
64
  );
57
65
 
58
- const shaLatestCommit = await this.refId;
59
- const latestCommit = await this.owner.commitForSha(shaLatestCommit);
66
+ const sha = await this.refId;
67
+ const latestCommit = await this.owner.commitForSha(sha);
60
68
  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
- );
69
+ const commit = await this.owner.addCommit(tree.sha, [sha], message);
66
70
 
67
71
  return this.owner.setRefId(this.ref, commit.sha, options);
68
72
  }
@@ -16,6 +16,12 @@ export class GithubOwner extends RepositoryGroup {
16
16
  };
17
17
  }
18
18
 
19
+ get reposApi() {
20
+ return this.type === "Organization"
21
+ ? `orgs/${this.name}/repos`
22
+ : "user/repos";
23
+ }
24
+
19
25
  /**
20
26
  * {@link https://developer.github.com/v3/repos/#create-a-repository-for-the-authenticated-user}
21
27
  * @param {string} name
@@ -23,20 +29,17 @@ export class GithubOwner extends RepositoryGroup {
23
29
  * @return {Repository} newly created repository
24
30
  */
25
31
  async createRepository(name, options = {}) {
26
- const response = await this.provider.fetch(
27
- this.type === "Organization" ? `orgs/${this.name}/repos` : "user/repos",
28
- {
29
- method: "POST",
30
- headers: {
31
- accept: "application/vnd.github.nebula-preview+json"
32
- },
33
- body: JSON.stringify({
34
- name,
35
- auto_init: true,
36
- ...options
37
- })
38
- }
39
- );
32
+ const response = await this.provider.fetch(this.reposApi, {
33
+ method: "POST",
34
+ headers: {
35
+ accept: "application/vnd.github.nebula-preview+json"
36
+ },
37
+ body: JSON.stringify({
38
+ name,
39
+ auto_init: true,
40
+ ...options
41
+ })
42
+ });
40
43
 
41
44
  if (response.ok) {
42
45
  this.info(`Repository ${name} created`);
@@ -259,6 +259,16 @@ export class GithubRepository extends Repository {
259
259
  return sha;
260
260
  }
261
261
 
262
+ /**
263
+ * @TODO generalize for all repos ?
264
+ * @param {string} ref
265
+ * @param {string} sha
266
+ */
267
+ _setRefId(ref, sha) {
268
+ ref = ref.replace(/^refs\//, "");
269
+ this.#refs.set(ref, sha);
270
+ }
271
+
262
272
  /**
263
273
  * {@link https://docs.github.com/en/github-ae@latest/rest/git/refs#update-a-reference}
264
274
  * @param {string} ref
@@ -266,7 +276,7 @@ export class GithubRepository extends Repository {
266
276
  * @param {Object} options
267
277
  * @returns
268
278
  *
269
- * @TODO: belongs into Ref ?
279
+ * @TODO belongs into Ref ?
270
280
  */
271
281
  async setRefId(ref, sha, options) {
272
282
  ref = ref.replace(/^refs\//, "");