lego/CONTRIBUTING.md

14 KiB

How to contribute to lego

Contributions in the form of patches and proposals are essential to keep lego great and to make it even better. To ensure a great and easy experience for everyone, please review the few guidelines in this document.

Bug reports

  • Use the issue search to see if the issue has already been reported.
  • Also look for closed issues to see if your issue has already been fixed.
  • If both of the above do not apply create a new issue and include as much information as possible.

Bug reports should include all information a person could need to reproduce your problem without the need to follow up for more information. If possible, provide detailed steps for us to reproduce it, the expected behaviour and the actual behaviour.

Feature proposals and requests

Feature requests are welcome and should be discussed in an issue. Please keep proposals focused on one thing at a time and be as detailed as possible. It is up to you to make a strong point about your proposal and convince us of the merits and the added complexity of this feature.

Pull requests

Patches, new features and improvements are a great way to help the project. Please keep them focused on one thing and do not include unrelated commits.

All pull requests which alter the behaviour of the program, add new behaviour or somehow alter code in a non-trivial way should always include tests.

If you want to contribute a significant pull request (with a non-trivial workload for you) please ask first. We do not want you to spend a lot of time on something the project's developers might not want to merge into the project.

IMPORTANT: By submitting a patch, you agree to allow the project owners to license your work under the terms of the MIT License.

How to create a pull request

First, you have to install GoLang and golangci-lint.

# Create the root folder
mkdir -p $GOPATH/src/github.com/xenolf
cd $GOPATH/src/github.com/xenolf

# clone your fork
git clone git@github.com:YOUR_USERNAME/lego.git
cd lego

# Add the xenolf/lego remote
git remote add upstream git@github.com:xenolf/lego.git
git fetch upstream
# Create your branch
git checkout -b my-feature

## Create your code ##
# Format
make fmt
# Linters
make checks
# Tests
make test
# Compile
make build
# push your branch
git push -u origin my-feature

## create a pull request on Github ##

DNS Providers: API references

DNS provider Code Documentation Go client
Acme DNS acmedns documentation Go client
Alibaba Cloud alidns documentation Go client
Aurora DNS auroradns documentation Go client
Azure azure documentation Go client
Bluecat bluecat ? -
Cloudflare cloudflare documentation Go client
CloudXNS cloudxns documentation -
ConoHa conoha documentation -
Openstack Designate designate documentation Go client
Digital Ocean digitalocean documentation -
DNSimple dnsimple documentation Go client
DNS Made Easy dnsmadeeasy documentation -
DNSPod dnspod documentation Go client
DreamHost dreamhost documentation -
Duck DNS duckdns documentation -
Dyn dyn documentation -
exec exec - -
Exoscale exoscale documentation Go client
FastDNS fastdns documentation Go client
Gandi gandi documentation -
Gandi v5 gandiv5 documentation -
Google Cloud gcloud ? Go client
Glesys glesys documentation -
Go Daddy godaddy documentation -
hosting.de hostingde documentation -
Internet Initiative Japan iij documentation Go client
INWX inwx documentation Go client
Lightsail lightsail ? Go client
Linode (deprecated) linode documentation Go client
Linodev4 linodev4 documentation Go client
Namecheap namecheap documentation -
Name.com namedotcom documentation Go client
manual manual - -
MyDNS.jp mydnsjp documentation -
Netcup netcup documentation -
NIFCloud nifcloud documentation -
NS1 ns1 documentation Go client
Open Telekom Cloud otc documentation -
Oracle Cloud oraclecloud documentation Go Client
OVH ovh documentation Go client
PowerDNS pdns documentation -
Rackspace rackspace documentation -
RFC2136 rfc2136 documentation -
Route 53 route53 documentation Go client
Sakura Cloud sakuracloud documentation Go client
Selectel selectel documentation -
Stackpath stackpath documentation -
TransIP transip documentation Go client
VegaDNS vegadns documentation Go client
Vultr vultr documentation Go client
Vscale vscale documentation -
Zone.ee zone documentation -