{"id":13559283,"url":"https://github.com/sirnewton01/ghfs","last_synced_at":"2025-07-08T07:39:11.165Z","repository":{"id":77194209,"uuid":"143651774","full_name":"sirnewton01/ghfs","owner":"sirnewton01","description":"9p GitHub filesystem written in Go for use with Plan 9/p9p","archived":false,"fork":false,"pushed_at":"2020-06-13T12:46:40.000Z","size":1087,"stargazers_count":76,"open_issues_count":12,"forks_count":4,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-04T10:44:05.648Z","etag":null,"topics":["github","golang","plan9","plan9port","rest"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sirnewton01.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}},"created_at":"2018-08-05T22:21:28.000Z","updated_at":"2024-10-29T03:47:01.000Z","dependencies_parsed_at":"2023-07-27T07:30:43.393Z","dependency_job_id":null,"html_url":"https://github.com/sirnewton01/ghfs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirnewton01%2Fghfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirnewton01%2Fghfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirnewton01%2Fghfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sirnewton01%2Fghfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sirnewton01","download_url":"https://codeload.github.com/sirnewton01/ghfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226003020,"owners_count":17558174,"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":["github","golang","plan9","plan9port","rest"],"created_at":"2024-08-01T13:00:16.930Z","updated_at":"2024-11-23T05:17:44.055Z","avatar_url":"https://github.com/sirnewton01.png","language":"Go","funding_links":[],"categories":["Servers"],"sub_categories":["Go"],"readme":"# GitHub File System\n\n![travis ci](https://api.travis-ci.org/sirnewton01/ghfs.svg?branch=master)\n\nWith this filesystem you can use GitHub from your favorite shell and text editor.\nIn particular, you can use this to mount GitHub onto a Plan 9 system and use it to collaborate\non projects with other Plan 9 users. Content is presented either in plain text or rich markdown\nfor ease of viewing the content with few distractions. In some cases the files can be modified\nand saved to activate new funcionality. If you want to save, copy, snapshot or otherwise work\nwith the data you can use the standard OS tools like ls, cp, and even the Finder or Explorer.\nYou can experiment to find combinations of commands that suit your need.\n\n## Current feature set\n* Browse repositories by owner (user or organization)\n* Read issues\n* Filter issues based on milestone, labels, assignee and creator\n* Vew user, organization and project metadata\n* Edit project metadata\n* Star/unstar projects\n* Follow/unfollow users\n* Create/edit issues (EXPERIMENTAL)\n\n## Examples\n\n```\n$ ls /github/repos/sirnewton01\n\n9p-mdns\t\t\t\tgodev\t\t\t\tplan9adapter\nRest.ServiceProxy\t\tgodev-oracle\t\t\tprojectcreator\ndgit\t\t\t\tgojazz\t\t\t\trpi-9front\neclipse-filesystem-example\tmdns\t\t\t\trtcdocker\ngdblib\t\t\t\tninep\t\t\t\tsociety-tests\nghfs\t\t\t\torion.client\t\t\tttf2plan9\ngit\t\t\t\torion.server\t\t\txinu\ngo\t\t\t\tp9-tutorial\ngodbg\t\t\t\tplan9-font-hack\n\n$ cat /github/repos/sirnewton01/ghfs/repo.md\n\n# sirnewton01/ghfs \n\nDescription = 9p GitHub filesystem written in Go for use with Plan 9/p9p___\n\nStarred = [x]\n\nNotifications = () not watching (x) watching () ignoring\n\nCreated: 2018-08-05T22:21:28Z\nWatchers: 10\nStars: 10\nForks: 1\nDefault branch: master\nPushed: 2018-10-01T20:46:19Z\nCommit: 079a0fa100e6b1704bed9373f1032fd3dbad4566 2018-10-01T20:46:13Z\n\ngit clone https://github.com/sirnewton01/ghfs.git\n\n$ cat /github/repos/sirnewton01/ghfs/issues/13.md\n\n# Title = Show last modified time and creation time on issues___\n\n* State = () open (x) closed\n* OpenedBy: [sirnewton01](../../../sirnewton01)\n* CreatedAt: 2018-08-10T15:32:24Z\n* Assignee = ___\n* Labels = ,, enhancement ,, ___\n\nBody = \n'''\nThis becomes really useful when you are looking at issues and want to view/sort them according to how old they are or if there is recent activity.\n\nYou can do a simple ```ls -l``` to browse them yourself or even sort them using ```ls -lt``` or ```ls -Ult```\n'''\n___\n\n\n## Comment\n\n* User: [sirnewton01](../../../sirnewton01) \n* CreatedAt: 2018-08-10T16:47:23Z\n\nBody = \n'''\nAlso, it would be useful to have the issues owned by a particular user, except that would only be visible on Plan 9, since the FUSE filesystems generally set the owners of everything to a specific user.\n'''\n___\n\n\n## Comment\n\n* User: [sirnewton01](../../../sirnewton01) \n* CreatedAt: 2018-09-04T02:37:59Z\n\nBody = \n'''\nThe last modification time has been added.\n'''\n___\n\n\n## Comment\n\n* User: [sirnewton01](../../../sirnewton01) \n* CreatedAt: 2018-09-04T02:43:16Z\n\nBody = \n'''\nThere's no way to expose the creation time in a filesystem.\n'''\n___\n\n```\n\nHere is how ghfs can look if you are using the Acme editor.\n![acme-screenshot](docs/screenshot-acme.png)\n\n## End Goal\nOnce in a stable state it should be possible to use the GitHub filesystem to manage all of\nyour Plan 9 projects, create new ones, track issues and collaborate with other users. It\nshould be possible to use this in conjunction with a tool such as [dgit](https://github.com/driusan/dgit)\nor a git filesystem to update/merge/patch/push changes to GitHub while keeping track\nof the progress of the project.\n\n## Get Started\n\n### Plan 9 Port\nInstall the latest plan9port. Run ghfs. Mount the filesystem with ```9 mount localhost:5640 \u003cmount-point\u003e```\nassuming the default tcp port 5640.\n\n### Plan 9\n\nRun ghfs. Post the service with `srv tcp!$yourhostname!5640 ghfs`. You can now mount the service somewhere with `mount /srv/ghfs $mountpoint`. \n\n## Authentication\nThe filesystem uses no authentication with GitHub by default. The rate limit is much lower in this mode.\nYou can generate a Personal Access Token in your Settings \u003e Develper Settings screen. With a token you\ncan provide it in the command-line with the ```-apitoken``` flag.\n\nIf you plan to make modifications to projects (change descriptions, star/unstar projects) you will need to add\nproject permissions to your API token. Otherwise, changes will be silently ignored by the GitHub REST API.\nAlso, be sure to set the follow/unfollow users permission if you want to be able to do that within ghfs.\n\n## Useful tricks\nYou can navigate to any user or organization  you want, not just the ones you follow. Open the /repos\ndirectory, type in the name you want and right-click on it. It will open a new directory with the repos\nand metadata for the name you selected. If the name doesn't exist it shows an error.\n\nFrom the acme editor, you can navigate some of the hyperlinks to other users or repos by selecting\nthe relative link and middle-click. On Mac with Plan 9 Port you can middle click by holding down\ncontrol, alt and clicking on the text.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsirnewton01%2Fghfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsirnewton01%2Fghfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsirnewton01%2Fghfs/lists"}