Create deposit#
- POST /1/(str:collection-name)/#
Create deposit in a collection which name is
collection-name
.The client sends a deposit request to a specific collection with:
an archive holding the software source code (binary upload)
an envelop with metadata describing information regarding a deposit (atom entry deposit)
Also known as: COL-IRI
Example query:
curl -i -u hal:<pass> \ -F "file=@deposit.json;type=application/zip;filename=payload" \ -F "atom=@atom-entry.xml;type=application/atom+xml;charset=UTF-8" \ -H 'In-Progress: false' \ -XPOST https://deposit.softwareheritage.org/1/hal/
POST /1/hal/ HTTP/1.1 Host: deposit.softwareheritage.org Authorization: Basic xxxxxxxxxxxx= In-Progress: false Content-Length: 123456 Content-Type: multipart/form-data; boundary=----------------------123456798
Example response:
HTTP/1.1 201 Created Date: Tue, 26 Sep 2017 10:32:35 GMT Server: WSGIServer/0.2 CPython/3.5.3 Vary: Accept, Cookie Allow: GET, POST, PUT, DELETE, HEAD, OPTIONS Location: /1/hal/10/metadata/ X-Frame-Options: SAMEORIGIN Content-Type: application/xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sword="http://purl.org/net/sword/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:swhdeposit="https://www.softwareheritage.org/schema/2018/deposit" > <swhdeposit:deposit_id>10</swhdeposit:deposit_id> <swhdeposit:deposit_date>Sept. 26, 2017, 10:32 a.m.</swhdeposit:deposit_date> <swhdeposit:deposit_archive>None</swhdeposit:deposit_archive> <swhdeposit:deposit_status>deposited</swhdeposit:deposit_status> <!-- Edit-IRI --> <link rel="edit" href="/1/hal/10/metadata/" /> <!-- EM-IRI --> <link rel="edit-media" href="/1/hal/10/media/"/> <!-- SE-IRI --> <link rel="http://purl.org/net/sword/terms/add" href="/1/hal/10/metadata/" /> <!-- State-IRI --> <link rel="alternate" href="/1/hal/10/status/"/> <sword:packaging>http://purl.org/net/sword/package/SimpleZip</sword:packaging> </entry>
Note: older versions of the deposit used the
http://www.w3.org/2005/Atom
namespace instead ofhttps://www.softwareheritage.org/schema/2018/deposit
. Tags in the Atom namespace are still provided for backward compatibility, but are deprecated.- Request Headers:
Authorization – Basic authentication token
Content-Type – accepted mimetype
Content-Length – tarball size
Content-MD5 – md5 checksum hex encoded of the tarball
Content-Disposition – attachment; filename=[filename]; the filename parameter must be text (ascii); for the metadata file set name parameter to ‘atom’.
In-progress –
true
if not final;false
when final request.
- Status Codes:
201 Created – success for deposit on POST
401 Unauthorized – Unauthorized
404 Not Found – access to an unknown collection
415 Unsupported Media Type – unsupported media type