climemo 0.3.2 → 0.3.4

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.
@@ -4,7 +4,7 @@ import { resolve, relative, basename } from "path";
4
4
  import { execSync } from "child_process";
5
5
  import { apiRequest } from "../lib/api.js";
6
6
  import { resolveProject } from "../lib/project.js";
7
- import { getGitInfo, parseGitHubRemote } from "../lib/git.js";
7
+ import { getGitInfo, parseGitRemote } from "../lib/git.js";
8
8
  /**
9
9
  * Find markdown/text files that are likely project documentation.
10
10
  */
@@ -22,11 +22,137 @@ function findDocFiles(rootPath) {
22
22
  return [];
23
23
  }
24
24
  }
25
+ function hasCli(cmd) {
26
+ try {
27
+ execSync(`${cmd} --version`, { stdio: ["pipe", "pipe", "pipe"] });
28
+ return true;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ /**
35
+ * Fetch repo collaborators from any supported platform.
36
+ * Uses the platform's CLI tool (gh, glab) or API.
37
+ */
38
+ function fetchCollaborators(remote) {
39
+ switch (remote.platform) {
40
+ case "github":
41
+ return fetchGitHubCollaborators(remote);
42
+ case "gitlab":
43
+ return fetchGitLabMembers(remote);
44
+ case "bitbucket":
45
+ return fetchBitbucketMembers(remote);
46
+ default:
47
+ return null;
48
+ }
49
+ }
50
+ function fetchGitHubCollaborators(remote) {
51
+ if (!hasCli("gh"))
52
+ return null;
53
+ try {
54
+ const output = execSync(`gh api repos/${remote.owner}/${remote.repo}/collaborators --paginate --jq '.[] | {login: .login, id: .id}'`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
55
+ const collaborators = [];
56
+ for (const line of output.trim().split("\n")) {
57
+ if (!line.trim())
58
+ continue;
59
+ try {
60
+ const parsed = JSON.parse(line);
61
+ collaborators.push({ login: parsed.login, id: parsed.id });
62
+ }
63
+ catch { /* skip */ }
64
+ }
65
+ // Fetch emails
66
+ for (const collab of collaborators) {
67
+ try {
68
+ const email = execSync(`gh api users/${collab.login} --jq '.email'`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
69
+ if (email && email !== "null")
70
+ collab.email = email;
71
+ }
72
+ catch { /* skip */ }
73
+ }
74
+ return collaborators;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ function fetchGitLabMembers(remote) {
81
+ // Try glab CLI first
82
+ if (hasCli("glab")) {
83
+ try {
84
+ const projectPath = encodeURIComponent(`${remote.owner}/${remote.repo}`);
85
+ const output = execSync(`glab api projects/${projectPath}/members/all --paginate`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
86
+ const members = JSON.parse(output);
87
+ if (Array.isArray(members)) {
88
+ return members.map((m) => ({
89
+ login: m.username,
90
+ id: m.id,
91
+ email: m.email || null,
92
+ }));
93
+ }
94
+ }
95
+ catch { /* fall through */ }
96
+ }
97
+ // Fallback: try GitLab API with GITLAB_TOKEN env var
98
+ const token = process.env.GITLAB_TOKEN || process.env.GITLAB_PRIVATE_TOKEN;
99
+ if (token) {
100
+ try {
101
+ const projectPath = encodeURIComponent(`${remote.owner}/${remote.repo}`);
102
+ const apiUrl = `https://${remote.host}/api/v4/projects/${projectPath}/members/all`;
103
+ const output = execSync(`curl -sf -H "PRIVATE-TOKEN: ${token}" "${apiUrl}"`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
104
+ const members = JSON.parse(output);
105
+ if (Array.isArray(members)) {
106
+ return members.map((m) => ({
107
+ login: m.username,
108
+ id: m.id,
109
+ email: m.email || null,
110
+ }));
111
+ }
112
+ }
113
+ catch { /* fall through */ }
114
+ }
115
+ return null;
116
+ }
117
+ function fetchBitbucketMembers(remote) {
118
+ // Try Bitbucket API with BB_TOKEN or BITBUCKET_TOKEN env var
119
+ const token = process.env.BB_TOKEN || process.env.BITBUCKET_TOKEN || process.env.BITBUCKET_APP_PASSWORD;
120
+ const user = process.env.BITBUCKET_USERNAME;
121
+ if (token) {
122
+ try {
123
+ const authHeader = user ? `-u "${user}:${token}"` : `-H "Authorization: Bearer ${token}"`;
124
+ const apiUrl = `https://api.bitbucket.org/2.0/repositories/${remote.owner}/${remote.repo}/permissions-config/users`;
125
+ const output = execSync(`curl -sf ${authHeader} "${apiUrl}"`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
126
+ const data = JSON.parse(output);
127
+ if (data.values && Array.isArray(data.values)) {
128
+ return data.values.map((v, i) => ({
129
+ login: v.user.nickname || v.user.display_name,
130
+ id: i + 1, // Bitbucket uses UUIDs, use index as numeric ID
131
+ email: null,
132
+ }));
133
+ }
134
+ }
135
+ catch { /* fall through */ }
136
+ }
137
+ return null;
138
+ }
139
+ function getPlatformHint(platform) {
140
+ switch (platform) {
141
+ case "github":
142
+ return "Install gh CLI and run 'gh auth login' to enable team sync.";
143
+ case "gitlab":
144
+ return "Install glab CLI (or set GITLAB_TOKEN env var) to enable team sync.";
145
+ case "bitbucket":
146
+ return "Set BITBUCKET_TOKEN (and BITBUCKET_USERNAME for app passwords) to enable team sync.";
147
+ default:
148
+ return "Platform CLI not available for team sync.";
149
+ }
150
+ }
25
151
  export const syncCommand = new Command("sync")
26
152
  .description("Sync local docs to your climemo project (auto-detects git repo)")
27
153
  .option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
28
154
  .option("--dry-run", "Show what would be synced without making changes")
29
- .option("--no-team", "Skip auto-inviting GitHub repo collaborators")
155
+ .option("--no-team", "Skip auto-inviting repo collaborators")
30
156
  .option("--pattern <glob>", "Additional file pattern to include (e.g. '**/*.txt')")
31
157
  .action(async (options, cmd) => {
32
158
  const globalOpts = cmd.optsWithGlobals();
@@ -155,37 +281,31 @@ export const syncCommand = new Command("sync")
155
281
  if (conflictDetails.length > 0) {
156
282
  result.conflict_details = conflictDetails;
157
283
  }
158
- // Auto-invite GitHub collaborators (default: on, skip with --no-team)
284
+ // Auto-sync repo collaborators (default: on, skip with --no-team)
159
285
  if (options.team !== false) {
160
- const ghRepo = parseGitHubRemote(git.remoteUrl);
161
- if (!ghRepo) {
162
- result.team = { error: "Not a GitHub repository. --team requires a GitHub remote." };
286
+ const remote = parseGitRemote(git.remoteUrl);
287
+ if (!remote) {
288
+ result.team = { skipped: "No recognized remote (GitHub/GitLab/Bitbucket)." };
163
289
  }
164
290
  else {
165
- // Get the project's organization_id
166
- const { ok: projOk, data: projData } = await apiRequest(`/api/projects/${projectId}`, { token: globalOpts.token });
167
- const orgId = projOk && projData
168
- ? projData.data?.organization_id
169
- : null;
170
- if (!orgId) {
171
- result.team = { error: "Could not determine workspace for auto-invite." };
291
+ const collaborators = fetchCollaborators(remote);
292
+ if (!collaborators) {
293
+ result.team = { skipped: getPlatformHint(remote.platform) };
172
294
  }
173
295
  else {
174
- const { ok: invOk, data: invData } = await apiRequest("/api/organizations/auto-invite", {
296
+ const { ok: syncOk, data: syncData } = await apiRequest(`/api/projects/${projectId}/members/sync`, {
175
297
  method: "POST",
176
298
  body: {
177
- github_owner: ghRepo.owner,
178
- github_repo: ghRepo.repo,
179
- organization_id: orgId,
180
- project_id: projectId,
299
+ collaborators,
300
+ repo_full_name: `${remote.owner}/${remote.repo}`,
181
301
  },
182
302
  token: globalOpts.token,
183
303
  });
184
- if (invOk && invData) {
185
- result.team = invData.data;
304
+ if (syncOk && syncData) {
305
+ result.team = syncData.data;
186
306
  }
187
307
  else {
188
- result.team = { error: "Auto-invite failed", details: invData };
308
+ result.team = { error: "Team sync failed", details: syncData };
189
309
  }
190
310
  }
191
311
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ const program = new Command();
21
21
  program
22
22
  .name("climemo")
23
23
  .description("AI 시대의 프로젝트 지식 관리 도구")
24
- .version("0.3.2");
24
+ .version("0.3.4");
25
25
  // Auth commands
26
26
  program.addCommand(loginCommand);
27
27
  program.addCommand(logoutCommand);
package/dist/lib/git.d.ts CHANGED
@@ -13,12 +13,23 @@ export interface GitInfo {
13
13
  * Returns null if not inside a git repo.
14
14
  */
15
15
  export declare function getGitInfo(): GitInfo | null;
16
+ export type GitPlatform = "github" | "gitlab" | "bitbucket";
17
+ export interface GitRemoteRepo {
18
+ platform: GitPlatform;
19
+ owner: string;
20
+ repo: string;
21
+ /** e.g. "gitlab.com" or "gitlab.mycompany.com" */
22
+ host: string;
23
+ }
24
+ /** @deprecated Use parseGitRemote instead */
16
25
  export interface GitHubRepo {
17
26
  owner: string;
18
27
  repo: string;
19
28
  }
29
+ /** @deprecated Use parseGitRemote instead */
30
+ export declare function parseGitHubRemote(remoteUrl: string | null): GitHubRepo | null;
20
31
  /**
21
- * Parse GitHub owner/repo from remote URL.
22
- * Returns null if not a GitHub repo.
32
+ * Parse owner/repo and platform from any Git remote URL.
33
+ * Supports GitHub, GitLab (including self-hosted), and Bitbucket.
23
34
  */
24
- export declare function parseGitHubRemote(remoteUrl: string | null): GitHubRepo | null;
35
+ export declare function parseGitRemote(remoteUrl: string | null): GitRemoteRepo | null;
package/dist/lib/git.js CHANGED
@@ -43,21 +43,46 @@ export function getGitInfo() {
43
43
  }
44
44
  return { name, slug, remoteUrl, rootPath };
45
45
  }
46
+ /** @deprecated Use parseGitRemote instead */
47
+ export function parseGitHubRemote(remoteUrl) {
48
+ const remote = parseGitRemote(remoteUrl);
49
+ if (remote?.platform === "github")
50
+ return { owner: remote.owner, repo: remote.repo };
51
+ return null;
52
+ }
46
53
  /**
47
- * Parse GitHub owner/repo from remote URL.
48
- * Returns null if not a GitHub repo.
54
+ * Parse owner/repo and platform from any Git remote URL.
55
+ * Supports GitHub, GitLab (including self-hosted), and Bitbucket.
49
56
  */
50
- export function parseGitHubRemote(remoteUrl) {
57
+ export function parseGitRemote(remoteUrl) {
51
58
  if (!remoteUrl)
52
59
  return null;
53
- // git@github.com:owner/repo.git
54
- const sshMatch = remoteUrl.match(/github\.com[:/]([^/]+)\/([^/.]+?)(?:\.git)?$/);
55
- if (sshMatch)
56
- return { owner: sshMatch[1], repo: sshMatch[2] };
57
- // https://github.com/owner/repo.git
58
- const httpsMatch = remoteUrl.match(/github\.com\/([^/]+)\/([^/.]+?)(?:\.git)?$/);
59
- if (httpsMatch)
60
- return { owner: httpsMatch[1], repo: httpsMatch[2] };
60
+ // SSH: git@host:owner/repo.git
61
+ const sshMatch = remoteUrl.match(/git@([^:]+):([^/]+)\/([^/.]+?)(?:\.git)?$/);
62
+ if (sshMatch) {
63
+ const host = sshMatch[1];
64
+ const owner = sshMatch[2];
65
+ const repo = sshMatch[3];
66
+ return { platform: detectPlatform(host), owner, repo, host };
67
+ }
68
+ // HTTPS: https://host/owner/repo.git
69
+ const httpsMatch = remoteUrl.match(/https?:\/\/([^/]+)\/([^/]+)\/([^/.]+?)(?:\.git)?$/);
70
+ if (httpsMatch) {
71
+ const host = httpsMatch[1];
72
+ const owner = httpsMatch[2];
73
+ const repo = httpsMatch[3];
74
+ return { platform: detectPlatform(host), owner, repo, host };
75
+ }
61
76
  return null;
62
77
  }
78
+ function detectPlatform(host) {
79
+ if (host.includes("github"))
80
+ return "github";
81
+ if (host.includes("gitlab"))
82
+ return "gitlab";
83
+ if (host.includes("bitbucket"))
84
+ return "bitbucket";
85
+ // Default to gitlab for self-hosted (most common self-hosted platform)
86
+ return "gitlab";
87
+ }
63
88
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAapC,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,iCAAiC;IACjC,MAAM,SAAS,GACb,IAAI,CAAC,2BAA2B,CAAC;QACjC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAErD,sDAAsD;IACtD,IAAI,IAAY,CAAC;IACjB,IAAI,SAAS,EAAE,CAAC;QACd,sCAAsC;QACtC,0CAA0C;QAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvD,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAChD,CAAC;IAED,IAAI,IAAI,GAAG,IAAI;SACZ,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,mEAAmE;IACnE,iFAAiF;IACjF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,GAAG,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAwB;IACxD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,gCAAgC;IAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjF,IAAI,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,oCAAoC;IACpC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACjF,IAAI,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "climemo",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "AI 시대의 프로젝트 지식 관리 도구 - CLI for syncing project knowledge",
5
5
  "license": "MIT",
6
6
  "repository": {