Skip to content

Conversation

seefood
Copy link
Contributor

@seefood seefood commented Oct 5, 2025

Summary

Adds automatic detection of git remote name when BASH_IT_REMOTE is not set, fixing issues for users with non-standard remote names like me, upstream, fork, etc.

Problem

Commands like bash-it version, bash-it update, and bash-it doctor hard-coded the remote name as "origin", causing failures when users have different remote naming conventions:

$ bash-it version
error: No such remote 'origin'

Solution

Created _bash-it-get-remote-name() helper function that:

  1. Returns BASH_IT_REMOTE if already set (preserves user override)
  2. Auto-detects first available remote via git remote | head -n 1
  3. Falls back to "origin" if no remotes found

Updated three functions to use auto-detection:

  • _bash-it-update-() (lib/helpers.bash:254)
  • _bash-it-version() (lib/helpers.bash:370)
  • _bash-it-doctor-summary() (lib/helpers.bash:564)

Benefits

  • ✅ No configuration required for single-remote repos
  • ✅ Works with any remote name (me, fork, upstream, etc.)
  • ✅ Backward compatible: BASH_IT_REMOTE override still works
  • ✅ Fallback to "origin" maintains existing behavior for edge cases

Testing

  • Verified with non-standard remote name 'me'
  • Tested BASH_IT_REMOTE environment variable preservation
  • Shellcheck passes with no warnings
  • All pre-commit hooks pass

Fixes #2317

🤖 Generated with Claude Code

Adds automatic detection of git remote name when BASH_IT_REMOTE is not set,
fixing issues for users with non-standard remote names like 'me', 'upstream',
'fork', etc.

**Problem:**
Commands like `bash-it version`, `bash-it update`, and `bash-it doctor`
hard-coded the remote name as "origin", causing failures when users have
different remote naming conventions:
```
$ bash-it version
error: No such remote 'origin'
```

**Solution:**
Created `_bash-it-get-remote-name()` helper function that:
1. Returns BASH_IT_REMOTE if already set (preserves user override)
2. Auto-detects first available remote via `git remote | head -n 1`
3. Falls back to "origin" if no remotes found

Updated three functions to use auto-detection:
- `_bash-it-update-()` (lib/helpers.bash:254)
- `_bash-it-version()` (lib/helpers.bash:370)
- `_bash-it-doctor-summary()` (lib/helpers.bash:564)

**Benefits:**
- No configuration required for single-remote repos
- Works with any remote name (me, fork, upstream, etc.)
- Backward compatible: BASH_IT_REMOTE override still works
- Fallback to "origin" maintains existing behavior for edge cases

**Testing:**
- Verified with non-standard remote name 'me'
- Tested BASH_IT_REMOTE environment variable preservation
- Shellcheck passes with no warnings

Fixes Bash-it#2317

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@seefood seefood closed this Oct 7, 2025
@seefood seefood deleted the feature/auto-detect-git-remote branch October 7, 2025 09:31
@seefood
Copy link
Contributor Author

seefood commented Oct 7, 2025

Closing as duplicate of #2344. Both PRs solve the same issue (#2317 - auto-detect git remote name). PR #2344 was created first and already has review feedback, so that should be the one to merge.

seefood added a commit that referenced this pull request Oct 7, 2025
Updated all three planning documents to reflect the completed work:

**Issues Fixed (6 total)**:
- #2317: Auto-detect git remote (PR #2345)
- #2248: Laravel artisan completion (PR #2349)
- #2296: down4me URL malformation (PR #2350)
- #2260: SSH completion @ sign (PR #2351)
- #2238: Uninstall script backup (PR #2352)
- #2216: Node version conditional display (PR #2353)

**Changes to docs/plans/**:
1. bash-it-issues-comprehensive-analysis.md
   - Marked 5 quick wins as FIXED with PR numbers
   - Updated executive summary: 32 → 27 open issues
   - Updated work plan to show Phase 1 completed
   - Updated issue reference appendix

2. bash-it-quick-reference.md
   - Moved completed issues to "Fixed" section
   - Updated TL;DR metrics
   - Removed completed items from decision list
   - Updated metrics table with current progress

3. bash-it-roadmap-2025.md
   - Updated health metrics (32 → 27 issues)
   - Marked Phase 1 as COMPLETED
   - Listed all 6 PRs with dates
   - Updated success criteria checkmarks

**Remaining Work**:
- 1 quick fix (#2314 - todo alias rename)
- 18 stale issues to close
- 4 strategic decisions needed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug] Fails to auto-infer remote name when possible
1 participant