Palo Alto Networks Repositories API
The Repositories API from Palo Alto Networks — 6 operation(s) for repositories.
The Repositories API from Palo Alto Networks — 6 operation(s) for repositories.
openapi: 3.2.0
info:
title: Palo Alto Networks Repositories API
version: '1.0'
description: 'Operations tagged Repositories across 2 of this provider''s published API definitions: palo-alto-code-repositories-openapi.json, palo-alto-code-repositoryimportancescore-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.prismacloud.io
tags:
- name: Repositories
paths:
/code/api/v1/repositories:
get:
description: 'Retrieve a list of integrated repositories.
each repository item includes: id, repoName, source, owner, isPublic, creationDate'
operationId: getRepositories
parameters:
- in: query
name: errorsCount
required: false
schema:
type: string
responses:
'200':
content:
application/json:
examples:
Example 1:
value:
- creationDate: '2022-02-21T12:37:56.188Z'
defaultBranch: master
description: description
errors: null
id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
isPublic: false
lastScanDate: null
owner: yourname
repository: foo
runs: 0
source: Github
- creationDate: '2022-02-21T09:26:22.848Z'
defaultBranch: master
errors: 343
id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
isPublic: false
lastScanDate: '2022-02-21T09:26:43.945Z'
owner: yourname
repository: terragoat
runs: 2
source: Github
schema:
items:
$ref: '#/components/schemas/RepositoriesResponse'
type: array
description: repositories for customer
'422':
description: Request arguments validation error
'500':
description: Could not fetch Repositories for customer
security:
- CustomAuthorizer: []
summary: List Repository List
tags:
- Repositories
x-bc-required-permissions:
- CCSProjects_READ
- CCSDevelopmentPipelinesCodeReviews_READ
- CCSDevelopmentPipelinesProjects_READ
- CCSSupplyChain_READ
x-codeSamples:
- lang: Python + Requests
source: 'import requests
url = "http://undefinedundefined/code/api/v1/repositories"
querystring = {"errorsCount":"SOME_STRING_VALUE"}
headers = {"authorization": "REPLACE_KEY_VALUE"}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)'
- lang: Shell + Curl
source: "curl --request GET \\\n --url 'http://undefinedundefined/code/api/v1/repositories?errorsCount=SOME_STRING_VALUE' \\\n --header 'authorization: REPLACE_KEY_VALUE'"
post:
description: "Onboard a list of repositories for a given integration\nParameters:\n\n| Name | Required | Type | In | Description |\n|------|-------------------------|---------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------|\n| id | id or type are required | string | body | ID of the integration to update |\n| type | id or type are required | string | body | Type of the integration to update <br/> enum (github, githubEnterprise, gitlab, gitlabEnterprise, bitbucket, bitbucketEnterprise, azureRepos) |\n| data | yes | array<string> | body | List of repositories to update the integration |\n\nIn case both id and type provided only id will take into consideration\n\nexample1:\n```json\n{\n\"id\": \"123123-123123-123123-123123\",\n\"data\": [\"orevron/terragoat\", \"orevron/platform\"]\n}\n```\nexample2:\n```json\n{\n\"type\": \"github\",\n\"data\": [\"orevron/terragoat\", \"orevron/platform\"]\n}\n```\nresponse:\nexample1:\n```json\n{ \"success\": true }\n```\nexample2:\n```json\n{\n \"success\": false,\n \"integrations\": [\n { \"id\": \"123-123-123\", \"created\": \"2022-01-16T17:09:14.167Z\", \"updateBy\": \"oevron@paloaltonetworks.com\" },\n { \"id\": \"321-321-321\", \"created\": \"2022-01-12T17:10:14.167Z\", \"updateBy\": \"oevron@paloaltonetworks.com\" }\n ]\n}\n```\nexample3:\n```json\n{ \"success\": false, \"message\": \"ID or type of integration must be provided\"}\n```\nstatus code 206 when more than one integration found for provided type\nstatus code 404 when integration is not found within the customer integrations\nstatus code 422 when both id and type not provided\nstatus code 500 when something went wrong with the server"
operationId: updateRepositories
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/updateRepositoriesBody'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/updateRepoResponse'
description: Repositories Updated Successfully
'422':
description: Request arguments validation error
security:
- CustomAuthorizer: []
summary: Integrate Multiple Repositories
tags:
- Repositories
x-codeSamples:
- lang: Python + Requests
source: "import requests\n\nurl = \"http://undefinedundefined/code/api/v1/repositories\"\n\npayload = {\n \"data\": [\"string\"],\n \"id\": \"string\",\n \"type\": \"github\"\n}\nheaders = {\n \"content-type\": \"application/json\",\n \"authorization\": \"REPLACE_KEY_VALUE\"\n}\n\nresponse = requests.request(\"POST\", url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: Shell + Curl
source: "curl --request POST \\\n --url http://undefinedundefined/code/api/v1/repositories \\\n --header 'authorization: REPLACE_KEY_VALUE' \\\n --header 'content-type: application/json' \\\n --data '{\"data\":[\"string\"],\"id\":\"string\",\"type\":\"github\"}'"
/code/api/v1/repositories/branches:
get:
description: 'Get a list with all the repositories branches for the requesting customer
The returned branches are branches that has at list one CICD runs
each branches item includes: name, creationDate, CICD status'
operationId: getBranches
parameters:
- in: query
name: repoOwner
required: true
schema:
type: string
- in: query
name: repoName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
Example 1:
value:
branches:
- creationDate: '2021-07-13T14:22:53.964Z'
defaultBranch: false
name: some_branch
- creationDate: null
defaultBranch: true
name: master
source: Gitlab
schema:
$ref: '#/components/schemas/BranchesResponse'
description: repository branches
'400':
description: Could not get branches, check GET query params
'422':
description: Request arguments validation error
'500':
description: Could not fetch Repositories for customer
security:
- CustomAuthorizer: []
summary: Get Repository Branches with CICD Runs
tags:
- Repositories
x-codeSamples:
- lang: Python + Requests
source: 'import requests
url = "http://undefinedundefined/code/api/v1/repositories/branches"
querystring = {"repoOwner":"SOME_STRING_VALUE","repoName":"SOME_STRING_VALUE"}
headers = {"authorization": "REPLACE_KEY_VALUE"}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)'
- lang: Shell + Curl
source: "curl --request GET \\\n --url 'http://undefinedundefined/code/api/v1/repositories/branches?repoOwner=SOME_STRING_VALUE&repoName=SOME_STRING_VALUE' \\\n --header 'authorization: REPLACE_KEY_VALUE'"
/code/api/v1/repositories/query:
post:
description: Get a mapping between repository ids provided to the corresponding repositories names
operationId: getQueryRepositories
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRepositoriesRequest'
required: true
responses:
'200':
content:
application/json:
examples:
Example 1:
value:
- id: 17758008-49b2-46ad-9795-f5f6efb8492f
repository: aws-cloud
- id: 16df32d8-48ff-4dbd-8a6b-782fdfa6dbb3
repository: CountTrees
schema:
anyOf:
- items:
$ref: '#/components/schemas/RepoIdToRepoName'
type: array
- type: string
description: repositories mapping
'422':
description: Request arguments validation error
'500':
description: Could not fetch query Repositories for customer
security:
- CustomAuthorizer: []
summary: Get Repository Name to UUID Mapping of Requested UUIDs
tags:
- Repositories
x-codeSamples:
- lang: Python + Requests
source: "import requests\n\nurl = \"http://undefinedundefined/code/api/v1/repositories/query\"\n\npayload = {\"repositoriesIds\": [\"string\"]}\nheaders = {\n \"content-type\": \"application/json\",\n \"authorization\": \"REPLACE_KEY_VALUE\"\n}\n\nresponse = requests.request(\"POST\", url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: Shell + Curl
source: "curl --request POST \\\n --url http://undefinedundefined/code/api/v1/repositories/query \\\n --header 'authorization: REPLACE_KEY_VALUE' \\\n --header 'content-type: application/json' \\\n --data '{\"repositoriesIds\":[\"string\"]}'"
/code/api/v1/repositories/search:
get:
description: 'Get a list with all the repositories of customer
Use filter params to search among the various repositories'
operationId: searchRepositories
parameters:
- in: query
name: id
required: false
schema:
type: string
- in: query
name: selected
required: false
schema:
type: boolean
- in: query
name: source
required: false
schema:
type: string
- in: query
name: repoOwner
required: false
schema:
type: string
- in: query
name: repoName
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
format: int32
maximum: 100
minimum: 1
type: integer
- in: query
name: offset
required: false
schema:
format: int32
minimum: 0
type: integer
responses:
'200':
content:
application/json:
examples:
Example 1:
value:
data:
- creationDate: '2021-11-02T10:19:56.643Z'
customerName: mock_customer
defaultBranch: main
id: aaaaaaaa-bbbbbbbb-ccccccc-ddddddd
isPublic: false
lastScanDate: '2021-11-02T10:19:56.643Z'
owner: repo_owner
repository: repo_name
selected: true
source: Github
url: https://github.com/repo_owner/repo_name
hasNext: true
schema:
$ref: '#/components/schemas/GetRepositorySearchResponse'
description: repositories search
'422':
description: Request arguments validation error
security:
- CustomAuthorizer: []
summary: Search Repositories
tags:
- Repositories
x-codeSamples:
- lang: Python + Requests
source: 'import requests
url = "http://undefinedundefined/code/api/v1/repositories/search"
querystring = {"id":"SOME_STRING_VALUE","selected":"SOME_BOOLEAN_VALUE","source":"SOME_STRING_VALUE","repoOwner":"SOME_STRING_VALUE","repoName":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","offset":"SOME_INTEGER_VALUE"}
headers = {"authorization": "REPLACE_KEY_VALUE"}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)'
- lang: Shell + Curl
source: "curl --request GET \\\n --url 'http://undefinedundefined/code/api/v1/repositories/search?id=SOME_STRING_VALUE&selected=SOME_BOOLEAN_VALUE&source=SOME_STRING_VALUE&repoOwner=SOME_STRING_VALUE&repoName=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE' \\\n --header 'authorization: REPLACE_KEY_VALUE'"
/code/api/v1/vcs-repository/repositories:
post:
description: Get repositories page
operationId: getVCSRepositoryPage
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RepoRequestBody'
description: the body includes filters page configuration.
required: true
responses:
'200':
content:
application/json:
schema:
anyOf:
- items:
$ref: '#/components/schemas/RepoInfo'
type: array
- items:
$ref: '#/components/schemas/RdsRepoInfo'
type: array
description: repositories
'422':
description: Request arguments validation error
security:
- CustomAuthorizer: []
summary: Get Repositories Page
tags:
- Repositories
x-codeSamples:
- lang: Python + Requests
source: "import requests\n\nurl = \"http://undefinedundefined/code/api/v1/vcs-repository/repositories\"\n\npayload = {\n \"filters\": {\n \"archived\": [\"string\"],\n \"casIds\": [\"string\"],\n \"ciFiles\": [\"string\"],\n \"customerName\": \"string\",\n \"ids\": [\"string\"],\n \"images\": [\"string\"],\n \"issues\": [\"string\"],\n \"lastUpdated\": \"2019-08-24T14:15:22Z\",\n \"name\": \"string\",\n \"pipelines\": [\"string\"],\n \"privacyLevels\": [\"public\"],\n \"providers\": [\"string\"],\n \"riskFactors\": [\"isInternetExpose\"],\n \"technologies\": [\"string\"],\n \"workspaceIds\": [\"string\"]\n },\n \"orderBy\": {\n \"fieldName\": \"string\",\n \"isAsc\": True,\n \"type\": \"string\"\n },\n \"pageConfig\": {\n \"page\": 0,\n \"pageSize\": 0\n }\n}\nheaders = {\n \"content-type\": \"application/json\",\n \"authorization\": \"REPLACE_KEY_VALUE\"\n}\n\nresponse = requests.request(\"POST\", url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: Shell + Curl
source: "curl --request POST \\\n --url http://undefinedundefined/code/api/v1/vcs-repository/repositories \\\n --header 'authorization: REPLACE_KEY_VALUE' \\\n --header 'content-type: application/json' \\\n --data '{\"filters\":{\"archived\":[\"string\"],\"casIds\":[\"string\"],\"ciFiles\":[\"string\"],\"customerName\":\"string\",\"ids\":[\"string\"],\"images\":[\"string\"],\"issues\":[\"string\"],\"lastUpdated\":\"2019-08-24T14:15:22Z\",\"name\":\"string\",\"pipelines\":[\"string\"],\"privacyLevels\":[\"public\"],\"providers\":[\"string\"],\"riskFactors\":[\"isInternetExpose\"],\"technologies\":[\"string\"],\"workspaceIds\":[\"string\"]},\"orderBy\":{\"fieldName\":\"string\",\"isAsc\":true,\"type\":\"string\"},\"pageConfig\":{\"page\":0,\"pageSize\":0}}'"
/api/v1/vcs-repository/repositories:
get:
operationId: getVCSRepository
responses:
'200':
description: repositories
content:
application/json:
schema:
items:
$ref: '#/components/schemas/RepoInfo'
type: array
description: Get all repositories and their metadata (Technologies, pipelines, contributors, etc..)
summary: Get repositories (repositories page)
tags:
- Repositories
security:
- CustomAuthorizer: []
parameters:
- description: Get repositories connected to CI pipelines
in: query
name: include_pipelines
required: false
schema:
type: boolean
- description: Get repositories with deployed images
in: query
name: include_docker_images
required: false
schema:
type: boolean
- description: order by repositories
in: query
name: order_by
required: false
schema:
type: string
- description: requested page
in: query
name: page
required: false
schema:
format: double
type: number
- description: page size
in: query
name: page_size
required: false
schema:
format: double
type: number
- description: Get repositories by name
in: query
name: name
required: false
schema:
type: string
- description: Get repositories by repository ID
in: query
name: ids
required: false
schema:
type: array
items:
type: string
- description: Get repositories by provider
in: query
name: providers
required: false
schema:
type: array
items:
$ref: '#/components/schemas/RepositoryProvider'
- description: Get repositories by technologies
in: query
name: technologies
required: false
schema:
type: array
items:
type: string
- description: Get repositories by CI type
in: query
name: ci_files
required: false
schema:
type: array
items:
type: string
- description: Get repositories by private or public
in: query
name: privacy_levels
required: false
schema:
type: array
items:
$ref: '#/components/schemas/RepositoryPrivacyLabel'
- description: Get repositories by workspace/integration ID
in: query
name: workspace_id
required: false
schema:
type: string
- description: filter by last updated repositories
in: query
name: last_updated
required: false
schema:
format: date-time
type: string
- description: filter ignored repos
in: query
name: should_filter_ignored_repos
required: false
schema:
type: boolean
x-bc-lambda-name: vcs-repository-api
x-bc-permitted-roles: owner,admin,member,developer,auditor
post:
operationId: getVCSRepositoryPage
responses:
'200':
description: repositories
content:
application/json:
schema:
anyOf:
- items:
$ref: '#/components/schemas/RepoInfo'
type: array
- items:
$ref: '#/components/schemas/RdsRepoInfo_2'
type: array
description: Get repositories page
summary: get repositories page
tags:
- Repositories
security:
- CustomAuthorizer: []
parameters: []
requestBody:
description: the body includes filters page configuration.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RepoRequestBody_2'
x-bc-lambda-name: vcs-repository-api
x-bc-permitted-roles: owner,admin,member,developer,auditor
x-bc-docs-scope: standalone,prisma
servers:
- url: https://api.prismacloud.io
components:
schemas:
SeverityIssues:
properties:
CRITICAL:
anyOf:
- format: double
type: number
- $ref: '#/components/schemas/SecurityModule'
HIGH:
anyOf:
- format: double
type: number
- $ref: '#/components/schemas/SecurityModule'
INFO:
anyOf:
- format: double
type: number
- $ref: '#/components/schemas/SecurityModule'
LOW:
anyOf:
- format: double
type: number
- $ref: '#/components/schemas/SecurityModule'
MEDIUM:
anyOf:
- format: double
type: number
- $ref: '#/components/schemas/SecurityModule'
type: object
Contributor:
properties:
contributionsCounts:
description: Number of contributions
format: double
type: number
id:
type: string
lastPush:
format: double
type: number
name:
description: Contributor name
type: string
permission:
description: Contributor permission
type: string
required:
- contributionsCounts
- name
- id
type: object
IVCSRepository:
additionalProperties: false
properties:
casId:
type: string
ciFiles:
description: CI files path
items:
type: string
type: array
customerName:
description: Customer Prisma ID
type: string
defaultBranch:
description: Default branch
type: string
defaultGithubActionsWorkflowPermission:
enum:
- read
- write
type: string
failedCustomerPRs:
format: double
type: number
fullName:
description: Repository full name
type: string
hasCoderOwner:
description: Repository contains code owner file (True/False)
type: boolean
id:
description: VCS repository ID
type: string
isAllGithubActionsAllowed:
type: boolean
isArchived:
description: Archived repository (True/False)
type: boolean
isForkingAllowed:
description: Is forking allowed in the repository
type: boolean
isGithubActionsEnabled:
description: Is Github Actions enabled in the repository
type: boolean
isRequiresCommitSignatures:
type: boolean
isRequiresStatusChecks:
type: boolean
isRestrictsPushes:
type: boolean
lastUpdated:
description: VCS Repository last update time
type: string
name:
description: VCS Repository short name
type: string
openFixPRs:
format: double
type: number
originId:
type: string
privacyLevel:
$ref: '#/components/schemas/RepositoryPrivacyLabel'
provider:
$ref: '#/components/schemas/RepositoryProvider'
repositorySize:
description: VCS Repository size
format: double
type: number
sessionId:
type: string
totalCommitsCount:
description: Total commits count
format: double
type: number
totalContributorsCount:
description: Total contributors count
format: double
type: number
totalCustomerPRs:
format: double
type: number
type:
enum:
- VCSRepository
type: string
url:
description: VCS Repository URL
type: string
workspaceId:
description: VCS workspace/integration ID
type: string
workspaceName:
description: VCS workspace/integration name
type: string
required:
- id
- customerName
- type
- failedCustomerPRs
- totalCustomerPRs
- ciFiles
- url
- casId
type: object
QueryRepositoriesRequest:
additionalProperties: false
properties:
repositoriesIds:
items:
type: string
type: array
required:
- repositoriesIds
type: object
RepoInfo:
allOf:
- $ref: '#/components/schemas/IVCSRepository'
- properties:
categorizedTechnologies:
$ref: '#/components/schemas/Technologies'
ciInstances:
additionalProperties:
$ref: '#/components/schemas/ICiInstanceInfo'
properties: {}
type: object
contributors:
items:
$ref: '#/components/schemas/Contributor'
type: array
contributorsCount:
format: double
type: number
dockerImages:
items:
$ref: '#/components/schemas/DockerImage'
type: array
issues:
$ref: '#/components/schemas/Issues'
weeklyCommitOnPrs:
items:
$ref: '#/components/schemas/WeeklyCommitOnPR'
type: array
required:
- weeklyCommitOnPrs
- issues
type: object
BranchesResponse:
additionalProperties: false
properties:
branches:
items:
$ref: '#/components/schemas/Branch'
type: array
source:
type: string
required:
- source
- branches
type: object
Technologies:
properties:
CICD:
$ref: '#/components/schemas/Technology'
Configuration:
$ref: '#/components/schemas/Technology'
Data:
$ref: '#/components/schemas/Technology'
Devops:
$ref: '#/components/schemas/Technology'
Documentation:
$ref: '#/components/schemas/Technology'
License:
$ref: '#/components/schemas/Technology'
Markup:
$ref: '#/components/schemas/Technology'
PackageManager:
$ref: '#/components/schemas/Technology'
Programming:
$ref: '#/components/schemas/Technology'
Prose:
$ref: '#/components/schemas/Technology'
Unknown:
$ref: '#/components/schemas/Technology'
type: object
integrationResponse:
additionalProperties: false
properties:
created:
type: string
id:
type: string
updatedBy:
type: string
required:
- id
- created
- updatedBy
type: object
Branch:
additionalProperties: false
properties:
creationDate:
type:
- string
- 'null'
defaultBranch:
type: boolean
name:
type: string
required:
- name
- creationDate
- defaultBranch
type: object
WeeklyCommitOnPrs:
properties:
branchName:
type: string
currWeeklyCommits:
format: double
type: number
prevWeeklyCommits:
format: double
type: number
required:
- prevWeeklyCommits
- currWeeklyCommits
- branchName
type: object
RepositoryPrivacyLabel:
enum:
- public
- private
- internal
type:
- string
- 'null'
Issues:
allOf:
- $ref: '#/components/schemas/SeverityIssues'
- properties:
moduleName:
$ref: '#/components/schemas/SecurityModule'
type: object
Repository:
additionalProperties: false
properties:
creationDate:
type: string
customerName:
type: string
defaultBranch:
type: string
id:
type: string
isPublic:
type: boolean
lastScanDate:
type: string
owner:
type: string
repository:
type: string
selected:
type: boolean
source:
type: string
url:
type: string
required:
- id
- repository
- source
- customerName
- owner
- selected
type: object
ICiInstanceInfo:
additionalProperties: false
properties:
ciType:
$ref: '#/components/schemas/CIType'
description: CI pipeline type
customerName:
description: Customer Prisma ID
type: string
id:
type: string
name:
description: CI pipeline name
type: string
pipelines:
items:
$ref: '#/components/schemas/PipelineInfo'
type: array
required:
- ciType
- customerName
- id
- name
- pipelines
type: object
Pagination:
properties:
page:
format: double
type: number
pageSize:
format: double
type: number
required:
- pageSize
- page
type: object
ModuleIssues:
properties:
CICD:
allOf:
- $ref: '#/components/schemas/SeverityIssues'
- properties:
TOTAL:
format: double
type: number
required:
- TOTAL
type: object
IAC:
allOf:
- $ref: '#/components/schemas/SeverityIssues'
- properties:
TOTAL:
format: double
type: number
required:
- TOTAL
type: object
SCA:
allOf:
- $ref: '#/components/schemas/SeverityIssues'
- properties:
TOTAL:
format: double
type: number
required:
- TOTAL
type: object
SECRETS:
allOf:
- $ref: '#/components/schemas/SeverityIssues'
- properties:
TOTAL:
format: double
type: number
required:
- TOTAL
type: object
type: object
RepoRequestBody:
properties:
filters:
$ref: '#/components/schemas/RepoRequestFilters'
orderBy:
$ref: '#/components/schemas/OrderBy'
pageConfig:
$ref: '#/components/schemas/Pagination'
type: object
CiInstancesHash:
additionalProperties:
$ref: '#/components/schemas/ICiInstanceInfo'
properties: {}
type: object
RiskFactorsType:
enum:
- isInternetExpose
- isRepositoryDeployed
type: string
WeeklyCommitOnPR:
properties:
branchName:
type: string
currWeeklyCommits:
format: double
type: number
prevWeeklyCommits:
format: double
type: number
required:
- prevWeeklyCommits
- currWeeklyCommits
- branchName
type: object
RepoRequestFilters:
properties:
archived:
description: An array with length of 1 containing either ‘true’ or ‘false’, filter between archived and not archived repositories
items:
type: string
type: array
casIds:
items:
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/palo-alto-networks/refs/heads/main/openapi/palo-alto-networks-repositories-api-openapi.yml