{"id":17532811,"url":"https://github.com/dmolik/githubfs","last_synced_at":"2025-06-24T21:41:16.545Z","repository":{"id":145614050,"uuid":"218032904","full_name":"dmolik/githubfs","owner":"dmolik","description":"A weird little C program to fetch your stared repos and mount to a directory","archived":false,"fork":false,"pushed_at":"2019-11-11T10:44:52.000Z","size":73,"stargazers_count":6,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T08:32:16.522Z","etag":null,"topics":["c","github","graphql","libcurl","libfastjson","libfuse","lmdb"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmolik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.md","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-10-28T11:38:39.000Z","updated_at":"2024-10-06T01:03:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"399a4928-74d9-44c0-b13f-f60d9eab1939","html_url":"https://github.com/dmolik/githubfs","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/dmolik%2Fgithubfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmolik%2Fgithubfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmolik%2Fgithubfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmolik%2Fgithubfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmolik","download_url":"https://codeload.github.com/dmolik/githubfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251134781,"owners_count":21541384,"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":["c","github","graphql","libcurl","libfastjson","libfuse","lmdb"],"created_at":"2024-10-20T18:02:03.788Z","updated_at":"2025-04-27T12:11:15.348Z","avatar_url":"https://github.com/dmolik.png","language":"C","readme":"# GitHubFS\n\nI got curious over the weekend and wonder what it would be like to query the GitHub API in C using [libCurl](https://curl.haxx.se/libcurl/). I quickly realized I was going to need a JSON parser, so I reached for [libfastjson](https://github.com/rsyslog/libfastjson), which is a fork of json-c brought to us by the rsyslog folks.\n\nThe project has evolved! it now mounts a full list of your stared repos to a directory of your choosing using [Fuse](https://github.com/libfuse/libfuse).\n\nThe code has now been refactored to use [LMDB](https://symas.com/lmdb/) for persistence, and Repo access.\n\n## Prerequisites\n\nYou're going to need a; Compiler, Make of some sort, libfastjson with headers, and libcurl with it's headers, libfuse, and now lmdb with it's headers.\n\n## Building\n\nAll you need to do is run:\n\n    make\n\n## Running\n\nThe fetcher needs two environment variables `GH_USER`; your github username, and `GH_TOKEN`; a personal access token to your public repos. Execution might look something like this:\n\n    export GH_USER=dmolik\n    export GH_TOKEN=\u003credacted\u003e\n    ./githubfs \u003csome dir\u003e\n\nFor example:\n\n    \u003e export GH_USER=dmolik\n    \u003e export GH_TOKEN=example123\n    \u003e ./githubfs t\n    \n    \u003e githubfs t\n    t\n    ├── aalhour\n    │   └── awesome-compilers\n    ├── acassen\n    │   └── keepalived\n    ├── adapta-project\n    │   └── adapta-gtk-theme\n    ├── admiraltyio\n    │   └── multicluster-scheduler\n    └── AidoP\n        └── Skypaper\n    \n    \u003e cat t/acassen/keepalived\n    URL: git@github.com:acassen/keepalived.git\n    Description: Keepalived\n","funding_links":[],"categories":["c"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmolik%2Fgithubfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmolik%2Fgithubfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmolik%2Fgithubfs/lists"}