{"id":18974570,"url":"https://github.com/boyvanamstel/groove-backup","last_synced_at":"2025-08-01T14:04:51.979Z","repository":{"id":138921686,"uuid":"132288185","full_name":"boyvanamstel/groove-backup","owner":"boyvanamstel","description":"👇 Create a backup of your Groove HQ ticket history.","archived":false,"fork":false,"pushed_at":"2018-05-05T22:58:45.000Z","size":169,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-02T13:17:46.577Z","etag":null,"topics":["backup","cli","groove"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boyvanamstel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2018-05-05T22:10:14.000Z","updated_at":"2024-06-20T04:57:11.000Z","dependencies_parsed_at":"2023-04-29T12:32:04.171Z","dependency_job_id":null,"html_url":"https://github.com/boyvanamstel/groove-backup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/boyvanamstel/groove-backup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyvanamstel%2Fgroove-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyvanamstel%2Fgroove-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyvanamstel%2Fgroove-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyvanamstel%2Fgroove-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boyvanamstel","download_url":"https://codeload.github.com/boyvanamstel/groove-backup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyvanamstel%2Fgroove-backup/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268240358,"owners_count":24218356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"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":["backup","cli","groove"],"created_at":"2024-11-08T15:15:27.513Z","updated_at":"2025-08-01T14:04:51.892Z","avatar_url":"https://github.com/boyvanamstel.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Groove Ticket Backup\n\nRetrieves all your tickets and messages from [Groove](https://www.groovehq.com) and stores them locally in an sqlite3 database. Attachments are downloaded separately.\n\n## Usage\n\n### Making a Backup\n\nClone the repo:\n\n`$ git clone https://github.com/DangerCove/groove-backup.git`\n\nRun the backup script:\n```Bash\n$ ./backup\nUsing concurrent-ruby 1.0.5\nUsing i18n 1.0.1\nUsing minitest 5.11.3\nUsing thread_safe 0.3.6\nUsing tzinfo 1.2.5\nUsing activesupport 5.2.0\nUsing bundler 1.16.1\nUsing multi_xml 0.6.0\nUsing httparty 0.16.2\nUsing groovehq 1.0.7 from https://github.com/Fodoj/groovehq.git (at master@6de06ea)\nUsing sqlite3 1.3.13\nBundle complete! 2 Gemfile dependencies, 11 gems now installed.\nUse `bundle info [gemname]` to see where a bundled gem is installed.\nProvide your Private Token:\n_\n```\n\n^ Input your Private Token. Get if from **Groove Dashboard -\u003e Settings -\u003e API**.\n\nNotice the `./output` folder appear while the script is running.\n\n### Using the Backup\n\nThe script stores everything in an sqlite3 database, which can be queried with tools like [DB Browser for SQLite](http://sqlitebrowser.org/).\n\nI started on a `retrieve` script, but I'm not sure if it'll be useful at all. Feel free to expand on it.\n\n## Version History\n\n### 0.1.0\n\n* First release.\n\n## Database Structure\n\nThis is the database structure I use. I've tried sticking as close to [Groove's model layout](https://www.groovehq.com/docs) as I could.\n\n![Database structure](https://raw.githubusercontent.com/DangerCove/groove-backup/master/screenshots/database-structure.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyvanamstel%2Fgroove-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboyvanamstel%2Fgroove-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyvanamstel%2Fgroove-backup/lists"}