@ghfs/cli 0.1.1 → 0.2.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/README.md +41 -1
- package/dist/cli.mjs +5710 -572
- package/dist/{factory-DmX3S7tf.mjs → factory-UMSInaa_.mjs} +379 -102
- package/dist/index.d.mts +363 -2
- package/dist/index.mjs +1 -1
- package/dist/ui/200.html +1 -1
- package/dist/ui/404.html +1 -1
- package/dist/ui/_nuxt/3t-6YNGz.js +1 -0
- package/dist/ui/_nuxt/{D8rZpOte.js → B0tHio-l.js} +1 -1
- package/dist/ui/_nuxt/BBxLfTx_.js +1 -0
- package/dist/ui/_nuxt/{Bp3cYrEr.js → BDEKrZIi.js} +1 -1
- package/dist/ui/_nuxt/{oH_c3LbQ.js → BMKCr1FU.js} +1 -1
- package/dist/ui/_nuxt/BO53GVu8.js +1 -0
- package/dist/ui/_nuxt/BvOdM423.js +1 -0
- package/dist/ui/_nuxt/Bzq9aFVy.js +1 -0
- package/dist/ui/_nuxt/{BLtJtn59.js → CRqJ_cUM.js} +1 -1
- package/dist/ui/_nuxt/{DbWOdLaN.js → CV3vykTa.js} +1 -1
- package/dist/ui/_nuxt/{8syuri0t.js → ChS_g7wu.js} +1 -1
- package/dist/ui/_nuxt/{DWX1VroF.js → ChgxH8nk.js} +1 -1
- package/dist/ui/_nuxt/CrQuFoFY.js +1 -0
- package/dist/ui/_nuxt/D0jeqgqx.js +1 -0
- package/dist/ui/_nuxt/DCJHYwE6.js +67 -0
- package/dist/ui/_nuxt/{CANp3yme.js → DMkUaiYH.js} +1 -1
- package/dist/ui/_nuxt/DRcdqDVD.js +1 -0
- package/dist/ui/_nuxt/DRje8inN.js +1 -0
- package/dist/ui/_nuxt/DS2KJUFh.js +1 -0
- package/dist/ui/_nuxt/{COcwbKMJ.js → DSvCPggb.js} +1 -1
- package/dist/ui/_nuxt/DToHIG1N.js +1 -0
- package/dist/ui/_nuxt/{D4Qn4bBI.js → DWbelWgw.js} +1 -1
- package/dist/ui/_nuxt/Dc-i7Zfu.js +1 -0
- package/dist/ui/_nuxt/{B6eN_cS4.js → Df2X-ZUM.js} +1 -1
- package/dist/ui/_nuxt/{CG8Ifv2g.js → DhaYTIfE.js} +1 -1
- package/dist/ui/_nuxt/DiuiI0_S.js +1 -0
- package/dist/ui/_nuxt/Dl1uYT3n.js +15 -0
- package/dist/ui/_nuxt/Dqspr-GT.js +1 -0
- package/dist/ui/_nuxt/{DN-Z_aST.js → Dsmy0J62.js} +1 -1
- package/dist/ui/_nuxt/{DM8c43g1.js → HgPamjhh.js} +1 -1
- package/dist/ui/_nuxt/KW6xsasC.js +1 -0
- package/dist/ui/_nuxt/{CRBrlGZW.js → LYj2JSs-.js} +1 -1
- package/dist/ui/_nuxt/MRO5bC_T.js +1 -0
- package/dist/ui/_nuxt/Project.BMA756E4.css +1 -0
- package/dist/ui/_nuxt/W70NOuRA.js +1 -0
- package/dist/ui/_nuxt/builds/latest.json +1 -1
- package/dist/ui/_nuxt/builds/meta/283a6ae8-b1fa-4a56-aab5-927ed1779674.json +1 -0
- package/dist/ui/_nuxt/{C7UmGho8.js → e9S_qqu4.js} +1 -1
- package/dist/ui/_nuxt/entry.DnCs62PI.css +1 -0
- package/dist/ui/_nuxt/error-404.CiGdHkfa.css +1 -0
- package/dist/ui/_nuxt/error-500.DrZuPeVU.css +1 -0
- package/dist/ui/_nuxt/index.C3E0NnSu.css +1 -0
- package/dist/ui/_nuxt/ivQhLDHX.js +11 -0
- package/dist/ui/_nuxt/{DElX3lK9.js → ka8bt-K2.js} +17 -17
- package/dist/ui/_nuxt/zinMudAE.js +1 -0
- package/dist/ui/hub/index.html +1 -0
- package/dist/ui/hub/queue/index.html +1 -0
- package/dist/ui/hub/recent/index.html +1 -0
- package/dist/ui/index.html +1 -1
- package/dist/ui/queue/index.html +1 -0
- package/dist/ui/recent/index.html +1 -0
- package/package.json +25 -26
- package/skills/ghfs/SKILL.md +10 -0
- package/dist/provider-DCIsHVeA.d.mts +0 -249
- package/dist/server/index.d.mts +0 -330
- package/dist/server/index.mjs +0 -2
- package/dist/server-BwSU4kqr.mjs +0 -3518
- package/dist/ui/_nuxt/BhrAK1vL.js +0 -1
- package/dist/ui/_nuxt/C-HG3fhB.js +0 -1
- package/dist/ui/_nuxt/C4zNGwhW.js +0 -1
- package/dist/ui/_nuxt/CFbOZP3I.js +0 -75
- package/dist/ui/_nuxt/D8_7TLub.js +0 -1
- package/dist/ui/_nuxt/DU1UobuO.js +0 -1
- package/dist/ui/_nuxt/DnF83RMp.js +0 -1
- package/dist/ui/_nuxt/JZbLTBME.js +0 -1
- package/dist/ui/_nuxt/W9tJ9s81.js +0 -1
- package/dist/ui/_nuxt/builds/meta/12d68071-f4db-447f-b929-9033d66eadc3.json +0 -1
- package/dist/ui/_nuxt/entry.DfrFFNxd.css +0 -1
- package/dist/ui/_nuxt/eo99z4R2.js +0 -1
- package/dist/ui/_nuxt/error-404.C93cll2q.css +0 -1
- package/dist/ui/_nuxt/error-500.CPQqaJsC.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as v,Z as m,r as d}from"./Dl1uYT3n.js";import{aY as b,i as y,H as c,o as g,c as x,C as k,K as N,A as a,r as S,D as Y}from"./ivQhLDHX.js";import"./DiuiI0_S.js";import"./CrQuFoFY.js";import"./DCJHYwE6.js";import"./3t-6YNGz.js";var z=v({__name:"SparkTooltip",props:{svgRef:{type:Object},x:{type:Number,required:!0},y:{type:Number,required:!0},prevX:{type:Number,required:!0},prevY:{type:Number,required:!0},offsetY:{type:Number,default:0},background:{type:String},backgroundOpacity:{type:Number,default:100},borderRadius:{type:Number,default:2},borderWidth:{type:Number,default:0},borderColor:{type:String,default:"#FFFFFF"},color:{type:String},fontSize:{type:Number}},setup(f){let e=f,u=b(e.svgRef),r=a(null),l=a(0),p=a(0),s=a(!1),n=S(()=>m(e.background,e.backgroundOpacity)),i=async()=>{if(!u.value||!r.value)return;let t=d({svgElement:u.value,element:r.value,x:e.x,y:e.y,offsetY:e.offsetY}),o=d({svgElement:u.value,element:r.value,x:e.prevX,y:e.prevY,offsetY:e.offsetY});!t||!o||(s.value=!1,l.value=o.top,p.value=o.left,await Y(),setTimeout(()=>{s.value=!0,l.value=t.top,p.value=t.left},50))};return y(i),c(()=>[e.x,e.y,e.prevX,e.prevY],()=>i(),{immediate:!0}),(t,o)=>(g(),x("div",{ref_key:"tooltipRef",ref:r,class:"vue-data-ui-spark-tooltip",style:N({position:"fixed",top:`${l.value}px`,left:`${p.value}px`,pointerEvents:"none",background:n.value,color:e.color,fontSize:`${e.fontSize}px`,borderRadius:`${e.borderRadius}px`,border:`${e.borderWidth}px solid ${e.borderColor}`,transition:s.value?"top 0.3s ease-out, left 0.3s ease-out":"none"})},[k(t.$slots,"default",{},void 0,!0)],4))}},[["__scopeId","data-v-57d870b0"]]);export{z as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.DnCs62PI.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ivQhLDHX.js"><script type="module" src="/_nuxt/ivQhLDHX.js" crossorigin></script><link rel="icon" href="./favicon.svg" type="image/svg+xml"><script id="unhead:payload" type="application/json">{"title":"ghfs"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"283a6ae8-b1fa-4a56-aab5-927ed1779674",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1779476779093,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.DnCs62PI.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ivQhLDHX.js"><script type="module" src="/_nuxt/ivQhLDHX.js" crossorigin></script><link rel="icon" href="./favicon.svg" type="image/svg+xml"><script id="unhead:payload" type="application/json">{"title":"ghfs"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"283a6ae8-b1fa-4a56-aab5-927ed1779674",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1779476779093,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.DnCs62PI.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ivQhLDHX.js"><script type="module" src="/_nuxt/ivQhLDHX.js" crossorigin></script><link rel="icon" href="./favicon.svg" type="image/svg+xml"><script id="unhead:payload" type="application/json">{"title":"ghfs"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"283a6ae8-b1fa-4a56-aab5-927ed1779674",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1779476779093,false]</script></body></html>
|
package/dist/ui/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.DnCs62PI.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ivQhLDHX.js"><script type="module" src="/_nuxt/ivQhLDHX.js" crossorigin></script><link rel="icon" href="./favicon.svg" type="image/svg+xml"><script id="unhead:payload" type="application/json">{"title":"ghfs"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"283a6ae8-b1fa-4a56-aab5-927ed1779674",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1779476779094,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.DnCs62PI.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ivQhLDHX.js"><script type="module" src="/_nuxt/ivQhLDHX.js" crossorigin></script><link rel="icon" href="./favicon.svg" type="image/svg+xml"><script id="unhead:payload" type="application/json">{"title":"ghfs"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"283a6ae8-b1fa-4a56-aab5-927ed1779674",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1779476779088,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>ghfs</title><link rel="stylesheet" href="/_nuxt/entry.DnCs62PI.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ivQhLDHX.js"><script type="module" src="/_nuxt/ivQhLDHX.js" crossorigin></script><link rel="icon" href="./favicon.svg" type="image/svg+xml"><script id="unhead:payload" type="application/json">{"title":"ghfs"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"283a6ae8-b1fa-4a56-aab5-927ed1779674",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1779476779093,false]</script></body></html>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ghfs/cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"description": "GitHub issues/PRs as filesystem, for offline view and operations in batch. Designed for human and agents.",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -20,55 +20,50 @@
|
|
|
20
20
|
".": "./dist/index.mjs",
|
|
21
21
|
"./cli": "./dist/cli.mjs",
|
|
22
22
|
"./dir": "./dist/dir.mjs",
|
|
23
|
-
"./server": "./dist/server/index.mjs",
|
|
24
23
|
"./package.json": "./package.json"
|
|
25
24
|
},
|
|
26
25
|
"types": "./dist/index.d.mts",
|
|
27
26
|
"bin": {
|
|
28
|
-
"
|
|
27
|
+
"cli": "./dist/cli.mjs"
|
|
29
28
|
},
|
|
30
29
|
"files": [
|
|
31
30
|
"dist",
|
|
32
31
|
"skills/ghfs"
|
|
33
32
|
],
|
|
34
33
|
"dependencies": {
|
|
35
|
-
"@clack/prompts": "^1.
|
|
34
|
+
"@clack/prompts": "^1.4.0",
|
|
36
35
|
"@octokit/plugin-retry": "^8.1.0",
|
|
37
36
|
"@octokit/plugin-throttling": "^11.0.3",
|
|
38
|
-
"ansis": "^4.
|
|
39
|
-
"birpc": "^4.0.0",
|
|
37
|
+
"ansis": "^4.3.0",
|
|
40
38
|
"cac": "^7.0.0",
|
|
39
|
+
"devframe": "^0.4.1",
|
|
41
40
|
"dotenv": "^17.4.2",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"listhen": "^1.9.1",
|
|
46
|
-
"logs-sdk": "^0.0.6",
|
|
41
|
+
"jiti": "^2.7.0",
|
|
42
|
+
"listhen": "^1.10.0",
|
|
43
|
+
"nostics": "^0.2.0",
|
|
47
44
|
"octokit": "^5.0.5",
|
|
48
45
|
"ohash": "^2.0.11",
|
|
49
46
|
"open": "^11.0.0",
|
|
50
47
|
"pathe": "^2.0.3",
|
|
51
|
-
"portless": "^0.
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"ws": "^8.20.0",
|
|
55
|
-
"yaml": "^2.8.3"
|
|
48
|
+
"portless": "^0.13.0",
|
|
49
|
+
"valibot": "^1.4.0",
|
|
50
|
+
"yaml": "^2.9.0"
|
|
56
51
|
},
|
|
57
52
|
"devDependencies": {
|
|
58
|
-
"@antfu/eslint-config": "^
|
|
59
|
-
"@
|
|
60
|
-
"@types/
|
|
53
|
+
"@antfu/eslint-config": "^9.0.0",
|
|
54
|
+
"@playwright/test": "^1.60.0",
|
|
55
|
+
"@types/node": "^25.9.1",
|
|
61
56
|
"@vitest/coverage-v8": "4.0.18",
|
|
62
|
-
"bumpp": "^11.0
|
|
63
|
-
"eslint": "^10.
|
|
64
|
-
"lint-staged": "^
|
|
57
|
+
"bumpp": "^11.1.0",
|
|
58
|
+
"eslint": "^10.4.0",
|
|
59
|
+
"lint-staged": "^17.0.5",
|
|
65
60
|
"simple-git-hooks": "^2.13.1",
|
|
66
61
|
"skills-npm": "^1.1.1",
|
|
67
|
-
"tsdown": "^0.
|
|
68
|
-
"tsx": "^4.
|
|
62
|
+
"tsdown": "^0.22.0",
|
|
63
|
+
"tsx": "^4.22.3",
|
|
69
64
|
"typescript": "^6.0.3",
|
|
70
|
-
"unimport": "^6.
|
|
71
|
-
"vitest": "^4.1.
|
|
65
|
+
"unimport": "^6.3.0",
|
|
66
|
+
"vitest": "^4.1.7"
|
|
72
67
|
},
|
|
73
68
|
"simple-git-hooks": {
|
|
74
69
|
"pre-commit": "pnpm i --frozen-lockfile --ignore-scripts --offline && npx lint-staged"
|
|
@@ -85,8 +80,12 @@
|
|
|
85
80
|
"dev:server": "GHFS_UI_DEV=1 tsx src/cli.ts ui --no-open --port 7710",
|
|
86
81
|
"dev:ui": "pnpm --filter @ghfs/ui dev",
|
|
87
82
|
"dev:at": "trap 'kill 0' EXIT INT TERM; pnpm run dev:ui & GHFS_UI_DEV=1 tsx src/cli.ts ui --no-open --port 7710 --cwd",
|
|
83
|
+
"dev:hub": "trap 'kill 0' EXIT INT TERM; pnpm run dev:ui & GHFS_UI_DEV=1 tsx src/cli.ts hub --no-open --port 7710 --cwd ..",
|
|
88
84
|
"typecheck": "tsc --noEmit",
|
|
89
85
|
"test": "vitest run",
|
|
86
|
+
"pretest:e2e": "tsx tests/e2e/_support/run-setup.ts",
|
|
87
|
+
"test:e2e": "playwright test",
|
|
88
|
+
"test:e2e:install": "playwright install --with-deps chromium",
|
|
90
89
|
"coverage": "vitest run --coverage",
|
|
91
90
|
"lint": "eslint",
|
|
92
91
|
"release": "bumpp",
|
package/skills/ghfs/SKILL.md
CHANGED
|
@@ -86,6 +86,15 @@ Keep root as a YAML array and include `number` + `action` for each entry.
|
|
|
86
86
|
action: request-reviewers
|
|
87
87
|
reviewers: [octocat]
|
|
88
88
|
ifUnchangedSince: '2026-03-05T04:10:00Z'
|
|
89
|
+
|
|
90
|
+
- number: 130
|
|
91
|
+
action: add-reaction
|
|
92
|
+
reaction: heart
|
|
93
|
+
|
|
94
|
+
- number: 130
|
|
95
|
+
action: add-reaction
|
|
96
|
+
reaction: '+1'
|
|
97
|
+
target: {kind: comment, commentId: 9876543}
|
|
89
98
|
```
|
|
90
99
|
|
|
91
100
|
Map user intent to action fields:
|
|
@@ -103,6 +112,7 @@ Map user intent to action fields:
|
|
|
103
112
|
| Lock/unlock conversation | `lock`, `unlock` | optional `reason` for lock |
|
|
104
113
|
| PR reviewer actions | `request-reviewers`, `remove-reviewers` | `reviewers` (non-empty string array) |
|
|
105
114
|
| PR draft state | `mark-ready-for-review`, `convert-to-draft` | none |
|
|
115
|
+
| Add/remove a reaction | `add-reaction`, `remove-reaction` | `reaction` (one of `+1`, `-1`, `laugh`, `hooray`, `confused`, `heart`, `rocket`, `eyes`); optional `target` (defaults to the issue/PR body) |
|
|
106
116
|
|
|
107
117
|
Rules:
|
|
108
118
|
- `number` must be a positive integer.
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
//#region src/types/config.d.ts
|
|
2
|
-
interface GhfsUserConfig {
|
|
3
|
-
/**
|
|
4
|
-
* The repository to sync.
|
|
5
|
-
*
|
|
6
|
-
* Will try to detect the repository from the current working directory or the `package.json` file.
|
|
7
|
-
*/
|
|
8
|
-
repo?: string;
|
|
9
|
-
/**
|
|
10
|
-
* The directory to store the synced issues and pull requests.
|
|
11
|
-
*
|
|
12
|
-
* @default '.ghfs'
|
|
13
|
-
*/
|
|
14
|
-
directory?: string;
|
|
15
|
-
/**
|
|
16
|
-
* The authentication configuration.
|
|
17
|
-
*/
|
|
18
|
-
auth?: {
|
|
19
|
-
/**
|
|
20
|
-
* The GitHub personal access token to use for authentication.
|
|
21
|
-
*
|
|
22
|
-
* When not provided, will try to get the token from `gh auth token` or the environment variables `GH_TOKEN` or `GITHUB_TOKEN`.
|
|
23
|
-
*/
|
|
24
|
-
token?: string;
|
|
25
|
-
};
|
|
26
|
-
sync?: {
|
|
27
|
-
/**
|
|
28
|
-
* Whether to sync issues.
|
|
29
|
-
*
|
|
30
|
-
* @default true
|
|
31
|
-
*/
|
|
32
|
-
issues?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Whether to sync pull requests.
|
|
35
|
-
*
|
|
36
|
-
* @default true
|
|
37
|
-
*/
|
|
38
|
-
pulls?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* When to sync closed issues and pull requests.
|
|
41
|
-
*
|
|
42
|
-
* - `true`: sync all closed issues and pull requests.
|
|
43
|
-
* - `false`: don't sync any closed issues and pull requests. And delete any existing closed issues and pull requests from the local filesystem.
|
|
44
|
-
*
|
|
45
|
-
* @default false
|
|
46
|
-
*/
|
|
47
|
-
closed?: boolean;
|
|
48
|
-
/**
|
|
49
|
-
* When to download the pull request patch files.
|
|
50
|
-
*
|
|
51
|
-
* - `'open'`: only download open pull request patch files.
|
|
52
|
-
* - `'all'`: download all pull request patch files.
|
|
53
|
-
* - `false`: don't download any pull request patch files.
|
|
54
|
-
*
|
|
55
|
-
* @default 'open'
|
|
56
|
-
*/
|
|
57
|
-
patches?: 'open' | 'all' | false;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
type GhfsResolvedConfig = Required<GhfsUserConfig> & {
|
|
61
|
-
cwd: string;
|
|
62
|
-
auth: Required<GhfsUserConfig['auth']>;
|
|
63
|
-
sync: Required<GhfsUserConfig['sync']>;
|
|
64
|
-
};
|
|
65
|
-
//#endregion
|
|
66
|
-
//#region src/types/issue.d.ts
|
|
67
|
-
type IssueKind = 'issue' | 'pull';
|
|
68
|
-
type IssueState = 'open' | 'closed';
|
|
69
|
-
//#endregion
|
|
70
|
-
//#region src/types/provider.d.ts
|
|
71
|
-
interface ProviderReactions {
|
|
72
|
-
totalCount: number;
|
|
73
|
-
plusOne: number;
|
|
74
|
-
minusOne: number;
|
|
75
|
-
laugh: number;
|
|
76
|
-
hooray: number;
|
|
77
|
-
confused: number;
|
|
78
|
-
heart: number;
|
|
79
|
-
rocket: number;
|
|
80
|
-
eyes: number;
|
|
81
|
-
}
|
|
82
|
-
type IssueStateReason = 'completed' | 'not_planned' | 'reopened';
|
|
83
|
-
interface ProviderItem {
|
|
84
|
-
number: number;
|
|
85
|
-
kind: IssueKind;
|
|
86
|
-
url?: string;
|
|
87
|
-
state: IssueState;
|
|
88
|
-
stateReason?: IssueStateReason | null;
|
|
89
|
-
updatedAt: string;
|
|
90
|
-
createdAt: string;
|
|
91
|
-
closedAt: string | null;
|
|
92
|
-
title: string;
|
|
93
|
-
body: string | null;
|
|
94
|
-
author: string | null;
|
|
95
|
-
labels: string[];
|
|
96
|
-
assignees: string[];
|
|
97
|
-
milestone: string | null;
|
|
98
|
-
reactions?: ProviderReactions;
|
|
99
|
-
}
|
|
100
|
-
interface ProviderComment {
|
|
101
|
-
id: number;
|
|
102
|
-
body: string | null;
|
|
103
|
-
createdAt: string;
|
|
104
|
-
updatedAt: string;
|
|
105
|
-
author: string | null;
|
|
106
|
-
reactions?: ProviderReactions;
|
|
107
|
-
}
|
|
108
|
-
interface ProviderPullMetadata {
|
|
109
|
-
isDraft: boolean;
|
|
110
|
-
merged: boolean;
|
|
111
|
-
mergedAt: string | null;
|
|
112
|
-
baseRef: string;
|
|
113
|
-
headRef: string;
|
|
114
|
-
requestedReviewers: string[];
|
|
115
|
-
}
|
|
116
|
-
interface ProviderCommit {
|
|
117
|
-
sha: string;
|
|
118
|
-
message: string;
|
|
119
|
-
authorLogin: string | null;
|
|
120
|
-
authorName: string | null;
|
|
121
|
-
authorDate: string;
|
|
122
|
-
committerLogin: string | null;
|
|
123
|
-
committerDate: string;
|
|
124
|
-
url?: string;
|
|
125
|
-
}
|
|
126
|
-
type ProviderTimelineEventKind = 'committed' | 'closed' | 'reopened' | 'merged' | 'labeled' | 'unlabeled' | 'assigned' | 'unassigned' | 'review_requested' | 'review_request_removed' | 'reviewed' | 'commented' | 'renamed' | 'head_ref_force_pushed' | 'head_ref_deleted' | 'head_ref_restored' | 'locked' | 'unlocked' | 'ready_for_review' | 'convert_to_draft' | 'referenced' | 'cross-referenced' | 'unknown';
|
|
127
|
-
type ProviderReviewState = 'approved' | 'changes_requested' | 'commented' | 'dismissed' | 'pending';
|
|
128
|
-
interface ProviderTimelineEvent {
|
|
129
|
-
id: string;
|
|
130
|
-
kind: ProviderTimelineEventKind;
|
|
131
|
-
createdAt: string;
|
|
132
|
-
actor: string | null;
|
|
133
|
-
sha?: string;
|
|
134
|
-
commitMessage?: string;
|
|
135
|
-
label?: {
|
|
136
|
-
name: string;
|
|
137
|
-
color: string;
|
|
138
|
-
};
|
|
139
|
-
assignee?: string;
|
|
140
|
-
requestedReviewer?: string;
|
|
141
|
-
review?: {
|
|
142
|
-
state: ProviderReviewState;
|
|
143
|
-
body: string | null;
|
|
144
|
-
submittedAt: string;
|
|
145
|
-
};
|
|
146
|
-
commentId?: number;
|
|
147
|
-
body?: string | null;
|
|
148
|
-
rename?: {
|
|
149
|
-
from: string;
|
|
150
|
-
to: string;
|
|
151
|
-
};
|
|
152
|
-
stateReason?: string | null;
|
|
153
|
-
}
|
|
154
|
-
interface ProviderRepository {
|
|
155
|
-
name: string;
|
|
156
|
-
full_name: string;
|
|
157
|
-
description: string | null;
|
|
158
|
-
private: boolean;
|
|
159
|
-
archived: boolean;
|
|
160
|
-
default_branch: string;
|
|
161
|
-
html_url: string;
|
|
162
|
-
fork: boolean;
|
|
163
|
-
open_issues_count: number;
|
|
164
|
-
has_issues: boolean;
|
|
165
|
-
has_projects: boolean;
|
|
166
|
-
has_wiki: boolean;
|
|
167
|
-
created_at: string;
|
|
168
|
-
updated_at: string;
|
|
169
|
-
pushed_at: string | null;
|
|
170
|
-
owner: {
|
|
171
|
-
login: string;
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
interface ProviderLabel {
|
|
175
|
-
name: string;
|
|
176
|
-
color: string;
|
|
177
|
-
description: string | null;
|
|
178
|
-
default: boolean;
|
|
179
|
-
}
|
|
180
|
-
interface ProviderAuthenticatedUser {
|
|
181
|
-
login: string;
|
|
182
|
-
name: string | null;
|
|
183
|
-
avatarUrl: string;
|
|
184
|
-
}
|
|
185
|
-
interface ProviderMilestone {
|
|
186
|
-
number: number;
|
|
187
|
-
title: string;
|
|
188
|
-
state: 'open' | 'closed';
|
|
189
|
-
description: string | null;
|
|
190
|
-
due_on: string | null;
|
|
191
|
-
open_issues: number;
|
|
192
|
-
closed_issues: number;
|
|
193
|
-
created_at: string;
|
|
194
|
-
updated_at: string;
|
|
195
|
-
closed_at: string | null;
|
|
196
|
-
}
|
|
197
|
-
interface ProviderItemSnapshot {
|
|
198
|
-
number: number;
|
|
199
|
-
kind: IssueKind;
|
|
200
|
-
updatedAt: string | null;
|
|
201
|
-
}
|
|
202
|
-
interface ProviderUpdateCounts {
|
|
203
|
-
issues: number;
|
|
204
|
-
pulls: number;
|
|
205
|
-
}
|
|
206
|
-
type ProviderLockReason = 'resolved' | 'off-topic' | 'too heated' | 'too-heated' | 'spam';
|
|
207
|
-
interface PaginateItemsOptions {
|
|
208
|
-
state: IssueState | 'all';
|
|
209
|
-
since?: string;
|
|
210
|
-
}
|
|
211
|
-
interface RepositoryProvider {
|
|
212
|
-
paginateItems: (options: PaginateItemsOptions) => AsyncIterable<ProviderItem[]>;
|
|
213
|
-
fetchItems: (options: PaginateItemsOptions) => Promise<ProviderItem[]>;
|
|
214
|
-
eachItem: (options: PaginateItemsOptions) => AsyncIterable<ProviderItem>;
|
|
215
|
-
fetchItemsByNumbers: (numbers: number[]) => Promise<ProviderItem[]>;
|
|
216
|
-
fetchComments: (number: number) => Promise<ProviderComment[]>;
|
|
217
|
-
fetchPullMetadata: (number: number) => Promise<ProviderPullMetadata>;
|
|
218
|
-
fetchPullPatch: (number: number) => Promise<string>;
|
|
219
|
-
fetchPullCommits: (number: number) => Promise<ProviderCommit[]>;
|
|
220
|
-
fetchTimeline: (number: number) => Promise<ProviderTimelineEvent[]>;
|
|
221
|
-
fetchItemSnapshot: (number: number) => Promise<ProviderItemSnapshot>;
|
|
222
|
-
fetchRepository: () => Promise<ProviderRepository>;
|
|
223
|
-
fetchRepositoryLabels: () => Promise<ProviderLabel[]>;
|
|
224
|
-
fetchRepositoryMilestones: () => Promise<ProviderMilestone[]>;
|
|
225
|
-
fetchAuthenticatedUser: () => Promise<ProviderAuthenticatedUser | null>;
|
|
226
|
-
countUpdatedSince: (since: string) => Promise<ProviderUpdateCounts>;
|
|
227
|
-
getRequestCount: () => number;
|
|
228
|
-
actionClose: (number: number) => Promise<void>;
|
|
229
|
-
actionReopen: (number: number) => Promise<void>;
|
|
230
|
-
actionSetTitle: (number: number, title: string) => Promise<void>;
|
|
231
|
-
actionSetBody: (number: number, body: string) => Promise<void>;
|
|
232
|
-
actionAddComment: (number: number, body: string) => Promise<void>;
|
|
233
|
-
actionAddLabels: (number: number, labels: string[]) => Promise<void>;
|
|
234
|
-
actionRemoveLabels: (number: number, labels: string[]) => Promise<void>;
|
|
235
|
-
actionSetLabels: (number: number, labels: string[]) => Promise<void>;
|
|
236
|
-
actionAddAssignees: (number: number, assignees: string[]) => Promise<void>;
|
|
237
|
-
actionRemoveAssignees: (number: number, assignees: string[]) => Promise<void>;
|
|
238
|
-
actionSetAssignees: (number: number, assignees: string[]) => Promise<void>;
|
|
239
|
-
actionSetMilestone: (number: number, milestone: string | number) => Promise<void>;
|
|
240
|
-
actionClearMilestone: (number: number) => Promise<void>;
|
|
241
|
-
actionLock: (number: number, reason?: ProviderLockReason) => Promise<void>;
|
|
242
|
-
actionUnlock: (number: number) => Promise<void>;
|
|
243
|
-
actionRequestReviewers: (number: number, reviewers: string[]) => Promise<void>;
|
|
244
|
-
actionRemoveReviewers: (number: number, reviewers: string[]) => Promise<void>;
|
|
245
|
-
actionMarkReadyForReview: (number: number) => Promise<void>;
|
|
246
|
-
actionConvertToDraft: (number: number) => Promise<void>;
|
|
247
|
-
}
|
|
248
|
-
//#endregion
|
|
249
|
-
export { ProviderItemSnapshot as a, ProviderTimelineEvent as c, IssueState as d, GhfsResolvedConfig as f, ProviderItem as i, RepositoryProvider as l, ProviderComment as n, ProviderLockReason as o, GhfsUserConfig as p, ProviderCommit as r, ProviderPullMetadata as s, PaginateItemsOptions as t, IssueKind as u };
|