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