Who last changed each line of a text file at a revision, as git blame finds it: the file's text, the ranges its highlighting paints, its lines in runs from the same commit, and each of those commits once. A binary file, or one over 256 KiB, is refused. No authentication needed; asked as an account, with a service token or the pages' session cookie, a private repository it is a member of is read too, and the answer is that account's alone.
Parameters
path
string
Optional
A file in the tree, from its root.
ref
string
Optional
A branch, a tag or a commit, which may run on into the path, as dev.knotless.getFile takes it; the default branch if absent.
repo
string
at-uri
Required
The repository's dev.knotless.repo record, as dev.knotless.getFile takes it.
Output
application/jsoncommits
array
Required
Each commit a run names, once.
hunks
array
Required
Its lines in runs, each last changed by one commit, from the first line on.
lines
integer
Required
How many lines the text has.
path
string
Required
The file, from the root.
ranges
string
Required
The ranges its highlighting paints, encoded as the pages read them, as dev.knotless.getFile has them.
ref
string
Required
The ref or commit shown, as `ref` named it, less any path.
text
string
Required
The file's text.
Errors
NotFound
No such repository, revision or file. InvalidRequest
The file is binary, or too large to blame. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"description": "Who last changed each line of a text file at a revision, as git blame finds it: the file's text, the ranges its highlighting paints, its lines in runs from the same commit, and each of those commits once. A binary file, or one over 256 KiB, is refused. No authentication needed; asked as an account, with a service token or the pages' session cookie, a private repository it is a member of is read too, and the answer is that account's alone.",
"errors": [
{
"description": "No such repository, revision or file.",
"name": "NotFound"
},
{
"description": "The file is binary, or too large to blame.",
"name": "InvalidRequest"
}
],
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"commits": {
"description": "Each commit a run names, once.",
"items": {
"ref": "dev.knotless.defs#commitView",
"type": "ref"
},
"type": "array"
},
"hunks": {
"description": "Its lines in runs, each last changed by one commit, from the first line on.",
"items": {
"ref": "#hunk",
"type": "ref"
},
"type": "array"
},
"lines": {
"description": "How many lines the text has.",
"minimum": 1,
"type": "integer"
},
"path": {
"description": "The file, from the root.",
"type": "string"
},
"ranges": {
"description": "The ranges its highlighting paints, encoded as the pages read them, as dev.knotless.getFile has them.",
"type": "string"
},
"ref": {
"description": "The ref or commit shown, as `ref` named it, less any path.",
"type": "string"
},
"text": {
"description": "The file's text.",
"type": "string"
}
},
"required": [
"ref",
"path",
"lines",
"text",
"ranges",
"hunks",
"commits"
],
"type": "object"
}
},
"parameters": {
"properties": {
"path": {
"description": "A file in the tree, from its root.",
"maxLength": 4096,
"type": "string"
},
"ref": {
"description": "A branch, a tag or a commit, which may run on into the path, as dev.knotless.getFile takes it; the default branch if absent.",
"maxLength": 1024,
"type": "string"
},
"repo": {
"description": "The repository's dev.knotless.repo record, as dev.knotless.getFile takes it.",
"format": "at-uri",
"type": "string"
}
},
"required": [
"repo"
],
"type": "params"
},
"type": "query"
}