mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-01-26 05:37:18 +02:00
85 lines
2.7 KiB
Markdown
85 lines
2.7 KiB
Markdown
go-gitconfig
|
|
====
|
|
|
|
[![GitHub release](http://img.shields.io/github/release/tcnksm/go-gitconfig.svg?style=flat-square)][release]
|
|
[![Wercker](http://img.shields.io/wercker/ci/544ee33aea87f6374f001483.svg?style=flat-square)][wercker]
|
|
[![Coveralls](http://img.shields.io/coveralls/tcnksm/go-gitconfig.svg?style=flat-square)][coveralls]
|
|
[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)][license]
|
|
[![Go Documentation](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)][godocs]
|
|
|
|
[release]: https://github.com/tcnksm/go-gitconfig/releases
|
|
[wercker]: https://app.wercker.com/project/bykey/89c5a6e50a0daceec971ff5ce210164a
|
|
[coveralls]: https://coveralls.io/r/tcnksm/go-gitconfig
|
|
[license]: https://github.com/tcnksm/go-gitconfig/blob/master/LICENSE
|
|
[godocs]: http://godoc.org/github.com/tcnksm/go-gitconfig
|
|
|
|
|
|
`go-gitconfig` is a pacakge to use `gitconfig` values in Golang.
|
|
|
|
Sometimes you want to extract username or its email address **implicitly** in your tool.
|
|
Now most of developer use `git`, so we can use its configuration variables. `go-gitconfig` is for that.
|
|
|
|
`go-gitconfig` is very small, so it may not be included what you want to use.
|
|
If you want to use more git specific variable, check [Other](##VS).
|
|
|
|
## Usage
|
|
|
|
If you want to use git user name defined in `~/.gitconfig`:
|
|
|
|
```go
|
|
username, err := gitconfig.Username()
|
|
```
|
|
|
|
Or git user email defined in `~/.gitconfig`:
|
|
|
|
```go
|
|
email, err := gitconfig.Email()
|
|
```
|
|
|
|
Or, if you want to extract origin url of current project (from `.git/config`):
|
|
|
|
```go
|
|
url, err := gitconfig.OriginURL()
|
|
```
|
|
|
|
You can also extract value by key:
|
|
|
|
```go
|
|
editor, err := gitconfig.Global("core.editor")
|
|
```
|
|
|
|
```go
|
|
remote, err := gitconfig.Local("branch.master.remote")
|
|
```
|
|
|
|
See more details in document at [https://godoc.org/github.com/tcnksm/go-gitconfig](https://godoc.org/github.com/tcnksm/go-gitconfig).
|
|
|
|
## Install
|
|
|
|
To install, use `go get`:
|
|
|
|
```bash
|
|
$ go get -d github.com/tcnksm/go-gitconfig
|
|
```
|
|
|
|
## VS.
|
|
|
|
- [speedata/gogit](https://github.com/speedata/gogit)
|
|
- [libgit2/git2go](https://github.com/libgit2/git2go)
|
|
|
|
These packages have many features to use git from golang. `go-gitconfig` is very simple alternative and focus to extract information from gitconfig. `go-gitconfig` is used in [tcnksm/ghr](https://github.com/tcnksm/ghr).
|
|
|
|
## Contribution
|
|
|
|
1. Fork ([https://github.com/tcnksm/go-gitconfig/fork](https://github.com/tcnksm/go-gitconfig/fork))
|
|
1. Create a feature branch
|
|
1. Commit your changes
|
|
1. Rebase your local changes against the master branch
|
|
1. Run test suite with the `go test ./...` command and confirm that it passes
|
|
1. Run `gofmt -s`
|
|
1. Create new Pull Request
|
|
|
|
## Author
|
|
|
|
[tcnksm](https://github.com/tcnksm)
|