Skip to content
This repository has been archived by the owner on May 6, 2021. It is now read-only.

Commit

Permalink
Merge pull request #518 from mozilla-services/fix-447-show-recent-scans
Browse files Browse the repository at this point in the history
add /recent_package_reports
  • Loading branch information
g-k committed Sep 2, 2020
2 parents c8653a9 + cf8f9bb commit 7bd96d9
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 2 deletions.
18 changes: 18 additions & 0 deletions depobs/database/models.py
Expand Up @@ -1643,3 +1643,21 @@ def get_scan_by_id(scan_id: int) -> Scan:
'SELECT scans.id AS scans_id, scans.params AS scans_params, scans.status AS scans_status, scans.graph_id AS scans_graph_id \\nFROM scans \\nWHERE scans.id = %(id_1)s'
"""
return db.session.query(Scan).filter_by(id=scan_id)


def get_recent_package_reports_query(
limit: Optional[int] = 10,
) -> sqlalchemy.orm.query.Query:
"""
>>> from depobs.website.do import create_app
>>> with create_app().app_context():
... str(get_recent_package_reports_query())
'SELECT reports.id AS reports_id, reports.package AS reports_package, reports.version AS reports_version, reports.release_date AS reports_release_date, reports.scoring_date AS reports_scoring_date, reports.npmsio_score AS reports_npmsio_score, reports.npmsio_scored_package_version AS reports_npmsio_scored_package_version, reports."directVulnsCritical_score" AS "reports_directVulnsCritical_score", reports."directVulnsHigh_score" AS "reports_directVulnsHigh_score", reports."directVulnsMedium_score" AS "reports_directVulnsMedium_score", reports."directVulnsLow_score" AS "reports_directVulnsLow_score", reports."indirectVulnsCritical_score" AS "reports_indirectVulnsCritical_score", reports."indirectVulnsHigh_score" AS "reports_indirectVulnsHigh_score", reports."indirectVulnsMedium_score" AS "reports_indirectVulnsMedium_score", reports."indirectVulnsLow_score" AS "reports_indirectVulnsLow_score", reports.authors AS reports_authors, reports.contributors AS reports_contributors, reports.immediate_deps AS reports_immediate_deps, reports.all_deps AS reports_all_deps, reports.graph_id AS reports_graph_id \\nFROM reports ORDER BY reports.scoring_date DESC \\n LIMIT %(param_1)s'
"""
return (
db.session.query(PackageReport)
.order_by(PackageReport.scoring_date.desc())
.limit(limit)
)
3 changes: 3 additions & 0 deletions depobs/website/templates/base.html
Expand Up @@ -20,6 +20,9 @@
<li class="nav-item text-right">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item text-right">
<a class="nav-link" href="/recent_package_reports">Recently scored</a>
</li>
<li class="nav-item text-right">
<a class="nav-link" href="/faq">FAQ</a>
</li>
Expand Down
4 changes: 2 additions & 2 deletions depobs/website/templates/dependencies_table.html
Expand Up @@ -21,12 +21,12 @@
{% for dep in deps %}
<tr>
<td>
<a href="{{url_for('views_blueprint.show_package_report', package_manager='npm', package_name=dep.package, package_version=dep['version'])}}" title="See package / version details">
<a href="{{url_for('views_blueprint.show_package_changelog', package_manager='npm', package_name=dep.package)}}" title="See package changelog">
{{dep.package}}
</a>
</td>
<td>
<a href="{{url_for('views_blueprint.show_package_report', package_manager='npm', package_name=dep.package, package_version=dep['version'])}}" title="See package / version details">
<a href="{{url_for('views_blueprint.show_package_report', package_manager='npm', package_name=dep.package, package_version=dep['version'])}}" title="See package version details">
{{dep.version}}
</a>
</td>
Expand Down
29 changes: 29 additions & 0 deletions depobs/website/templates/recent_package_reports.html
@@ -0,0 +1,29 @@
{% extends 'base.html' %}

{% block content %}

<div class="row">
<div class="col-12 col-md-10 offset-md-1 col-xl-8 offset-xl-2">
<h1 class="h6 margin-bottom">
Welcome to Mozilla's Dependency Observatory. This service is in <strong>alpha</strong> state and may contain inaccurate results.
</h1>

<div class="card-deck mb-3 text-center">
<div class="card mb-6 shadow-sm">
<div class="card-header">
<h4 class="my-0 font-weight-normal">Recently Scanned Packages</h4>
</div>
<div class="card-body">
<h1 class="card-title pricing-card-title"></h1>

{% with deps=reports %}
{% include 'dependencies_table.html' %}
{% endwith %}
</div>
</div>

</div>
</div>
</div>

{% endblock %}
9 changes: 9 additions & 0 deletions depobs/website/views.py
Expand Up @@ -512,3 +512,12 @@ def get_scoring_graph(graph_id: int, package_report_field: str):

log.debug(f"rendering score component graph: {dot_graph!r}")
return dot_graph.pipe(format="svg").decode("utf-8")


@api.route("/recent_package_reports", methods=["GET", "HEAD"])
def show_recent_package_reports() -> Any:
"""Returns the ten most recent package and dep files scans."""
return render_template(
"recent_package_reports.html",
reports=models.get_recent_package_reports_query(),
)

0 comments on commit 7bd96d9

Please sign in to comment.