mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-09-21 18:46:06 +02:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
acc11bc5f4 | ||
|
|
d03d367f82 | ||
|
|
eccb32c94c |
@@ -15,9 +15,6 @@ This plugin does not add any aliases.
|
||||
This plugin caches the completion script and is automatically updated when the
|
||||
plugin is loaded, which is usually when you start up a new terminal emulator.
|
||||
|
||||
The cache is stored at:
|
||||
|
||||
- `$ZSH/plugins/gh/_gh` completions script
|
||||
|
||||
- `$ZSH_CACHE_DIR/gh_version` version of GitHub CLI, used to invalidate
|
||||
the cache.
|
||||
The completion script is stored at `$ZSH_CACHE_DIR/completions/_gh`. If an
|
||||
update fails, the plugin keeps the last successfully generated completion
|
||||
script.
|
||||
|
||||
@@ -13,6 +13,12 @@ fi
|
||||
|
||||
zmodload -F zsh/files b:zf_mv
|
||||
() {
|
||||
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_gh"
|
||||
zf_mv -f -- =( gh completion --shell zsh ) "$TMPPREFIX"
|
||||
local completion_file="$ZSH_CACHE_DIR/completions/_gh"
|
||||
local completion_tmp="${completion_file}.$$.${RANDOM}"
|
||||
|
||||
if gh completion --shell zsh >| "$completion_tmp" && [[ -s "$completion_tmp" ]]; then
|
||||
zf_mv -f -- "$completion_tmp" "$completion_file"
|
||||
fi
|
||||
|
||||
command rm -f -- "$completion_tmp"
|
||||
} &|
|
||||
|
||||
+34
-36
@@ -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.
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
print -Pru2 -- '%F{yellow}[oh-my-zsh] The %Bgithub%b plugin is deprecated and will be removed in a future release.'
|
||||
print -Pru2 -- 'It supports the legacy %Bhub%b CLI. Use the %Bgh%b 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 #############################################################
|
||||
|
||||
|
||||
Reference in New Issue
Block a user