{"id":13896441,"url":"https://github.com/ColumPaget/githuber","last_synced_at":"2025-07-17T12:33:31.008Z","repository":{"id":77681019,"uuid":"116483278","full_name":"ColumPaget/githuber","owner":"ColumPaget","description":"Tool for managing a users github repos. Can list notifications and repo information, create and delete repos and releases, etc. Requires libUseful and libUseful-lua.","archived":false,"fork":false,"pushed_at":"2025-05-09T05:07:32.000Z","size":67,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-09T06:19:56.141Z","etag":null,"topics":["github-api","lua"],"latest_commit_sha":null,"homepage":null,"language":"Lua","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/ColumPaget.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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":"2018-01-06T13:01:57.000Z","updated_at":"2025-05-09T05:07:21.000Z","dependencies_parsed_at":"2024-01-16T12:05:02.893Z","dependency_job_id":"5a6aa087-7898-4f13-85ee-236b5ad95ecf","html_url":"https://github.com/ColumPaget/githuber","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/ColumPaget/githuber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fgithuber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fgithuber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fgithuber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fgithuber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ColumPaget","download_url":"https://codeload.github.com/ColumPaget/githuber/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fgithuber/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265606786,"owners_count":23797006,"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-api","lua"],"created_at":"2024-08-06T18:02:55.834Z","updated_at":"2025-07-17T12:33:30.988Z","avatar_url":"https://github.com/ColumPaget.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"## GITHUBER\nGithuber is a tool for managing your github repositories. It is intended to be used alongside command-line git, and does no pull or push. The user can list their notifications and various information for their repositories. They can create and delete repositories. They can list, create and delete releases for a repository.\n\n## INSTALL\n\nGithuber requires the following libraries to be installed\n\nlibUseful      https://github.com/ColumPaget/libUseful\nlibUseful-lua  https://github.com/ColumPaget/libUseful-lua\n\nto build libUseful-lua you will need to have swig (http://www.swig.org) installed\n\n## CONFIG\n\nGithuber requires at least a valid Github username to be setup. This can either be in the environment variable `GITHUB_USER` or it can be more permanently configured by setting the 'GithubUser' variable at the top of the githuber.lua script. This will allow you to list your repos and notifications. All other functions require an authentication token. This can either be your password (not advised) or a 'personal auth token' (recommended). Either of these values can be set in the `GITHUB_AUTH` environment variable, or in the 'GithubAuth' variable at the top of githuber.lua.\n\nYou can obtain a personal auth token by going to `Settings-\u003eDeveloper Settings-\u003ePersonal Access Tokens`. An access token saves exposing your real password, and also allows you to set limits on the things githuber.lua can do. For instance, if you don't want to delete repositories just leave out the `delete_repo` permission, and you'll be safe from accidentally typing the command to delete one!\n\nYou can setup githuber to use a proxy by either setting one of the following environment variables:\n\n```\nSOCKS_PROXY     e.g. SOCKS_PROXY=\"socks5:myhost:1835\"\nsocks_proxy\nHTTPS_PROXY     e.g. HTTPS_PROXY=\"https://myhost:443\"\nhttps_proxy\nall_proxy       e.g. all_proxy=\"socks5:myhost:1835\"\n```\n\nor by setting the 'GithubProxy' variable at the top of githuber.lua. The GihubProxy variable is set with the format:\n\n```\n\u003ctype\u003e:\u003cuser\u003e:\u003cpassword\u003e@\u003chost\u003e:\u003cport\u003e\n```\n\n'type' can be\n\n```\nsshtunnel  - use ssh tunneling (-L option)\nsocks4     - socks 4 protocol\nsocks5     - socks 5 protocol (this works with 'ssh -D *:\u003cport\u003e' mode)\nhttps      - https CONNECT proxy\n```\n\nfor sshtunnel .ssh/config style aliases can be used in the place of 'host'\n\n\n## USAGE\n\nGithuber is usually run within the lua interpreter. e.g.\n\n```\nlua githuer.lua notify\n```\n\nalternatively you can configure linux's \"binfmt\" system to auto-run scripts ending in '.lua'\n\n\n## COMMANDS\n\n```\n   githuber.lua account set name                                    - set user's display-name\n   githuber.lua account set email                                   - set user's registered email\n   githuber.lua account set bio                                     - set user's bio\n   githuber.lua account set company                                 - set user's displayed company\n   githuber.lua account set location                                - set user's displayed location\n   githuber.lua account set blog                                    - set user's blog URL\n   githuber.lua notify                                              - list user's notifications\n   githuber.lua notify issues                                       - list user's issues notifications\n   githuber.lua notify forks                                        - list user's forks notifications\n   githuber.lua notify stars                                        - list user's stars notifications\n   githuber.lua issues                                              - list all open issues acrosss all user's repos\n   githuber.lua repo list                                           - list user's repositories\n   githuber.lua repo details                                        - list user's repositories with traffic details\n   githuber.lua repo details [repo]                                 - detailed info for a repository\n   githuber.lua repo issues                                         - list user's repositories that have issues\n   githuber.lua repo issues [repo]                                  - list issues for a specific repository\n   githuber.lua repo names                                          - list user's repositories, just names, one name per line, for use in scripts\n   githuber.lua repo urls                                           - list user's repositories, just urls, one url per line, for use in scripts\n   githuber.lua repo snames                                         - list user's repositories, just names, all in one line, for use in scripts\n   githuber.lua repo surls                                          - list user's repositories, just urls, all in one line, for use in scripts\n   githuber.lua repo new [name] [description]                       - create new repository\n   githuber.lua repo create [name] [description]                    - create new repository\n   githuber.lua repo set [repo] description [description]           - change description for a repository\n   githuber.lua repo set [repo] homepage [homepage]                 - change homepage for a repository\n   githuber.lua repo set [repo] topics [topics]                     - change topics for a repository\n   githuber.lua repo del [repo]                                     - delete repository\n   githuber.lua repo delete [repo]                                  - delete repository\n   githuber.lua repo rm [repo]                                      - delete repository\n   githuber.lua repo merge [repo]  [pull number]                    - merge a pull request by its pull number\n   githuber.lua repo watchers [repo]                                - list repo watchers\n   githuber.lua repo commits [repo]                                 - list repo commits\n   githuber.lua repo history [repo]                                 - list repo commits and releases\n   githuber.lua repo pulls [repo]                                   - list repo pull requests\n   githuber.lua repo pulls [repo] merge [pull number]               - merge a pull request by its pull number\n   githuber.lua repo forks [repo]                                   - list repo forks\n   githuber.lua preq [repo] [title]                                 - issue a pull request to parent repo\n   githuber.lua star [url]                                          - 'star' (bookmark) a repo by url\n   githuber.lua unstar [url]                                        - remove a 'star' (bookmark) of a repo by url\n   githuber.lua watch [url]                                         - 'watch' a repo by url\n   githuber.lua unwatch [url]                                       - remove a 'watch' of a repo by url\n   githuber.lua fork [url]                                          - fork a repo by url\n   githuber.lua releases [repo]                                     - list releases for a repository\n   githuber.lua releases [repo] new [name] [title] [description]    - create release for a repository\n   githuber.lua releases [repo] create [name] [title] [description] - create release for a repository\n   githuber.lua releases [repo] del [name]                          - delete release for a repository\n   githuber.lua releases [repo] delete [name]                       - delete release for a repository\n   githuber.lua releases [repo] rm [name]                           - delete release for a repository\n```\n\nThe 'notify' command also accepts a `-details` command-line switch, which causes it to print out the text of any comments relating to an event.\n\nThe \"repo names\", \"repo snames\", \"repo urls\" and  \"repo surls\" commands are intended for use in scripting. \"repo names\" and \"repo urls\" use newline as a separator (so one item per line) whereas \"repo snames\" and \"repo surls\" use space as a separator. For instance, you can back up all your github repositories with a script like this:\n\n```\n#!/bin/sh\n\nmkdir GithubBackup\ncd GithubBackup\n\nfor URL in `githuber.lua repo surls`\ndo\ngit clone $URL\ndone\n```\n\n\nThe \"preq\" command issues a pull request on a repo that you've forked into your own list of repos. Unfortunately it will fail if commits have been applied since the fork. The only solution I've discovered is to delete the fork, fork again, make the changes, and re-request. There's probably a better method, but I'm still finding my way around this aspect of github.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColumPaget%2Fgithuber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FColumPaget%2Fgithuber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColumPaget%2Fgithuber/lists"}