{"id":22285509,"url":"https://github.com/katexochen/ghh","last_synced_at":"2025-07-28T22:31:18.999Z","repository":{"id":154538813,"uuid":"611377083","full_name":"katexochen/ghh","owner":"katexochen","description":"GitHub helper tool. Does things the gh CLI can't.","archived":false,"fork":false,"pushed_at":"2024-11-07T00:50:23.000Z","size":154,"stargazers_count":5,"open_issues_count":13,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-07T01:36:28.203Z","etag":null,"topics":["github","github-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/katexochen.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-08T17:45:45.000Z","updated_at":"2024-05-03T12:25:22.000Z","dependencies_parsed_at":"2023-12-18T22:57:55.110Z","dependency_job_id":"5deac56c-507a-44c5-b8e7-a0cf2677a170","html_url":"https://github.com/katexochen/ghh","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katexochen%2Fghh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katexochen%2Fghh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katexochen%2Fghh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katexochen%2Fghh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/katexochen","download_url":"https://codeload.github.com/katexochen/ghh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227961871,"owners_count":17847836,"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","github-api"],"created_at":"2024-12-03T16:52:36.530Z","updated_at":"2024-12-03T16:52:37.061Z","avatar_url":"https://github.com/katexochen.png","language":"Go","readme":"# ghh - GitHub Helper tool\n\n## Authentication\n\nAuthentication against GitHub can be done by either setting `GHH_TOKEN` as environment\nvariable on command invocation or by using the `set-auth` subcommand, which will read\nyour token form the env or interactive input and write it to the GHH config file (unencrypted!).\n\n## `create-project-issue`\n\nCreate project issue creates a new draft issue in a GitHub\nproject board. Metadata can be added in the form of fields and\nusers can be assigned.\n\nThe command takes two inputs: a path to an issue body (markdown or plain text)\nand a path to a JSON document of metadata. The metadata file looks like this:\n\n```json\n{\n    \"organization\": \"\u003corg\u003e\",\n    \"user\": \"\u003clogin\u003e\",\n    \"projectNumber\": 42,\n    \"issueTitle\": \"\u003cyour issue title\u003e\",\n    \"assignees\": [\n        \"\u003clogin\u003e\"\n    ],\n    \"fields\": {\n        \"Status\": \"\u003cboard column\u003e\",\n        \"field1\": \"value1\",\n        \"field2\": \"value2\"\n    }\n}\n```\n\nNotice that either `organization` or `user`, and `projectNumber` as well\nas `issueTitle` are required fields.\n\nThe project number is part of the URL of your target project board.\n\n![GitHub project board URL](assets/project-url.png)\n\nFor boards with columns, the column is also a field. You can find the\nfield name and the possible values in your project settings.\n\n![GitHub project settings](assets/project-settings.png)\n\n\n## `sync-forks`\n\nSync all forks of a user with their upstream repository. It will\nfast-forward the fork if possible, otherwise it will merge the upstream branch.\n\n\n**Set merge target branches** using the `--target-branches` flag. Per default, the target of the merge is the default branch of the fork.\nYou can pass multiple branch names, comma separated, or by using the flag multiple times. The existence of these\nbranch names will be checked in order, and the first matching branch will be used as\nmerge target. In case none of the branches matches, the default branch will be used.\nIf you don't want to fall back to the default branch after no target branch matched,\nset the `--dont-target-default` flag.\n\nExample:\n\n```shell\n# Only sync branches called 'upstream' or 'sync', no fallback to default branch\nghh sync-forks --target-branches upstream,sync --dont-target-default\n```\n\n**Ignore repos** you don't want to sync with the `--ignore-repos` flag.\nYou can pass multiple repository names, comma separated, or by using the flag multiple times.\nPass the repo name without your user prefix.\n\nExample:\n\n```shell\n# This won't sync katexochen/ghh when executed by me.\nghh sync-forks --ignore-repos ghh\n```\n**Run as GitHub workflow** to keep all your fork automatically up to date.\nYou can easily copy [this example workflow](.github/workflows/sync.yml) and fit it to your needs.\n\n\n## delete-all-runs\n\nDelete all runs of a workflow and get your workflows sidebar clean again. To run this command,\nwithin the repository, run the following command\n\n```sh\nghh delete-all-runs\n```\n\nThis will drop you into an interactive selection menu where you can select the workflow to delete.\nNotice that every run must be deleted on its own, and the command can take quite a while to finish\n(30-45 min if you have multiple thousand runs).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkatexochen%2Fghh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkatexochen%2Fghh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkatexochen%2Fghh/lists"}