List the roles granted on a git repository
curl --request GET \
--url https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles', 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://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a",
"principal": {
"type": "User",
"id": "0d6b2f4e-3a1c-4e8f-9b7a-5c2d1e0f9a8b"
},
"role": {
"id": "4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a",
"name": "Automation Reader",
"created_at": "2026-07-07T00:00:00Z",
"updated_at": "2026-07-07T00:00:00Z"
},
"scope": {
"type": "GitRepository",
"id": "17790c04-15ee-47b1-bac3-cbee04bb0708"
},
"created_at": "2026-07-07T00:00:00Z",
"updated_at": "2026-07-07T00:00:00Z"
}
]
}{
"errors": [
{
"type": "https://docs-platform.crewai.com/api/problems/unauthorized",
"code": "unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "Missing or invalid bearer token."
}
]
}{
"errors": [
{
"type": "https://docs-platform.crewai.com/api/problems/forbidden",
"code": "forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Role grants are not available for your organization."
}
]
}{
"errors": [
{
"type": "https://docs-platform.crewai.com/api/problems/not_found",
"code": "not_found",
"title": "Not found",
"status": 404,
"detail": "The requested resource could not be found."
}
]
}Git Repositories
List the roles granted on a git repository
Returns every role that gives access to this git repository: each role granted on the git repository itself, and each role granted across the organization that covers it, with the principal holding it. A principal holding several roles appears once per role.
scope tells the two apart: the git repository for a role granted on it, or the Organization for an
inherited one, which is managed through that principal’s granted roles.
The authenticated service account must be able to read the git repository, or hold the
organizations:manage_identity_and_access permission. A git repository it can’t see, or one that can’t
be shared, is not found.
GET
/
api
/
v1
/
git-repositories
/
{git_repository_id}
/
granted-roles
List the roles granted on a git repository
curl --request GET \
--url https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles', 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://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.crewai.com/api/v1/git-repositories/{git_repository_id}/granted-roles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a",
"principal": {
"type": "User",
"id": "0d6b2f4e-3a1c-4e8f-9b7a-5c2d1e0f9a8b"
},
"role": {
"id": "4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a",
"name": "Automation Reader",
"created_at": "2026-07-07T00:00:00Z",
"updated_at": "2026-07-07T00:00:00Z"
},
"scope": {
"type": "GitRepository",
"id": "17790c04-15ee-47b1-bac3-cbee04bb0708"
},
"created_at": "2026-07-07T00:00:00Z",
"updated_at": "2026-07-07T00:00:00Z"
}
]
}{
"errors": [
{
"type": "https://docs-platform.crewai.com/api/problems/unauthorized",
"code": "unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "Missing or invalid bearer token."
}
]
}{
"errors": [
{
"type": "https://docs-platform.crewai.com/api/problems/forbidden",
"code": "forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Role grants are not available for your organization."
}
]
}{
"errors": [
{
"type": "https://docs-platform.crewai.com/api/problems/not_found",
"code": "not_found",
"title": "Not found",
"status": 404,
"detail": "The requested resource could not be found."
}
]
}