---
id: "github"
type: "component"
kind: "artifact-repository"
provider: "default"
category: "data"
docs: "https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories"
url: "https://localhost:3000/catalogue/components/github"
---

# GitHub

Hosted Git repositories with public, private and internal visibility and optional branch protection.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [Artifact repository](https://localhost:3000/catalogue/kinds/artifact-repository) |
| Category | Data |
| Official docs | [https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `artifactType` | enum | `package`, `source`, `generic` | yes | — | **"source"** |
| `branchProtection` | boolean | — | no | false | inherited |
| `hostingModel` | enum | `github-com`, `enterprise-cloud`, `enterprise-server` | no | "github-com" | inherited |
| `immutableVersions` | boolean | — | no | — | inherited |
| `managed` | boolean | — | no | false | **true** |
| `retentionDays` | integer | — | no | — | inherited |
| `upstreamProxy` | boolean | — | no | false | **false** |
| `visibility` | enum | `private`, `public` | no | — | inherited |
| `visibilityLevel` | enum | `public`, `private`, `internal` | no | — | inherited |
| `vulnerabilityScanning` | boolean | — | no | — | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 30

- [AWS CodeArtifact](https://localhost:3000/catalogue/components/aws-codeartifact.md) `aws-codeartifact` — aws
- [AWS CodeCommit](https://localhost:3000/catalogue/components/aws-codecommit.md) `aws-codecommit` — aws
- [Amazon SageMaker Model Registry](https://localhost:3000/catalogue/components/aws-sagemaker-model-registry.md) `aws-sagemaker-model-registry` — aws
- [AWS Serverless Application Repository](https://localhost:3000/catalogue/components/aws-serverless-application-repository.md) `aws-serverless-application-repository` — aws
- [AWS Service Catalog](https://localhost:3000/catalogue/components/aws-service-catalog.md) `aws-service-catalog` — aws
- [Azure Artifacts](https://localhost:3000/catalogue/components/azure-artifacts.md) `azure-artifacts` — azure
- [Azure Compute Gallery](https://localhost:3000/catalogue/components/azure-compute-gallery.md) `azure-compute-gallery` — azure
- [Azure Repos](https://localhost:3000/catalogue/components/azure-repos.md) `azure-repos` — azure
- [Cloudflare Artifacts](https://localhost:3000/catalogue/components/cloudflare-artifacts.md) `cloudflare-artifacts` — cloudflare
- [Generic artifact repository](https://localhost:3000/catalogue/components/artifact-repository.md) `artifact-repository` — default
- [JFrog Artifactory](https://localhost:3000/catalogue/components/artifactory.md) `artifactory` — default
- [Bitbucket](https://localhost:3000/catalogue/components/bitbucket.md) `bitbucket` — default
- [Civitai](https://localhost:3000/catalogue/components/civitai.md) `civitai` — default
- [Forgejo](https://localhost:3000/catalogue/components/forgejo.md) `forgejo` — default
- [Gitea](https://localhost:3000/catalogue/components/gitea.md) `gitea` — default
- [GitHub Packages](https://localhost:3000/catalogue/components/github-packages.md) `github-packages` — default
- [GitLab](https://localhost:3000/catalogue/components/gitlab.md) `gitlab` — default
- [Hugging Face Hub](https://localhost:3000/catalogue/components/hugging-face-hub.md) `hugging-face-hub` — default
- [Sonatype Nexus Repository](https://localhost:3000/catalogue/components/nexus.md) `nexus` — default
- [Apache Subversion](https://localhost:3000/catalogue/components/subversion.md) `subversion` — default
- [Verdaccio](https://localhost:3000/catalogue/components/verdaccio.md) `verdaccio` — default
- [Cloud Source Repositories](https://localhost:3000/catalogue/components/google-cloud-source-repositories.md) `google-cloud-source-repositories` — gcp
- [Firebase App Distribution](https://localhost:3000/catalogue/components/google-firebase-app-distribution.md) `google-firebase-app-distribution` — gcp
- [Secure Source Manager](https://localhost:3000/catalogue/components/google-secure-source-manager.md) `google-secure-source-manager` — gcp
- [Vertex AI Model Registry](https://localhost:3000/catalogue/components/google-vertex-ai-model-registry.md) `google-vertex-ai-model-registry` — gcp
- [OCI Artifact Registry](https://localhost:3000/catalogue/components/oci-artifact-registry.md) `oci-artifact-registry` — oci
- [OCI Data Science Model Catalog](https://localhost:3000/catalogue/components/oci-data-science-model-catalog.md) `oci-data-science-model-catalog` — oci
- [OCI DevOps Code Repository](https://localhost:3000/catalogue/components/oci-devops-code-repository.md) `oci-devops-code-repository` — oci
- [OCI Service Catalog](https://localhost:3000/catalogue/components/oci-service-catalog.md) `oci-service-catalog` — oci
- [OpenStack Glance](https://localhost:3000/catalogue/components/openstack-glance.md) `openstack-glance` — openstack

## Use it in a design

```yaml
nodes:
  - { id: "github", component: "github" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# GitHub: hosted Git source repositories. "About repositories" gives three visibility levels - public,
# accessible to everyone on the internet, private, limited to people you share access with, and internal
# for an enterprise account - and treats branch protection as rules an administrator adds afterwards.
schemaVersion: "1"
type: "component"
id: "github"
kind: "artifact-repository"
provider: "default"
docs: "https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories"
defaults:
  artifactType: "source"
  managed: true
  upstreamProxy: false
properties:
  visibilityLevel:
    type: "enum"
    values: ["public", "private", "internal"]
  hostingModel:
    type: "enum"
    values: ["github-com", "enterprise-cloud", "enterprise-server"]
    default: "github-com"
  branchProtection:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/components/github
