{"id":14867488,"url":"https://github.com/AliGhaffarian/git-in-there","last_synced_at":"2025-09-19T03:32:38.123Z","repository":{"id":255701334,"uuid":"851312793","full_name":"AliGhaffarian/git-in-there","owner":"AliGhaffarian","description":"a simple backup script that uses git","archived":false,"fork":false,"pushed_at":"2025-01-16T15:37:36.000Z","size":35,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-22T12:56:39.429Z","etag":null,"topics":["automation","backup-script","github","pathlib","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AliGhaffarian.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}},"created_at":"2024-09-02T21:19:22.000Z","updated_at":"2025-01-16T15:37:37.000Z","dependencies_parsed_at":"2024-09-06T19:49:50.688Z","dependency_job_id":"661e48e5-96fe-4d33-a5c4-d17928598b20","html_url":"https://github.com/AliGhaffarian/git-in-there","commit_stats":null,"previous_names":["alighaffarian/get-in-there"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AliGhaffarian/git-in-there","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliGhaffarian%2Fgit-in-there","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliGhaffarian%2Fgit-in-there/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliGhaffarian%2Fgit-in-there/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliGhaffarian%2Fgit-in-there/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AliGhaffarian","download_url":"https://codeload.github.com/AliGhaffarian/git-in-there/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliGhaffarian%2Fgit-in-there/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275873917,"owners_count":25543909,"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-09-19T02:00:09.700Z","response_time":108,"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":["automation","backup-script","github","pathlib","python3"],"created_at":"2024-09-20T05:00:31.809Z","updated_at":"2025-09-19T03:32:37.812Z","avatar_url":"https://github.com/AliGhaffarian.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# what the heck is this?\nan script to automate backing up files with git\n# how to use\n- get the git-in-there\n\t```\n\tgit clone https://github.com/AliGhaffarian/get-in-there\n\t```\n\n- create a github repository for the backups\n- do at least one push to the repository (otherwise the script may not perform as intended)\n- add a [configuration](https://github.com/AliGhaffarian/git-in-there?tab=readme-ov-file#configuration) file\n- run the script\n  ```\n  python3 git-in-there.py\n  pip install -r requirements.txt\n  ```\n\n# configuration\ngit-in-there reads the TARGETS_FILE file to see what files are tracked and to which repository it needs to push them  \nthe configurations must be provided in [yaml](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html)  \nthe default name is targets.yaml \n\n## limitations\ncurrently special path symbols like ~ are not supported  \n\n## config fields\n\n\n### targets(optional)\na list of relative paths for directory or file which is inside of the corresponding root\n### no_target(optional) \nif is present the targets will be ignored and entire root directory will be backed up without prompting the user\n\neither targets or no_target field must be provided\n\ntodo:check for the target being inside root by checking if it's path starts with root\nif is not provided the user will be warned and prompted to back up the entire root directory, the prompt can be suppresed with no_target\n### root\nan absolute path in which targets reside  \n**must be absolute path**\n### repo\nthe repo to which the files will be pushed\n### name(optional)\nused to identify the individual backup configurations when telling the script the certain ones to use by using `--repos_to_backup` argument  \n\n### config example:\n```yaml\n-\n    name: \"vim_conf\"\n    repo: \"https://github.com/AliGhaffarian/vim_conf\"\n    targets:\n      - \".vim\"\n      - \".vimrc\"\n      - \".viminfo\"\n      - \".config/coc\"\n    root: \"/home/user\"\n- \n    repo: \"https://github.com/AliGhaffarian/mylinux\"\n    targets:\n      - \"Documents/people\"\n      - \"Documents/archive\"\n      - \"Documents/vim_cheat_sheet.png\"\n      - \"Documents/startup\"\n    root: \"/home/user\"\n-\n    repo: \"https://github.com/AliGhaffarian/books\"\n    root: \"/home/user/Documents/books\"\n    no-target: true\n```\n# TODO\n- A `.ignore` file that tells the script to ignore the directory\n- Optimize grouping files for upload\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAliGhaffarian%2Fgit-in-there","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAliGhaffarian%2Fgit-in-there","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAliGhaffarian%2Fgit-in-there/lists"}