Skip to content
Latest (currently 2026.9.0) has the newest features, bug fixes, and CVE patches of Solo Enterprise for agentregistry.

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

Private repo access

Page as Markdown

Configure credentials so that agentregistry can read manifests and clone source code from private GitHub or GitLab repositories.

To deploy an agent or MCP server to a runtime, you must provide a container image. However, you can also add a reference to a GitHub or GitLab repository that holds the source code and Dockerfile for your agent or MCP server. Plugins and Skills don’t have a container image option. They use a GitHub or GitLab repository as their primary source instead.

If the git repository is private, you can configure Solo Enterprise for agentregistry with your GitHub or GitLab credentials so that the registry can clone it.

Step 1: Create credentials

Create your GitHub or GitLab credentials to access private repositories. The permissions that you require vary depending on the type of credential that you set up.

  1. Create a GitHub Personal Access Token (PAT). The required permissions depend on the token type.

    Token typeRequired permissions
    Classic PATrepo scope
    Fine-grained PAT
    • Resource owner: The private repo owner.
    • Repository access: Scope to only the repositories that you plan to use.
    • Repository permissions: Contents: Read, note that Metadata: Read is automatically required.
  2. Save the PAT in an environment variable.

    export PAT=<github-pat>
  1. Create a GitLab Personal Access Token (PAT). The required permissions depend on the token type.

    Note: GitLab deploy tokens are not supported. Deploy tokens can authenticate a git clone but cannot access the GitLab REST API, which Solo Enterprise for agentregistry uses during the manifest pre-fetch. Use a Personal Access Token instead.

    Token typeRequired permissions
    Classic PATread_repository scope
    Fine-grained PATCode: Download permission. Note that Code: Read is not sufficient.
  2. Save the PAT in an environment variable.

    export PAT=<gitlab-pat>

Step 2: Configure credentials

Create a Secret resource with your credentials, then reference it from the credentialsRef field of any Agent, MCP server, Skill, or Plugin manifest that uses a private repository. The Secret must be in the same namespace as the artifact that references it.

KindField path
Agent, MCPServer, Skillspec.source.repository.credentialsRef
Pluginspec.source.git.repository.credentialsRef
  1. Create the Secret.

    arctl apply -f- <<EOF
    apiVersion: ar.dev/v1alpha1
    kind: Secret
    metadata:
      name: git-credentials
    spec:
      stringData:
        password: $PAT
    EOF
    arctl apply -f- <<EOF
    apiVersion: ar.dev/v1alpha1
    kind: Secret
    metadata:
      name: git-credentials
    spec:
      stringData:
        username: oauth2
        password: $PAT
    EOF
  2. Verify that the Secret was created. The response never includes the credential values, only the keys that were stored.

    arctl get secret git-credentials -o yaml

    Example output:

    apiVersion: ar.dev/v1alpha1
    kind: Secret
    metadata:
      name: git-credentials
    spec:
      type: Opaque
    status:
      dataKeys:
        - password
    
  3. Reference the Secret in the manifest of your AI artifact.

    spec:
      source:
        repository:
          url: https://github.com/my-org/my-repo
          credentialsRef:
            name: git-credentials
    spec:
      source:
        type: git
        git:
          repository:
            url: https://github.com/my-org/my-repo
            credentialsRef:
              name: git-credentials

Next steps