{"id":20657892,"url":"https://github.com/tarathep/ghmgr","last_synced_at":"2026-05-03T07:46:55.080Z","repository":{"id":59653783,"uuid":"438493248","full_name":"tarathep/ghmgr","owner":"tarathep","description":"GHMGR : GitHub Manager CLI Application for Support GitHub Enterprise/Organize management GitHub APIs tools","archived":false,"fork":false,"pushed_at":"2023-12-18T23:01:54.000Z","size":223,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-02T12:03:33.144Z","etag":null,"topics":["cli","github","tools"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tarathep.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":"2021-12-15T04:25:47.000Z","updated_at":"2022-05-24T10:49:12.000Z","dependencies_parsed_at":"2024-06-21T12:06:49.461Z","dependency_job_id":null,"html_url":"https://github.com/tarathep/ghmgr","commit_stats":{"total_commits":87,"total_committers":4,"mean_commits":21.75,"dds":0.05747126436781613,"last_synced_commit":"083bb9d9b397c63c73ac3d7426653a7522489e61"},"previous_names":["tarathep/githuby"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/tarathep/ghmgr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarathep%2Fghmgr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarathep%2Fghmgr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarathep%2Fghmgr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarathep%2Fghmgr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarathep","download_url":"https://codeload.github.com/tarathep/ghmgr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarathep%2Fghmgr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32562118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"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":["cli","github","tools"],"created_at":"2024-11-16T18:23:54.899Z","updated_at":"2026-05-03T07:46:55.043Z","avatar_url":"https://github.com/tarathep.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GHMGR : GitHub Manager\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Octocat.png\" width=\"50%\"\u003e\u003c/div\u003e\n\nCLI Application for Support GitHub Enterprise/Organize management GitHub APIs tools\n\n** more feature may be support on private organization but you can customize.\n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/tarathep/ghmgr)\n![GitHub](https://img.shields.io/github/license/tarathep/ghmgr?color=blue)\n\n![](https://github.com/tarathep/ghmgr/actions/workflows/autobuild.yaml/badge.svg)\n[![Linux](https://svgshare.com/i/Zhy.svg)](https://svgshare.com/i/Zhy.svg)\n[![macOS](https://svgshare.com/i/ZjP.svg)](https://svgshare.com/i/ZjP.svg)\n[![Windows](https://svgshare.com/i/ZhY.svg)](https://svgshare.com/i/ZhY.svg)\n\n![](./program.png)\n\n***Update***\n- Add feaute list repository by team\n- Add support option to support format on console log\n- POC execute command\n\n***Features***\n\n- [Load](#load)\n  - Init Cache (for the improve performance and query must init before use in the first time)\n  - Load pending caching team on pending\n  - Support GitHub Action for implement workflows cronjob task (github.com/corp-ais/cdc-github-manager)\n\n- [List](#list)\n  - List Team in Organization\n  - List Membership of Teams\n  - List member in team\n  - List member in team status pending\n  - List member in team role\n  - List member in team Email\n  - List member in team Exclude another team\n  - List member in CSV file\n  - List member of Organization\n  - List member of Organization Show Email , Teams\n  - List Dormant users of the organization from CSV file\n  - List Repositories By Team\n- [Invite](#invite)\n  - Invite member single command\n  - Cancel Organization Invitation\n- [Add](#add)\n  - Add or Update Membership of Team with Username\n  - Add or Update Membership of Team with Email\n- [Remove](#remove)\n  - Remove Team Membership For User\n  - Remove Membership of Organization\n  - Remove dormant users of the organization from CSV file\n  - Remove Membership of Organization without membership of team and verify email\n  - Remove Cache log invited\n- [Import](#import)\n  - Import \u0026 Invite or Update Team Member from CSV Template\n- [Export](#export)\n  - Export or Update Team Member to CSV Template\n- [Rewrite](#rewrite)\n  - Rewrite format before import or update team Member from CSV Template file\n- [Check](#check)\n  - Check Team Membership for User\n  - Check Membership for User in ORG\n  - Check member for invite to team\n  - Check and verify csv template format\n- [Get](#get)\n  - Get GitHub Username from Email\n  - Get Primary Email from GitHub Username\n\n\n## Installation\n\nDownload bin file and set env path (depending on OS)\n\n\n## Login\n\n### Login GitHub Personal Token\n\non Windows with \n\nCommand Prompt\n\n```cmd\nset GHMGR_TOKEN=php_xxxxxxxxxxxxxxxxxx\nset GHMGR_OWNER=xxxxx\n```\nPowerShell\n```ps\n$env:GHMGR_TOKEN=\"php_xxxxxxxxxxxxxxxxxx\"\n$env:GHMGR_OWNER=\"corp-xxx\"\n```\n\n\non Unix or MacOS\n\n```bash\nexport GHMGR_TOKEN=php_xxxxxxxxxxxxxxxxxx\nexport GHMGR_OWNER=xxxxx\n```\n\nor login with app (don't on support CMD,PS)\n\n```bash\nghmgr login --token php_xxxxxxxxxxxxxxxxxx --owner xxxxx\n```\n\nor on pipeline you can use option --token recommand for secret\n\nexample\n\n```bash\nghmgr list member -t teamname --token php_xxxxxxxxxxxxxxxxxx --owner corp-xxx\n```\n\n\n## Load\n\n### Init Cache\n\nfor the improve performance and query must init before use in the first time\n\n```bash\nghmgr load cache \n```\n\n## List\n\n### List Team in Organization\n\nLists all teams in an organization that are visible to the authenticated user.\nhttps://docs.github.com/en/rest/reference/teams#list-teams\n\n**option**\n\n```--option ``` *csv* to show on console log support\n\n```bash\n ghmgr list team --option [option]\n```\n\n### List Repositories in Team\n\nLists all repositories by team in an organization that are visible to the authenticated user.\n\n**option**\n\n```--option``` *csv* to show on console log support\n```--team``` team name that is match slug team on GitHub\n\n```bash\n ghmgr list repos --team [teamname] --option [option]\n```\n\n### List Membership of Teams\n\n**option**\n\n```-u,--username``` username\n\n```bash\nghmgr list team --username [username]\n```\n\n### List member in team\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```bash\nghmgr list member --team [teamname]\n```\n\n### List member in team status pending\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-p,--pending``` invited status pending\n\n\n```bash\nghmgr list member --team [teamname] --pending\n```\n\n### List member in team role\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-r,--role``` role team\n\n```bash\nghmgr list member --team [teamname] --role\n```\n\n\n### List member in team Email\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-m show,--email show``` email show\n\n```bash\nghmgr list member --team [teamname] --email show\n```\n\n### List member in team Exclude another team\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-e ,--exclude``` exclude team member will be invisible\n\n```bash\nghmgr list member --team [teamname] --exclude [teamname]\n```\n\n### List member in CSV file\n\nfor the files workspace in : ```report/input/teamname.csv```\n\n**option**\n\n```-f,--file``` Filename.CSV\n\n\n```bash\nghmgr list member --file teamname.csv\n```\n\n### List member of Organization\n\n**option**\n\n```-o,--org``` Org\n\n\n```bash\nghmgr list member --org\n```\n\n### List member of Organization Show Email , Teams\n\n**option**\n\n```-o,--org``` Org\n\n```-m show,--email show``` Email\n\n```-t show,--team show``` Teams\n\n\n```bash\nghmgr list member --org --email show --team show\n```\n\n### List Dormant users of the organization from CSV file\n\n**option**\n\nfor the file workspace in : ```report/input/dormant-users-report-xxxxxx.csv```\n\n```-f,--file``` filename.csv\n\n\n```bash\nghmgr list member dormant --file dormant-users-report-xxxxxx.csv\n```\n\n## Invite\n\n### Invite member single command\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-e,--email``` email\n\n```bash\nghmgr invite member --team [teamname] --email name@domain.com\n```\n\n\n\n### Cancel Organization Invitation\n\n**option**\n\n```-c,--cancel``` Cancel\n\n```bash\nghmgr invite member --cancel --email name@domain.com\n```\n\n\n\n## Add\n\n### Add or Update Membership of Team with Username\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-u,--username``` GitHub username\n\n```-r,--role``` Role of Team (maintainer, member)\n\n```bash\nghmgr add member --team [teamname] --email [name@domain.com] -r maintainer\n```\n\n### Add or Update Membership of Team with Email\n\nmust load cache and add verify email account before use this cmd.\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-m,--email``` email (verify)\n\n```-r,--role``` Role of Team (maintainer, member)\n\n```bash\nghmgr add member --team [teamname] --email [name@domain.com] -r maintainer\n```\n\n\n## Remove\n\n### Remove Team Membership For User\n\nTo remove a membership between a user and a team (without Organization)\n\n\n**option**\n\n```-t,--team``` teamname (slug team name lowercase)\n\n```-u,--username``` GitHub username\n\n```bash\nghmgr remove member --team [teamname] --username [username]\n```\n\n### Remove Membership of Team Without Email\n\nTo remove a membership between a user and a team (without Organization) focus public Email isn't appear.\n\n**option**\n\n```-t,--team``` teamname (slug team name lowercase)\n```-m null,--email null``` email only null\n\n```bash\nghmgr remove member -t [teamename] -m null\n```\n\n### Remove Membership of Organization \n\nRemoving a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories\n\n\n**option**\n\n```-o,--org``` organization\n\n```-u,--username``` GitHub username\n\n```bash\nghmgr remove member --org --username [username]\n```\n\n### Remove Organization Members Without Membership of Teams\n\n**option**\n\n```-o,--org``` organization\n\n```-t null,--team null``` null only\n\n```bash\nghmgr remove member -o -t null\n```\n\n\n\n\n### Remove dormant users of the organization from CSV file\n\nfor the file workspace in : ```report/input/dormant-users-report-xxxxxx.csv```\n\n**option**\n\n```-f,--file``` filename.csv\n\n```-b,--backup``` the backup file for review\n\n```bash\nghmgr remove member dormant --file dormant-users-report-xxxx.csv --backup\n```\n\nthe backup file output into report/output/dormant-users-report-xxxxxx.csv-review-xxxx.csv\n\n### Remove member invited log for support re-invite into Org\n\n```bash\nghmgr remove member invited --t [name] -m example@domain.com,example2@domain.com,example3domain.com\n```\n\n\n## Import\n\n### Import \u0026 Invite or Update Team Member from CSV Template\n\nmust load cache and add verify email account before use this cmd.\n\n**Attention** \n\n- the template can update but support who configured email address at profile (email don’t empty)\n\n- the Project Name must lowercase only we use slug GitHub Team name (seem team url link https://github.com/orgs/owner-org/teams/team-name) e.g.  “Team Name” =\u003e “team-name“ \n\n- focus at GitHub column when\n    - Y is active then do\n        - GitHub Username is empty will be invite member using email\n        - GitHub Username already but outside ORG or already in another team will be update into member team (calculate 1 license)\n\n    - N is active when\n        - GitHub Username already and then will be removed from the team but still in ORG\n\n    - Empty is not active\n\n\nthe file input template in : ```reports/input/team-name.csv```\n\n**option**\n\n```-f,--file``` file name.csv (team in GitHub)\n\n```bash\nghmgr import template --file team-name.csv\n```\n\n\n\n## Export\n\n### Export or Update Team Member to CSV Template\n\nmust load cache and add verify email account before use this cmd.\n\n**Attention** \n\n- the template can update but support who configured email address at profile (email don’t empty)\n\n- the Project Name must lowercase only we use slug GitHub Team name (seem team url link https://github.com/orgs/owner-org/teams/team-name) e.g.  “Team Name” =\u003e “team-name“ \n\n- focus at GitHub column when\n    - Y is active then do\n        - GitHub Username is empty will be invite member using email\n        - GitHub Username already but outside ORG or already in another team will be update into member team (calculate 1 license)\n\n    - N is active when\n        - GitHub Username already and then will be removed from the team but still in ORG\n\n    - Empty is not active\n\n\nthe file output template in : ```reports/output/team-name.csvxxx.csv```\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```bash\nghmgr export template --team team-name\n```\n\n## Rewrite\n\n### Rewrite format before import or update team Member from CSV Template file\n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```bash\nghmgr rewrite template -t [teamname]\n```\n\n## Check\n\n### Check Team Membership for User \n\n**option**\n\n```-t,--team``` team name (team in GitHub)\n\n```-u,--username``` github username\n\n```bash\nghmgr check member --team [team-name] --username [username]\n```\n\n### Check Membership for User in ORG\n\n**option**\n\n```-u,--username``` github username\n\n```bash\nghmgr check member --username [username]\n```\n\n### Check and Verify CSV format template\n\n**option**\n\n```-f,--file``` filename.csv\n\n```bash\nghmgr check report -f [filename].csv\n```\n\n\n\n## Get\n\n### Get GitHub Username from Email\n\n**option**\n\n```-m,--email``` GitHub Email (Primary Email) \n\n\n```bash\nghmgr get member username --email name@domain.com\n```\n\n### Get Primary Email from GitHub Username\n\n**option**\n\n```-u,--username``` github username\n\n```bash\nghmgr get member email --username [username]\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarathep%2Fghmgr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarathep%2Fghmgr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarathep%2Fghmgr/lists"}