Indexer des repositories en masse
curl --request PUT \
--url https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"repositories": [
{
"repository_path": "<string>",
"branch_names": [
"<string>"
]
}
]
}
'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing"
payload = { "repositories": [
{
"repository_path": "<string>",
"branch_names": ["<string>"]
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({repositories: [{repository_path: '<string>', branch_names: ['<string>']}]})
};
fetch('https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing', 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://api.devin.ai/v3/organizations/{org_id}/repositories/indexing",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'repositories' => [
[
'repository_path' => '<string>',
'branch_names' => [
'<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing"
payload := strings.NewReader("{\n \"repositories\": [\n {\n \"repository_path\": \"<string>\",\n \"branch_names\": [\n \"<string>\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"repositories\": [\n {\n \"repository_path\": \"<string>\",\n \"branch_names\": [\n \"<string>\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"repositories\": [\n {\n \"repository_path\": \"<string>\",\n \"branch_names\": [\n \"<string>\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"branches": [
"<string>"
],
"indexing_enabled": true,
"repository_path": "<string>",
"indexing_status": {
"indexing_enabled": true,
"latest_completed_search_index_job": {
"branch_name": "<string>",
"commit": "<string>",
"created_at": 123,
"job_id": "<string>",
"status": "failed"
},
"latest_completed_wiki_index_job": {
"branch_name": "<string>",
"commit": "<string>",
"created_at": 123,
"job_id": "<string>",
"status": "failed"
},
"latest_indexes": [
{
"branch_name": "<string>",
"commit": "<string>",
"created_at": 123,
"job_id": "<string>",
"status": "failed"
}
]
}
}
]{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Dépôts (Organisation)
Indexer des repositories en masse
Active l’indexation de manière idempotente pour un lot de repositories et déclenche des tâches d’indexation.
PUT
/
v3
/
organizations
/
{org_id}
/
repositories
/
indexing
Indexer des repositories en masse
curl --request PUT \
--url https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"repositories": [
{
"repository_path": "<string>",
"branch_names": [
"<string>"
]
}
]
}
'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing"
payload = { "repositories": [
{
"repository_path": "<string>",
"branch_names": ["<string>"]
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({repositories: [{repository_path: '<string>', branch_names: ['<string>']}]})
};
fetch('https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing', 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://api.devin.ai/v3/organizations/{org_id}/repositories/indexing",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'repositories' => [
[
'repository_path' => '<string>',
'branch_names' => [
'<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing"
payload := strings.NewReader("{\n \"repositories\": [\n {\n \"repository_path\": \"<string>\",\n \"branch_names\": [\n \"<string>\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"repositories\": [\n {\n \"repository_path\": \"<string>\",\n \"branch_names\": [\n \"<string>\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/repositories/indexing")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"repositories\": [\n {\n \"repository_path\": \"<string>\",\n \"branch_names\": [\n \"<string>\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"branches": [
"<string>"
],
"indexing_enabled": true,
"repository_path": "<string>",
"indexing_status": {
"indexing_enabled": true,
"latest_completed_search_index_job": {
"branch_name": "<string>",
"commit": "<string>",
"created_at": 123,
"job_id": "<string>",
"status": "failed"
},
"latest_completed_wiki_index_job": {
"branch_name": "<string>",
"commit": "<string>",
"created_at": 123,
"job_id": "<string>",
"status": "failed"
},
"latest_indexes": [
{
"branch_name": "<string>",
"commit": "<string>",
"created_at": 123,
"job_id": "<string>",
"status": "failed"
}
]
}
}
]{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Autorisations
Nécessite un utilisateur de service ou un jeton d’accès personnel. La vérification des autorisations dépend de la façon dont l’accès aux repositories est géré dans votre organisation :- Autorisations au niveau de l’organisation : l’appelant doit disposer de l’autorisation
IndexOrgRepositoriesau niveau de l’organisation. - Autorisations granulaires par repository : l’autorisation
IndexOrgRepositoriesn’est pas vérifiée. L’appelant doit disposer de l’autorisationReadau niveau de l’organisation, ainsi que des deux autorisationsrepo.use_readetrepo.indexsur chacun des repositories de la requête. S’il manque l’une ou l’autre de ces autorisations sur un seul repository, l’ensemble de la requête est rejeté avec une erreur403et aucun repository n’est indexé.
Comportement
Cet endpoint est idempotent — l’appeler plusieurs fois avec les mêmes dépôts ne créera pas de tâches d’indexation en double. Il active l’indexation et déclenche une tâche d’indexation pour chaque dépôt de la requête. Vous pouvez également spécifierbranch_names pour chaque dépôt afin d’indexer des branches spécifiques. Si cette valeur est omise, la branche par défaut est utilisée.Autorisations
Identifiant de compte de service (préfixe : cog_)
Paramètres de chemin
Identifiant d’organisation (préfixe : org-)
Exemple:
"org-abc123def456"
Corps
application/json
Required array length:
1 - 100 elementsShow child attributes
Show child attributes

