diff --git a/plugins/github/README.md b/plugins/github/README.md index 5d8b62501..d24c21d1e 100644 --- a/plugins/github/README.md +++ b/plugins/github/README.md @@ -1,45 +1,43 @@ # github plugin -This plugin supports working with GitHub from the command line. It provides a few things: +> [!WARNING] +> This plugin is deprecated and will be removed in a future release. It supports +> the legacy [`hub`](https://github.com/mislav/hub) CLI, not the current GitHub +> CLI. For `gh` completion, use the [`gh` plugin](../gh) instead. -* Sets up the `hub` wrapper and completions for the `git` command if you have [`hub`](https://github.com/github/hub) installed. -* Completion for the [`github` Ruby gem](https://github.com/defunkt/github-gem). -* Convenience functions for working with repos and URLs. +The plugin provides compatibility for existing `hub` users by: -### Functions +- aliasing `git` to `hub` when `hub` is installed; +- adding completion for `hub`; and +- defining convenience functions for creating repositories. -* `empty_gh` - Creates a new empty repo (with a `README.md`) and pushes it to GitHub -* `new_gh` - Initializes an existing directory as a repo and pushes it to GitHub -* `exist_gh` - Takes an existing repo and pushes it to GitHub +## Migrating to GitHub CLI - -## Installation - -[Hub](https://github.com/github/hub) needs to be installed if you want to use it. On OS X with Homebrew, this can be done with `brew install hub`. The `hub` completion definition needs to be added to your `$FPATH` before initializing OMZ. - -The [`github` Ruby gem](https://github.com/defunkt/github-gem) needs to be installed if you want to use it. - -### Configuration - -These settings affect `github`'s behavior. - -#### Environment variables - -* `$GITHUB_USER` -* `$GITHUB_PASSWORD` - -#### Git configuration options - -* `github.user` - GitHub username for repo operations - -See `man hub` for more details. - -### Homebrew installation note - -If you have installed `hub` using Homebrew, its completions may not be on your `$FPATH` if you are using the system `zsh`. Homebrew installs `zsh` completion definitions to `/usr/local/share/zsh/site-functions`, which will be on `$FPATH` for the Homebrew-installed `zsh`, but not for the system `zsh`. If you want it to work with the system `zsh`, add this to your `~/.zshrc` before it sources `oh-my-zsh.sh`. +Install [GitHub CLI](https://cli.github.com/), replace `github` with `gh` in +your plugin list, and restart your shell: ```zsh -if (( ! ${fpath[(I)/usr/local/share/zsh/site-functions]} )); then - FPATH=/usr/local/share/zsh/site-functions:$FPATH -fi +plugins=(... gh) ``` + +The `gh` plugin supplies completion for the installed GitHub CLI. It does not +alias `git`, because `gh` is not a Git wrapper. + +The closest replacement for creating a GitHub repository from an existing +local repository is: + +```zsh +gh repo create --source=. --push +``` + +## Deprecated functions + +- `empty_gh` - creates a new repository with a `README.md` and pushes it to GitHub +- `new_gh` - initializes an existing directory and pushes it to GitHub +- `exist_gh` - pushes an existing Git repository to GitHub + +These functions remain available during the deprecation period and require +`hub`. They will be removed with the plugin. + +If you continue using `hub`, see its documentation for authentication and +configuration details. diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 79114ff69..8d0966c63 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,3 +1,6 @@ +print -Pru2 -- "%F{yellow}[oh-my-zsh] The \`github\` plugin is deprecated and will be removed in a future release." +print -Pru2 -- "It supports the legacy \`hub\` CLI. Use the \`gh\` plugin for GitHub CLI completion.%f" + # Set up hub wrapper for git, if it is available; https://github.com/github/hub if (( $+commands[hub] )); then alias git=hub @@ -26,7 +29,7 @@ empty_gh() { # [NAME_OF_REPO] # This function will add all non-hidden files to git. new_gh() { # [DIRECTORY] emulate -L zsh - local repo="$1" + local repo="${1:-.}" cd "$repo" \ || return @@ -42,7 +45,7 @@ new_gh() { # [DIRECTORY] || return hub create \ || return - git push -u origin master \ + git push -u origin HEAD \ || return } @@ -52,18 +55,19 @@ new_gh() { # [DIRECTORY] # to your GitHub. exist_gh() { # [DIRECTORY] emulate -L zsh - local repo=$1 - cd "$repo" + local repo="${1:-.}" + cd "$repo" \ + || return hub create \ || return - git push -u origin master + git push -u origin HEAD } # git.io "GitHub URL" # # Shorten GitHub url, example: -# https://github.com/nvogel/dotzsh > https://git.io/8nU25w +# https://github.com/nvogel/dotzsh > https://git.io/8nU25w # source: https://github.com/nvogel/dotzsh # documentation: https://github.com/blog/985-git-io-github-url-shortener # @@ -74,4 +78,3 @@ git.io() { } # End Functions ############################################################# -