{"id":20325643,"url":"https://github.com/lamdav/wyag","last_synced_at":"2026-05-03T09:35:14.989Z","repository":{"id":71874050,"uuid":"176910540","full_name":"lamdav/wyag","owner":"lamdav","description":"Write-yourself-a-git","archived":false,"fork":false,"pushed_at":"2019-03-21T09:18:08.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-24T03:32:57.619Z","etag":null,"topics":["click","git","learning-by-doing"],"latest_commit_sha":null,"homepage":null,"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/lamdav.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}},"created_at":"2019-03-21T09:17:37.000Z","updated_at":"2023-04-11T15:25:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"3d32de59-036a-436c-bc28-2159858746a8","html_url":"https://github.com/lamdav/wyag","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamdav%2Fwyag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamdav%2Fwyag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamdav%2Fwyag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamdav%2Fwyag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lamdav","download_url":"https://codeload.github.com/lamdav/wyag/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241829189,"owners_count":20027035,"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","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":["click","git","learning-by-doing"],"created_at":"2024-11-14T19:40:58.229Z","updated_at":"2026-05-03T09:35:09.968Z","avatar_url":"https://github.com/lamdav.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Write Yourself A Git!\nFollowing this [guide](https://wyag.thb.lt/)\n\n## Description\nThis is my attempt at understanding `git`'s inner mechanism of\nhow it stores data and going about implementing some of its porcelain and plumbing commands. I would recommend anyone curious or has the time to try out the tutorial rather than just reading about it.\n\n## Click Boilerplate?\nClone the repo. \n```\ngit checkout click_boilerplate\ngit checkout -b \u003cbranchname\u003e\n```\n\n## Setup\n```\npipenv install\npipenv shell\npip install -e .\n```\n\n## Notes\nI didn't want to use `argparse` library so I opted\nto use `click`. There were some renaming of functions, variables, etc. here and there as it made more sense to me reading it one way vesus another. Objects were written somewhat differently to what I thought was best at the time.\n\n## Considerations/Todos\n- [ ] Improve logging :'(\n- [ ] Refactor/Less reliance on util level methods\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamdav%2Fwyag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flamdav%2Fwyag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamdav%2Fwyag/lists"}