curl --request GET \
--url https://lanesync.dev/api/history \
--cookie connect.sid=import requests
url = "https://lanesync.dev/api/history"
headers = {"cookie": "connect.sid="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'connect.sid='}};
fetch('https://lanesync.dev/api/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lanesync.dev/api/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "connect.sid=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://lanesync.dev/api/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "connect.sid=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://lanesync.dev/api/history")
.header("cookie", "connect.sid=")
.asString();require 'uri'
require 'net/http'
url = URI("https://lanesync.dev/api/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'connect.sid='
response = http.request(request)
puts response.read_body{
"releases": [
{
"milestoneId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org": "<string>",
"repo": "<string>",
"version": "<string>",
"recordUrl": "<string>",
"deployedAt": "2023-11-07T05:31:56Z",
"deploymentSource": "production_deployment",
"deploymentUrl": "<string>",
"candidateSha": "<string>",
"approval": {
"status": "recorded",
"approvedBy": "<string>",
"recordedAt": "2023-11-07T05:31:56Z",
"evidencePrUrl": "<string>"
},
"milestoneUrl": "<string>"
}
],
"pagination": {
"page": 50000,
"pageSize": 10,
"total": 1,
"pages": 2
},
"repositories": [
"<string>"
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}List recorded shipped releases
Returns tenant-scoped shipped releases. The latest successful production/prod deployment takes precedence over a DEPLOYED transition. deployedAt is when LaneSync recorded the event; it may be null. Supply page or pageSize to apply repository and inclusive UTC date filters before pagination; undated records are excluded by date filters. Omitting both pagination parameters retains the full list without query filtering. Approval fields reflect the stored evidence record, not an immutable deployment-time snapshot.
curl --request GET \
--url https://lanesync.dev/api/history \
--cookie connect.sid=import requests
url = "https://lanesync.dev/api/history"
headers = {"cookie": "connect.sid="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'connect.sid='}};
fetch('https://lanesync.dev/api/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lanesync.dev/api/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "connect.sid=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://lanesync.dev/api/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "connect.sid=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://lanesync.dev/api/history")
.header("cookie", "connect.sid=")
.asString();require 'uri'
require 'net/http'
url = URI("https://lanesync.dev/api/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'connect.sid='
response = http.request(request)
puts response.read_body{
"releases": [
{
"milestoneId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org": "<string>",
"repo": "<string>",
"version": "<string>",
"recordUrl": "<string>",
"deployedAt": "2023-11-07T05:31:56Z",
"deploymentSource": "production_deployment",
"deploymentUrl": "<string>",
"candidateSha": "<string>",
"approval": {
"status": "recorded",
"approvedBy": "<string>",
"recordedAt": "2023-11-07T05:31:56Z",
"evidencePrUrl": "<string>"
},
"milestoneUrl": "<string>"
}
],
"pagination": {
"page": 50000,
"pageSize": 10,
"total": 1,
"pages": 2
},
"repositories": [
"<string>"
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
GitHub OAuth session cookie
Query Parameters
Supplying page or pageSize enables pagination. Both omitted retains the legacy response. Filters described as paginated-only require pagination.
1 <= x <= 100000Number of rows or release groups per page.
10, 25, 50 Exact owner/repo in paginated mode.
"acme/api"
Inclusive UTC start date in paginated mode.
Inclusive UTC end date in paginated mode. Must not precede from.
Response
Recorded releases
Show child attributes
Show child attributes
Present when page or pageSize is supplied. total counts all matches, and pages is at least 1 even for an empty collection. An out-of-range page can return no rows.
Show child attributes
Show child attributes
Repository choices from the full history collection; present in paginated mode.