This project is the source for http://godoc.org/

[![GoDoc](https://godoc.org/github.com/golang/gddo?status.svg)](http://godoc.org/github.com/golang/gddo)
[![Build
Status](https://travis-ci.org/golang/gddo.svg?branch=master)](https://travis-ci.org/golang/gddo)

The code in this project is designed to be used by godoc.org. Send mail to
golang-dev@googlegroups.com if you want to discuss other uses of the code.

## Feedback

Send ideas and questions to golang-dev@googlegroups.com. Request features and
report bugs using the [GitHub Issue
Tracker](https://github.com/golang/gddo/issues/new).

## Contributions

Contributions to this project are welcome, though please [file an
issue](https://github.com/golang/gddo/issues/new). before starting work on
anything major.

**We do not accept GitHub pull requests**

Please refer to the [Contribution
Guidelines](https://golang.org/doc/contribute.html) on how to submit changes.

We use https://go-review.googlesource.com to review change submissions.

## Getting the Source

To get started contributing to this project, clone the repository from its
canonical location

```
git clone https://go.googlesource.com/gddo $GOPATH/src/github.com/golang/gddo
```

Information on how to set up a local environment is available at
https://github.com/golang/gddo/wiki/Development-Environment-Setup.

## More Documentation

More documentation about this project is available on the
[wiki](https://github.com/golang/gddo/wiki).
