Welcome to PyIonic’s documentation!

PyIonic is a Python library to interact with Ion Channel’s API. With PyIonic it should be very easy for a user to interact with Ion Channel and get their data.

Quick Start

Install PyIonic:

pip install pyionic

Set the IONCHANNEL_SECRET_KEY:

export IONCHANNEL_SECRET_KEY=####IONCHANNEL_SECRET_KEY####

Examples

Sample code to report the name, id, and source of all of the projects in a team.

users = core.Users()
team_id = list(users.get_self()['data']['teams'].keys())[0]
projects = core.Projects()
print('--------------------------------')
for project in projects.get_projects(team_id)['data']:
    print('Name: %s' % project['name'])
    print('ID: %s' % project['id'])
    print('Source: %s' % project['source'])
    print('--------------------------------')

Sample code to get an analysis for all projects in a team. Reports the name, id, source and if the project passed the last analysis.

users = core.Users()
team_id = list(users.get_self()['data']['teams'].keys())[0]
projects = core.Projects()
analysis = core.Analysis()
print('--------------------------------')
for project in projects.get_projects(team_id)['data']:
    print('Name: %s' % project['name'])
    print('ID: %s' % project['id'])
    print('Source: %s' % project['source'])
    analysis_id = analysis.get_analysis_summery(
        team_id=team_id,
        project_id=project['id']
    )['data']['id']
    if analysis.get_analysis(
        team_id=team_id,
        project_id=project['id'],
        analysis_id=analysis_id
    )['data']['status'] == 'finished':
        print('Scan is good!')
    print('--------------------------------')

Sample code to count all of the vulnerabilities for Python 3.4

vuln = core.Vulnerability()
vulnerabilities = vuln.get_vulnerabilities('python', '3.4')
print('%s total vulnerabilities found.' % vulnerabilities['meta']['total_count'])

Tests

To setup tests you must first export a valid token for the pyionic test team:

export IONCHANNEL_SECRET_KEY=####IONCHANNEL_SECRET_KEY####

Then run:

pipenv run python setup.py test

Indices and tables