@coldtea/pr-lens-cli 0.8.1 → 0.10.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 (72) hide show
  1. package/dist/canvas/api.d.ts +104 -1
  2. package/dist/canvas/api.d.ts.map +1 -1
  3. package/dist/canvas/api.js +48 -1
  4. package/dist/canvas/api.js.map +1 -1
  5. package/dist/canvas/live.d.ts +15 -0
  6. package/dist/canvas/live.d.ts.map +1 -0
  7. package/dist/canvas/live.js +417 -0
  8. package/dist/canvas/live.js.map +1 -0
  9. package/dist/canvas/registry.d.ts +8 -0
  10. package/dist/canvas/registry.d.ts.map +1 -1
  11. package/dist/canvas/registry.js +2 -0
  12. package/dist/canvas/registry.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +1 -0
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/analyze.d.ts.map +1 -1
  17. package/dist/commands/analyze.js +25 -6
  18. package/dist/commands/analyze.js.map +1 -1
  19. package/dist/commands/auth.d.ts +2 -0
  20. package/dist/commands/auth.d.ts.map +1 -1
  21. package/dist/commands/auth.js +1 -1
  22. package/dist/commands/auth.js.map +1 -1
  23. package/dist/commands/canvas.d.ts.map +1 -1
  24. package/dist/commands/canvas.js +29 -2
  25. package/dist/commands/canvas.js.map +1 -1
  26. package/dist/commands/comment.d.ts +1 -1
  27. package/dist/commands/comment.d.ts.map +1 -1
  28. package/dist/commands/comment.js +16 -2
  29. package/dist/commands/comment.js.map +1 -1
  30. package/dist/commands/render.d.ts +1 -1
  31. package/dist/commands/render.d.ts.map +1 -1
  32. package/dist/commands/render.js +9 -4
  33. package/dist/commands/render.js.map +1 -1
  34. package/dist/comment.d.ts +4 -0
  35. package/dist/comment.d.ts.map +1 -1
  36. package/dist/comment.js +193 -33
  37. package/dist/comment.js.map +1 -1
  38. package/dist/config-file.d.ts +7 -2
  39. package/dist/config-file.d.ts.map +1 -1
  40. package/dist/config-file.js +14 -2
  41. package/dist/config-file.js.map +1 -1
  42. package/dist/errors.d.ts +1 -1
  43. package/dist/errors.d.ts.map +1 -1
  44. package/dist/errors.js.map +1 -1
  45. package/dist/git.d.ts +17 -0
  46. package/dist/git.d.ts.map +1 -1
  47. package/dist/git.js +37 -2
  48. package/dist/git.js.map +1 -1
  49. package/dist/skill-content.generated.d.ts +1 -1
  50. package/dist/skill-content.generated.d.ts.map +1 -1
  51. package/dist/skill-content.generated.js +1 -1
  52. package/dist/skill-content.generated.js.map +1 -1
  53. package/dist/version.d.ts +1 -1
  54. package/dist/version.d.ts.map +1 -1
  55. package/dist/version.js +1 -1
  56. package/dist/version.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/canvas/api.ts +109 -0
  59. package/src/canvas/live.ts +523 -0
  60. package/src/canvas/registry.ts +2 -0
  61. package/src/cli.ts +1 -0
  62. package/src/commands/analyze.ts +30 -6
  63. package/src/commands/auth.ts +1 -1
  64. package/src/commands/canvas.ts +36 -2
  65. package/src/commands/comment.ts +18 -2
  66. package/src/commands/render.ts +18 -5
  67. package/src/comment.ts +249 -34
  68. package/src/config-file.ts +14 -2
  69. package/src/errors.ts +3 -0
  70. package/src/git.ts +38 -3
  71. package/src/skill-content.generated.ts +1 -1
  72. package/src/version.ts +1 -1
package/dist/comment.js CHANGED
@@ -1,4 +1,4 @@
1
- import { assertNever } from "@coldtea/pr-lens-schema";
1
+ import { assertNever, surfaceFor, } from "@coldtea/pr-lens-schema";
2
2
  import { PrLensCliError } from "./errors.js";
3
3
  /**
4
4
  * How the comment is recognised on a second run, so a pull request keeps one
@@ -6,6 +6,23 @@ import { PrLensCliError } from "./errors.js";
6
6
  * this string: a marker that drifts orphans every comment already posted.
7
7
  */
8
8
  export const COMMENT_MARKER = "<!-- pr-lens -->";
9
+ /**
10
+ * Bitbucket renders no HTML, and an HTML comment there risks appearing as
11
+ * text. A link-reference definition is the markdown-native invisible line:
12
+ * consumed by the renderer, still greppable in the source.
13
+ */
14
+ const BITBUCKET_COMMENT_MARKER = "[pr-lens]: #pr-lens";
15
+ export const commentMarker = (target) => {
16
+ switch (target) {
17
+ case "github":
18
+ case "gitlab":
19
+ return COMMENT_MARKER;
20
+ case "bitbucket":
21
+ return BITBUCKET_COMMENT_MARKER;
22
+ default:
23
+ return assertNever(target, "Unhandled provider");
24
+ }
25
+ };
9
26
  const PROJECT_URL = "https://github.com/coldteadotai/pr-lens";
10
27
  const COLDTEA_URL = "https://coldtea.ai";
11
28
  const escape = (value) => value
@@ -13,22 +30,62 @@ const escape = (value) => value
13
30
  .replaceAll("<", "&lt;")
14
31
  .replaceAll(">", "&gt;")
15
32
  .replaceAll('"', "&quot;");
33
+ /**
34
+ * Which characters, at the start of a rendered word, a forge turns into a
35
+ * notification or a cross-link after markdown has run. GitHub reads @ and #;
36
+ * GitLab additionally reads ! (merge requests), ~ (labels), % (milestones),
37
+ * $ (snippets) and & (epics). The guard is a zero-width space after the
38
+ * sigil, so a diff's say-so never pages a person or links an issue.
39
+ */
40
+ const sigilsFor = (dialect) => {
41
+ switch (dialect) {
42
+ case "gfm":
43
+ return /([@#])(?=[\w-])/g;
44
+ // The lookahead runs on the escaped string, so a quoted reference like
45
+ // ~"multi word" appears as ~&quot;… — matched as the entity.
46
+ case "glfm":
47
+ return /([@#!~%$])(?=[\w-]|&quot;)/g;
48
+ default:
49
+ return assertNever(dialect, "Unhandled dialect");
50
+ }
51
+ };
16
52
  /**
17
53
  * Model-authored prose, rendered as the words it is.
18
54
  *
19
55
  * Every string in the document was written by a model reading a diff, and a
20
56
  * pull request can carry whatever text an author likes into that diff. So
21
- * none of it may reach GitHub as markup: escaping the HTML is only half the
22
- * job, because markdown would still turn `[Security update](http://…)` into a
23
- * link that looks like ours. Each string therefore lands inside an HTML
24
- * element — inside one, markdown is not parsed at all — on a single line, so
25
- * a blank line cannot end the block and let the rest through.
57
+ * none of it may reach the forge as markup: escaping the HTML is only half
58
+ * the job, because markdown would still turn `[Security update](http://…)`
59
+ * into a link that looks like ours. Each string therefore lands inside an
60
+ * HTML element — inside one, markdown is not parsed at all — on a single
61
+ * line, so a blank line cannot end the block and let the rest through.
26
62
  *
27
- * The zero-width space after an @ or a # is the last piece: those are matched
28
- * after markdown, on the rendered text, and would otherwise notify a person
29
- * or cross-link an issue on the say-so of a diff.
63
+ * The zero-width space after a reference sigil is the last piece: those are
64
+ * matched after markdown, on the rendered text, and would otherwise notify a
65
+ * person or cross-link an issue on the say-so of a diff. GitLab's & becomes
66
+ * &amp; during escaping, so its guard runs on the entity.
30
67
  */
31
- const text = (value) => escape(value.replace(/\s+/g, " ").trim()).replace(/([@#])(?=[\w-])/g, "$1&#8203;");
68
+ const text = (value, dialect) => {
69
+ const guarded = escape(value.replace(/\s+/g, " ").trim()).replace(sigilsFor(dialect), "$1&#8203;");
70
+ return dialect === "glfm" ? guarded.replace(/&amp;(?=[\w-]|&quot;)/g, "&amp;&#8203;") : guarded;
71
+ };
72
+ /**
73
+ * The same job for a forge that renders no HTML: there is no element to hide
74
+ * inside, so every character Python-Markdown can act on is backslash-escaped
75
+ * instead — its documented escapable set. What that set cannot cover is
76
+ * broken with a zero-width space instead: doubled tildes (strikethrough via
77
+ * the del extension), reference sigils, and an opening `<`, which is not
78
+ * escapable and would otherwise hand a raw tag to whatever HTML subset the
79
+ * forge's renderer lets through. An entity would risk rendering as text on
80
+ * a forge that escapes ampersands, so the space is the literal character.
81
+ */
82
+ const proseMd = (value) => value
83
+ .replace(/\s+/g, " ")
84
+ .trim()
85
+ .replace(/[\\`*_{}[\]()>#+\-.!]/g, "\\$&")
86
+ .replace(/~~/g, "~\u200B~")
87
+ .replace(/<(?=[A-Za-z/!?])/g, "<\u200B")
88
+ .replace(/([@#])(?=[\w-])/g, "$1\u200B");
32
89
  const href = (asset, assetBaseUrl) => {
33
90
  if (asset.url !== undefined)
34
91
  return asset.url;
@@ -36,31 +93,52 @@ const href = (asset, assetBaseUrl) => {
36
93
  throw new PrLensCliError("USAGE", `asset '${asset.id}' is a local file, so the comment has nowhere to point`, "pass --asset-base-url with the location the rendered SVGs are published at");
37
94
  return `${assetBaseUrl.replace(/\/+$/, "")}/${asset.path.replace(/^\/+/, "")}`;
38
95
  };
96
+ /** A bare markdown destination: the characters that would end or nest it are percent-encoded. */
97
+ const hrefMd = (asset, assetBaseUrl) => href(asset, assetBaseUrl).replace(/[<>() ]/g, (found) => `%${found.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`);
98
+ const EMPTY_PAIR = { light: undefined, dark: undefined, neutral: undefined };
39
99
  const pairsByLens = (assets) => {
40
100
  const pairs = new Map();
41
101
  for (const asset of assets) {
42
- const pair = pairs.get(asset.lens) ?? { light: undefined, dark: undefined };
102
+ const pair = pairs.get(asset.lens) ?? EMPTY_PAIR;
43
103
  pairs.set(asset.lens, { ...pair, [asset.theme]: asset });
44
104
  }
45
105
  return pairs;
46
106
  };
107
+ /**
108
+ * The one asset a single-image surface shows.
109
+ *
110
+ * `neutral` first, because it is the render made for exactly this and reads
111
+ * on a light page and a dark one alike. Falling back to a half of the pair is
112
+ * for a manifest rendered before neutral existed, or one rendered `--theme
113
+ * light` by hand: better a diagram tuned for the wrong ground than no
114
+ * diagram, but it is a fallback and not the intent.
115
+ */
116
+ const single = (pair) => pair.neutral ?? pair.light ?? pair.dark;
47
117
  /**
48
118
  * A `<picture>` is what makes one comment readable in both GitHub themes: the
49
119
  * dark source is swapped in by the browser, with the light asset as the `img`
50
120
  * every other reader — email, mobile, an old client — falls back to.
51
121
  *
122
+ * GitLab strips `picture` and `source`, so there one image stands alone
123
+ * rather than trusting a sanitizer to unwrap gracefully — and that image is
124
+ * the neutral render, which reads on either ground, instead of a half of the
125
+ * pair that reads well on one.
126
+ *
52
127
  * The whole thing is a link to the image itself, because a comment column is
53
128
  * about 830 pixels wide and a diagram of a system with several lanes is
54
129
  * several times that. It arrives scaled to fit, which is right for scanning,
55
130
  * and one click gives a reader the size the labels were drawn at.
56
131
  */
57
- const picture = (pair, alt, assetBaseUrl) => {
58
- const fallback = pair.light ?? pair.dark;
59
- if (fallback === undefined)
132
+ const picture = (pair, alt, assetBaseUrl, surface) => {
133
+ // A paired surface shows the light half as the `img` every non-swapping
134
+ // client falls back to; a single-image surface shows the neutral render.
135
+ const paired = surface.themeStrategy === "pair" && pair.light !== undefined && pair.dark !== undefined;
136
+ const shownAsset = paired ? pair.light : single(pair);
137
+ if (shownAsset === undefined)
60
138
  return "";
61
- const source = escape(href(fallback, assetBaseUrl));
62
- const image = `<img alt="${text(alt)}" src="${source}" width="${fallback.width}">`;
63
- const shown = pair.dark === undefined || pair.light === undefined
139
+ const source = escape(href(shownAsset, assetBaseUrl));
140
+ const image = `<img alt="${text(alt, surface.dialect)}" src="${source}" width="${shownAsset.width}">`;
141
+ const shown = !paired || pair.dark === undefined
64
142
  ? image
65
143
  : [
66
144
  "<picture>",
@@ -80,11 +158,11 @@ const lensLabel = (lens) => {
80
158
  return assertNever(lens, "Unhandled lens");
81
159
  }
82
160
  };
83
- const statsLine = (graph) => {
161
+ const statChips = (graph) => {
84
162
  const { stats } = graph;
85
163
  if (stats === undefined)
86
- return "";
87
- const chips = [
164
+ return [];
165
+ return [
88
166
  stats.filesChanged === undefined
89
167
  ? undefined
90
168
  : `${stats.filesChanged} ${stats.filesChanged === 1 ? "file" : "files"}`,
@@ -92,19 +170,24 @@ const statsLine = (graph) => {
92
170
  stats.deletions === undefined ? undefined : `−${stats.deletions}`,
93
171
  ...stats.chips.map((chip) => `${chip.label} ${chip.value}`),
94
172
  ].filter((chip) => chip !== undefined);
95
- return `<p>${chips.map((chip) => `<code>${text(chip)}</code>`).join(" · ")}</p>`;
96
173
  };
97
- const viewSection = (view, assets, assetBaseUrl) => {
174
+ const statsLine = (graph, surface) => {
175
+ const chips = statChips(graph);
176
+ if (chips.length === 0)
177
+ return "";
178
+ return `<p>${chips.map((chip) => `<code>${text(chip, surface.dialect)}</code>`).join(" · ")}</p>`;
179
+ };
180
+ const viewSection = (view, assets, assetBaseUrl, surface) => {
98
181
  const own = assets.get(view.id) ?? [];
99
182
  const pair = pairsByLens(own).get(view.lens);
100
183
  const body = [
101
- view.summary === undefined ? "" : `<p>${text(view.summary)}</p>`,
102
- pair === undefined ? "" : picture(pair, view.title, assetBaseUrl),
103
- ...view.children.map((child) => viewSection(child, assets, assetBaseUrl)),
184
+ view.summary === undefined ? "" : `<p>${text(view.summary, surface.dialect)}</p>`,
185
+ pair === undefined ? "" : picture(pair, view.title, assetBaseUrl, surface),
186
+ ...view.children.map((child) => viewSection(child, assets, assetBaseUrl, surface)),
104
187
  ].filter((part) => part !== "");
105
188
  return [
106
189
  `<details${view.defaultOpen ? " open" : ""}>`,
107
- `<summary><b>${text(view.title)}</b></summary>`,
190
+ `<summary><b>${text(view.title, surface.dialect)}</b></summary>`,
108
191
  "",
109
192
  ...body.flatMap((part) => [part, ""]),
110
193
  "</details>",
@@ -120,24 +203,30 @@ const byView = (manifest) => {
120
203
  }
121
204
  return grouped;
122
205
  };
123
- export const composeComment = (options) => {
206
+ const composeHtml = (options, surface, marker, keptViews) => {
124
207
  const { graph, manifest, assetBaseUrl, branding } = options;
125
208
  const assets = byView(manifest);
126
209
  const roots = pairsByLens(assets.get(ROOT) ?? []);
127
210
  const diagrams = graph.lenses.flatMap((lens) => {
128
211
  const pair = roots.get(lens);
129
- return pair === undefined ? [] : [picture(pair, `${graph.title} — ${lensLabel(lens)}`, assetBaseUrl)];
212
+ return pair === undefined
213
+ ? []
214
+ : [picture(pair, `${graph.title} — ${lensLabel(lens)}`, assetBaseUrl, surface)];
130
215
  });
216
+ const omitted = graph.views.length - keptViews;
131
217
  const footer = branding
132
218
  ? `<sub>◈ Rendered by <a href="${PROJECT_URL}">PR Lens</a> · from the team behind <a href="${COLDTEA_URL}">Coldtea</a></sub>`
133
219
  : "";
134
220
  return [
135
- COMMENT_MARKER,
136
- `<h3>${text(graph.title)}</h3>`,
137
- graph.summary === undefined ? "" : `<p>${text(graph.summary)}</p>`,
138
- statsLine(graph),
221
+ marker,
222
+ `<h3>${text(graph.title, surface.dialect)}</h3>`,
223
+ graph.summary === undefined ? "" : `<p>${text(graph.summary, surface.dialect)}</p>`,
224
+ statsLine(graph, surface),
139
225
  ...diagrams,
140
- ...graph.views.map((view) => viewSection(view, assets, assetBaseUrl)),
226
+ ...graph.views.slice(0, keptViews).map((view) => viewSection(view, assets, assetBaseUrl, surface)),
227
+ omitted === 0
228
+ ? ""
229
+ : `<sub>${omitted} drill-down ${omitted === 1 ? "section" : "sections"} did not fit this comment.</sub>`,
141
230
  footer === "" ? "" : "---",
142
231
  footer,
143
232
  ]
@@ -145,4 +234,75 @@ export const composeComment = (options) => {
145
234
  .join("\n\n")
146
235
  .concat("\n");
147
236
  };
237
+ const diagramMd = (pair, alt, assetBaseUrl) => {
238
+ // With no HTML there is no theme pairing at all, so the neutral render is
239
+ // the only one that serves a reader whichever theme they are in.
240
+ const shown = single(pair);
241
+ if (shown === undefined)
242
+ return "";
243
+ const source = hrefMd(shown, assetBaseUrl);
244
+ return `[![${proseMd(alt)}](${source})](${source})`;
245
+ };
246
+ /** The drill-down tree flattened: with no collapsible to nest in, order carries the hierarchy. */
247
+ const viewSectionsMd = (views, assets, assetBaseUrl) => views.flatMap((view) => {
248
+ const pair = pairsByLens(assets.get(view.id) ?? []).get(view.lens);
249
+ return [
250
+ `**${proseMd(view.title)}**`,
251
+ ...(view.summary === undefined ? [] : [proseMd(view.summary)]),
252
+ ...(pair === undefined ? [] : [diagramMd(pair, view.title, assetBaseUrl)]),
253
+ ...viewSectionsMd(view.children, assets, assetBaseUrl),
254
+ ];
255
+ });
256
+ const composeMarkdown = (options, marker, keptViews) => {
257
+ const { graph, manifest, assetBaseUrl, branding } = options;
258
+ const assets = byView(manifest);
259
+ const roots = pairsByLens(assets.get(ROOT) ?? []);
260
+ const diagrams = graph.lenses.flatMap((lens) => {
261
+ const pair = roots.get(lens);
262
+ return pair === undefined ? [] : [diagramMd(pair, `${graph.title} — ${lensLabel(lens)}`, assetBaseUrl)];
263
+ });
264
+ const chips = statChips(graph);
265
+ const omitted = graph.views.length - keptViews;
266
+ return [
267
+ marker,
268
+ `### ${proseMd(graph.title)}`,
269
+ graph.summary === undefined ? "" : proseMd(graph.summary),
270
+ chips.length === 0 ? "" : chips.map((chip) => proseMd(chip)).join(" · "),
271
+ ...diagrams,
272
+ ...viewSectionsMd(graph.views.slice(0, keptViews), assets, assetBaseUrl),
273
+ omitted === 0
274
+ ? ""
275
+ : `*${omitted} drill-down ${omitted === 1 ? "section" : "sections"} did not fit this comment.*`,
276
+ branding
277
+ ? `*Rendered by [PR Lens](${PROJECT_URL}) · from the team behind [Coldtea](${COLDTEA_URL})*`
278
+ : "",
279
+ ]
280
+ .filter((block) => block !== "")
281
+ .join("\n\n")
282
+ .concat("\n");
283
+ };
284
+ export const composeComment = (options) => {
285
+ const target = options.target ?? "github";
286
+ const surface = surfaceFor(target);
287
+ const marker = commentMarker(target);
288
+ const compose = (keptViews) => {
289
+ switch (surface.dialect) {
290
+ case "gfm":
291
+ case "glfm":
292
+ return composeHtml(options, { dialect: surface.dialect, themeStrategy: surface.themeStrategy }, marker, keptViews);
293
+ case "python-markdown":
294
+ return composeMarkdown(options, marker, keptViews);
295
+ default:
296
+ return assertNever(surface.dialect, "Unhandled dialect");
297
+ }
298
+ };
299
+ // A body over the forge's limit would be rejected outright, so trailing
300
+ // drill-down sections are shed until it fits: the headline, the numbers and
301
+ // the root diagrams are worth more than the deepest view.
302
+ for (let keptViews = options.graph.views.length;; keptViews -= 1) {
303
+ const body = compose(keptViews);
304
+ if (body.length <= surface.maxChars || keptViews === 0)
305
+ return body;
306
+ }
307
+ };
148
308
  //# sourceMappingURL=comment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment.js","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comment.js","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import type { Config } from "@coldtea/pr-lens-schema";
2
- /** Where a repository puts its corrections, in the order they are looked for. */
3
- export declare const CONFIG_PATHS: readonly [".github/pr-lens.yml", ".github/pr-lens.yaml"];
2
+ /**
3
+ * Where a repository puts its corrections, in the order they are looked for.
4
+ * `.github/` stays first so no existing repository changes behavior; the
5
+ * `.gitlab/` and root spellings exist because a GitLab or Bitbucket
6
+ * repository has no `.github/` directory to put a config in.
7
+ */
8
+ export declare const CONFIG_PATHS: readonly [".github/pr-lens.yml", ".github/pr-lens.yaml", ".gitlab/pr-lens.yml", ".gitlab/pr-lens.yaml", "pr-lens.yml", "pr-lens.yaml"];
4
9
  export type LoadedConfig = {
5
10
  path: string;
6
11
  config: Config;
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKtD,iFAAiF;AACjF,eAAO,MAAM,YAAY,YAAI,qBAAqB,EAAE,sBAAsB,CAAU,CAAC;AAErF,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,UAAU,SAAgB,MAAM,KAAG,OAAO,CAAC,YAAY,CAGlE,CAAC;AAEH,eAAO,MAAM,cAAc,SAAgB,MAAM,KAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAUnF,CAAC"}
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKtD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,YACvB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,UAAU,SAAgB,MAAM,KAAG,OAAO,CAAC,YAAY,CAGlE,CAAC;AAEH,eAAO,MAAM,cAAc,SAAgB,MAAM,KAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAUnF,CAAC"}
@@ -1,8 +1,20 @@
1
1
  import { access } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { readConfig } from "./document.js";
4
- /** Where a repository puts its corrections, in the order they are looked for. */
5
- export const CONFIG_PATHS = [".github/pr-lens.yml", ".github/pr-lens.yaml"];
4
+ /**
5
+ * Where a repository puts its corrections, in the order they are looked for.
6
+ * `.github/` stays first so no existing repository changes behavior; the
7
+ * `.gitlab/` and root spellings exist because a GitLab or Bitbucket
8
+ * repository has no `.github/` directory to put a config in.
9
+ */
10
+ export const CONFIG_PATHS = [
11
+ ".github/pr-lens.yml",
12
+ ".github/pr-lens.yaml",
13
+ ".gitlab/pr-lens.yml",
14
+ ".gitlab/pr-lens.yaml",
15
+ "pr-lens.yml",
16
+ "pr-lens.yaml",
17
+ ];
6
18
  export const loadConfig = async (path) => ({
7
19
  path,
8
20
  config: await readConfig(path),
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAU,CAAC;AAIrF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAyB,EAAE,CAAC,CAAC;IACxE,IAAI;IACJ,MAAM,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAY,EAAqC,EAAE;IACtF,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CACnC,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,cAAc;CACN,CAAC;AAIX,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAyB,EAAE,CAAC,CAAC;IACxE,IAAI;IACJ,MAAM,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAY,EAAqC,EAAE;IACtF,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CACnC,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * step, or a future command — can branch on. Messages are for humans and may
4
4
  * be reworded; codes are the contract.
5
5
  */
6
- export type CliErrorCode = "USAGE" | "UNREADABLE_FILE" | "UNKNOWN_DOCUMENT" | "INVALID_DOCUMENT" | "GIT_FAILED" | "EMPTY_DIFF" | "REPOSITORY_UNKNOWN" | "MISSING_API_KEY" | "PROVIDER_FAILED" | "MODEL_OUTPUT_INVALID" | "RENDER_FAILED" | "CANVAS_UNREGISTERED" | "CANVAS_UNKNOWN" | "CANVAS_OWNED" | "CANVAS_CONFLICT" | "CANVAS_REJECTED" | "CANVAS_RATE_LIMITED" | "CANVAS_UNAVAILABLE" | "CANVAS_REGISTRY_EXPOSED" | "AUTH_REQUIRED" | "MACHINE_REVOKED" | "APP_UNAVAILABLE";
6
+ export type CliErrorCode = "USAGE" | "UNREADABLE_FILE" | "UNKNOWN_DOCUMENT" | "INVALID_DOCUMENT" | "GIT_FAILED" | "EMPTY_DIFF" | "REPOSITORY_UNKNOWN" | "MISSING_API_KEY" | "PROVIDER_FAILED" | "MODEL_OUTPUT_INVALID" | "RENDER_FAILED" | "CANVAS_UNREGISTERED" | "CANVAS_UNKNOWN" | "CANVAS_OWNED" | "CANVAS_CONFLICT" | "CANVAS_REJECTED" | "CANVAS_RATE_LIMITED" | "CANVAS_UNAVAILABLE" | "CANVAS_REGISTRY_EXPOSED" | "LIVE_UNOPENED" | "LIVE_ENDED" | "LIVE_UNKNOWN_PLACE" | "AUTH_REQUIRED" | "MACHINE_REVOKED" | "APP_UNAVAILABLE";
7
7
  export declare class PrLensCliError extends Error {
8
8
  readonly code: CliErrorCode;
9
9
  /** Extra lines printed under the message: validation issues, a git stderr, a hint. */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,yBAAyB,GACzB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,YAAY,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAKhE;CACF;AAED,eAAO,MAAM,UAAU,YAAa,MAAM,YAAY,MAAM,KAAG,cAChB,CAAC;AAEhD,eAAO,MAAM,WAAW,UAAW,cAAc,KAAG,MACkD,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,yBAAyB,GACzB,eAAe,GACf,YAAY,GACZ,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,YAAY,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAKhE;CACF;AAED,eAAO,MAAM,UAAU,YAAa,MAAM,YAAY,MAAM,KAAG,cAChB,CAAC;AAEhD,eAAO,MAAM,WAAW,UAAW,cAAc,KAAG,MACkD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAe;IAC5B,sFAAsF;IAC7E,OAAO,CAAqB;IAErC,YAAY,IAAkB,EAAE,OAAe,EAAE,OAAgB;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAkB,EAAE,CAC9E,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAqB,EAAU,EAAE,CAC3D,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAgCA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAe;IAC5B,sFAAsF;IAC7E,OAAO,CAAqB;IAErC,YAAY,IAAkB,EAAE,OAAe,EAAE,OAAgB;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAkB,EAAE,CAC9E,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAqB,EAAU,EAAE,CAC3D,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
package/dist/git.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type Provider } from "@coldtea/pr-lens-schema";
1
2
  export declare const git: (repo: string, args: readonly string[]) => Promise<string>;
2
3
  export type Commit = {
3
4
  sha: string;
@@ -32,7 +33,23 @@ export type RepoSlug = {
32
33
  owner: string;
33
34
  name: string;
34
35
  host: string;
36
+ provider: Provider;
35
37
  };
38
+ /**
39
+ * Which forge a host belongs to. bitbucket.org is exact because Bitbucket
40
+ * Cloud has one host; anything with "gitlab" in the name is taken to be a
41
+ * self-managed GitLab, since those hosts follow no other convention; and
42
+ * everything else is treated as GitHub, which keeps today's behavior for
43
+ * every repository the CLI already handles. A self-managed GitLab on a host
44
+ * that does not say so is what `--forge` exists for.
45
+ */
46
+ export declare const providerForHost: (host: string) => Provider;
47
+ /**
48
+ * Where a pull request lives on each forge. The number is the same concept
49
+ * everywhere — GitLab's iid, Bitbucket's id — but each forge spells the path
50
+ * differently, and a wrong spelling is a 404 in the reader's face.
51
+ */
52
+ export declare const pullRequestUrl: (slug: RepoSlug, pr: number) => string;
36
53
  export declare const parseRemoteUrl: (url: string) => RepoSlug | undefined;
37
54
  export declare const parseRepoSlug: (slug: string) => RepoSlug | undefined;
38
55
  export declare const remoteSlug: (repo: string, remote: string) => Promise<RepoSlug | undefined>;
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,GAAG,SAAgB,MAAM,QAAQ,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAiB/E,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,aAAa,SAAgB,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAM7E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,SAAgB,MAAM,QAAQ,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CASxF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAmBF,eAAO,MAAM,WAAW,SAChB,MAAM,QACN,MAAM,QACN,MAAM,iBACG,MAAM,KACpB,OAAO,CAAC,IAAI,CAoBd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAIrE,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,QAAQ,GAAG,SAavD,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,QAAQ,GAAG,SAMvD,CAAC;AAEF,eAAO,MAAM,UAAU,SAAgB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAG3F,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,MAAM,KAAG,OAAO,CAAC,MAAM,CACN,CAAC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAUrE,eAAO,MAAM,GAAG,SAAgB,MAAM,QAAQ,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAiB/E,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,aAAa,SAAgB,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAM7E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,SAAgB,MAAM,QAAQ,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CASxF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAmBF,eAAO,MAAM,WAAW,SAChB,MAAM,QACN,MAAM,QACN,MAAM,iBACG,MAAM,KACpB,OAAO,CAAC,IAAI,CAoBd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,QAK9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAU,QAAQ,MAAM,MAAM,KAAG,MAY3D,CAAC;AAIF,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,QAAQ,GAAG,SAavD,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,QAAQ,GAAG,SAMvD,CAAC;AAEF,eAAO,MAAM,UAAU,SAAgB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAG3F,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,MAAM,KAAG,OAAO,CAAC,MAAM,CACN,CAAC"}
package/dist/git.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { assertNever } from "@coldtea/pr-lens-schema";
1
2
  import { execFile } from "node:child_process";
2
3
  import { promisify } from "node:util";
3
4
  import { PrLensCliError } from "./errors.js";
@@ -73,6 +74,40 @@ export const collectDiff = async (repo, base, head, maxPatchBytes) => {
73
74
  truncatedAt: withinBudget ? undefined : maxPatchBytes,
74
75
  };
75
76
  };
77
+ /**
78
+ * Which forge a host belongs to. bitbucket.org is exact because Bitbucket
79
+ * Cloud has one host; anything with "gitlab" in the name is taken to be a
80
+ * self-managed GitLab, since those hosts follow no other convention; and
81
+ * everything else is treated as GitHub, which keeps today's behavior for
82
+ * every repository the CLI already handles. A self-managed GitLab on a host
83
+ * that does not say so is what `--forge` exists for.
84
+ */
85
+ export const providerForHost = (host) => {
86
+ const lowered = host.toLowerCase();
87
+ if (lowered === "bitbucket.org")
88
+ return "bitbucket";
89
+ if (lowered.includes("gitlab"))
90
+ return "gitlab";
91
+ return "github";
92
+ };
93
+ /**
94
+ * Where a pull request lives on each forge. The number is the same concept
95
+ * everywhere — GitLab's iid, Bitbucket's id — but each forge spells the path
96
+ * differently, and a wrong spelling is a 404 in the reader's face.
97
+ */
98
+ export const pullRequestUrl = (slug, pr) => {
99
+ const repository = `https://${slug.host}/${slug.owner}/${slug.name}`;
100
+ switch (slug.provider) {
101
+ case "github":
102
+ return `${repository}/pull/${pr}`;
103
+ case "gitlab":
104
+ return `${repository}/-/merge_requests/${pr}`;
105
+ case "bitbucket":
106
+ return `${repository}/pull-requests/${pr}`;
107
+ default:
108
+ return assertNever(slug.provider, "Unhandled provider");
109
+ }
110
+ };
76
111
  const REMOTE_URL = /^(?:(?:ssh|git|https?):\/\/)?(?:[^@/]+@)?([^/:]+)[:/](.+?)(?:\.git)?\/?$/;
77
112
  export const parseRemoteUrl = (url) => {
78
113
  const match = REMOTE_URL.exec(url.trim());
@@ -86,7 +121,7 @@ export const parseRemoteUrl = (url) => {
86
121
  const owner = segments.slice(0, -1).join("/");
87
122
  if (name === undefined || owner === "")
88
123
  return undefined;
89
- return { owner, name, host };
124
+ return { owner, name, host, provider: providerForHost(host) };
90
125
  };
91
126
  export const parseRepoSlug = (slug) => {
92
127
  const segments = slug.split("/").filter((segment) => segment !== "");
@@ -94,7 +129,7 @@ export const parseRepoSlug = (slug) => {
94
129
  const owner = segments.slice(0, -1).join("/");
95
130
  if (name === undefined || owner === "" || segments.length !== 2)
96
131
  return undefined;
97
- return { owner, name, host: "github.com" };
132
+ return { owner, name, host: "github.com", provider: "github" };
98
133
  };
99
134
  export const remoteSlug = async (repo, remote) => {
100
135
  const url = await git(repo, ["remote", "get-url", remote]).catch(() => undefined);
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}