Skip to content

Commit f560350

Browse files
committed
Add provenance to simple API
Broken out from pypi#16624. Signed-off-by: William Woodruff <[email protected]>
1 parent 13f5258 commit f560350

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

tests/unit/api/test_simple.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ def test_with_files_no_serial(self, db_request, content_type, renderer_override)
298298
"upload-time": f.upload_time.isoformat() + "Z",
299299
"data-dist-info-metadata": False,
300300
"core-metadata": False,
301+
"provenance": None,
301302
}
302303
for f in files
303304
],
@@ -349,6 +350,7 @@ def test_with_files_with_serial(self, db_request, content_type, renderer_overrid
349350
"upload-time": f.upload_time.isoformat() + "Z",
350351
"data-dist-info-metadata": False,
351352
"core-metadata": False,
353+
"provenance": None,
352354
}
353355
for f in files
354356
],
@@ -445,6 +447,7 @@ def test_with_files_with_version_multi_digit(
445447
if f.metadata_file_sha256_digest is not None
446448
else False
447449
),
450+
"provenance": None,
448451
}
449452
for f in files
450453
],

warehouse/packaging/utils.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from warehouse.packaging.interfaces import ISimpleStorage
2323
from warehouse.packaging.models import File, LifecycleStatus, Project, Release
2424

25-
API_VERSION = "1.2"
25+
API_VERSION = "1.3"
2626

2727

2828
def _simple_index(request, serial):
@@ -101,6 +101,16 @@ def _simple_detail(project, request):
101101
if file.metadata_file_sha256_digest
102102
else False
103103
),
104+
"provenance": (
105+
request.route_url(
106+
"attestations.provenance",
107+
project_name=project.normalized_name,
108+
release=file.release.version,
109+
filename=file.filename,
110+
)
111+
if file.provenance
112+
else None
113+
),
104114
}
105115
for file in files
106116
],

warehouse/templates/api/simple/detail.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<body>
2424
<h1>Links for {{ name }}</h1>
2525
{% for file in files -%}
26-
<a href="{{ file.url }}#sha256={{ file.hashes.sha256 }}" {% if file.get('requires-python') %}data-requires-python="{{ file['requires-python'] }}" {% endif %}{% if file.yanked %}data-yanked="{% if file.yanked is string %}{{ file.yanked }}{% endif %}" {% endif %}{% if file['core-metadata'] %}data-dist-info-metadata="sha256={{ file['core-metadata']['sha256'] }}" data-core-metadata="sha256={{ file['core-metadata']['sha256'] }}"{% endif %}>{{ file.filename }}</a><br />
26+
<a href="{{ file.url }}#sha256={{ file.hashes.sha256 }}" {% if file.get('requires-python') %}data-requires-python="{{ file['requires-python'] }}" {% endif %}{% if file.yanked %}data-yanked="{% if file.yanked is string %}{{ file.yanked }}{% endif %}" {% endif %}{% if file['core-metadata'] %}data-dist-info-metadata="sha256={{ file['core-metadata']['sha256'] }}" data-core-metadata="sha256={{ file['core-metadata']['sha256'] }}"{% endif %}{% if file.get('provenance') %}data-provenance="{{ file['provenance'] }}" {% endif %}>{{ file.filename }}</a><br />
2727
{% endfor -%}
2828
</body>
2929
</html>

0 commit comments

Comments
 (0)