URI scheme for swh-web Browse application

This web application aims to provide HTML views to easily navigate in the archive, thus it needs to be reached from a web browser. If you intend to query the archive programmatically through any HTTP client, please refer to the swh-web API URLs section instead.

Context-independent browsing

Context-independent URLs provide information about objects (e.g., revisions, directories, contents, person, …), independently of the contexts where they have been found (e.g., specific repositories, branches, commits, …).

The following endpoints are the same of the API case (see below), and just render the corresponding information for user consumption. Where hyperlinks are created, they always point to other context-independent user URLs:

Context-dependent browsing

Context-dependent URLs provide information about objects, limited to specific contexts where the objects have been found.

For instance, instead of having to specify a (root) revision by sha1_git, users might want to specify a place and a time. In Software Heritage a “place” is an origin, with an optional branch name; a “time” is a timestamp at which some place has been observed by Software Heritage crawlers.

Wherever a revision context is expected in a path (i.e., a /browse/revision/(sha1_git)/ path fragment) we can put in its stead a path fragment of the form /browse/origin/?origin_url=(origin_url)&timestamp=(timestamp)&branch=(branch). Such a fragment is resolved, internally by the archive, to a revision sha1_git as follows:

  • if timestamp is not given as query parameter: look for the most recent crawl of origin identified by origin_url

  • if timestamp is given: look for the closest crawl of origin identified by origin_url from timestamp timestamp

  • if branch is given as a query parameter: look for the branch branch

  • if branch is absent: look for branch “HEAD” or “master”

  • return the revision sha1_git pointed by the chosen branch

The already mentioned URLs for revision contexts can therefore be alternatively specified by users as:

Typing:

  • origin_url corresponds to the URL the origin was crawled from, for instance https://github.com/(user)/(repo)/

  • branch name is given as per the corresponding VCS (e.g., Git) as a query parameter to the requested URL.

  • timestamp is given in a format as liberal as possible, to uphold the principle of least surprise. At the very minimum it is possible to enter timestamps as:

    • ISO 8601 timestamps (see for instance the output of date -I, date -Is)

    • YYYY[MM[DD[HH[MM[SS]]]]] ad-hoc format

    • YYYY[-MM[-DD[ HH:[MM:[SS:]]]]] ad-hoc format

swh-web Browse Urls

Content

GET /browse/content/[(algo_hash):](hash)/

HTML view that displays a content identified by its hash value.

If the content to display is textual, it will be highlighted client-side if possible using highlightjs. In order for that operation to be performed, a programming language must first be associated to the content. The following procedure is used in order to find the language:

  1. First try to find a language from the content filename (provided as query parameter when navigating from a directory view).

  2. If no language has been found from the filename, try to find one from the content mime type. The mime type is retrieved from the content metadata stored in the archive or is computed server-side using Python magic module.

It is also possible to highlight specific lines of a textual content (not in terms of syntax highlighting but to emphasize some relevant content part) by either:

  • clicking on line numbers (holding shift to highlight a lines range)

  • using an url fragment in the form ‘#Ln’ or ‘#Lm-Ln’

When that view is called in the context of a navigation coming from a directory view, a breadcrumb will be displayed on top of the rendered content in order to easily navigate up to the associated root directory. In that case, the path query parameter will be used and filled with the path of the file relative to the root directory.

Parameters
  • algo_hash (string) – optional parameter to indicate the algorithm used to compute the content checksum (can be either sha1, sha1_git, sha256 or blake2s256, default to sha1)

  • hash (string) – hexadecimal representation for the checksum from which to retrieve the associated content in the archive

Query Parameters
  • path (string) – describe the path of the content relative to a root directory (used to add context aware navigation links when navigating from a directory view)

Status Codes

Examples:

https://archive.softwareheritage.org/browse/content/sha1_git:f5d0b39a0cdddb91a31a537052b7d8d31a4aa79f/
https://archive.softwareheritage.org/browse/content/sha1_git:f5d0b39a0cdddb91a31a537052b7d8d31a4aa79f/#L23-L41
https://archive.softwareheritage.org/browse/content/blake2s256:1cc1e3124957c9be8a454c58e92eb925cf4aa9823984bd01451c5b7e0fee99d1/
https://archive.softwareheritage.org/browse/content/sha1:1cb1447c1c7ddc1b03eac88398e40bd914d46b62/
https://archive.softwareheritage.org/browse/content/sha256:8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903/
GET /browse/content/[(algo_hash):](hash)/raw/

HTML view that produces a raw display of a content identified by its hash value.

The behaviour of that view depends on the mime type of the requested content. If the mime type is from the text family, the view will return a response whose content type is ‘text/plain’ that will be rendered by the browser. Otherwise, the view will return a response whose content type is ‘application/octet-stream’ and the browser will then offer to download the file.

In the context of a navigation coming from a directory view, the filename query parameter will be used in order to provide the real name of the file when one wants to save it locally.

Parameters
  • algo_hash (string) – optional parameter to indicate the algorithm used to compute the content checksum (can be either sha1, sha1_git, sha256 or blake2s256, default to sha1)

  • hash (string) – hexadecimal representation for the checksum from which to retrieve the associated content in the archive

Query Parameters
  • filename (string) – indicate the name of the file holding the requested content (used when one wants to save the content to a local file)

Status Codes

Examples:

https://archive.softwareheritage.org/browse/content/sha1_git:f5d0b39a0cdddb91a31a537052b7d8d31a4aa79f/raw/?filename=LICENSE
https://archive.softwareheritage.org/browse/content/blake2s256:1cc1e3124957c9be8a454c58e92eb925cf4aa9823984bd01451c5b7e0fee99d1/raw/?filename=MAINTAINERS
https://archive.softwareheritage.org/browse/content/sha1:1cb1447c1c7ddc1b03eac88398e40bd914d46b62/raw/
https://archive.softwareheritage.org/browse/content/sha256:8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903/raw/?filename=COPYING

Directory

GET /browse/directory/(sha1_git)/

HTML view for browsing the content of a directory reachable from the provided root one (including itself) identified by its sha1_git value.

The content of the directory is first sorted in lexicographical order and the sub-directories are displayed before the regular files.

The view enables to navigate from the requested directory to directories reachable from it in a recursive way but also up to the root directory. A breadcrumb located in the top part of the view allows to keep track of the paths navigated so far.

Parameters
  • sha1_git (string) – hexadecimal representation for the sha1_git identifier of the directory to browse

Query Parameters
  • path (string) – optional parameter used to specify the path of a directory reachable from the provided root one

Status Codes

Examples:

https://archive.softwareheritage.org/browse/directory/977fc4b98c0e85816348cebd3b12026407c368b6/
https://archive.softwareheritage.org/browse/directory/9650ed370c0330d2cd2b6fd1e9febf649ffe538d/?path=kernel/sched
GET /browse/directory/(sha1_git)/(path)/

Warning

That endpoint is deprecated, use GET /browse/directory/(sha1_git)/ instead.

HTML view for browsing the content of a directory reachable from the provided root one (including itself) identified by its sha1_git value.

The content of the directory is first sorted in lexicographical order and the sub-directories are displayed before the regular files.

The view enables to navigate from the requested directory to directories reachable from it in a recursive way but also up to the root directory. A breadcrumb located in the top part of the view allows to keep track of the paths navigated so far.

param string sha1_git

hexadecimal representation for the sha1_git identifier of the directory to browse

param string path

optional parameter used to specify the path of a directory reachable from the provided root one

statuscode 200

no error

statuscode 400

an invalid sha1_git value has been provided

statuscode 404

requested directory can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/directory/977fc4b98c0e85816348cebd3b12026407c368b6/
https://archive.softwareheritage.org/browse/directory/9650ed370c0330d2cd2b6fd1e9febf649ffe538d/kernel/sched/

Origin

This describes the URI scheme when one wants to browse the Software Heritage archive in the context of an origin (for instance, a repository crawled from GitHub or a Debian source package). All the views pointed by that scheme offer quick links to browse objects as found during the associated crawls performed by Software Heritage:

  • the root directory of the origin

  • the list of branches of the origin

  • the list of releases of the origin

Origin visits

GET /browse/origin/visits/

HTML view that displays visits reporting for a software origin identified by its type and url.

Query Parameters
Status Codes

Examples:

https://archive.softwareheritage.org/browse/origin/visits/?origin_url=https://github.com/torvalds/linux
https://archive.softwareheritage.org/browse/origin/visits/?origin_url=https://github.com/python/cpython
https://archive.softwareheritage.org/browse/origin/visits/?origin_url=deb://Debian-Security/packages/mediawiki
https://archive.softwareheritage.org/browse/origin/visits/?origin_url=https://gitorious.org/qt/qtbase.git
GET /browse/origin/(origin_url)/visits/

Warning

That endpoint is deprecated, use GET /browse/origin/visits/ instead.

HTML view that displays a visits reporting for a software origin identified by its type and url.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/visits/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/visits/
https://archive.softwareheritage.org/browse/origin/deb://Debian-Security/packages/mediawiki/visits/
https://archive.softwareheritage.org/browse/origin/https://gitorious.org/qt/qtbase.git/visits/

Origin directory

GET /browse/origin/directory/

HTML view for browsing the content of a directory reachable from the root directory (including itself) associated to the latest full visit of a software origin.

The content of the directory is first sorted in lexicographical order and the sub-directories are displayed before the regular files.

The view enables to navigate from the requested directory to directories reachable from it in a recursive way but also up to the origin root directory. A breadcrumb located in the top part of the view allows to keep track of the paths navigated so far.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the directory content can also be specified by using the branch query parameter.

Query Parameters
  • origin_url (string) – mandatory parameter providing the url of the origin (e.g. https://github.com/(user)/(repo))

  • path (string) – optional parameter used to specify the path of a directory reachable from the origin root one

  • branch (string) – specify the origin branch name from which to retrieve the root directory

  • release (string) – specify the origin release name from which to retrieve the root directory

  • revision (string) – specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the root directory

  • timestamp (string) – an ISO 8601 datetime string to parse in order to find the closest visit.

  • visit_id (int) – specify a visit id to retrieve the directory from instead of using the latest full visit by default

Status Codes
  • 200 OK – no error

  • 400 Bad Request – no origin url has been provided as parameter

  • 404 Not Found – requested origin can not be found in the archive or the provided path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/torvalds/linux
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/torvalds/linux&path=net/ethernet
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/python/cpython
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/python/cpython&path=Python
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/python/cpython&branch=refs/heads/2.7
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/torvalds/linux&path=net/ethernet&timestamp=2016-09-14T10:36:21Z
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/python/cpython&path=Python&timestamp=2017-05-05
https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/python/cpython&branch=refs/heads/2.7&timestamp=2015-08
GET /browse/origin/(origin_url)/directory/[(path)/]

Warning

That endpoint is deprecated, use GET /browse/origin/directory/ instead.

HTML view for browsing the content of a directory reachable from the root directory (including itself) associated to the latest full visit of a software origin.

The content of the directory is first sorted in lexicographical order and the sub-directories are displayed before the regular files.

The view enables to navigate from the requested directory to directories reachable from it in a recursive way but also up to the origin root directory. A breadcrumb located in the top part of the view allows to keep track of the paths navigated so far.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the directory content can also be specified by using the branch query parameter.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string path

optional parameter used to specify the path of a directory reachable from the origin root one

query string branch

specify the origin branch name from which to retrieve the root directory

query string release

specify the origin release name from which to retrieve the root directory

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the root directory

query int visit_id

specify a visit id to retrieve the directory from instead of using the latest full visit by default

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive or the provided path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/directory/
https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/directory/net/ethernet/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/directory/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/directory/Python/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/directory/?branch=refs/heads/2.7
GET /browse/origin/(origin_url)/visit/(timestamp)/directory/[(path)/]

Warning

That endpoint is deprecated, use GET /browse/origin/directory/ instead.

HTML view for browsing the content of a directory reachable from the root directory (including itself) associated to a visit of a software origin closest to a provided timestamp.

The content of the directory is first sorted in lexicographical order and the sub-directories are displayed before the regular files.

The view enables to navigate from the requested directory to directories reachable from it in a recursive way but also up to the origin root directory. A breadcrumb located in the top part of the view allows to keep track of the paths navigated so far.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the directory content can also be specified by using the branch query parameter.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

param path

optional parameter used to specify the path of a directory reachable from the origin root one

type path

string

query string branch

specify the origin branch name from which to retrieve the root directory

query string release

specify the origin release name from which to retrieve the root directory

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the directory

query int visit_id

specify a visit id to retrieve the directory from instead of using the provided timestamp

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive, requested visit timestamp does not exist or the provided path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/visit/1493926809/directory/
https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/visit/2016-09-14T10:36:21Z/directory/net/ethernet/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/visit/1474620651/directory/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/visit/2017-05-05/directory/Python/
https://archive.softwareheritage.org/browse/origin/https://github.com/python/cpython/visit/2015-08/directory/?branch=refs/heads/2.7

Origin content

GET /browse/origin/content/

HTML view that produces a display of a content associated to the latest full visit of a software origin.

If the content to display is textual, it will be highlighted client-side if possible using highlightjs. The procedure to perform that task is described in GET /browse/content/[(algo_hash):](hash)/.

It is also possible to highlight specific lines of a textual content (not in terms of syntax highlighting but to emphasize some relevant content part) by either:

  • clicking on line numbers (holding shift to highlight a lines range)

  • using an url fragment in the form ‘#Ln’ or ‘#Lm-Ln’

The view displays a breadcrumb on top of the rendered content in order to easily navigate up to the origin root directory.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

Query Parameters
  • origin_url (string) – mandatory parameter providing the url of the origin (e.g. https://github.com/(user)/(repo))

  • path (string) – path of a content reachable from the origin root directory

  • branch (string) – specify the origin branch name from which to retrieve the content

  • release (string) – specify the origin release name from which to retrieve the content

  • revision (string) – specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the content

  • timestamp (string) – an ISO 8601 datetime string to parse in order to find the closest visit.

  • visit_id (int) – specify a visit id to retrieve the content from instead of using the latest full visit by default

Status Codes
  • 200 OK – no error

  • 400 Bad Request – no origin url has been provided as parameter

  • 404 Not Found – requested origin can not be found in the archive, or the provided content path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/content/?origin_url=https://github.com/git/git?path=git.c
https://archive.softwareheritage.org/browse/origin/content/?origin_url=https://github.com/mozilla/gecko-dev&path=js/src/json.cpp
https://archive.softwareheritage.org/browse/origin/content/?origin_url=https://github.com/git/git?path=git.c&branch=refs/heads/next
https://archive.softwareheritage.org/browse/origin/content/?origin_url=https://github.com/git/git&path=git.c&timestamp=2016-05-05T00:0:00+00:00Z
https://archive.softwareheritage.org/browse/origin/content/?origin_url=https://github.com/mozilla/gecko-dev&path=js/src/json.cpp&timestamp=2017-03-21#L904-L931
https://archive.softwareheritage.org/browse/origin/content/?origin_url=https://github.com/git/git&path=git.c&branch=refs/heads/next&timestamp=2017-09-15
GET /browse/origin/(origin_url)/content/

Warning

That endpoint is deprecated, use GET /browse/origin/content/ instead.

HTML view that produces a display of a content associated to the latest full visit of a software origin.

If the content to display is textual, it will be highlighted client-side if possible using highlightjs. The procedure to perform that task is described in GET /browse/content/[(algo_hash):](hash)/.

It is also possible to highlight specific lines of a textual content (not in terms of syntax highlighting but to emphasize some relevant content part) by either:

  • clicking on line numbers (holding shift to highlight a lines range)

  • using an url fragment in the form ‘#Ln’ or ‘#Lm-Ln’

The view displays a breadcrumb on top of the rendered content in order to easily navigate up to the origin root directory.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

query string path

path of a content reachable from the origin root directory

query string branch

specify the origin branch name from which to retrieve the content

query string release

specify the origin release name from which to retrieve the content

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the content

query string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

query int visit_id

specify a visit id to retrieve the content from instead of using the latest full visit by default

statuscode 200

no error

statuscode 400

no origin url has been provided as parameter

statuscode 404

requested origin can not be found in the archive, or the provided content path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/?path=git.c
https://archive.softwareheritage.org/browse/origin/https://github.com/mozilla/gecko-dev/content/?path=js/src/json.cpp
https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/?path=git.c&branch=refs/heads/next
https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/?path=git.c&timestamp=2016-05-05T00:0:00+00:00Z
https://archive.softwareheritage.org/browse/origin/https://github.com/mozilla/gecko-dev/content?path=js/src/json.cpp&timestamp=2017-03-21#L904-L931
https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/git.c/?branch=refs/heads/next&timestamp=2017-09-15
GET /browse/origin/(origin_url)/content/(path)/

Warning

That endpoint is deprecated, use GET /browse/origin/content/ instead.

HTML view that produces a display of a content associated to the latest full visit of a software origin.

If the content to display is textual, it will be highlighted client-side if possible using highlightjs. The procedure to perform that task is described in GET /browse/content/[(algo_hash):](hash)/.

It is also possible to highlight specific lines of a textual content (not in terms of syntax highlighting but to emphasize some relevant content part) by either:

  • clicking on line numbers (holding shift to highlight a lines range)

  • using an url fragment in the form ‘#Ln’ or ‘#Lm-Ln’

The view displays a breadcrumb on top of the rendered content in order to easily navigate up to the origin root directory.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string path

path of a content reachable from the origin root directory

query string branch

specify the origin branch name from which to retrieve the content

query string release

specify the origin release name from which to retrieve the content

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the content

query int visit_id

specify a visit id to retrieve the content from instead of using the latest full visit by default

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive, or the provided content path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/git.c/
https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/git.c/
https://archive.softwareheritage.org/browse/origin/https://github.com/mozilla/gecko-dev/content/js/src/json.cpp/
https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/content/git.c/?branch=refs/heads/next
GET /browse/origin/(origin_url)/visit/(timestamp)/content/(path)/

Warning

That endpoint is deprecated, use GET /browse/origin/content/ instead.

HTML view that produces a display of a content associated to a visit of a software origin closest to a provided timestamp.

If the content to display is textual, it will be highlighted client-side if possible using highlightjs. The procedure to perform that task is described in GET /browse/content/[(algo_hash):](hash)/.

It is also possible to highlight specific lines of a textual content (not in terms of syntax highlighting but to emphasize some relevant content part) by either:

  • clicking on line numbers (holding shift to highlight a lines range)

  • using an url fragment in the form ‘#Ln’ or ‘#Lm-Ln’

The view displays a breadcrumb on top of the rendered content in order to easily navigate up to the origin root directory.

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

param string path

path of a content reachable from the origin root directory

query string branch

specify the origin branch name from which to retrieve the content

query string release

specify the origin release name from which to retrieve the content

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the content

query int visit_id

specify a visit id to retrieve the content from instead of using the provided timestamp

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive, requested visit timestamp does not exist or the provided content path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/visit/2016-05-05T00:0:00+00:00Z/content/git.c/
https://archive.softwareheritage.org/browse/origin/https://github.com/mozilla/gecko-dev/visit/2017-03-21/content/js/src/json.cpp/#L904-L931
https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/visit/2017-09-15/content/git.c/?branch=refs/heads/next

Origin history

GET /browse/origin/log/

HTML view that produces a display of revisions history heading to the last revision found during the latest visit of a software origin. In other words, it shows the commit log associated to the latest full visit of a software origin.

The following data are displayed for each log entry:

  • link to browse the associated revision in the origin context

  • author of the revision

  • date of the revision

  • message associated the revision

  • commit date of the revision

By default, the revisions are ordered in reverse chronological order of their commit date.

N log entries are displayed per page (default is 100). In order to navigate in a large history, two buttons are present at the bottom of the view:

  • Newer: fetch and display if available the N more recent log entries than the ones currently displayed

  • Older: fetch and display if available the N older log entries than the ones currently displayed

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

Query Parameters
  • origin_url (string) – mandatory parameter providing the url of the origin (e.g. https://github.com/(user)/(repo))

  • per_page (int) – the number of log entries to display per page

  • offset (int) – the number of revisions to skip before returning those to display

  • revs_ordering (str) – specify the revisions ordering, possible values are committer_date, dfs, dfs_post and bfs

  • branch (string) – specify the origin branch name from which to retrieve the commit log

  • release (string) – specify the origin release name from which to retrieve the commit log

  • revision (string) – specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the commit log

  • timestamp (string) – an ISO 8601 datetime string to parse in order to find the closest visit.

  • visit_id (int) – specify a visit id to retrieve the history log from instead of using the latest visit by default

Status Codes

Examples:

https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/videolan/vlc
https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/Kitware/CMake
https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/Kitware/CMake&branch=refs/heads/release
https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/videolan/vlc&visit=1459651262
https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/Kitware/CMake&timestamp=2016-04-01
https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/Kitware/CMake&branch=refs/heads/release&timestamp=1438116814
https://archive.softwareheritage.org/browse/origin/log/?origin_url=https://github.com/Kitware/CMake&branch=refs/heads/release&timestamp=2017-05-05T03:14:23Z
GET /browse/origin/(origin_url)/log/

Warning

That endpoint is deprecated, use GET /browse/origin/log/ instead.

HTML view that produces a display of revisions history heading to the last revision found during the latest visit of a software origin. In other words, it shows the commit log associated to the latest full visit of a software origin.

The following data are displayed for each log entry:

  • link to browse the associated revision in the origin context

  • author of the revision

  • date of the revision

  • message associated the revision

  • commit date of the revision

By default, the revisions are ordered in reverse chronological order of their commit date.

N log entries are displayed per page (default is 100). In order to navigate in a large history, two buttons are present at the bottom of the view:

  • Newer: fetch and display if available the N more recent log entries than the ones currently displayed

  • Older: fetch and display if available the N older log entries than the ones currently displayed

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

query string origin_url

mandatory parameter providing the url of the origin (e.g. https://github.com/(user)/(repo))

query int per_page

the number of log entries to display per page

query int offset

the number of revisions to skip before returning those to display

query str revs_ordering

specify the revisions ordering, possible values are committer_date, dfs, dfs_post and bfs

query string branch

specify the origin branch name from which to retrieve the commit log

query string release

specify the origin release name from which to retrieve the commit log

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the commit log

query string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

query int visit_id

specify a visit id to retrieve the history log from instead of using the latest visit by default

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/videolan/vlc/log/
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/log/
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/log/?branch=refs/heads/release
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/log/?timestamp=2016-04-01
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/log/?branch=refs/heads/release&timestamp=2017-05-05T03:14:23Z
GET /browse/origin/(origin_url)/visit/(timestamp)/log/

Warning

That endpoint is deprecated, use GET /browse/origin/log/ instead.

HTML view that produces a display of revisions history heading to the last revision found during a visit of a software origin closest to the provided timestamp. In other words, it shows the commit log associated to a visit of a software origin closest to a provided timestamp.

The following data are displayed for each log entry:

  • author of the revision

  • link to the revision metadata

  • message associated the revision

  • date of the revision

  • link to browse the associated source tree in the origin context

N log entries are displayed per page (default is 20). In order to navigate in a large history, two buttons are present at the bottom of the view:

  • Newer: fetch and display if available the N more recent log entries than the ones currently displayed

  • Older: fetch and display if available the N older log entries than the ones currently displayed

The view also enables to easily switch between the origin branches and releases through a dropdown menu.

The origin branch (default to HEAD) from which to retrieve the content can also be specified by using the branch query parameter.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

query int per_page

the number of log entries to display per page (default is 20, max is 50)

query string branch

specify the origin branch name from which to retrieve the commit log

query string release

specify the origin release name from which to retrieve the commit log

query string revision

specify the origin revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the commit log

query int visit_id

specify a visit id to retrieve the history log from instead of using the provided timestamp

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/visit/2016-04-01/log/
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/visit/2017-05-05T03:14:23Z/log/?branch=refs/heads/release

Origin branches

GET /browse/origin/branches/

HTML view that produces a display of the list of branches found during the latest full visit of a software origin.

The following data are displayed for each branch:

  • its name

  • a link to browse the associated directory

  • a link to browse the associated revision

  • last commit message

  • last commit date

That list of branches is paginated, each page displaying a maximum of 100 branches.

Query Parameters
  • origin_url (string) – mandatory parameter providing the url of the origin (e.g. https://github.com/(user)/(repo))

  • timestamp (string) – an ISO 8601 datetime string to parse in order to find the closest visit.

Status Codes

Examples:

https://archive.softwareheritage.org/browse/origin/branches/?origin_url=deb://Debian/packages/linux
https://archive.softwareheritage.org/browse/origin/branches/?origin_url=https://github.com/webpack/webpack
https://archive.softwareheritage.org/browse/origin/branches/?origin_url=https://github.com/kripken/emscripten&timestamp=2017-05-05T12:02:03Z
https://archive.softwareheritage.org/browse/origin/branches/?origin_url=deb://Debian/packages/apache2-mod-xforward&timestamp=2017-11-15T05:15:09Z
GET /browse/origin/(origin_url)/branches/

Warning

That endpoint is deprecated, use GET /browse/origin/branches/ instead.

HTML view that produces a display of the list of branches found during the latest full visit of a software origin.

The following data are displayed for each branch:

  • its name

  • a link to browse the associated directory

  • a link to browse the associated revision

  • last commit message

  • last commit date

That list of branches is paginated, each page displaying a maximum of 100 branches.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

query string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/deb://Debian/packages/linux/branches/
https://archive.softwareheritage.org/browse/origin/https://github.com/webpack/webpack/branches/
https://archive.softwareheritage.org/browse/origin/https://github.com/kripken/emscripten/branches/?timestamp=2017-05-05T12:02:03Z
https://archive.softwareheritage.org/browse/origin/deb://Debian/packages/apache2-mod-xforward/branches/?timestamp=2017-11-15T05:15:09
GET /browse/origin/(origin_url)/visit/(timestamp)/branches/

Warning

That endpoint is deprecated, use GET /browse/origin/branches/ instead.

HTML view that produces a display of the list of branches found during a visit of a software origin closest to the provided timestamp.

The following data are displayed for each branch:

  • its name

  • a link to browse the associated directory

  • a link to browse the associated revision

  • last commit message

  • last commit date

That list of branches is paginated, each page displaying a maximum of 100 branches.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/kripken/emscripten/visit/2017-05-05T12:02:03Z/branches/
https://archive.softwareheritage.org/browse/origin/deb://Debian/packages/apache2-mod-xforward/visit/2017-11-15T05:15:09Z/branches/

Origin releases

GET /browse/origin/releases/

HTML view that produces a display of the list of releases found during the latest full visit of a software origin.

The following data are displayed for each release:

  • its name

  • a link to browse the release details

  • its target type (revision, directory, content or release)

  • its associated message

  • its date

That list of releases is paginated, each page displaying a maximum of 100 releases.

Query Parameters
  • origin_url (string) – mandatory parameter providing the url of the origin (e.g. https://github.com/(user)/(repo))

  • timestamp (string) – an ISO 8601 datetime string to parse in order to find the closest visit.

Status Codes

Examples:

https://archive.softwareheritage.org/browse/origin/releases/?origin_url=https://github.com/git/git
https://archive.softwareheritage.org/browse/origin/releases/?origin_url=https://github.com/webpack/webpack
https://archive.softwareheritage.org/browse/origin/releases/?origin_url=https://github.com/torvalds/linux&timestamp=2017-11-21T19:37:42Z
https://archive.softwareheritage.org/browse/origin/releases/?origin_url=https://github.com/Kitware/CMake&timestamp=2016-09-23T14:06:35Z
GET /browse/origin/(origin_url)/releases/

Warning

That endpoint is deprecated, use GET /browse/origin/releases/ instead.

HTML view that produces a display of the list of releases found during the latest full visit of a software origin.

The following data are displayed for each release:

  • its name

  • a link to browse the release details

  • its target type (revision, directory, content or release)

  • its associated message

  • its date

That list of releases is paginated, each page displaying a maximum of 100 releases.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

query string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/git/git/releases/
https://archive.softwareheritage.org/browse/origin/https://github.com/webpack/webpack/releases/
https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/releases/?timestamp=2017-11-21T19:37:42Z
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/releases/?timestamp=2016-09-23T14:06:35Z
GET /browse/origin/(origin_url)/visit/(timestamp)/releases/

Warning

That endpoint is deprecated, use GET /browse/origin/releases/ instead.

HTML view that produces a display of the list of releases found during a visit of a software origin closest to the provided timestamp.

The following data are displayed for each release:

  • its name

  • a link to browse the release details

  • its target type (revision, directory, content or release)

  • its associated message

  • its date

That list of releases is paginated, each page displaying a maximum of 100 releases.

param string origin_url

the url of the origin (e.g. https://github.com/(user)/(repo)/)

param string timestamp

an ISO 8601 datetime string to parse in order to find the closest visit.

statuscode 200

no error

statuscode 404

requested origin can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/origin/https://github.com/torvalds/linux/visit/2017-11-21T19:37:42Z/releases/
https://archive.softwareheritage.org/browse/origin/https://github.com/Kitware/CMake/visit/2016-09-23T14:06:35Z/releases/

Release

GET /browse/release/(sha1_git)/

HTML view that displays metadata associated to a release:

  • the author

  • the release date

  • the release name

  • the associated message

  • the type of target the release points to (revision, directory, content or release)

  • the link to browse the release target

Parameters
  • sha1_git (string) – hexadecimal representation for the sha1_git identifier of a release

Status Codes

Examples:

https://archive.softwareheritage.org/browse/release/208f61cc7a5dbc9879ae6e5c2f95891e270f09ef/
https://archive.softwareheritage.org/browse/release/f883596e997fe5bcbc5e89bee01b869721326109/

Revision

GET /browse/revision/(sha1_git)/

HTML view to browse a revision. It notably shows the revision date and message but also offers links to get more details on:

  • its author

  • its parent revisions

  • the history log reachable from it

The view also enables to navigate in the source tree associated to the revision and browse its content.

Last but not least, the view displays the list of file changes introduced in the revision but also the diffs of each changed files.

Parameters
  • sha1_git (string) – hexadecimal representation for the sha1_git identifier of a revision

Query Parameters
  • origin_url (string) – used internally to associate an origin url (e.g. https://github.com/user/repo) to the revision

  • timestamp (string) – an ISO 8601 datetime string to parse in order to find the closest visit.

  • visit_id (int) – specify a visit id instead of using the provided timestamp

  • path (string) – optional relative path from the revision root directory

Status Codes

Examples:

https://archive.softwareheritage.org/browse/revision/f1b94134a4b879bc55c3dacdb496690c8ebdc03f/
https://archive.softwareheritage.org/browse/revision/d1aa2b3f607b35dc5dbf613b2334b6d243ec2bda/
GET /browse/revision/(sha1_git)/log/

HTML view that displays the list of revisions heading to a given one. In other words, it shows a commit log. The following data are displayed for each log entry:

  • link to browse the revision

  • author of the revision

  • date of the revision

  • message associated to the revision

  • commit date of the revision

By default, the revisions are ordered in reverse chronological order of their commit date.

N log entries are displayed per page (default is 100). In order to navigate in a large history, two buttons are present at the bottom of the view:

  • Newer: fetch and display if available the N more recent log entries than the ones currently displayed

  • Older: fetch and display if available the N older log entries than the ones currently displayed

Parameters
  • sha1_git (string) – hexadecimal representation for the sha1_git identifier of a revision

Query Parameters
  • per_page (int) – the number of log entries to display per page

  • offset (int) – the number of revisions to skip before returning those to display

  • revs_ordering (str) – specify the revisions ordering, possible values are committer_date, dfs, dfs_post and bfs

Status Codes

Examples:

https://archive.softwareheritage.org/browse/revision/f1b94134a4b879bc55c3dacdb496690c8ebdc03f/log/
https://archive.softwareheritage.org/browse/revision/d1aa2b3f607b35dc5dbf613b2334b6d243ec2bda/log/

Snapshot

GET /browse/snapshot/(snapshot_id)/

HTML view that displays the content of a snapshot from its identifier (see swh.model.identifiers.snapshot_identifier() in our data model module for details about how they are computed).

A snapshot is a set of named branches, which are pointers to objects at any level of the Software Heritage DAG. It represents a full picture of an origin at a given time. Thus, multiple visits of different origins can point to the same snapshot (for instance, when several projects are forks of a common one).

Currently, that endpoint simply performs a redirection to GET /browse/snapshot/(snapshot_id)/directory/ in order to display the root directory associated to the default snapshot branch (usually master).

Parameters
  • snapshot_id (string) – hexadecimal representation of the snapshot sha1 identifier

Status Codes

Examples:

https://archive.softwareheritage.org/browse/snapshot/baebc2109e4a2ec22a1129a3859647e191d04df4/
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/

Snapshot directory

GET /browse/snapshot/(snapshot_id)/directory/

HTML view that displays the content of a directory reachable from a snapshot.

The features offered by the view are similar to the one for browsing a directory in an origin context (see GET /browse/origin/(origin_url)/directory/[(path)/]).

Parameters
  • snapshot_id (string) – hexadecimal representation of the snapshot sha1 identifier

Query Parameters
  • path (string) – optional parameter used to specify the path of a directory reachable from the snapshot root one

  • branch (string) – specify the snapshot branch name from which to retrieve the root directory

  • release (string) – specify the snapshot release name from which to retrieve the root directory

  • revision (string) – specify the snapshot revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the root directory

Status Codes

Examples:

https://archive.softwareheritage.org/browse/snapshot/baebc2109e4a2ec22a1129a3859647e191d04df4/directory/?path=drivers/gpu
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/directory/?path=src/opengl
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/directory/?release=v5.7.0
GET /browse/snapshot/(snapshot_id)/directory/(path)/

Warning

That endpoint is deprecated, use GET /browse/snapshot/(snapshot_id)/directory/ instead.

HTML view that displays the content of a directory reachable from a snapshot.

The features offered by the view are similar to the one for browsing a directory in an origin context (see GET /browse/origin/(origin_url)/directory/[(path)/]).

param string snapshot_id

hexadecimal representation of the snapshot sha1 identifier

param string path

optional parameter used to specify the path of a directory reachable from the snapshot root one

query string branch

specify the snapshot branch name from which to retrieve the root directory

query string release

specify the snapshot release name from which to retrieve the root directory

query string revision

specify the snapshot revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the root directory

statuscode 200

no error

statuscode 400

an invalid snapshot identifier has been provided

statuscode 404

requested snapshot can not be found in the archive

Examples:

https://archive.softwareheritage.org/browse/snapshot/baebc2109e4a2ec22a1129a3859647e191d04df4/directory/drivers/gpu/
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/directory/src/opengl/
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/directory/?release=v5.7.0

Snapshot content

GET /browse/snapshot/(snapshot_id)/content/

HTML view that produces a display of a content reachable from a snapshot.

The features offered by the view are similar to the one for browsing a content in an origin context (see GET /browse/origin/(origin_url)/content/).

Parameters
  • snapshot_id (string) – hexadecimal representation of the snapshot sha1 identifier

Query Parameters
  • path (string) – path of a content reachable from the snapshot root directory

  • branch (string) – specify the snapshot branch name from which to retrieve the content

  • release (string) – specify the snapshot release name from which to retrieve the content

  • revision (string) – specify the snapshot revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the content

Status Codes
  • 200 OK – no error

  • 400 Bad Request – an invalid snapshot identifier has been provided

  • 404 Not Found – requested snapshot can not be found in the archive, or the provided content path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/snapshot/baebc2109e4a2ec22a1129a3859647e191d04df4/content/?path=init/initramfs.c
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/content/?path=src/opengl/qglbuffer.h
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/content/?path=src/opengl/qglbuffer.h&?release=v5.0.0
GET /browse/snapshot/(snapshot_id)/content/(path)/

Warning

That endpoint is deprecated, use GET /browse/snapshot/(snapshot_id)/content/ instead.

HTML view that produces a display of a content reachable from a snapshot.

The features offered by the view are similar to the one for browsing a content in an origin context (see GET /browse/origin/(origin_url)/content/(path)/).

param string snapshot_id

hexadecimal representation of the snapshot sha1 identifier

param string path

path of a content reachable from the snapshot root directory

query string branch

specify the snapshot branch name from which to retrieve the content

query string release

specify the snapshot release name from which to retrieve the content

query string revision

specify the snapshot revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the content

statuscode 200

no error

statuscode 400

an invalid snapshot identifier has been provided

statuscode 404

requested snapshot can not be found in the archive, or the provided content path does not exist from the origin root directory

Examples:

https://archive.softwareheritage.org/browse/snapshot/baebc2109e4a2ec22a1129a3859647e191d04df4/content/init/initramfs.c
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/content/src/opengl/qglbuffer.h/
https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/content/src/opengl/qglbuffer.h/?release=v5.0.0

Snapshot history

GET /browse/snapshot/(snapshot_id)/log/

HTML view that produces a display of revisions history (aka the commit log) heading to the last revision collected in a snapshot.

The features offered by the view are similar to the one for browsing the history in an origin context (see GET /browse/origin/(origin_url)/log/).

Parameters
  • snapshot_id (string) – hexadecimal representation of the snapshot sha1 identifier

Query Parameters
  • per_page (int) – the number of log entries to display per page (default is 20, max is 50)

  • branch (string) – specify the snapshot branch name from which to retrieve the commit log

  • release (string) – specify the snapshot release name from which to retrieve the commit log

  • revision (string) – specify the snapshot revision, identified by the hexadecimal representation of its sha1_git value, from which to retrieve the commit log

Status Codes

Examples:

https://archive.softwareheritage.org/browse/snapshot/a274b44111f777209556e94920b7e71cf5c305cd/log/
https://archive.softwareheritage.org/browse/snapshot/9ca9e75279df5f4e3fee19bf5190ed672dcdfb33/log/?branch=refs/heads/emacs-unicode

Snapshot branches

GET /browse/snapshot/(snapshot_id)/branches/

HTML view that produces a display of the list of branches collected in a snapshot.

The features offered by the view are similar to the one for browsing the list of branches in an origin context (see GET /browse/origin/(origin_url)/branches/).

Parameters
  • snapshot_id (string) – hexadecimal representation of the snapshot sha1 identifier

Status Codes

Examples:

https://archive.softwareheritage.org/browse/snapshot/03d7897352541e78ee7b13a580dc836778e8126a/branches/
https://archive.softwareheritage.org/browse/snapshot/f37563b953327f8fd83e39af6ebb929ef85103d5/branches/

Snapshot releases

GET /browse/snapshot/(snapshot_id)/releases/

HTML view that produces a display of the list of releases collected in a snapshot.

The features offered by the view are similar to the one for browsing the list of releases in an origin context (see GET /browse/origin/(origin_url)/releases/).

Parameters
  • snapshot_id (string) – hexadecimal representation of the snapshot sha1 identifier

Status Codes

Examples:

https://archive.softwareheritage.org/browse/snapshot/673156c31a876c5b99b2fe3e89615529de9a3c44/releases/
https://archive.softwareheritage.org/browse/snapshot/23e6fb084a60cc909b9e222d80d89fdb98756dee/releases/