CLI to upload a file to a github repository through github's REST API. The file will be either created or overwritten.
Downloadable binaries are available from the releases page.
Create a Github personal access token and store it in one of the following ways:
- GITHUB_TOKEN environment variable
$ export GITHUB_TOKEN="your-personal-access-token"
-
In a github-token file. See help message for the upload command for the location on your system. On Linux this is usally $HOME/.config/ghupload/github-token, on MacOS $HOME/Library/Application/ghupload/github-token and %AppData%/ghupload/github-token on Windows.
-
Provide a token parameter to the upload command, pointing to a file containing the access token.
Usage:
ghupload upload -m <commit-msg> [-b <branch>] [-t <token-file>] <local-path> <remote-url>
Flags:
-b, --branch string Commit to branch (default branch if empty)
-m, --message string Commit message (required)
-t, --token string File to read token from (default /home/USER/.config/ghupload/github-token)
local-path is either a path to a local file or "-" for STDIN.
remote-url can be one of the following formats and has to include the repository owner, the repository and the path to the file inside the repository:
- https://github.com/owner/repository/path/in/repo
- [email protected]:owner/repository.git/path/in/repo
- owner/repository/path/in/repo
Command prints the commit SHA on success.
- Upload file
$ ghupload upload -m "commit msg" README.md invit/ghupload/README.md
b6cbb5b2ea041956c4ac8da17007f95d2312a461
- Upload data from STDIN
$ ghupload upload -m "commit msg" - invit/ghupload/README.md
this is the new
content
of the file
^D
3be39e60c3ae44faa40f4efc31241f3564c396f1
On Linux:
$ git clone github.com/invit/ghupload
$ cd ghupload
$ make
ghupload is licensed under the MIT License.