h1
A HackerOne API client for Python. The API closely maps to the REST API that HackerOne provides. Documentation for their API is available here.
License
MIT
Installation
For installation via pip:
pip install h1
For development, In the project root run:
virtualenv env
source env/bin/activate
make bootstrap
The manual approach should work as well:
python setup.py install
Examples
Initializing the Client
>>> from h1.client import HackerOneClient
>>> from h1.models import Report
>>> c = HackerOneClient("YOUR-API-TOKEN-IDENTIFIER", "YOUR-API-TOKEN")
Getting all reports created in the last day
HackerOneClient.find_resources() allows you to specify a resource to find (only Report is
supported for now) and some criteria to filter on. The only required filter is program, which
must be set to the target HackerOne program’s name. Any additional filters may be passed as kwargs,
and everything in HackerOne’s filter documentation
should be supported.
For example, here’s how we’d get all reports created in the past 24 hours:
>>> import datetime as dt
>>> day_ago = dt.datetime.now() - dt.timedelta(days=1)
>>> listing = c.find_resources(Report, program=["test-program"], created_at__gt=day_ago)
>>> len(listing)
3
>>> listing[0].title
u'This is a test report!'
Getting all resolved reports in a program
Similarly, if we filter on state we can get all the resolved reports:
>>> resolved_listing = c.find_resources(Report, program=["test-program"], state=["resolved"])
>>> resolved_listing[0].title
Getting a specific report by ID
HackerOneClient.get_resource() allows you to pass a resource type (again, currently just Report,)
and an ID to fetch:
>>> report = c.get_resource(Report, 110306)
>>> report.title
u'Test RCE SQLi'
>>> report.state
u'not-applicable'
Tallying report counts by user
Here’s an example of using the client to figure out who your most prolific reporters are:
>>> from collections import Counter
>>> reporter_count = Counter()
>>> all_reports = c.find_resources(Report, program=["test-program"])
>>> for report in all_reports:
... reporter_count[report.reporter] += 1
...
>>> print(reporter_count)
Counter({<User - bestreporter>: 21, <User - another_reporter>: 12, <User - r3p0rt3r>: 2, <User - newbie>: 1})
Running Tests
virtualenv env
source env/bin/activate
make bootstrap
make test
Metadata
Release files for h1 1.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| h1-1.4.2.tar.gz | 17.7 kB | Without provenance | Details |
Release files / h1-1.4.2.tar.gz
| Download URL | h1-1.4.2.tar.gz |
|---|---|
| Size | 17.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48c531f756e441d5782f4b62e658b060da8808004d0da2e3690afe057088beb8
|
|
BLAKE2b-256 checksum How to use checksums |
e5ef99c2c6e306317f51a0ccac73d8650c99eddc59b8f36520e80cb673a17299
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for h1 1.4.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.