---
title: "UpdateRepository"
method: PATCH
path: "/v1/namespaces/{object.tenant_meta.namespace}/repositories"
tags: ["RepositoryService"]
---

# UpdateRepository

`PATCH /v1/namespaces/{object.tenant_meta.namespace}/repositories`

Updates a source control repository with the information in the request body.

## Path parameters

- `object.tenant_meta.namespace` string, required

## Request body

- RepositoryServiceUpdateRepositoryBody — Request to update the repository.
  - `object` object — Repository represents the ingested information about a source control repository. A repository may refer to any type of source control repository, such as GitLab or GitHub.
    - `ingested_object` V1IngestedObject — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
      - `ingestion_time` string, date-time, required — Time the object was last ingested.
      - `raw` object, required — Generic representation of the object.
      - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
    - `meta` V1Meta — Common fields for all Endor Labs resources.
      - `annotations` object — Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
      - `create_time` string, date-time — Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `created_by` string — Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
      - `description` string — Resource description. Must be less than 1024 bytes.
      - `index_data` V1IndexData — IndexData is used to index the resource for search. It's an internal object.
        - `data` string[]
        - `search_score` number, float — search_score is the score of the resource for search. Internal use only.
        - `tenant` string
        - `will_be_deleted_at` string, date-time — Time that the resource will be deleted.
      - `kind` string — Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
      - `name` string, required — Resource name. Must be 63 characters or less.
      - `parent_kind` string — Parent object resource kind, for example, Project.
      - `parent_uuid` string — Parent object UUID.
      - `references` object — Map of objects referenced in a query API.
      - `tags` string[] — List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
      - `update_time` string, date-time — Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `updated_by` string — Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
      - `upsert_time` string, date-time — Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `version` string — Message version.
    - `spec` V1RepositorySpec
      - `branch_protections` object — Branch protections is a map of branch name to its github branch protection rules.
      - `commit_hashes` string[] — Commit hashes contains a list of all of the commit presents in the repository. A commit hash contains all commits branches that were already ingested. For example: with branch A, branch B and branch C, where branch A and branch B were ingested, the array contains the union of commits of branch A and branch B.
      - `contributors` string[] — Contributors represents all account external_ids that have been seen throughout the ingestion.
      - `create_time` string, date-time — Create time of the repository in the platform.
      - `default_branch` string, required — The default branch of the source control repository.
      - `external_id` string — The unique identifier of the repository in the source platform before ingestion.
      - `http_clone_url` string, required — The HTTP clone URL of the project. For example, https://github.com/yarpc/yarpc-go.git.
      - `languages` V1Languages — The languages used and bytes of code for each language in the source control repository.
        - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
          - `ingestion_time` string, date-time, required — Time the object was last ingested.
          - `raw` object, required — Generic representation of the object.
          - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
      - `org` V1Organization — The ingested information about an organization.
        - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
          - `ingestion_time` string, date-time, required — Time the object was last ingested.
          - `raw` object, required — Generic representation of the object.
          - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
      - `owner` V1PlatformAccount — PlatformAccount represents an account of a user to third-party site like GitHub/Gitlab or some package platform.
        - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
          - `ingestion_time` string, date-time, required — Time the object was last ingested.
          - `raw` object, required — Generic representation of the object.
          - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
        - `meta` V1Meta, required — Common fields for all Endor Labs resources.
          - `annotations` object — Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
          - `create_time` string, date-time — Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
          - `created_by` string — Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
          - `description` string — Resource description. Must be less than 1024 bytes.
          - `index_data` V1IndexData — IndexData is used to index the resource for search. It's an internal object.
            - `data` string[]
            - `search_score` number, float — search_score is the score of the resource for search. Internal use only.
            - `tenant` string
            - `will_be_deleted_at` string, date-time — Time that the resource will be deleted.
          - `kind` string — Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
          - `name` string, required — Resource name. Must be 63 characters or less.
          - `parent_kind` string — Parent object resource kind, for example, Project.
          - `parent_uuid` string — Parent object UUID.
          - `references` object — Map of objects referenced in a query API.
          - `tags` string[] — List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
          - `update_time` string, date-time — Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
          - `updated_by` string — Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
          - `upsert_time` string, date-time — Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
          - `version` string — Message version.
        - `spec` V1PlatformAccountSpec
          - `create_time` string, date-time — Create time of the platform account.
          - `email` string — The email of the platform account.
          - `external_id` string, required — The ID of the platform account in the orginal platform.
          - `name` string — The name of the platform account.
          - `platform_source` 'PLATFORM_SOURCE_UNSPECIFIED' | 'PLATFORM_SOURCE_GITHUB' | 'PLATFORM_SOURCE_GITLAB' | 'PLATFORM_SOURCE_GITSERVER' | 'PLATFORM_SOURCE_BITBUCKET' | 'PLATFORM_SOURCE_BINARY' | 'PLATFORM_SOURCE_HUGGING_FACE' | 'PLATFORM_SOURCE_AZURE' | 'PLATFORM_SOURCE_ARCHIVE' | 'PLATFORM_SOURCE_EXTERNAL_AI_SERVICE' | 'PLATFORM_SOURCE_GITHUB_ENTERPRISE', required — Type of source control platform a resource was discovered on.
          - `update_time` string, date-time — Update time of the platform account.
        - `tenant_meta` V1TenantMeta — Tenant related data for the tenant containing the resource.
          - `namespace` string, required — Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
        - `uuid` string — The UUID of a platform account.
      - `platform_source` 'PLATFORM_SOURCE_UNSPECIFIED' | 'PLATFORM_SOURCE_GITHUB' | 'PLATFORM_SOURCE_GITLAB' | 'PLATFORM_SOURCE_GITSERVER' | 'PLATFORM_SOURCE_BITBUCKET' | 'PLATFORM_SOURCE_BINARY' | 'PLATFORM_SOURCE_HUGGING_FACE' | 'PLATFORM_SOURCE_AZURE' | 'PLATFORM_SOURCE_ARCHIVE' | 'PLATFORM_SOURCE_EXTERNAL_AI_SERVICE' | 'PLATFORM_SOURCE_GITHUB_ENTERPRISE', required — Type of source control platform a resource was discovered on.
      - `repository_license` V1RepositoryLicense — Contains information related to a source control repository software license.
        - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
          - `ingestion_time` string, date-time, required — Time the object was last ingested.
          - `raw` object, required — Generic representation of the object.
          - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
        - `name` string — Name of the source control repository software license.
      - `tags` Endorv1Tag[] — The tags of the repository.
        - `commit_date` string, date-time
        - `name` string — The display name of a tag.
        - `sha` string — The commit SHA of tag references.
      - `update_time` string, date-time — Update time of the repository in the platform.
      - `vulnerability_alerts_enabled` boolean — Denotes whether vulnerability alerts have been enabled on the source control repository.
    - `tenant_meta` object — Repositories are associated with a tenant. Public repositories are created as repositories under a public tenant.
    - `uuid` string — The UUID of the source control repository.
  - `request` V1UpdateRequest — Message used for all update requests.
    - `force` boolean — Force will force the update of the resource if any checks fail.
    - `update_mask` string — Fields to update. Defaults to all fields.

## Response `200`

A successful response.

- V1Repository — Repository represents the ingested information about a source control repository. A repository may refer to any type of source control repository, such as GitLab or GitHub.
  - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
    - `ingestion_time` string, date-time, required — Time the object was last ingested.
    - `raw` object, required — Generic representation of the object.
    - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
  - `meta` V1Meta, required — Common fields for all Endor Labs resources.
    - `annotations` object — Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time — Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string — Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string — Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData — IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float — search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time — Time that the resource will be deleted.
    - `kind` string — Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required — Resource name. Must be 63 characters or less.
    - `parent_kind` string — Parent object resource kind, for example, Project.
    - `parent_uuid` string — Parent object UUID.
    - `references` object — Map of objects referenced in a query API.
    - `tags` string[] — List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time — Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string — Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time — Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string — Message version.
  - `spec` V1RepositorySpec
    - `branch_protections` object — Branch protections is a map of branch name to its github branch protection rules.
    - `commit_hashes` string[] — Commit hashes contains a list of all of the commit presents in the repository. A commit hash contains all commits branches that were already ingested. For example: with branch A, branch B and branch C, where branch A and branch B were ingested, the array contains the union of commits of branch A and branch B.
    - `contributors` string[] — Contributors represents all account external_ids that have been seen throughout the ingestion.
    - `create_time` string, date-time — Create time of the repository in the platform.
    - `default_branch` string, required — The default branch of the source control repository.
    - `external_id` string — The unique identifier of the repository in the source platform before ingestion.
    - `http_clone_url` string, required — The HTTP clone URL of the project. For example, https://github.com/yarpc/yarpc-go.git.
    - `languages` V1Languages — The languages used and bytes of code for each language in the source control repository.
      - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
        - `ingestion_time` string, date-time, required — Time the object was last ingested.
        - `raw` object, required — Generic representation of the object.
        - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
    - `org` V1Organization — The ingested information about an organization.
      - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
        - `ingestion_time` string, date-time, required — Time the object was last ingested.
        - `raw` object, required — Generic representation of the object.
        - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
    - `owner` V1PlatformAccount — PlatformAccount represents an account of a user to third-party site like GitHub/Gitlab or some package platform.
      - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
        - `ingestion_time` string, date-time, required — Time the object was last ingested.
        - `raw` object, required — Generic representation of the object.
        - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
      - `meta` V1Meta, required — Common fields for all Endor Labs resources.
        - `annotations` object — Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
        - `create_time` string, date-time — Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
        - `created_by` string — Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
        - `description` string — Resource description. Must be less than 1024 bytes.
        - `index_data` V1IndexData — IndexData is used to index the resource for search. It's an internal object.
          - `data` string[]
          - `search_score` number, float — search_score is the score of the resource for search. Internal use only.
          - `tenant` string
          - `will_be_deleted_at` string, date-time — Time that the resource will be deleted.
        - `kind` string — Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
        - `name` string, required — Resource name. Must be 63 characters or less.
        - `parent_kind` string — Parent object resource kind, for example, Project.
        - `parent_uuid` string — Parent object UUID.
        - `references` object — Map of objects referenced in a query API.
        - `tags` string[] — List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
        - `update_time` string, date-time — Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
        - `updated_by` string — Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
        - `upsert_time` string, date-time — Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
        - `version` string — Message version.
      - `spec` V1PlatformAccountSpec
        - `create_time` string, date-time — Create time of the platform account.
        - `email` string — The email of the platform account.
        - `external_id` string, required — The ID of the platform account in the orginal platform.
        - `name` string — The name of the platform account.
        - `platform_source` 'PLATFORM_SOURCE_UNSPECIFIED' | 'PLATFORM_SOURCE_GITHUB' | 'PLATFORM_SOURCE_GITLAB' | 'PLATFORM_SOURCE_GITSERVER' | 'PLATFORM_SOURCE_BITBUCKET' | 'PLATFORM_SOURCE_BINARY' | 'PLATFORM_SOURCE_HUGGING_FACE' | 'PLATFORM_SOURCE_AZURE' | 'PLATFORM_SOURCE_ARCHIVE' | 'PLATFORM_SOURCE_EXTERNAL_AI_SERVICE' | 'PLATFORM_SOURCE_GITHUB_ENTERPRISE', required — Type of source control platform a resource was discovered on.
        - `update_time` string, date-time — Update time of the platform account.
      - `tenant_meta` V1TenantMeta — Tenant related data for the tenant containing the resource.
        - `namespace` string, required — Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
      - `uuid` string — The UUID of a platform account.
    - `platform_source` 'PLATFORM_SOURCE_UNSPECIFIED' | 'PLATFORM_SOURCE_GITHUB' | 'PLATFORM_SOURCE_GITLAB' | 'PLATFORM_SOURCE_GITSERVER' | 'PLATFORM_SOURCE_BITBUCKET' | 'PLATFORM_SOURCE_BINARY' | 'PLATFORM_SOURCE_HUGGING_FACE' | 'PLATFORM_SOURCE_AZURE' | 'PLATFORM_SOURCE_ARCHIVE' | 'PLATFORM_SOURCE_EXTERNAL_AI_SERVICE' | 'PLATFORM_SOURCE_GITHUB_ENTERPRISE', required — Type of source control platform a resource was discovered on.
    - `repository_license` V1RepositoryLicense — Contains information related to a source control repository software license.
      - `ingested_object` V1IngestedObject, required — Raw ingested object from a 3rd party source, along with any additional metadata we want to add to the object.
        - `ingestion_time` string, date-time, required — Time the object was last ingested.
        - `raw` object, required — Generic representation of the object.
        - `status` 'INGESTED_OBJECT_STATUS_UNSPECIFIED' | 'INGESTED_OBJECT_STATUS_FOUND' | 'INGESTED_OBJECT_STATUS_NOT_FOUND' | 'INGESTED_OBJECT_STATUS_LIGHT', required — - INGESTED_OBJECT_STATUS_LIGHT: Example: Use when a user exists because they are attached to a commit, but are not found on a direct lookup.
      - `name` string — Name of the source control repository software license.
    - `tags` Endorv1Tag[] — The tags of the repository.
      - `commit_date` string, date-time
      - `name` string — The display name of a tag.
      - `sha` string — The commit SHA of tag references.
    - `update_time` string, date-time — Update time of the repository in the platform.
    - `vulnerability_alerts_enabled` boolean — Denotes whether vulnerability alerts have been enabled on the source control repository.
  - `tenant_meta` V1TenantMeta — Tenant related data for the tenant containing the resource.
    - `namespace` string, required — Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
  - `uuid` string — The UUID of the source control repository.

## Other responses

- `default` — An unexpected error response.

---

[API](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference.md) · [All operations](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/endorlabs/endor-labs-rest-api-reference/revisions/2fe1f84213b3/schema)
