@vfarcic/dot-ai 1.6.7 → 1.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/core/git-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AASD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E;AA2ED,wBAAsB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAc7E;AAED,wBAAgB,uBAAuB,IAAI,aAAa,CAyBvD;AAeD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBhD;AAID,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB7B;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC,CAyErB"}
1
+ {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/core/git-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AASD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1E;AA2ED,wBAAsB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAc7E;AAED,wBAAgB,uBAAuB,IAAI,aAAa,CAyBvD;AAeD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BhD;AAID,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B5E;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC,CAyErB"}
@@ -163,8 +163,15 @@ function gitOptions(baseDir) {
163
163
  }
164
164
  async function cloneRepo(repoUrl, targetDir, opts) {
165
165
  const authConfig = getGitAuthConfigFromEnv();
166
- const token = await getAuthToken(authConfig);
167
- const authUrl = getAuthenticatedUrl(repoUrl, token);
166
+ let cloneUrl;
167
+ // Use authenticated URL if credentials are available, otherwise clone unauthenticated (public repos)
168
+ if (authConfig.pat || authConfig.githubApp) {
169
+ const token = await getAuthToken(authConfig);
170
+ cloneUrl = getAuthenticatedUrl(repoUrl, token);
171
+ }
172
+ else {
173
+ cloneUrl = repoUrl;
174
+ }
168
175
  const git = (0, simple_git_1.default)(gitOptions());
169
176
  const cloneOptions = [];
170
177
  if (opts?.branch) {
@@ -173,7 +180,7 @@ async function cloneRepo(repoUrl, targetDir, opts) {
173
180
  if (opts?.depth) {
174
181
  cloneOptions.push('--depth', String(opts.depth));
175
182
  }
176
- await git.clone(authUrl, targetDir, cloneOptions);
183
+ await git.clone(cloneUrl, targetDir, cloneOptions);
177
184
  const repoGit = (0, simple_git_1.default)(targetDir);
178
185
  const status = await repoGit.status();
179
186
  const branch = status.current || opts?.branch || 'main';
@@ -182,14 +189,18 @@ async function cloneRepo(repoUrl, targetDir, opts) {
182
189
  // ─── Pull ───
183
190
  async function pullRepo(repoPath) {
184
191
  const authConfig = getGitAuthConfigFromEnv();
185
- const token = await getAuthToken(authConfig);
192
+ const hasAuth = !!(authConfig.pat || authConfig.githubApp);
186
193
  const git = (0, simple_git_1.default)(gitOptions(repoPath));
187
- const remotes = await git.getRemotes(true);
188
- const origin = remotes.find(r => r.name === 'origin');
189
- const originalOriginUrl = origin?.refs.fetch;
190
- if (originalOriginUrl) {
191
- const authUrl = getAuthenticatedUrl(originalOriginUrl, token);
192
- await git.remote(['set-url', 'origin', authUrl]);
194
+ let originalOriginUrl;
195
+ if (hasAuth) {
196
+ const token = await getAuthToken(authConfig);
197
+ const remotes = await git.getRemotes(true);
198
+ const origin = remotes.find(r => r.name === 'origin');
199
+ originalOriginUrl = origin?.refs.fetch;
200
+ if (originalOriginUrl) {
201
+ const authUrl = getAuthenticatedUrl(originalOriginUrl, token);
202
+ await git.remote(['set-url', 'origin', authUrl]);
203
+ }
193
204
  }
194
205
  try {
195
206
  await git.pull('origin', undefined, ['--ff-only']);
@@ -198,7 +209,7 @@ async function pullRepo(repoPath) {
198
209
  }
199
210
  finally {
200
211
  // Restore original origin URL to prevent auth tokens persisting in .git/config
201
- if (originalOriginUrl) {
212
+ if (hasAuth && originalOriginUrl) {
202
213
  await git.remote(['set-url', 'origin', originalOriginUrl]);
203
214
  }
204
215
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vfarcic/dot-ai",
3
- "version": "1.6.7",
3
+ "version": "1.7.0",
4
4
  "description": "AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance",
5
5
  "mcpName": "io.github.vfarcic/dot-ai",
6
6
  "main": "dist/index.js",