Documentation
Historique et flux de travail
Validations, branches, restaurations, révisions, mise en miroir GitHub et répartition des flux de travail compatibles avec Project Git.
Traduit automatiquement de l'anglais. Voir l'original en anglais
Envoyez ces demandes à votre propre sidecar en cours d’exécution. Les valeurs restent dans ce navigateur.
Comment ça marche
Le sidecar écoute sur un port de bouclage choisi au démarrage et l'imprime dans son ready doubler; utilisez cette URL et le CADCAMFUN_TOKEN ça a commencé avec. Les demandes vont directement de cette page à cette adresse.
Le sidecar envoie les en-têtes CORS uniquement aux origines Tauri et à http://localhost ou http://127.0.0.1 sur n'importe quel port. À partir des documents hébergés, le navigateur bloque la réponse, exécutez donc les documents localement (bun run dev dans packages/web) pour utiliser le terrain de jeu, ou copiez la requête sous forme curl. Pour expérimenter sans toucher aux données réelles, démarrez le sidecar avec CADCAMFUN_DATA_DIR pointé vers un répertoire jetable — voir la procédure pas à pas de l'API.
Opérations
22 endpoints dans le vcs groupe, généré à partir du propre sidecar Document OpenAPI. Les opérations protégées prennent Authorization: Bearer $CADCAMFUN_TOKEN; voir authentification. Le comportement et les limites sont en place le guide du sous-système.
/api/projects
vcs.status Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 objet application/json
{ branch: string head: string | null dirty: string[] }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsStatusInput
const result = await client.vcs.status({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/vcs/status" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.log Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| tour | requête | chaîne | null | facultatif |
| limite | requête | chaîne | null | facultatif |
| chemin | requête | chaîne | null | facultatif |
200 Tableau<objet> application/json
Array<{ oid: string parents: string[] message: string author: { name: string email: string time: number | "Infinity" | "-Infinity" | "NaN" } }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsLogInput
const result = await client.vcs.log({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/vcs/log" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.commit Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ message: string authorKind?: "user" | "ai" | null files?: { [key: string]: string } | null }
201 objet application/json
{ oid: string parents: string[] message: string author: { name: string email: string time: number | "Infinity" | "-Infinity" | "NaN" } }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsCommitInput
const result = await client.vcs.commit({
id: "<id>",
message: "",
authorKind: "user",
files: {}
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/vcs/commit" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.branches Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 objet application/json
{ current: string branches: { [key: string]: string } }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsBranchesInput
const result = await client.vcs.branches({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/vcs/branches" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.createBranch Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ name: string from?: string | null }
201 objet application/json
{ current: string branches: { [key: string]: string } }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsCreateBranchInput
const result = await client.vcs.createBranch({
id: "<id>",
name: "",
from: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/vcs/branches" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.checkout Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ branch: string }
200 objet application/json
{ branch: string head: string | null dirty: string[] }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsCheckoutInput
const result = await client.vcs.checkout({
id: "<id>",
branch: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/vcs/checkout" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.restore Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ rev: string paths?: string[] | null }
200 objet application/json
{ oid: string parents: string[] message: string author: { name: string email: string time: number | "Infinity" | "-Infinity" | "NaN" } }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsRestoreInput
const result = await client.vcs.restore({
id: "<id>",
rev: "",
paths: [
""
]
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/vcs/restore" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.diff Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| depuis | requête | chaîne | null | facultatif |
| à | requête | chaîne | requis |
200 Tableau<objet> application/json
Array<{ path: string kind: "drawings" | "components" | "toolpaths" | "materials" | "tools" | "machine-configs" | "costs" | "project" | "other" id?: string | null name?: string | null status: "added" | "modified" | "deleted" changes: Array<{ pointer: string before?: unknown | null after?: unknown | null }> }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsDiffInput
const result = await client.vcs.diff({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/vcs/diff?to=<to>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.listPullRequests Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| état | requête | "ouvrir" | "fusionné" | "fermé" | null | facultatif |
200 Tableau<objet> application/json
Array<{ id: string projectId: string number: number | "Infinity" | "-Infinity" | "NaN" title: string body: string head: string base: string state: "open" | "merged" | "closed" authorId: string authorKind: "user" | "ai" mergeCommit: string | null remoteNumber: number | "Infinity" | "-Infinity" | "NaN" | null createdAt: string updatedAt: string }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsListPullRequestsInput
const result = await client.vcs.listPullRequests({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/pulls" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.openPullRequest Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ title: string body?: string | null head: string base?: string | null authorKind?: "user" | "ai" | null }
201 objet application/json
{ id: string projectId: string number: number | "Infinity" | "-Infinity" | "NaN" title: string body: string head: string base: string state: "open" | "merged" | "closed" authorId: string authorKind: "user" | "ai" mergeCommit: string | null remoteNumber: number | "Infinity" | "-Infinity" | "NaN" | null createdAt: string updatedAt: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsOpenPullRequestInput
const result = await client.vcs.openPullRequest({
id: "<id>",
title: "",
body: "",
head: "",
base: "",
authorKind: "user"
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/pulls" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.pullRequest Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| nombre | chemin | chaîne | requis |
200 objet application/json
{ pullRequest: { id: string projectId: string number: number | "Infinity" | "-Infinity" | "NaN" title: string body: string head: string base: string state: "open" | "merged" | "closed" authorId: string authorKind: "user" | "ai" mergeCommit: string | null remoteNumber: number | "Infinity" | "-Infinity" | "NaN" | null createdAt: string updatedAt: string } reviews: Array<{ id: string pullRequestId: string reviewerId: string verdict: "comment" | "approve" | "request-changes" body: string path: string | null pointer: string | null createdAt: string }> changes: Array<{ path: string kind: "drawings" | "components" | "toolpaths" | "materials" | "tools" | "machine-configs" | "costs" | "project" | "other" id?: string | null name?: string | null status: "added" | "modified" | "deleted" changes: Array<{ pointer: string before?: unknown | null after?: unknown | null }> }> }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsPullRequestInput
const result = await client.vcs.pullRequest({
id: "<id>",
number: "<number>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/pulls/<number>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.review Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| nombre | chemin | chaîne | requis |
{ verdict: "comment" | "approve" | "request-changes" body?: string | null path?: string | null pointer?: string | null }
201 objet application/json
{ id: string pullRequestId: string reviewerId: string verdict: "comment" | "approve" | "request-changes" body: string path: string | null pointer: string | null createdAt: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsReviewInput
const result = await client.vcs.review({
id: "<id>",
number: "<number>",
verdict: "comment",
body: "",
path: "",
pointer: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/pulls/<number>/reviews" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.mergePullRequest Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| nombre | chemin | chaîne | requis |
200 objet application/json
{ id: string projectId: string number: number | "Infinity" | "-Infinity" | "NaN" title: string body: string head: string base: string state: "open" | "merged" | "closed" authorId: string authorKind: "user" | "ai" mergeCommit: string | null remoteNumber: number | "Infinity" | "-Infinity" | "NaN" | null createdAt: string updatedAt: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsMergePullRequestInput
const result = await client.vcs.mergePullRequest({
id: "<id>",
number: "<number>"
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/pulls/<number>/merge" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.closePullRequest Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| nombre | chemin | chaîne | requis |
200 objet application/json
{ id: string projectId: string number: number | "Infinity" | "-Infinity" | "NaN" title: string body: string head: string base: string state: "open" | "merged" | "closed" authorId: string authorKind: "user" | "ai" mergeCommit: string | null remoteNumber: number | "Infinity" | "-Infinity" | "NaN" | null createdAt: string updatedAt: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsClosePullRequestInput
const result = await client.vcs.closePullRequest({
id: "<id>",
number: "<number>"
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/pulls/<number>/close" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.remote Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 objet application/json
{ remote: string | null }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsRemoteInput
const result = await client.vcs.remote({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/vcs/remote" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.setRemote Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ remote: string | null }
200 objet application/json
{ remote: string | null }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsSetRemoteInput
const result = await client.vcs.setRemote({
id: "<id>",
remote: ""
}) curl
curl --request PUT "${CADCAMFUN_URL}/api/projects/<id>/vcs/remote" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.push Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| jeton x-github | en-tête | chaîne | requis |
{ branch?: string | null }
200 objet application/json
{ oid: string objects: number | "Infinity" | "-Infinity" | "NaN" }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsPushInput
const result = await client.vcs.push({
id: "<id>",
branch: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/vcs/push" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.pull Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| jeton x-github | en-tête | chaîne | requis |
{ branch?: string | null }
200 objet application/json
{ kind: string oid: string }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsPullInput
const result = await client.vcs.pull({
id: "<id>",
branch: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/vcs/pull" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.runs Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
200 Tableau<objet> application/json
Array<{ id: string projectId: string workflow: string event: "push" | "pull-request" | "manual" ref: string sha: string status: "queued" | "running" | "success" | "failure" events: unknown[] startedAt: string finishedAt: string | null }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsRunsInput
const result = await client.vcs.runs({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/actions/runs" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.dispatch Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
{ ref?: string | null }
200 Tableau<objet> application/json
Array<{ id: string projectId: string workflow: string event: "push" | "pull-request" | "manual" ref: string sha: string status: "queued" | "running" | "success" | "failure" events: unknown[] startedAt: string finishedAt: string | null }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsDispatchInput
const result = await client.vcs.dispatch({
id: "<id>",
ref: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/projects/<id>/actions/dispatch" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json Essayez-le
vcs.listWorkflows Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| réf | requête | chaîne | null | facultatif |
200 Tableau<objet> application/json
Array<{ name: string path: string content: string problem?: string | null }>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsListWorkflowsInput
const result = await client.vcs.listWorkflows({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/actions/workflows" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
vcs.workflow Nécessite Authorization: Bearer <token>.
| Nom | Dans | Taper | Requis |
|---|---|---|---|
| identifiant | chemin | chaîne | requis |
| nom | chemin | chaîne | requis |
| réf | requête | chaîne | null | facultatif |
200 objet application/json
{ name: string path: string content: string problem?: string | null }
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemple de SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// VcsWorkflowInput
const result = await client.vcs.workflow({
id: "<id>",
name: "<name>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/projects/<id>/actions/workflows/<name>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" Essayez-le
Schémas
Schémas nommés accessibles à partir des paramètres, des corps et des réponses de ce groupe. UN ? marque un champ facultatif ; | null marque un champ qui peut être présent avec une valeur nulle.
BadRequestEncoded{ _tag: "BadRequest" message: string }
ConflictEncoded{ _tag: "Conflict" message: string }
ForbiddenEncoded{ _tag: "Forbidden" message: string }
InternalErrorEncoded{ _tag: "InternalError" message: string }
NotFoundEncoded{ _tag: "NotFound" message: string }
Appel à ce groupe
Les identifiants d'opération ont la forme vcs.<name>. Le SDK Promise généré (@cadcamfun/api/sdk) expose la plupart d'entre eux comme client.<namespace>.<method>(input), où input est un objet plat composé de paramètres de chemin et de champs de corps ; L'exemple de SDK de chaque carte montre l'accesseur exact et le type d'entrée. Les téléchargements en plusieurs parties, les réponses binaires ou JavaScript et les webhooks bruts ne sont pas générés ; ces cartes montrent fetch à la place.
import { CadCam, ClientError } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
try {
await client.projects.list()
} catch (error) {
if (error instanceof ClientError) {
// Transport | UnexpectedStatus | UnsupportedContentType | MalformedResponse | SseEventTooLarge
} else {
// a declared error body: switch on error._tag
}
} Dépannage
| Symptôme | Cause probable | Réparer |
|---|---|---|
| 401 à chaque appel | Jeton d'un lancement précédent, ou manquant Bearer préfixe | Envoyer Authorization: Bearer <token> avec le jeton avec lequel le sidecar a été démarré. |
| 400 avant que quoi que ce soit se produise | Le corps ou le paramètre ne correspond pas au schéma | Comparez la charge utile avec le schéma de demande sur la carte. |
| 403 ou 404 sur un enregistrement visible ailleurs | Le compte intérimaire diffère | Envoyez le droit x-session-token, ou utilisez le profil local propriétaire de l'enregistrement. |
| 409 | État conflictuel, tel qu'un nom en double ou un chef de succursale obsolète | Relisez la ressource et réessayez avec les données actuelles. |
| Essayez, il est écrit "bloqué par CORS" | Les documents sont servis à partir d'une origine sans bouclage | Exécutez la documentation localement ou copiez la demande en tant que curl. |
| Connexion rejetée | Le sidecar a redémarré sur un nouveau port | Lire le port du nouveau ready ligne. |