Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions CODE-OF-CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Contributor Code of Conduct

The only rule in life: BE NICE!

Examples of behavior that contributes to a positive environment:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

Unacceptable behavior may lead to a temporary or even permanent ban to contribute to this project.

## 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
82 changes: 82 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Contributing

❣ We love pull requests from everyone !

## All code changes happen through Pull Requests

Pull requests are the best way to propose changes to the codebase. We actively
welcome your pull requests:

1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests.
3. If you've added code that need documentation, update the documentation.
4. Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
5. Issue that pull request!

If you've never written Go in your life, then join the club! Go is widely
considered an easy-to-learn language, so if you're looking for an open source
project to gain dev experience, you've come to the right place.

## Running in a Github Codespace

If you want to start contributing to `azdo` with the click of a button, you can
open the `azdo` codebase in a Codespace. First fork the repo, then click to
create a codespace:

This allows you to contribute to `azdo` without needing to install anything on
your local machine. The Codespace has all the necessary tools and extensions
pre-installed.

## Code of conduct

Please note by participating in this project, you agree to abide by the [code of conduct](./CODE-OF-CONDUCT.md).

## Any contributions you make will be under the MIT Software License

In short, when you submit code changes, your submissions are understood to be
under the same [MIT License](./LICENSE) that
covers the project.

## Report bugs using Github's [issues](https://github.com/tmeckel/azdo-cli/issues)

We use GitHub issues to track public bugs. Report a bug by [opening a new
issue](https://github.com/tmeckel/azdo-cli/issues/new); it's that easy!

## Go

This project is written in Go. Go is an opinionated language with strict idioms, but some of those idioms are a little extreme. Some things we do differently:

1. There is no shame in using `self` as a receiver name in a struct method. In fact we encourage it
2. There is no shame in prefixing an interface with 'I' instead of suffixing with 'er' when there are several methods on the interface.
3. If a struct implements an interface, we make it explicit with something like:

```go
var _ MyInterface = &MyStruct{}
```

This makes the intent clearer and means that if we fail to satisfy the interface we'll get an error in the file that needs fixing.

### Code Formatting

To check code formatting [gofumpt](https://pkg.go.dev/mvdan.cc/gofumpt#section-readme) (which is a bit stricter than [gofmt](https://pkg.go.dev/cmd/gofmt)) is used.
VSCode will format the code correctly if you tell the Go extension to use `gofumpt` via your [`settings.json`](https://code.visualstudio.com/docs/getstarted/settings#_settingsjson)
by setting [`formatting.gofumpt`](https://github.com/golang/tools/blob/master/gopls/doc/settings.md#gofumpt-bool) to `true`:

```jsonc
// .vscode/settings.json
{
"gopls": {
"formatting.gofumpt": true
}
}
```

To run gofumpt from your terminal go:

```bash
go install mvdan.cc/gofumpt@latest && gofumpt -l -w .
```

## Improvements

If you can think of any way to improve these docs let us know.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ cloud. **Azure DevOps Server is not supported.**

For [installation options see below](#installation), for usage instructions [see the manual](./docs/azdo.md).


## Installation

`azdo` is availeable for Windows, Mac OS(10.12+), Linux or FreeBSD, as downloadable binary from the [releases page][].
`azdo` is available for Windows, Mac OS(10.12+), Linux or FreeBSD, as downloadable binary from the [releases page][].

## Contributing

We love your input! Please check out the [contributing guide](CONTRIBUTING.md).