workspace-tools 0.38.3 → 0.38.4

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.
@@ -26,11 +26,11 @@ function getRepositoryName(url) {
26
26
  // https://dev.azure.com/foo/bar/_git/_optimized/some-repo
27
27
  // https://user@dev.azure.com/foo/bar/_git/some-repo
28
28
  // git@ssh.dev.azure.com:v3/foo/bar/some-repo
29
- let fixedUrl = url.replace("/_optimized/", "/").replace("/DefaultCollection/", "/");
30
- const parsedUrl = (0, git_url_parse_1.default)(fixedUrl);
31
- const isVSO = fixedUrl.includes(".visualstudio.com");
32
- const isADO = fixedUrl.includes("dev.azure.com");
33
- if (!isVSO && !isADO) {
29
+ const parsedUrl = (0, git_url_parse_1.default)(url.replace("/_optimized/", "/").replace("/DefaultCollection/", "/"));
30
+ // `host` is set in `parse-url` but not documented... https://github.com/IonicaBizau/parse-url/blob/c830d48647f33c054745a916cf7c4c58722f4b25/src/index.js#L28
31
+ const host = parsedUrl.host || "";
32
+ const isVSO = host.endsWith(".visualstudio.com");
33
+ if (!isVSO && host !== "dev.azure.com" && host !== "ssh.dev.azure.com") {
34
34
  return parsedUrl.full_name;
35
35
  }
36
36
  // As of writing, ADO and VSO SSH URLs are parsed completely wrong
@@ -43,7 +43,7 @@ function getRepositoryName(url) {
43
43
  let organization = parsedUrl.organization;
44
44
  if (!organization && isVSO) {
45
45
  // organization is missing or wrong for VSO
46
- organization = parsedUrl.resource.match(/([^.@]+)\.visualstudio\.com/)?.[1];
46
+ organization = host.match(/([^.@]+)\.visualstudio\.com$/)?.[1];
47
47
  }
48
48
  return `${organization}/${parsedUrl.owner}/${parsedUrl.name}`;
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getRepositoryName.js","sourceRoot":"","sources":["../../src/git/getRepositoryName.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAExC;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI;QACF,4FAA4F;QAC5F,sFAAsF;QACtF,kDAAkD;QAClD,oEAAoE;QACpE,+EAA+E;QAC/E,+EAA+E;QAC/E,mDAAmD;QACnD,+CAA+C;QAC/C,0DAA0D;QAC1D,oDAAoD;QACpD,6CAA6C;QAC7C,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,IAAA,uBAAW,EAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;YACpB,OAAO,SAAS,CAAC,SAAS,CAAC;SAC5B;QAED,kEAAkE;QAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CACxC,yEAAyE,CAC1E,CAAC;QACF,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;SAC1D;QAED,oFAAoF;QACpF,8CAA8C;QAC9C,IAAI,YAAY,GAAuB,SAAS,CAAC,YAAY,CAAC;QAC9D,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;YAC1B,2CAA2C;YAC3C,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC7E;QACD,OAAO,GAAG,YAAY,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;KAC/D;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAzCD,8CAyCC"}
1
+ {"version":3,"file":"getRepositoryName.js","sourceRoot":"","sources":["../../src/git/getRepositoryName.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAExC;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI;QACF,4FAA4F;QAC5F,sFAAsF;QACtF,kDAAkD;QAClD,oEAAoE;QACpE,+EAA+E;QAC/E,+EAA+E;QAC/E,mDAAmD;QACnD,+CAA+C;QAC/C,0DAA0D;QAC1D,oDAAoD;QACpD,6CAA6C;QAC7C,MAAM,SAAS,GAAG,IAAA,uBAAW,EAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpG,6JAA6J;QAC7J,MAAM,IAAI,GAAY,SAAiB,CAAC,IAAI,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,mBAAmB,EAAE;YACtE,OAAO,SAAS,CAAC,SAAS,CAAC;SAC5B;QAED,kEAAkE;QAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CACxC,yEAAyE,CAC1E,CAAC;QACF,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;SAC1D;QAED,oFAAoF;QACpF,8CAA8C;QAC9C,IAAI,YAAY,GAAuB,SAAS,CAAC,YAAY,CAAC;QAC9D,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;YAC1B,2CAA2C;YAC3C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAChE;QACD,OAAO,GAAG,YAAY,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;KAC/D;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAzCD,8CAyCC"}
package/lib/git/git.d.ts CHANGED
@@ -22,11 +22,19 @@ export declare function addGitObserver(observer: GitObserver): () => void;
22
22
  /** Clear all git observers */
23
23
  export declare function clearGitObservers(): void;
24
24
  /**
25
- * Runs git command - use this for read-only commands
25
+ * Runs git command - use this for read-only commands.
26
+ * `gitFailFast` is recommended for commands that make changes to the filesystem.
27
+ *
28
+ * The caller is responsible for validating the input.
29
+ * `shell` will always be set to false.
26
30
  */
27
31
  export declare function git(args: string[], options?: SpawnSyncOptions): GitProcessOutput;
28
32
  /**
29
- * Runs git command - use this for commands that make changes to the filesystem
33
+ * Runs git command and throws an error if it fails.
34
+ * Use this for commands that make changes to the filesystem.
35
+ *
36
+ * The caller is responsible for validating the input.
37
+ * `shell` will always be set to false.
30
38
  */
31
39
  export declare function gitFailFast(args: string[], options?: SpawnSyncOptions & {
32
40
  noExitCode?: boolean;
package/lib/git/git.js CHANGED
@@ -48,11 +48,19 @@ function removeGitObserver(observer) {
48
48
  }
49
49
  }
50
50
  /**
51
- * Runs git command - use this for read-only commands
51
+ * Runs git command - use this for read-only commands.
52
+ * `gitFailFast` is recommended for commands that make changes to the filesystem.
53
+ *
54
+ * The caller is responsible for validating the input.
55
+ * `shell` will always be set to false.
52
56
  */
53
57
  function git(args, options) {
54
58
  isDebug && console.log(`git ${args.join(" ")}`);
55
- const results = (0, child_process_1.spawnSync)("git", args, { maxBuffer: defaultMaxBuffer, ...options });
59
+ if (args.some((arg) => arg.startsWith("--upload-pack"))) {
60
+ // This is a security issue and not needed for any expected usage of this library.
61
+ throw new GitError("git command contains --upload-pack, which is not allowed: " + args.join(" "));
62
+ }
63
+ const results = (0, child_process_1.spawnSync)("git", args, { maxBuffer: defaultMaxBuffer, ...options, shell: false });
56
64
  const output = {
57
65
  ...results,
58
66
  // these may be undefined if stdio: inherit is set
@@ -77,7 +85,11 @@ function git(args, options) {
77
85
  }
78
86
  exports.git = git;
79
87
  /**
80
- * Runs git command - use this for commands that make changes to the filesystem
88
+ * Runs git command and throws an error if it fails.
89
+ * Use this for commands that make changes to the filesystem.
90
+ *
91
+ * The caller is responsible for validating the input.
92
+ * `shell` will always be set to false.
81
93
  */
82
94
  function gitFailFast(args, options) {
83
95
  const gitResult = git(args, options);
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workspace-tools",
3
- "version": "0.38.3",
3
+ "version": "0.38.4",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@yarnpkg/lockfile": "^1.1.0",
23
23
  "fast-glob": "^3.3.1",
24
- "git-url-parse": "^13.0.0",
24
+ "git-url-parse": "^16.0.0",
25
25
  "globby": "^11.0.0",
26
26
  "jju": "^1.4.0",
27
27
  "js-yaml": "^4.1.0",