{"id":21553732,"url":"https://github.com/fel88/gandalf","last_synced_at":"2026-01-20T06:01:04.056Z","repository":{"id":157283848,"uuid":"609321003","full_name":"fel88/Gandalf","owner":"fel88","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-21T20:51:58.000Z","size":56,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T20:13:10.227Z","etag":null,"topics":["github-cli","roslyn","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"C#","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/fel88.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":"2023-03-03T21:23:34.000Z","updated_at":"2024-06-21T20:52:02.000Z","dependencies_parsed_at":"2024-06-22T12:26:39.065Z","dependency_job_id":null,"html_url":"https://github.com/fel88/Gandalf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fel88/Gandalf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fel88%2FGandalf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fel88%2FGandalf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fel88%2FGandalf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fel88%2FGandalf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fel88","download_url":"https://codeload.github.com/fel88/Gandalf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fel88%2FGandalf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28597087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["github-cli","roslyn","telegram-bot"],"created_at":"2024-11-24T07:11:53.901Z","updated_at":"2026-01-20T06:01:04.038Z","avatar_url":"https://github.com/fel88.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gandalf\n\nModify, build and create pull requests for your C# projects with Telegram Bot.\n\ngit-bash / github cli / cmd\n\nQR code parser\n\nRoslyn based parsing\n\n![image](https://user-images.githubusercontent.com/15663687/222923525-5848ce89-60a9-4404-91b3-5383e259448c.png)\n\nFor Linux:\n```\nbash git \u003cany git commands\u003e\nbash gh \u003cany github cli commands\u003e\nbash \u003cany bash commands\u003e\n```\n\nCommands:\n```\nls # show files/directories list\ncd \u003cfolder\u003e # change directory\ncd..\nbuild # build current directory solution with msbuild\ngit \u003cany git-bash command\u003e\ngh \u003cany github cli command\u003e\ncmd \u003cany cmd command\u003e\nimgcat \u003cfile\u003e # get image\nenter \u003cfile\u003e  # enter file mode\nexit # exit file mode\n```\n\n\ndirectory mode:\n```\ncat \u003cfile\u003e # display text file\npatch \u003cfilename\u003e\\n\u003ccode\u003e # rewrite file\nparse \u003cfile\u003e # get list of functions\n```\nfile mode:\n```\nfunc \u003cname\u003e \u003cstart\u003e \u003cqty\u003e  [-nolines] # display specific function\ncat \u003clines qty\u003e \ncat \u003cstart line\u003e  \u003clines qty\u003e # display lines of file\npatch \u003cfunc name\u003e\\n\u003ccode\u003e # replace specific function code\nparse \u003clines qty\u003e # show functions list\nparse \u003cstart line\u003e \u003clines qty\u003e # show functions list\ninsert \u003cline\u003e\\n\u003ccode\u003e #insert line\ndelete \u003cline\u003e\\n\u003ccode\u003e # delete line\nreplace \u003cline\u003e\\n\u003ccode\u003e # replace line\n```\n\n\nHow to apply git patch remotely:\n```\nHost machine:\n1. git add -A\n2. git diff --staged -w \u003e changes.patch\n3. Zip changes.patch to archive\n4. Open QR split (https://github.com/fel88/QRSplit) and make QR code\n5. Photo QR code and send to gandalf telegram bot\n\nTelegram bot:\n6. Unzip file (bash 7z x \u003cfile_name\u003e)\n7. apply changes to target repository: bash git apply --reject --ignore-space-change --ignore-whitespace changes.patch\n8. remove changes.zip and changes.patch (bash rm changes.*)\n9. bash git add .\n10. bash git commit -m '\u003ctext\u003e'\n11. bash git push\n12. bash gh pr create --title '\u003ctitle\u003e' --body '\u003cbody\u003e'\n13. merge PR with main account\n14. sync repo: bash gh repo sync \u003cgandalf-account-name\u003e/\u003crepo-name\u003e\n15. bash git pull\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffel88%2Fgandalf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffel88%2Fgandalf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffel88%2Fgandalf/lists"}