summaryrefslogtreecommitdiffstats
path: root/vendor/gopkg.in
diff options
context:
space:
mode:
authorDawid Dziurla <dawidd0811@gmail.com>2019-08-26 16:53:38 +0200
committerJesse Duffield <jessedduffield@gmail.com>2019-09-01 21:24:03 +1000
commite0dd1cb29d6d70829622ca0125028e98fa440f4a (patch)
treef6d792b579614df3dfbcfa661945e1bfd48f11fc /vendor/gopkg.in
parent827837b0b940d9367cefd03eb0e779711f9489da (diff)
switch to Go modules
Diffstat (limited to 'vendor/gopkg.in')
-rw-r--r--vendor/gopkg.in/src-d/go-billy.v4/.gitignore1
-rw-r--r--vendor/gopkg.in/src-d/go-billy.v4/DCO25
-rw-r--r--vendor/gopkg.in/src-d/go-billy.v4/MAINTAINERS1
-rw-r--r--vendor/gopkg.in/src-d/go-billy.v4/Makefile25
-rw-r--r--vendor/gopkg.in/src-d/go-billy.v4/README.md72
-rw-r--r--vendor/gopkg.in/src-d/go-billy.v4/appveyor.yml15
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/.gitignore4
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/CODE_OF_CONDUCT.md74
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/COMPATIBILITY.md111
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/CONTRIBUTING.md58
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/DCO36
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/MAINTAINERS3
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/Makefile52
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/README.md123
-rw-r--r--vendor/gopkg.in/src-d/go-git.v4/appveyor.yml21
-rw-r--r--vendor/gopkg.in/warnings.v0/README77
-rw-r--r--vendor/gopkg.in/yaml.v2/README.md133
-rw-r--r--vendor/gopkg.in/yaml.v2/go.mod5
18 files changed, 836 insertions, 0 deletions
diff --git a/vendor/gopkg.in/src-d/go-billy.v4/.gitignore b/vendor/gopkg.in/src-d/go-billy.v4/.gitignore
new file mode 100644
index 000000000..3f2bc4741
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-billy.v4/.gitignore
@@ -0,0 +1 @@
+/coverage.txt
diff --git a/vendor/gopkg.in/src-d/go-billy.v4/DCO b/vendor/gopkg.in/src-d/go-billy.v4/DCO
new file mode 100644
index 000000000..29c1b9208
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-billy.v4/DCO
@@ -0,0 +1,25 @@
+ Developer's Certificate of Origin 1.1
+
+ By making a contribution to this project, I certify that:
+
+ (a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+ (b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+ (c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+ (d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
diff --git a/vendor/gopkg.in/src-d/go-billy.v4/MAINTAINERS b/vendor/gopkg.in/src-d/go-billy.v4/MAINTAINERS
new file mode 100644
index 000000000..8dbba477d
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-billy.v4/MAINTAINERS
@@ -0,0 +1 @@
+Máximo Cuadros <mcuadros@gmail.com> (@mcuadros)
diff --git a/vendor/gopkg.in/src-d/go-billy.v4/Makefile b/vendor/gopkg.in/src-d/go-billy.v4/Makefile
new file mode 100644
index 000000000..19e743378
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-billy.v4/Makefile
@@ -0,0 +1,25 @@
+# General
+WORKDIR = $(PWD)
+
+# Go parameters
+GOCMD = go
+GOTEST = $(GOCMD) test -v
+
+# Coverage
+COVERAGE_REPORT = coverage.txt
+COVERAGE_PROFILE = profile.out
+COVERAGE_MODE = atomic
+
+test-coverage:
+ cd $(WORKDIR); \
+ echo "" > $(COVERAGE_REPORT); \
+ for dir in `find . -name "*.go" | grep -o '.*/' | sort | uniq`; do \
+ $(GOTEST) $$dir -coverprofile=$(COVERAGE_PROFILE) -covermode=$(COVERAGE_MODE); \
+ if [ $$? != 0 ]; then \
+ exit 2; \
+ fi; \
+ if [ -f $(COVERAGE_PROFILE) ]; then \
+ cat $(COVERAGE_PROFILE) >> $(COVERAGE_REPORT); \
+ rm $(COVERAGE_PROFILE); \
+ fi; \
+ done; \
diff --git a/vendor/gopkg.in/src-d/go-billy.v4/README.md b/vendor/gopkg.in/src-d/go-billy.v4/README.md
new file mode 100644
index 000000000..d28f84a1e
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-billy.v4/README.md
@@ -0,0 +1,72 @@
+# go-billy [![GoDoc](https://godoc.org/gopkg.in/src-d/go-billy.v4?status.svg)](https://godoc.org/gopkg.in/src-d/go-billy.v4) [![Build Status](https://travis-ci.org/src-d/go-billy.svg)](https://travis-ci.org/src-d/go-billy) [![Build status](https://ci.appveyor.com/api/projects/status/vx2qn6vlakbi724t?svg=true)](https://ci.appveyor.com/project/mcuadros/go-billy) [![codecov](https://codecov.io/gh/src-d/go-billy/branch/master/graph/badge.svg)](https://codecov.io/gh/src-d/go-billy)
+
+The missing interface filesystem abstraction for Go.
+Billy implements an interface based on the `os` standard library, allowing to develop applications without dependency on the underlying storage. Make virtually free implement an mocks and testing over filesystem operations.
+
+Billy was born as part of [src-d/go-git](https://github.com/src-d/go-git) project.
+
+## Installation
+
+```go
+go get -u gopkg.in/src-d/go-billy.v4/...
+```
+
+## Usage
+
+Billy exposes filesystems using the
+[`Filesystem` interface](https://godoc.org/github.com/src-d/go-billy#Filesystem).
+Each filesystem implementation gives you a `New` method, whose arguments depend on
+the implementation itself, that returns a new `Filesystem`.
+
+The following example caches in memory all readable files in a directory from any
+billy's filesystem implementation.
+
+```go
+func LoadToMemory(origin billy.Filesystem, path string) (*memory.Memory, error) {
+ memory := memory.New()
+
+ files, err := origin.ReadDir("/")
+ if err != nil {
+ return nil, err
+ }
+
+ for _, file := range files {
+ if file.IsDir() {
+ continue
+ }
+
+ src, err := origin.Open(file.Name())
+ if err != nil {
+ return nil, err
+ }
+
+ dst, err := memory.Create(file.Name())
+ if err != nil {
+ return nil, err
+ }
+
+ if _, err = io.Copy(dst, src); err != nil {
+ return nil, err
+ }
+
+ if err := dst.Close(); err != nil {
+ return nil, err
+ }
+
+ if err := src.Close(); err != nil {
+ return nil, err
+ }
+ }
+
+ return memory, nil
+}
+```
+
+## Why billy?
+
+The library billy deals with storage systems and Billy is the name of a well-known, IKEA
+bookcase. That's it.
+
+## License
+
+Apache License Version 2.0, see [LICENSE](LICENSE)
diff --git a/vendor/gopkg.in/src-d/go-billy.v4/appveyor.yml b/vendor/gopkg.in/src-d/go-billy.v4/appveyor.yml
new file mode 100644
index 000000000..91c0b40c0
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-billy.v4/appveyor.yml
@@ -0,0 +1,15 @@
+version: "{build}"
+platform: x64
+
+clone_folder: c:\gopath\src\gopkg.in\src-d\go-billy.v4
+
+environment:
+ GOPATH: c:\gopath
+
+install:
+ - set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
+ - go version
+ - go get -v -t ./...
+
+build_script:
+ - go test -v ./...
diff --git a/vendor/gopkg.in/src-d/go-git.v4/.gitignore b/vendor/gopkg.in/src-d/go-git.v4/.gitignore
new file mode 100644
index 000000000..038dd9f1e
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/.gitignore
@@ -0,0 +1,4 @@
+coverage.out
+*~
+coverage.txt
+profile.out
diff --git a/vendor/gopkg.in/src-d/go-git.v4/CODE_OF_CONDUCT.md b/vendor/gopkg.in/src-d/go-git.v4/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..a689fa3c3
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/CODE_OF_CONDUCT.md
@@ -0,0 +1,74 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of experience,
+education, socio-economic status, nationality, personal appearance, race,
+religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at conduct@sourced.tech. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
diff --git a/vendor/gopkg.in/src-d/go-git.v4/COMPATIBILITY.md b/vendor/gopkg.in/src-d/go-git.v4/COMPATIBILITY.md
new file mode 100644
index 000000000..e07e79915
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/COMPATIBILITY.md
@@ -0,0 +1,111 @@
+Supported Capabilities
+======================
+
+Here is a non-comprehensive table of git commands and features whose equivalent
+is supported by go-git.
+
+| Feature | Status | Notes |
+|---------------------------------------|--------|-------|
+| **config** |
+| config | ✔ | Reading and modifying per-repository configuration (`.git/config`) is supported. Global configuration (`$HOME/.gitconfig`) is not. |
+| **getting and creating repositories** |
+| init | ✔ | Plain init and `--bare` are supported. Flags `--template`, `--separate-git-dir` and `--shared` are not. |
+| clone | ✔ | Plain clone and equivalents to `--progress`, `--single-branch`, `--depth`, `--origin`, `--recurse-submodules` are supported. Others are not. |
+| **basic snapshotting** |
+| add | ✔ | Plain add is supported. Any other flag aren't supported |
+| status | ✔ |
+| commit | ✔ |
+| reset | ✔ |
+| rm | ✔ |
+| mv | ✔ |
+| **branching and merging** |
+| branch | ✔ |
+| checkout | ✔ | Basic usages of checkout are supported. |
+| merge | ✖ |
+| mergetool | ✖ |
+| stash | ✖ |
+| tag | ✔ |
+| **sharing and updating projects** |
+| fetch | ✔ |
+| pull | ✔ | Only supports merges where the merge can be resolved as a fast-forward. |
+| push | ✔ |
+| remote | ✔ |
+| submodule | ✔ |
+| **inspection and comparison** |
+| show | ✔ |
+| log | ✔ |
+| shortlog | (see log) |
+| describe | |
+| **patching** |
+| apply | ✖ |
+| cherry-pick | ✖ |
+| diff | ✔ | Patch object with UnifiedDiff output representation |
+| rebase | ✖ |
+| revert | ✖ |
+| **debugging** |
+| bisect | ✖ |
+| blame | ✔ |
+| grep | ✔ |
+| **email** ||
+| am | ✖ |
+| apply | ✖ |
+| format-patch | ✖ |
+| send-email | ✖ |
+| request-pull | ✖ |
+| **external systems** |
+| svn | ✖ |
+| fast-import | ✖ |
+| **administration** |
+| clean | ✔ |
+| gc | ✖ |
+| fsck | ✖ |
+| reflog | ✖ |
+| filter-branch | ✖ |
+| instaweb | ✖ |
+| archive | ✖ |
+| bundle | ✖ |
+| prune | ✖ |
+| repack | ✖ |
+| **server admin** |
+| daemon | |
+| update-server-info | |
+| **advanced** |
+| notes | ✖ |
+| replace | ✖ |
+| worktree | ✖ |
+| annotate | (see blame) |
+| **gpg** |
+| git-verify-commit | ✔ |
+| git-verify-tag | ✔ |
+| **plumbing commands** |
+| cat-file | ✔ |
+| check-ignore | |
+| commit-tree | |
+| count-objects | |
+| diff-index | |
+| for-each-ref | ✔ |
+| hash-object | ✔ |
+| ls-files | ✔ |
+| merge-base | |
+| read-tree | |
+| rev-list | ✔ |
+| rev-parse | |
+| show-ref | ✔ |
+| symbolic-ref | ✔ |
+| update-index | |
+| update-ref | |
+| verify-pack | |
+| write-tree | |
+| **protocols** |
+| http(s):// (dumb) | ✖ |
+| http(s):// (smart) | ✔ |
+| git:// | ✔ |
+| ssh:// | ✔ |
+| file:// | ✔ |
+| custom | ✔ |
+| **other features** |
+| gitignore | ✔ |
+| gitattributes | ✖ |
+| index version | |
+| packfile version | |
+| push-certs | ✖ |
diff --git a/vendor/gopkg.in/src-d/go-git.v4/CONTRIBUTING.md b/vendor/gopkg.in/src-d/go-git.v4/CONTRIBUTING.md
new file mode 100644
index 000000000..92b7b8cb5
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/CONTRIBUTING.md
@@ -0,0 +1,58 @@
+# Contributing Guidelines
+
+source{d} go-git project is [Apache 2.0 licensed](LICENSE) and accepts
+contributions via GitHub pull requests. This document outlines some of the
+conventions on development workflow, commit message formatting, contact points,
+and other resources to make it easier to get your contribution accepted.
+
+## Certificate of Origin
+
+By contributing to this project you agree to the [Developer Certificate of
+Origin (DCO)](DCO). This document was created by the Linux Kernel community and is a
+simple statement that you, as a contributor, have the legal right to make the
+contribution.
+
+In order to show your agreement with the DCO you should include at the end of commit message,
+the following line: `Signed-off-by: John Doe <john.doe@example.com>`, using your real name.
+
+This can be done easily using the [`-s`](https://github.com/git/git/blob/b2c150d3aa82f6583b9aadfecc5f8fa1c74aca09/Documentation/git-commit.txt#L154-L161) flag on the `git commit`.
+
+## Support Channels
+
+The official support channels, for both users and contributors, are:
+
+- GitHub [issues](https://github.com/src-d/go-git/issues)*
+- Slack: #go-git room in the [source{d} Slack](https://join.slack.com/t/sourced-community/shared_invite/enQtMjc4Njk5MzEyNzM2LTFjNzY4NjEwZGEwMzRiNTM4MzRlMzQ4MmIzZjkwZmZlM2NjODUxZmJjNDI1OTcxNDAyMmZlNmFjODZlNTg0YWM)
+
+*Before opening a new issue or submitting a new pull request, it's helpful to
+search the project - it's likely that another user has already reported the
+issue you're facing, or it's a known issue that we're already aware of.
+
+
+## How to Contribute
+
+Pull Requests (PRs) are the main and exclusive way to contribute to the official go-git project.
+In order for a PR to be accepted it needs to pass a list of requirements:
+
+- You should be able to run the same query using `git`. We don't accept features that are not implemented in the official git implementation.
+- The expected behavior must match the [official git implementation](https://github.com/git/git).
+- The actual behavior must be correctly explained with natural language and providing a minimum working example in Go that reproduces it.
+- All PRs must be written in idiomatic Go, formatted according to [gofmt](https://golang.org/cmd/gofmt/), and without any warnings from [go lint](https://github.com/golang/lint) nor [go vet](https://golang.org/cmd/vet/).
+- They should in general include tests, and those shall pass.
+- If the PR is a bug fix, it has to include a suite of unit tests for the new functionality.
+- If the PR is a new feature, it has to come with a suite of unit tests, that tests the new functionality.
+- In any case, all the PRs have to pass the personal evaluation of at least one of the [maintainers](MAINTAINERS) of go-git.
+
+### Format of the commit message
+
+Every commit message should describe what was changed, under which context and, if applicable, the GitHub issue it relates to:
+
+```
+plumbing: packp, Skip argument validations for unknown capabilities. Fixes #623
+```
+
+The format can be described more formally as follows:
+
+```
+<package>: <subpackage>, <what changed>. [Fixes #<issue-number>]
+```
diff --git a/vendor/gopkg.in/src-d/go-git.v4/DCO b/vendor/gopkg.in/src-d/go-git.v4/DCO
new file mode 100644
index 000000000..3aca339de
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/DCO
@@ -0,0 +1,36 @@
+Developer Certificate of Origin
+Version 1.1
+
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
+660 York Street, Suite 102,
+San Francisco, CA 94110 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+
+Developer's Certificate of Origin 1.1
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+(c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+(d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved. \ No newline at end of file
diff --git a/vendor/gopkg.in/src-d/go-git.v4/MAINTAINERS b/vendor/gopkg.in/src-d/go-git.v4/MAINTAINERS
new file mode 100644
index 000000000..ff2129c45
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/MAINTAINERS
@@ -0,0 +1,3 @@
+Máximo Cuadros <mcuadros@gmail.com> (@mcuadros)
+Jeremy Stribling <strib@alum.mit.edu> (@strib)
+Ori Rawlings <orirawlings@gmail.com> (@orirawlings)
diff --git a/vendor/gopkg.in/src-d/go-git.v4/Makefile b/vendor/gopkg.in/src-d/go-git.v4/Makefile
new file mode 100644
index 000000000..d576778f4
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/Makefile
@@ -0,0 +1,52 @@
+# General
+WORKDIR = $(PWD)
+
+# Go parameters
+GOCMD = go
+GOTEST = $(GOCMD) test -v
+
+# Git config
+GIT_VERSION ?=
+GIT_DIST_PATH ?= $(PWD)/.git-dist
+GIT_REPOSITORY = http://github.com/git/git.git
+
+# Coverage
+COVERAGE_REPORT = coverage.txt
+COVERAGE_PROFILE = profile.out
+COVERAGE_MODE = atomic
+
+ifneq ($(origin CI), undefined)
+ WORKDIR := $(GOPATH)/src/gopkg.in/src-d/go-git.v4
+endif
+
+build-git:
+ @if [ -f $(GIT_DIST_PATH)/git ]; then \
+ echo "nothing to do, using cache $(GIT_DIST_PATH)"; \
+ else \
+ git clone $(GIT_REPOSITORY) -b $(GIT_VERSION) --depth 1 --single-branch $(GIT_DIST_PATH); \
+ cd $(GIT_DIST_PATH); \
+ make configure; \
+ ./configure; \
+ make all; \
+ fi
+
+test:
+ @cd $(WORKDIR); \
+ $(GOTEST) ./...
+
+test-coverage:
+ @cd $(WORKDIR); \
+ echo "" > $(COVERAGE_REPORT); \
+ for dir in `find . -name "*.go" | grep -o '.*/' | sort | uniq`; do \
+ $(GOTEST) $$dir -coverprofile=$(COVERAGE_PROFILE) -covermode=$(COVERAGE_MODE); \
+ if [ $$? != 0 ]; then \
+ exit 2; \
+ fi; \
+ if [ -f $(COVERAGE_PROFILE) ]; then \
+ cat $(COVERAGE_PROFILE) >> $(COVERAGE_REPORT); \
+ rm $(COVERAGE_PROFILE); \
+ fi; \
+ done; \
+
+clean:
+ rm -rf $(GIT_DIST_PATH) \ No newline at end of file
diff --git a/vendor/gopkg.in/src-d/go-git.v4/README.md b/vendor/gopkg.in/src-d/go-git.v4/README.md
new file mode 100644
index 000000000..8cdfef84e
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/README.md
@@ -0,0 +1,123 @@
+![go-git logo](https://cdn.rawgit.com/src-d/artwork/02036484/go-git/files/go-git-github-readme-header.png)
+[![GoDoc](https://godoc.org/gopkg.in/src-d/go-git.v4?status.svg)](https://godoc.org/github.com/src-d/go-git) [![Build Status](https://travis-ci.org/src-d/go-git.svg)](https://travis-ci.org/src-d/go-git) [![Build status](https://ci.appveyor.com/api/projects/status/nyidskwifo4py6ub?svg=true)](https://ci.appveyor.com/project/mcuadros/go-git) [![codecov.io](https://codecov.io/github/src-d/go-git/coverage.svg)](https://codecov.io/github/src-d/go-git) [![Go Report Card](https://goreportcard.com/badge/github.com/src-d/go-git)](https://goreportcard.com/report/github.com/src-d/go-git)
+
+*go-git* is a highly extensible git implementation library written in **pure Go**.
+
+It can be used to manipulate git repositories at low level *(plumbing)* or high level *(porcelain)*, through an idiomatic Go API. It also supports several type of storage, such as in-memory filesystems, or custom implementations thanks to the [`Storer`](https://godoc.org/gopkg.in/src-d/go-git.v4/plumbing/storer) interface.
+
+It's being actively develop since 2015 and is being use extensively by [source{d}](https://sourced.tech/) and [Keybase](https://keybase.io/blog/encrypted-git-for-everyone), and by many other libraries and tools.
+
+Comparison with git
+-------------------
+
+*go-git* aims to be fully compatible with [git](https://github.com/git/git), all the *porcelain* operations are implemented to work exactly as *git* does.
+
+*git* is a humongous project with years of development by thousands of contributors, making it challenging for *go-git* implement all the features. You can find a comparison of *go-git* vs *git* in the [compatibility documentation](COMPATIBILITY.md).
+
+
+Installation
+------------
+
+The recommended way to install *go-git* is:
+
+```
+go get -u gopkg.in/src-d/go-git.v4/...
+```
+
+> We use [gopkg.in](http://labix.org/gopkg.in) for having a versioned API, this means that when `go get` clones the package, is the latest tag matching `v4.*` cloned and not the master branch.
+
+Examples
+--------
+
+> Please note that the functions `CheckIfError` and `Info` used in the examples are from the [examples package](https://github.com/src-d/go-git/blob/master/_examples/common.go#L17) just to be used in the examples.
+
+
+### Basic example
+
+A basic example that mimics the standard `git clone` command
+
+```go
+// Clone the given repository to the given directory
+Info("git clone https://github.com/src-d/go-git")
+
+_, err := git.PlainClone("/tmp/foo", false, &git.CloneOptions{
+ URL: "https://github.com/src-d/go-git",
+ Progress: os.Stdout,
+})
+
+CheckIfError(err)
+```
+
+Outputs:
+```
+Counting objects: 4924, done.
+Compressing objects: 100% (1333/1333), done.
+Total 4924 (delta 530), reused 6 (delta 6), pack-reused 3533
+```
+
+### In-memory example
+
+Cloning a repository into memory and printing the history of HEAD, just like `git log` does
+
+
+```go
+// Clones the given repository in memory, creating the remote, the local
+// branches and fetching the objects, exactly as:
+Info("git clone https://github.com/src-d/go-siva")
+
+r, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{
+ URL: "https://github.com/src-d/go-siva",
+})
+
+CheckIfError(err)
+
+// Gets the HEAD history from HEAD, just like does:
+Info("git log")
+
+// ... retrieves the branch pointed by HEAD
+ref, err := r.Head()
+CheckIfError(err)
+
+
+// ... retrieves the commit history
+cIter, err := r.Log(&git.LogOptions{From: ref.Hash()})
+CheckIfError(err)
+
+// ... just iterates over the commits, printing it
+err = cIter.ForEach(func(c *object.Commit) error {
+ fmt.Println(c)
+ return nil
+})
+CheckIfError(err)
+```
+
+Outputs:
+```
+commit ded8054fd0c3994453e9c8aacaf48d118d42991e
+Author: Santiago M. Mola <santi@mola.io>
+Date: Sat Nov 12 21:18:41 2016 +0100
+
+ index: ReadFrom/WriteTo returns IndexReadError/IndexWriteError. (#9)
+
+commit df707095626f384ce2dc1a83b30f9a21d69b9dfc
+Author: Santiago M. Mola <santi@mola.io>
+Date: Fri Nov 11 13:23:22 2016 +0100
+
+ readwriter: fix bug when writing index. (#10)
+
+ When using ReadWriter on an existing siva file, absolute offset for
+ index entries was not being calculated correctly.
+...
+```
+
+You can find this [example](_examples/log/main.go) and many others at the [examples](_examples) folder
+
+Contribute
+----------
+
+[Contributions](https://github.com/src-d/go-git/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are more than welcome, if you are interested please take a look to
+our [Contributing Guidelines](CONTRIBUTING.md).
+
+License
+-------
+Apache License Version 2.0, see [LICENSE](LICENSE)
diff --git a/vendor/gopkg.in/src-d/go-git.v4/appveyor.yml b/vendor/gopkg.in/src-d/go-git.v4/appveyor.yml
new file mode 100644
index 000000000..160616bec
--- /dev/null
+++ b/vendor/gopkg.in/src-d/go-git.v4/appveyor.yml
@@ -0,0 +1,21 @@
+version: "{build}"
+platform: x64
+
+matrix:
+ allow_failures:
+ - platform: x64
+
+clone_folder: c:\gopath\src\gopkg.in\src-d\go-git.v4
+
+environment:
+ GOPATH: c:\gopath
+
+install:
+ - set PATH=%GOPATH%\bin;c:\go\bin;"C:\Program Files\Git\mingw64\bin";%PATH%
+ - go version
+ - go get -v -t ./...
+ - git config --global user.email "travis@example.com"
+ - git config --global user.name "Travis CI
+
+build_script:
+ - go test -v ./...
diff --git a/vendor/gopkg.in/warnings.v0/README b/vendor/gopkg.in/warnings.v0/README
new file mode 100644
index 000000000..974212ba1
--- /dev/null
+++ b/vendor/gopkg.in/warnings.v0/README
@@ -0,0 +1,77 @@
+Package warnings implements error handling with non-fatal errors (warnings).
+
+import path: "gopkg.in/warnings.v0"
+package docs: https://godoc.org/gopkg.in/warnings.v0
+issues: https://github.com/go-warnings/warnings/issues
+pull requests: https://github.com/go-warnings/warnings/pulls
+
+A recurring pattern in Go programming is the following:
+
+ func myfunc(params) error {
+ if err := doSomething(...); err != nil {
+ return err
+ }
+ if err := doSomethingElse(...); err != nil {
+ return err
+ }
+ if ok := doAnotherThing(...); !ok {
+ return errors.New("my error")
+ }
+ ...
+ return nil
+ }
+
+This pattern allows interrupting the flow on any received error. But what if
+there are errors that should be noted but still not fatal, for which the flow
+should not be interru