• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hypothesis / h / 8764
69%
master: 97%

Build:
Build:
LAST BUILD BRANCH: realtime-update-v1-h-only-1
DEFAULT BRANCH: master
Ran 22 Oct 2015 06:04PM UTC
Jobs 1
Files 87
Run time 9s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
8764

push

travis-ci

nickstenning
Replace all uses of Group.hashid with Group.pubid

This commit removes all use of the Group.hashid property, and then
removes all the supporting infrastructure for hashids.

For posterity, it's worth noting the reason for this change: at the time
of writing, we are using hashids for two reasons:

1. To prevent users from guessing the URL for the "join a group" pages
   of groups they have not been invited to.

2. To avoid leaking details of the how many groups have been created
   through the use of an integer primary key in URLs.

Both of these are ultimately security requirements, and the
cryptographic properties of hashids are questionable at best:

    https://carnage.github.io/2015/08/cryptanalysis-of-hashids/

In order to avoid the possibility of having to remove hashids at a later
date, thus breaking many URLs, we are adopting a much simpler, much more
"stupid" (i.e. less "clever"), way of generating this "public IDs",
which now relies for its cryptographic properties on the system
CSPRNG[^1] rather than the algorithm or implementation of hashids. And,
frankly, if /dev/urandom is broken, we have bigger problems...

[^1]: "Cryptographically Secure Pseudo-Random Number Generator". See
      also: https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator

20 of 20 new or added lines in 4 files covered. (100.0%)

2499 of 3637 relevant lines covered (68.71%)

0.69 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
100.0
h/groups/models.py
3
100.0
h/groups/views.py

Uncovered Existing Lines

Lines Coverage ∆ File
1
100.0
h/groups/views.py
7
100.0
h/app.py
8
100.0
h/config.py
Jobs
ID Job ID Ran Files Coverage
1 8764.1 22 Oct 2015 06:04PM UTC 0
68.71
Travis Job 8764.1
Source Files on build 8764
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #8764
  • a47024b0 on github
  • Prev Build on replace-hashids-with-pubids (#8760)
  • Next Build on replace-hashids-with-pubids (#8770)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc