Commit graph

105 commits

Author SHA1 Message Date
Zach Shepherd
c9ff9e3c7a route53: add unit tests (#4725)
This change introduces unit tests to cover all lines of the route53
plugin except for the timeout in `_wait_for_change`.
2017-05-31 15:25:24 -07:00
Zach Shepherd
40e8fc4dec Handle releasing subpackages not included in certbot-auto (#4758)
This change refactors the release script to handle subpackages which are
not bundled as a part of cerbot-auto.

The script now allows developers to define subpackages as either being
included in certbot-auto, or not.

The script then uses one of three sets of subpackages for each operation:
 * The version number is updated for all non-certbot subpackages
   (and certbot itself is handled separately)
 * sdists and wheels are created for all non-certbot subpackages
   (and certbot itself is handled separately)
 * Testing is performed for all subpackages
 * Hashes are pinned for certbot-auto subpackages (including certbot)
2017-05-31 15:05:55 -07:00
Zach Shepherd
c827c9ec5f NS1 DNS Authenticator (#4602)
Implement an Authenticator which can fulfill a dns-01 challenge using
the NS1 DNS API. Applicable only for domains using NS1 DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-nsone -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-nsone -d`, without specifying a
      credentials file as a command line argument. Verified that the
      user was prompted and that a certificate was successfully
      obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting dnsimple interactively and that
      a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Path to credentials file with an invalid token.
    * Path to credentials file without a token.
    * Domain name not registered to NS1 account.
2017-05-26 11:24:38 -07:00
Zach Shepherd
fb02877268 DNSimple DNS Authenticator (#4587)
Implement an Authenticator which can fulfill a dns-01 challenge using
the DNSimple DNS API. Applicable only for domains using DNSimple DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-dnsimple -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-dnsimple -d`, without specifying a
      credentials file as a command line argument. Verified that the
      user was prompted and that a certificate was successfully
      obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting dnsimple interactively and that
      a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Path to credentials file with an invalid token.
    * Path to credentials file without a token.
    * Domain name not registered to DNSimple account.
2017-05-22 17:06:04 -07:00
Zach Shepherd
49c41da4f1 CloudXNS DNS Authenticator (#4585)
Implement an Authenticator which can fulfill a dns-01 challenge using
the CloudXNS DNS API. Applicable only for domains using CloudXNS DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-cloudxns -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-cloudxns -d`, without specifying a
      credentials file as a command line argument. Verified that the
      user was prompted and that a certificate was successfully
      obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting cloudxns interactively and that
      a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Domain name not registered to CloudXNS account.
2017-05-19 16:23:53 -07:00
Jacob Hoffman-Andrews
10bac107ee Add an account deactivate utility script. (#4254)
* Add an account deactivate utility script.

This is handy if you created an account with a tool other than Certbot, and want
to deactivate the account.

* Move deactivate.py to tools.

* Add test for ConflictError.

* Fix lint error.

* Document how to set server.
2017-05-17 14:24:59 -07:00
Zach Shepherd
4caff11371 Google Cloud DNS Authenticator (#4581)
Implement an Authenticator which can fulfill a dns-01 challenge using
the Google Cloud DNS API. Applicable only for domains using Google Cloud
DNS for DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-google -d`, specifying a credentials
      file as a command line argument. Verified that a certificate was
      successfully obtained without user interaction.
    * Used `certbot certonly --dns-google -d`, without specifying a
      credentials file as a command line argument. Verified that the
      user was prompted and that a certificate was successfully
      obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting google interactively and that
      a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Domain name not registered to Google Cloud Platform account.
2017-05-17 11:26:26 -07:00
Brad Warren
e4f65074d1 Merge pull request #4642 from certbot/new-pkg-release-prep
Make it easier to add new packages to the release script
2017-05-16 15:42:23 -07:00
Zach Shepherd
9e206f8024 DigitalOcean DNS Authenticator
Implement an Authenticator which can fulfill a dns-01 challenge using the
DigitalOcean API. Applicable only for domains using DigitalOcean for DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-digitalocean -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-digitalocean -d`, without specifying a
      credentials file as a command line argument. Verified that the user
      was prompted and that a certificate was successfully obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting digitalocean interactively and
      that a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Credentials file missing token.
    * Credentials file with blank token.
    * Credentials file with incorrect token.
    * Domain name not registered to DigitalOcean account.
2017-05-11 17:26:02 -07:00
Brad Warren
74c7ffe25e Make it easier to add new packages to the release script 2017-05-11 12:17:01 -07:00
Brad Warren
be7e99a461 Pin dependency versions when using tools/venv.sh (#4629)
* Revert "Pin python-augeas version to avoid error with 1.0.0 (#4422)"

This reverts commit 1c51ae2588.

* make dependency-requirements

* separate certbot and dependency requirements

* fix build.py

* update hashin comment

* simplify release pinning

* separate letsencrypt dependency

* pin hashes in venv

* error out when bad things happen

* use pinned dependencies in tox

* Revert "pin hashes in venv"

This reverts commit 1cd38a9e50.

* use pip_install.sh in venv_common

* quote pip install args

* bump mock version
2017-05-11 10:06:05 -07:00
Zach Shepherd
7955274126 Script to create docs directory for new packages. 2017-05-10 15:26:51 -07:00
Zach Shepherd
db6defe614 Cloudflare DNS Authenticator
Implement an Authenticator which can fulfill a dns-01 challenge using the
Cloudflare API. Applicable only for domains using Cloudflare for DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-cloudflare -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-cloudflare -d`, without specifying a
      credentials file as a command line argument. Verified that the user
      was prompted and that a certificate was successfully obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting cloudflare interactively and
      that a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Credentials file missing e-mail address.
    * Credentials file with blank API key.
    * Credentials file with incorrect e-mail address.
    * Credentials file with malformed API key.
    * Credentials file with invalid API key.
    * Domain name not registered to Cloudflare account.
2017-05-10 15:26:51 -07:00
Yen Chi Hsuan
779af8db1e Extend tools/venv3.sh to support full certbot development (#4532) 2017-04-20 09:09:20 -07:00
Brad Warren
bf45cea7cd Ensure a SHA2 hash algorithm is used when signing releases (#4384)
* use gpg2

* explictly use sha256
2017-03-20 18:00:50 -07:00
Brad Warren
7b34e73752 Merge pull request #4295 from certbot/dockerfile++
Rewrite our Dockerfile
2017-03-13 20:25:45 -07:00
Amjad Mashaal
0e735e360c remove unnecessary whitespace from tools/release.sh 2017-03-10 18:09:39 -08:00
Brad Warren
eb1e3c4cb3 add docker-warning script 2017-03-06 19:31:42 -08:00
Brad Warren
caa7e4e3f0 fix tools/venv.sh (#4126) 2017-01-27 14:06:40 -08:00
Josh Soref
6a39a42f45 Spelling (#4101)
* spelling: action

* spelling: artifacts

* spelling: asymmetric

* spelling: attempts

* spelling: bizarre

* spelling: certbot

* spelling: certificate

* spelling: certainly

* spelling: challenge

* spelling: client

* spelling: collated

* spelling: correct

* spelling: considered

* spelling: custom

* spelling: distinguish

* spelling: encoding

* spelling: enhancement

* spelling: equivalent

* spelling: execution

* spelling: existence

* spelling: failed

* spelling: handshake

* spelling: hyphen

* spelling: initialized

* spelling: initialization

* spelling: interpretation

* spelling: letsencrypt

* spelling: multiline

* spelling: multipart

* spelling: necessary

* spelling: otherwise

* spelling: output

* spelling: overridden

* spelling: positives

* spelling: preferable

* spelling: progress

* spelling: recommended

* spelling: referring

* spelling: relativity

* spelling: request

* spelling: requiring

* spelling: separate

* spelling: source

* spelling: specified

* spelling: standard

* spelling: successfully

* spelling: unparseable

* spelling: useful
2017-01-26 16:21:54 -08:00
Peter Eckersley
0956e61c7c Remove the sphinxcontrib.programout [docs]dependency (#3830)
- By making a static text file at release time, and including that
   instead.
2016-11-30 10:47:10 -08:00
Martey Dodoo
a7bfefc6d0 Change all "cerbot" references to "certbot" (#3770) 2016-11-08 11:09:20 -08:00
Brad Warren
f008fd0af9 Don't run nosetests from the root of our repo (#3620) 2016-10-11 19:15:11 -07:00
Brad Warren
0b792e46b7 fix requirements.txt surgery in response to shipping certbot-nginx (#3585) 2016-10-05 18:16:03 -07:00
Brad Warren
a89dfc7226 Add the nginx plugin's hash to certbot-auto during the release process 2016-08-17 16:10:21 -07:00
bmw
6a0c6c85fb Revert "Use --force-reinstall to fix bad virtualenv package" 2016-06-02 16:42:55 -07:00
Brad Warren
2659ec3188 Stop packaging shim packages 2016-06-02 13:27:52 -07:00
Brad Warren
a7edc4b1e5 Previously, the script relied on global pip for hashing packages. This
doesn't work if you don't have `pip` installed (like me) and I think using
`pip` from the venv should be preferred to ensure you are using the latest
`pip` (which was updated in the venv earlier in the script).
2016-05-26 10:33:18 -07:00
Brad Warren
7e039d1504 With us packaging the shim packages, there are more lines in
letsencrypt-auto-requirements.txt that will change with every release. This
change strips the hashes of the previous packages before adding the new ones.
2016-05-26 10:24:57 -07:00
Brad Warren
1322ae12ce Stop packaging letshelp 2016-05-26 10:20:47 -07:00
Peter Eckersley
c55d8e4741 Build the text for the man page at release 2016-05-13 12:22:35 -07:00
Peter Eckersley
5214c56f06 Use certbot-auto.asc 2016-05-11 16:09:30 -07:00
Peter Eckersley
54220a1336 Merge remote-tracking branch 'origin/master' into new-dl 2016-05-11 16:03:01 -07:00
Peter Eckersley
407ebad36e Support openssl and gpg signatures in parallel 2016-05-11 15:56:10 -07:00
Peter Eckersley
a6d5b525b2 Merge pull request #2923 from certbot/release-script-prep
Release script prep
2016-05-09 23:33:39 -07:00
Brad Warren
495371a3b8 Use --force-reinstall to fix bad virtualenv package 2016-05-06 12:33:52 -07:00
Brad Warren
d38cf4a74e Build shim packages in next release 2016-05-04 17:55:12 -07:00
Brad Warren
b844b7d605 Create certbot-auto during release process 2016-05-03 15:44:36 -07:00
Brad Warren
cdff96ddef Choose Python for better integration with boulder 2016-04-15 12:40:37 -07:00
Brad Warren
ae6f1c62f1 Rename misc files 2016-04-14 10:20:23 -07:00
Brad Warren
214343ed6a rename letshelp-letsencrypt 2016-04-13 17:42:19 -07:00
Brad Warren
99382b9f5b Merge branch 'pip8' 2016-03-08 15:49:52 -08:00
bmw
8f19ea4f9d Merge pull request #2582 from letsencrypt/autoupdate-le-auto
Autobuild le-auto with dev version
2016-03-02 16:31:41 -08:00
Brad Warren
06bf983604 Autobuild le-auto with dev version 2016-03-01 13:03:02 -08:00
Brad Warren
465c1bd262 Add pubkey to tree 2016-03-01 11:21:51 -08:00
Brad Warren
3b0a95ff97 compatibility++ 2016-02-29 13:26:48 -08:00
Brad Warren
a8089a43da Use local peep 2016-02-29 12:56:34 -08:00
Brad Warren
35437019a5 Merge branch 'master' into autopeep 2016-02-29 12:33:50 -08:00
Erik Rose
b95a01a15c Turn the root-level letsencrypt-auto symlink into a regular file. Close #2501.
It will always be a copy of the latest release version, 0.4 in this case. (Modify the release script to make that so.) This way, people using the old method of running le-auto from a git checkout will not end up using a bleeding-edge version, letting us work on the tip-of-tree version more freely.
2016-02-19 15:13:58 -05:00
Brad Warren
45ee1eb889 Merge branch 'testing-dev-extras' 2016-02-12 16:19:57 -08:00