Add Sonar #14
2
.github/workflows/merge-to-main.yml
vendored
2
.github/workflows/merge-to-main.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
||||
run: pip install -r requirements.txt && pip install -r requirements-dev.txt
|
||||
- name: Run test suite
|
||||
run: |
|
||||
coverage run -m py.test -v
|
||||
coverage run -m py.test -v --junitxml=testresults.xml
|
||||
coverage xml
|
||||
- uses: sonarsource/sonarqube-scan-action@master
|
||||
env:
|
||||
|
4
.github/workflows/pull-request.yml
vendored
4
.github/workflows/pull-request.yml
vendored
@ -23,10 +23,10 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: pip install -r requirements.txt && pip install -r requirements-dev.txt
|
||||
- name: Lint
|
||||
run: pylint --recursive=yes .
|
||||
run: pylint --recursive=yes --output-format=parseable --output=lintreport.txt .
|
||||
- name: Run test suite
|
||||
run: |
|
||||
coverage run -m py.test -v
|
||||
coverage run -m py.test -v --junitxml=testresults.xml
|
||||
coverage xml
|
||||
- uses: sonarsource/sonarqube-scan-action@master
|
||||
env:
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -38,6 +38,8 @@ pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
lintreport.txt
|
||||
testresults.xml
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
|
@ -1,4 +1,4 @@
|
||||
# iPilot [](https://github.com/luketainton/pypilot/actions/workflows/ci-branch-main.yml) [](https://deepsource.io/gh/luketainton/pypilot/?ref=repository-badge)
|
||||
# iPilot [](https://github.com/luketainton/pypilot/actions/workflows/ci-branch-main.yml) [](https://sonarqube.tainton.uk/dashboard?id=luketainton_pypilot_AYHo1eOKSbMjdyWLhHhP)
|
||||
|
||||
## Description
|
||||
IP Information Lookup Tool
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
"""MODULE: Specifies app version."""
|
||||
|
||||
VERSION = "1.2"
|
||||
VERSION = "1.2" # pragma: no cover
|
||||
|
@ -7,7 +7,7 @@ import argparse
|
||||
from app.query_normalisation import get_public_ip
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
def parse_args() -> argparse.Namespace: # pragma: no cover
|
||||
"""Get arguments from user via the command line."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Query information about an IP address or domain name."
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
"""MODULE: Provides functions to call various APIs to retrieve IP/prefix information."""
|
||||
|
||||
from typing import Union
|
||||
|
||||
import ipaddress
|
||||
import requests
|
||||
|
||||
@ -24,7 +26,7 @@ def get_autonomous_system_number(as_info: str) -> str:
|
||||
return as_number
|
||||
|
||||
|
||||
def get_prefix_information(autonomous_system: int) -> list:
|
||||
def get_prefix_information(autonomous_system: int) -> Union[list, None]:
|
||||
"""Retrieves prefix information about a given autonomous system."""
|
||||
api_endpoint = f"https://api.hackertarget.com/aslookup/?q={str(autonomous_system)}"
|
||||
try:
|
||||
|
@ -2,10 +2,11 @@
|
||||
|
||||
"""MODULE: Provides functions for preparing, then printing, retrieved data."""
|
||||
|
||||
from typing import Union
|
||||
from tabulate import tabulate
|
||||
|
||||
|
||||
def generate_prefix_string(prefixes: list) -> str:
|
||||
def generate_prefix_string(prefixes: list) -> Union[str, None]:
|
||||
"""Generate a string that spilts prefixes into rows of 4."""
|
||||
num_per_row = 4
|
||||
try:
|
||||
|
@ -1,6 +1,8 @@
|
||||
sonar.projectKey=luketainton_pypilot_AYHo1eOKSbMjdyWLhHhP
|
||||
sonar.python.version=3.10
|
||||
sonar.python.coverage.reportPaths=coverage.xml
|
||||
sonar.python.pylint.reportPaths=lintreport.txt
|
||||
sonar.python.xunit.reportPath=testresults.xml
|
||||
sonar.sources=app
|
||||
sonar.tests=tests
|
||||
sonar.exclusions=,.github/**,.gitignore,CODEOWNERS,CHANGELOG.md,LICENSE.md,README.md,renovate.json,requirements-dev.txt,requirements.txt
|
Loading…
x
Reference in New Issue
Block a user