OXYGENHUB
# b03ac49048d6 oxygenhub-vscode / package.json
17.1 KiB · JSON · last changed 0.10.2: a version the Marketplace has not seen 1 month ago source blame history raw
1
{
2
  "name": "oxygenhub-vscode",
3
  "displayName": "OxygenHub",
4
  "description": "Proposals, reviews, issues and checks from an OxygenHub, in the editor. Builds on the Oxygen extension.",
5
  "version": "0.10.2",
6
  "publisher": "oxygenhub",
7
  "author": {
8
    "name": "OxygenHub.io",
9
    "url": "https://oxygenhub.io"
10
  },
11
  "homepage": "https://oxygenhub.io/andymccall/oxygenhub-vscode",
12
  "repository": {
13
    "type": "oxygen",
14
    "url": "https://oxygenhub.io/andymccall/oxygenhub-vscode"
15
  },
16
  "bugs": {
17
    "url": "https://oxygenhub.io/andymccall/oxygenhub-vscode/issues"
18
  },
19
  "license": "MIT OR Apache-2.0",
20
  "icon": "assets/images/oxygenhub.png",
21
  "engines": {
22
    "vscode": "^1.137.0"
23
  },
24
  "categories": [
25
    "SCM Providers",
26
    "Other"
27
  ],
28
  "keywords": [
29
    "oxygen",
30
    "oxygenhub",
31
    "review",
32
    "proposals",
33
    "issues"
34
  ],
35
  "extensionDependencies": [
36
    "oxygenhub.oxygen-vscode"
37
  ],
38
  "activationEvents": [
39
    "workspaceContains:.oxy/format",
40
    "onAuthenticationRequest:oxygenhub",
41
    "onStartupFinished"
42
  ],
43
  "main": "./dist/extension.js",
44
  "contributes": {
45
    "authentication": [
46
      {
47
        "id": "oxygenhub",
48
        "label": "OxygenHub"
49
      }
50
    ],
51
    "configuration": {
52
      "title": "OxygenHub",
53
      "properties": {
54
        "oxygenhub.hubs": {
55
          "type": "array",
56
          "items": {
57
            "type": "string"
58
          },
59
          "default": [],
60
          "description": "Base URLs of hubs you use (learnt from sign in too)."
61
        },
62
        "oxygenhub.caFiles": {
63
          "type": "object",
64
          "additionalProperties": {
65
            "type": "string"
66
          },
67
          "default": {},
68
          "description": "CA certificate files for hubs with self-signed certificates, by base URL, e.g. {\"https://earth.example:7343\": \"~/.config/oxy/earth-ca.pem\"}. Checkouts whose remote names a CA (remote.NAME.ca) need no entry."
69
        },
70
        "oxygenhub.proposalBookmarkPrefix": {
71
          "type": "string",
72
          "default": "proposal/",
73
          "description": "Prefix of the local bookmark created when checking out a proposal."
74
        },
75
        "oxygenhub.autoRefresh": {
76
          "type": "number",
77
          "default": 60,
78
          "description": "Seconds between view refreshes; 0 disables."
79
        },
80
        "oxygenhub.announceNotifications": {
81
          "type": "boolean",
82
          "default": true,
83
          "description": "Show a message when new notifications arrive (checked on the autoRefresh interval)."
84
        },
85
        "oxygenhub.flowPollSeconds": {
86
          "type": "number",
87
          "default": 5,
88
          "minimum": 2,
89
          "description": "How often the Flow view and status bar look again while a run is queued or running (seconds); once a minute otherwise."
90
        },
91
        "oxygenhub.flowNotifications": {
92
          "type": "boolean",
93
          "default": true,
94
          "description": "Say when an OxygenFlow run you can see finishes, with a way to its failed job's log."
95
        }
96
      }
97
    },
98
    "viewsContainers": {
99
      "activitybar": [
100
        {
101
          "id": "oxygenhub",
102
          "title": "OxygenHub",
103
          "icon": "assets/images/oxygenhub-activity.svg"
104
        }
105
      ]
106
    },
107
    "views": {
108
      "oxygenhub": [
109
        {
110
          "id": "oxygenhub.proposals",
111
          "name": "Proposals"
112
        },
113
        {
114
          "id": "oxygenhub.issues",
115
          "name": "Issues"
116
        },
117
        {
118
          "id": "oxygenhub.releases",
119
          "name": "Releases"
120
        },
121
        {
122
          "id": "oxygenhub.flow",
123
          "name": "Flow"
124
        }
125
      ]
126
    },
127
    "viewsWelcome": [
128
      {
129
        "view": "oxygenhub.proposals",
130
        "contents": "Sign in to an OxygenHub to see proposals.\n[Sign in](command:oxygenhub.signIn)"
131
      },
132
      {
133
        "view": "oxygenhub.flow",
134
        "contents": "OxygenFlow runs of your hub repositories appear here: a push that moves a bookmark starts one.\n[Run Pipeline](command:oxygenhub.runPipeline)"
135
      }
136
    ],
137
    "commands": [
138
      {
139
        "command": "oxygenhub.signIn",
140
        "title": "Sign in",
141
        "category": "OxygenHub"
142
      },
143
      {
144
        "command": "oxygenhub.signOut",
145
        "title": "Sign out",
146
        "category": "OxygenHub"
147
      },
148
      {
149
        "command": "oxygenhub.refresh",
150
        "title": "Refresh",
151
        "category": "OxygenHub",
152
        "icon": "$(refresh)"
153
      },
154
      {
155
        "command": "oxygenhub.inbox",
156
        "title": "Open Inbox",
157
        "category": "OxygenHub",
158
        "icon": "$(bell)"
159
      },
160
      {
161
        "command": "oxygenhub.openProposal",
162
        "title": "Open Proposal",
163
        "category": "OxygenHub"
164
      },
165
      {
166
        "command": "oxygenhub.openOnHub",
167
        "title": "Open on Hub",
168
        "category": "OxygenHub",
169
        "icon": "$(link-external)"
170
      },
171
      {
172
        "command": "oxygenhub.openProposalFile",
173
        "title": "Open Proposal File Diff",
174
        "category": "OxygenHub"
175
      },
176
      {
177
        "command": "oxygenhub.openProposalChanges",
178
        "title": "View Changes",
179
        "category": "OxygenHub",
180
        "icon": "$(diff-multiple)"
181
      },
182
      {
183
        "command": "oxygenhub.checkoutProposal",
184
        "title": "Check Out Proposal",
185
        "category": "OxygenHub",
186
        "icon": "$(git-branch)"
187
      },
188
      {
189
        "command": "oxygenhub.review",
190
        "title": "Review\u2026",
191
        "category": "OxygenHub",
192
        "icon": "$(comment-discussion)"
193
      },
194
      {
195
        "command": "oxygenhub.sealApproval",
196
        "title": "Seal My Approval (oxy seal --proposal)",
197
        "category": "OxygenHub"
198
      },
199
      {
200
        "command": "oxygenhub.land",
201
        "title": "Land Proposal",
202
        "category": "OxygenHub"
203
      },
204
      {
205
        "command": "oxygenhub.closeProposal",
206
        "title": "Close Proposal",
207
        "category": "OxygenHub"
208
      },
209
      {
210
        "command": "oxygenhub.createProposal",
211
        "title": "Propose Current Bookmark\u2026",
212
        "category": "OxygenHub"
213
      },
214
      {
215
        "command": "oxygenhub.newIssue",
216
        "title": "New Issue\u2026",
217
        "category": "OxygenHub",
218
        "icon": "$(add)"
219
      },
220
      {
221
        "command": "oxygenhub.draftRelease",
222
        "title": "Draft Release\u2026",
223
        "category": "OxygenHub",
224
        "icon": "$(tag)"
225
      },
226
      {
227
        "command": "oxygenhub.issueFromSelection",
228
        "title": "New Issue from Selection\u2026",
229
        "category": "OxygenHub"
230
      },
231
      {
232
        "command": "oxygenhub.openIssue",
233
        "title": "Open Issue",
234
        "category": "OxygenHub"
235
      },
236
      {
237
        "command": "oxygenhub.commentIssue",
238
        "title": "Comment on Issue\u2026",
239
        "category": "OxygenHub"
240
      },
241
      {
242
        "command": "oxygenhub.closeIssue",
243
        "title": "Close Issue",
244
        "category": "OxygenHub"
245
      },
246
      {
247
        "command": "oxygenhub.reopenIssue",
248
        "title": "Reopen Issue",
249
        "category": "OxygenHub"
250
      },
251
      {
252
        "command": "oxygenhub.assignMe",
253
        "title": "Assign to Me",
254
        "category": "OxygenHub"
255
      },
256
      {
257
        "command": "oxygenhub.newThread",
258
        "title": "Start Review Thread",
259
        "category": "OxygenHub"
260
      },
261
      {
262
        "command": "oxygenhub.reply",
263
        "title": "Reply",
264
        "category": "OxygenHub"
265
      },
266
      {
267
        "command": "oxygenhub.resolveThread",
268
        "title": "Resolve",
269
        "category": "OxygenHub"
270
      },
271
      {
272
        "command": "oxygenhub.flowRefresh",
273
        "title": "Refresh Flow",
274
        "category": "OxygenHub",
275
        "icon": "$(refresh)"
276
      },
277
      {
278
        "command": "oxygenhub.runPipeline",
279
        "title": "Run Pipeline\u2026",
280
        "category": "OxygenHub",
281
        "icon": "$(play)"
282
      },
283
      {
284
        "command": "oxygenhub.rerunFlow",
285
        "title": "Re-run",
286
        "category": "OxygenHub",
287
        "icon": "$(debug-rerun)"
288
      },
289
      {
290
        "command": "oxygenhub.flowLog",
291
        "title": "Show Job Log",
292
        "category": "OxygenHub",
293
        "icon": "$(output)"
294
      },
295
      {
296
        "command": "oxygenhub.openFlowRun",
297
        "title": "Open Run on OxygenHub",
298
        "category": "OxygenHub",
299
        "icon": "$(link-external)"
300
      },
301
      {
302
        "command": "oxygenhub.flowRecent",
303
        "title": "Recent Flow Runs\u2026",
304
        "category": "OxygenHub"
305
      }
306
    ],
307
    "menus": {
308
      "view/title": [
309
        {
310
          "command": "oxygenhub.refresh",
311
          "when": "view == oxygenhub.proposals || view == oxygenhub.issues || view == oxygenhub.releases",
312
          "group": "navigation"
313
        },
314
        {
315
          "command": "oxygenhub.createProposal",
316
          "when": "view == oxygenhub.proposals",
317
          "group": "navigation"
318
        },
319
        {
320
          "command": "oxygenhub.newIssue",
321
          "when": "view == oxygenhub.issues",
322
          "group": "navigation"
323
        },
324
        {
325
          "command": "oxygenhub.draftRelease",
326
          "when": "view == oxygenhub.releases",
327
          "group": "navigation"
328
        },
329
        {
330
          "command": "oxygenhub.runPipeline",
331
          "when": "view == oxygenhub.flow",
332
          "group": "navigation@1"
333
        },
334
        {
335
          "command": "oxygenhub.flowRefresh",
336
          "when": "view == oxygenhub.flow",
337
          "group": "navigation@2"
338
        }
339
      ],
340
      "view/item/context": [
341
        {
342
          "command": "oxygenhub.openProposalChanges",
343
          "when": "view == oxygenhub.proposals && viewItem == proposal",
344
          "group": "inline"
345
        },
346
        {
347
          "command": "oxygenhub.openOnHub",
348
          "when": "view == oxygenhub.proposals && viewItem == proposal",
349
          "group": "inline"
350
        },
351
        {
352
          "command": "oxygenhub.checkoutProposal",
353
          "when": "view == oxygenhub.proposals && viewItem == proposal",
354
          "group": "inline"
355
        },
356
        {
357
          "command": "oxygenhub.review",
358
          "when": "view == oxygenhub.proposals && viewItem == proposal",
359
          "group": "inline"
360
        },
361
        {
362
          "command": "oxygenhub.sealApproval",
363
          "when": "view == oxygenhub.proposals && viewItem == proposal",
364
          "group": "actions@1"
365
        },
366
        {
367
          "command": "oxygenhub.land",
368
          "when": "view == oxygenhub.proposals && viewItem == proposal",
369
          "group": "actions@2"
370
        },
371
        {
372
          "command": "oxygenhub.closeProposal",
373
          "when": "view == oxygenhub.proposals && viewItem == proposal",
374
          "group": "actions@3"
375
        },
376
        {
377
          "command": "oxygenhub.openOnHub",
378
          "when": "view == oxygenhub.issues && viewItem == issue",
379
          "group": "inline"
380
        },
381
        {
382
          "command": "oxygenhub.commentIssue",
383
          "when": "view == oxygenhub.issues && viewItem == issue",
384
          "group": "actions@1"
385
        },
386
        {
387
          "command": "oxygenhub.assignMe",
388
          "when": "view == oxygenhub.issues && viewItem == issue",
389
          "group": "actions@2"
390
        },
391
        {
392
          "command": "oxygenhub.closeIssue",
393
          "when": "view == oxygenhub.issues && viewItem == issue",
394
          "group": "actions@3"
395
        },
396
        {
397
          "command": "oxygenhub.reopenIssue",
398
          "when": "view == oxygenhub.issues && viewItem == issue",
399
          "group": "actions@3"
400
        },
401
        {
402
          "command": "oxygenhub.draftRelease",
403
          "when": "view == oxygenhub.releases && viewItem == releaseRepo",
404
          "group": "inline"
405
        },
406
        {
407
          "command": "oxygenhub.runPipeline",
408
          "when": "view == oxygenhub.flow && viewItem == flowRepo",
409
          "group": "inline"
410
        },
411
        {
412
          "command": "oxygenhub.rerunFlow",
413
          "when": "view == oxygenhub.flow && viewItem == flowRun",
414
          "group": "inline@1"
415
        },
416
        {
417
          "command": "oxygenhub.openFlowRun",
418
          "when": "view == oxygenhub.flow && viewItem =~ /^flowRun/",
419
          "group": "inline@2"
420
        },
421
        {
422
          "command": "oxygenhub.flowLog",
423
          "when": "view == oxygenhub.flow && viewItem == flowJob",
424
          "group": "inline"
425
        }
426
      ],
427
      "comments/commentThread/context": [
428
        {
429
          "command": "oxygenhub.reply",
430
          "when": "commentController == oxygenhub",
431
          "group": "inline"
432
        },
433
        {
434
          "command": "oxygenhub.newThread",
435
          "when": "commentController == oxygenhub && commentThreadIsEmpty",
436
          "group": "inline"
437
        }
438
      ],
439
      "comments/commentThread/title": [
440
        {
441
          "command": "oxygenhub.resolveThread",
442
          "when": "commentController == oxygenhub",
443
          "group": "navigation"
444
        }
445
      ],
446
      "commandPalette": [
447
        {
448
          "command": "oxygenhub.openProposalFile",
449
          "when": "false"
450
        },
451
        {
452
          "command": "oxygenhub.rerunFlow",
453
          "when": "false"
454
        },
455
        {
456
          "command": "oxygenhub.flowLog",
457
          "when": "false"
458
        },
459
        {
460
          "command": "oxygenhub.openFlowRun",
461
          "when": "false"
462
        }
463
      ],
464
      "editor/context": [
465
        {
466
          "command": "oxygenhub.issueFromSelection",
467
          "when": "resourceScheme == file",
468
          "group": "9_oxygenhub@1"
469
        }
470
      ]
471
    },
472
    "colors": [
473
      {
474
        "id": "oxygenhub.flowRunning",
475
        "description": "OxygenFlow: the icon of a run or job that is running.",
476
        "defaults": {
477
          "dark": "#35c7ff",
478
          "light": "#0a74b8",
479
          "highContrast": "#35c7ff",
480
          "highContrastLight": "#0a5a8f"
481
        }
482
      }
483
    ],
484
    "walkthroughs": [
485
      {
486
        "id": "oxygenhub.gettingStarted",
487
        "title": "Get started with OxygenHub",
488
        "description": "Sign in, propose and review, and watch OxygenFlow from the editor.",
489
        "steps": [
490
          {
491
            "id": "oxygenhub.signin",
492
            "title": "Sign in to your hub",
493
            "description": "A hub URL and a personal access token (Settings \u2192 Tokens on the hub). A self-signed hub works too: the extension uses the CA your checkout's remote names.\n[Sign In](command:oxygenhub.signIn)",
494
            "media": {
495
              "markdown": "walkthrough/signin.md"
496
            },
497
            "completionEvents": [
498
              "onCommand:oxygenhub.signIn"
499
            ]
500
          },
501
          {
502
            "id": "oxygenhub.proposals",
503
            "title": "Proposals and issues",
504
            "description": "The OxygenHub sidebar lists your repositories' proposals and issues. Open a proposal to see its changes, review it, seal your approval with your key, and land it.\n[Open OxygenHub](command:workbench.view.extension.oxygenhub)",
505
            "media": {
506
              "markdown": "walkthrough/proposals.md"
507
            },
508
            "completionEvents": [
509
              "onView:oxygenhub.proposals"
510
            ]
511
          },
512
          {
513
            "id": "oxygenhub.propose",
514
            "title": "Propose your bookmark",
515
            "description": "From a bookmark with work on it, propose it for the default bookmark. Issues its changes close are linked, and closed when it lands.\n[Create Proposal](command:oxygenhub.createProposal)",
516
            "media": {
517
              "markdown": "walkthrough/propose.md"
518
            },
519
            "completionEvents": [
520
              "onCommand:oxygenhub.createProposal"
521
            ]
522
          },
523
          {
524
            "id": "oxygenhub.flow",
525
            "title": "Watch Flow",
526
            "description": "Every push runs the repository's OxygenFlow pipeline in microVMs. The Flow view shows runs and jobs as they go; click a job for its log, live. Run Pipeline starts one without a push.\n[Run Pipeline](command:oxygenhub.runPipeline)",
527
            "media": {
528
              "markdown": "walkthrough/flow.md"
529
            },
530
            "completionEvents": [
531
              "onCommand:oxygenhub.runPipeline"
532
            ]
533
          },
534
          {
535
            "id": "oxygenhub.inbox",
536
            "title": "Your inbox",
537
            "description": "Mentions, reviews asked of you and activity on what you watch.\n[Open Inbox](command:oxygenhub.inbox)",
538
            "media": {
539
              "markdown": "walkthrough/inbox.md"
540
            },
541
            "completionEvents": [
542
              "onCommand:oxygenhub.inbox"
543
            ]
544
          }
545
        ]
546
      }
547
    ]
548
  },
549
  "scripts": {
550
    "types": "cp ../oxygenhub/crates/hub-api/ts/index.d.ts src/hubapi.d.ts",
551
    "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap",
552
    "watch": "npm run build -- --watch",
553
    "typecheck": "tsc --noEmit -p .",
554
    "pretest": "esbuild src/hub.ts --bundle --platform=node --format=esm --outfile=out/hub.mjs && esbuild src/provider.ts --bundle --platform=node --format=esm --outfile=out/provider.mjs && esbuild src/refs.ts --bundle --platform=node --format=esm --outfile=out/refs.mjs && esbuild src/flowview.ts --bundle --platform=node --format=esm --outfile=out/flowview.mjs",
555
    "test": "node --test \"test/**/*.test.mjs\"",
556
    "check": "npm run typecheck && npm run build && npm test",
557
    "package": "vsce package --no-dependencies"
558
  },
559
  "devDependencies": {
560
    "@types/node": "^24.0.0",
561
    "@types/vscode": "^1.137.0",
562
    "@vscode/vsce": "^4.0.0",
563
    "esbuild": "^0.28.0",
564
    "typescript": "^5.9.0"
565
  }
566
}