forked from ericc-ch/copilot-api
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauth.ts
More file actions
68 lines (60 loc) · 1.63 KB
/
auth.ts
File metadata and controls
68 lines (60 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env node
import { defineCommand } from "citty"
import consola from "consola"
import { parseBackendId } from "./lib/backend"
import { authenticateOpenAIOAuth } from "./lib/openai-oauth"
import { PATHS, ensurePaths } from "./lib/paths"
import { state } from "./lib/state"
import { setupGitHubToken } from "./lib/token"
interface RunAuthOptions {
backend: string
verbose: boolean
showToken: boolean
}
export async function runAuth(options: RunAuthOptions): Promise<void> {
if (options.verbose) {
consola.level = 5
consola.info("Verbose logging enabled")
}
state.backend = parseBackendId(options.backend)
state.showToken = options.showToken
await ensurePaths()
if (state.backend === "openai-oauth") {
await authenticateOpenAIOAuth()
consola.success("OpenAI OAuth token written to", PATHS.OPENAI_OAUTH_PATH)
return
}
await setupGitHubToken({ force: true })
consola.success("GitHub token written to", PATHS.GITHUB_TOKEN_PATH)
}
export const auth = defineCommand({
meta: {
name: "auth",
description: "Run GitHub auth flow without running the server",
},
args: {
backend: {
type: "string",
default: "copilot",
description: "Auth backend to use (copilot, openai-oauth)",
},
verbose: {
alias: "v",
type: "boolean",
default: false,
description: "Enable verbose logging",
},
"show-token": {
type: "boolean",
default: false,
description: "Show GitHub token on auth",
},
},
run({ args }) {
return runAuth({
backend: args.backend,
verbose: args.verbose,
showToken: args["show-token"],
})
},
})