mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 05:35:30 +02:00
[PR #1160] [MERGED] feat(backup): Extend Backup to other Git providers #1165
Labels
No labels
A1
automated
automated
bug
bug
Closed due to inactivity
contrib
dependencies
dependencies
duplicate
enhancement
feedback
hold
invalid
Notes
P1S
pull-request
security
security
ThumbsUp
user-report
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/bambuddy#1165
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/maziggy/bambuddy/pull/1160
Author: @BurntOutHylian
Created: 4/28/2026
Status: ✅ Merged
Merged: 5/3/2026
Merged by: @maziggy
Base:
dev← Head:feature/multi-provider-backup📝 Commits (10+)
029c5fbfeat(#576): add provider and api_base_url to GitHub_backup_config with migration defaults6f0ea79feat(#576): add mapped columns to GitHubBackupConfig285b2d5feat(#576): added new backend git provider abstraction. should allow for future addition/removal of providers. Also modified github_backup service to use said abstraction. Route handler updated to accomodate new database columns for provider and api_base_url3a5fbb8feat(#576): remove api_base_url and simplify provider config to use repository_urlf77a3d2feat(#576): add separate providers for Gitea and Forgejo, remove separate GitHub Enterprisef7ca431feat(#586): skip commits on all providers when content is unchanged8b6f648feat(#586): add insecure HTTP option for self-hosted Git backups424a195feat(#576): Addressing Blockers, nits, and test gaps for PR#1160f09409dfeat(#576): R2 Blockers for PR#1160c3ca4bbMerge branch 'dev' into feature/multi-provider-backup📊 Changes
26 files changed (+2192 additions, -461 deletions)
View changed files
📝
backend/app/api/routes/github_backup.py(+31 -8)📝
backend/app/core/database.py(+6 -0)📝
backend/app/models/github_backup.py(+2 -0)📝
backend/app/schemas/github_backup.py(+53 -26)➕
backend/app/services/git_providers/__init__.py(+4 -0)➕
backend/app/services/git_providers/base.py(+56 -0)➕
backend/app/services/git_providers/factory.py(+22 -0)➕
backend/app/services/git_providers/forgejo.py(+11 -0)➕
backend/app/services/git_providers/gitea.py(+44 -0)➕
backend/app/services/git_providers/github.py(+335 -0)➕
backend/app/services/git_providers/gitlab.py(+257 -0)📝
backend/app/services/github_backup.py(+31 -349)📝
backend/tests/integration/test_github_backup_api.py(+35 -0)➕
backend/tests/unit/test_git_providers.py(+460 -0)➕
backend/tests/unit/test_github_backup_schemas.py(+85 -0)➕
frontend/src/__tests__/components/GitHubBackupSettings.provider.test.tsx(+452 -0)📝
frontend/src/api/client.ts(+10 -3)📝
frontend/src/components/GitHubBackupSettings.tsx(+192 -57)📝
frontend/src/i18n/locales/de.ts(+14 -3)📝
frontend/src/i18n/locales/en.ts(+14 -3)...and 6 more files
📄 Description
Description
Extends the Git backup feature to support GitHub, Gitea, Forgejo, and GitLab as backup targets.
Previously the feature was hard-wired to github.com (URL validator rejected all non-github.com URLs
and all API calls used api.github.com). Users running self-hosted Gitea, Forgejo, or GitLab
instances could not use the feature.
Key changes
Related Issue
Fixes #576
Documentation
Companion docs PRs:
Wiki: maziggy/bambuddy-wiki#21
Docs PR(s) linked above
Type of Change
Changes Made
Screenshots
Before
After
After - Selection List
After - Edge Case: Alert when using HTTP instead of HTTPS
Testing
Backend unit tests:
Frontend tests:
Checklist
Additional Notes
The implementation drops api_base_url relative to the original issue discussion: Gitea and Forgejo are their own distinct providers in case Gitea and Forgejo diverge in their APIs over time.
With the abstraction layer, adding/removing hosts should allow us to minimize the impact of future add/remove changes
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.