Add instructions for GitHub Actions

This commit is contained in:
Mislav Marohnić 2020-01-25 15:16:14 +01:00
Родитель 572ea2990e
Коммит 40e421edd2
2 изменённых файлов: 74 добавлений и 0 удалений

Просмотреть файл

@ -47,6 +47,32 @@ Ubuntu | [Snap](https://snapcraft.io) | `snap install hub --classic`
[compiled binaries](https://github.com/github/hub/releases) and put it anywhere
in your executable path.
#### GitHub Actions
hub can be used for automation through [GitHub Actions][] workflows:
```yaml
steps:
- uses: actions/checkout@v2
- name: hub example
shell: bash
run: |
curl -fsSL https://github.com/github/hub/raw/master/script/get | bash -s 2.14.1
bin/hub pr list # list pull requests in the current repo
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
Note that the default GITHUB_TOKEN will only work for API operations within _the
same repo that runs this workflow_. If you need to access or write to other
repositories, [generate a Personal Access Token][pat] with `repo` scope and add
it to your [repository secrets][].
[github actions]: https://help.github.com/en/actions/automating-your-workflow-with-github-actions
[pat]: https://github.com/settings/tokens
[repository secrets]: https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets
#### Source
Prerequisites for building from source are:

48
script/get Executable file
Просмотреть файл

@ -0,0 +1,48 @@
#!/bin/bash
# Usage: curl -fsSL https://github.com/github/hub/raw/master/script/get | bash -s <HUB_VERSION>
#
# Downloads the hub binary into `bin/hub` within the current directory.
set -e
latest-version() {
curl -fsi https://github.com/github/hub/releases/latest | awk -F/ '/^Location:/ {print $(NF)}'
}
HUB_VERSION="${1#v}"
if [ -z "$HUB_VERSION" ]; then
latest=$(latest-version) || true
[ -n "$latest" ] || latest="v2.14.1"
cat <<MSG >&2
Error: You must specify a version of hub via the first argument. Example:
curl -L <script> | bash -s ${latest#v}
MSG
exit 1
fi
ARCH="amd64"
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
[[ $OS != mingw* ]] || OS="windows"
download() {
if [ "$OS" = windows ]; then
zip="${1%.tgz}.zip"
curl -fsSLO "$zip"
unzip "$(basename "$zip")" bin/hub.exe
rm -f "$zip"
elif [ "$OS" = darwin ]; then
curl -fsSL "$1" | tar xz --strip-components=1 '*/bin/hub'
else
curl -fsSL "$1" | tar xz --strip-components=1 --wildcards '*/bin/hub'
fi
}
download "https://github.com/github/hub/releases/download/v$HUB_VERSION/hub-$OS-$ARCH-$HUB_VERSION.tgz"
bin/hub version
if [ -z "$GITHUB_TOKEN" ]; then
cat <<MSG >&2
Warning: We recommend supplying the GITHUB_TOKEN environment variable to avoid
being prompted for authentication.
MSG
fi