{"id":50482806,"url":"https://github.com/d-oit/synology-github-backup","last_synced_at":"2026-06-01T19:01:06.031Z","repository":{"id":352699999,"uuid":"1216250346","full_name":"d-oit/synology-github-backup","owner":"d-oit","description":"Synology NAS backup script for multiple GitHub accounts — auto-detects login as subfolder, paginates all repos","archived":false,"fork":false,"pushed_at":"2026-04-20T18:48:59.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-20T20:24:44.732Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-oit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T18:08:07.000Z","updated_at":"2026-04-20T18:49:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/d-oit/synology-github-backup","commit_stats":null,"previous_names":["d-oit/synology-github-backup"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/d-oit/synology-github-backup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-oit%2Fsynology-github-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-oit%2Fsynology-github-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-oit%2Fsynology-github-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-oit%2Fsynology-github-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-oit","download_url":"https://codeload.github.com/d-oit/synology-github-backup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-oit%2Fsynology-github-backup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33789013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-01T19:01:05.373Z","updated_at":"2026-06-01T19:01:06.021Z","avatar_url":"https://github.com/d-oit.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# synology-github-backup\n\nSynology NAS shell script that backs up all owned GitHub repositories as ZIP snapshots.\nSupports multiple accounts — the script auto-detects the authenticated login from each PAT\nand uses it as the subfolder name.\n\n## Output structure\n\n```\n/volume1/homes/Dominik/sourcecode/github/\n  d-1/\n    repo-a.zip\n    repo-b.zip\n  d-2/\n    repo-x.zip\n```\n\n## Requirements\n\n| Tool | Install |\n|------|---------|\n| `curl` | Built into DSM |\n| `jq` | SynoCommunity or Entware |\n| `mktemp` | Built into DSM |\n\n## Setup\n\n1. Copy `github_backup.sh` to `/volume1/homes/Dominik/sourcecode/github_backup.sh`\n2. `chmod +x /volume1/homes/Dominik/sourcecode/github_backup.sh`\n3. Create `/volume1/homes/Dominik/sourcecode/github_tokens.txt` from `github_tokens.txt.example`\n4. Add to **DSM → Control Panel → Task Scheduler → Create → Scheduled Task → User-defined script**\n   - User: `Dominik` (or a dedicated backup user)\n   - Schedule: Daily\n   - Run command: `/volume1/homes/Dominik/sourcecode/github_backup.sh`\n\n## Fine-grained PAT permissions needed\n\n- **Metadata**: Read-only (required for listing repos)\n- **Contents**: Read-only (required for downloading zipballs)\n\n## Notes\n\n- Downloads **ZIP snapshots only** — no Git history.\n- For a full disaster-recovery backup use `git clone --mirror` instead.\n- Each run overwrites the previous ZIP for the same repo.\n- Pagination is handled automatically (100 repos per page).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-oit%2Fsynology-github-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-oit%2Fsynology-github-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-oit%2Fsynology-github-backup/lists"}