Skip to content

[Feature] Native private packages in packages.yml and dependencies.yml #12874

@dbeatty10

Description

@dbeatty10

Is this your first time submitting a feature request?

  • I have read the expectations for open source contributors
  • I have searched the existing issues, and I could not find an existing issue for this feature
  • I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

Describe the feature

Feature

Per discussion with @jtcohen6, we want to:

Configuration

Users will need to:

  • have a SSH key configured on their dev machines and CI + production environments for the relevant Git provider, and
  • include the provider key in their package configuration:
    packages:
      - private: your-org/your-internal-repo
        provider: "github"  # Supported values: "github", "gitlab", "azure_devops"

Implementation

dbt will use the provider value to construct the correct SSH URL for dbt deps to use when cloning the repository:

Provider SSH URL format
github git@github.com:org/repo}.git
gitlab git@gitlab.com:org/repo.git
azure_devops git@ssh.dev.azure.com:v3/org/repo

Describe alternatives you've considered

No response

Who will this benefit?

Native private packages lets users install packages from private Git repos using the private key without having to:

  • configure a token, or
  • divine a full SSH-compatible Git URL

The net effect is the same as the git method + SSH URL method, but the key differences are:

  • private only requires the org/repo-name + provider key, and
  • private will work across dbt platform, Fusion, and Core (whereas the dbt platform does not support the SSH key method)

Are you interested in contributing this feature?

you bet

Anything else?

internal slack thread

Metadata

Metadata

Assignees

No one assigned

    Labels

    depsdbt's package managerenhancementNew feature or requestuser docs[docs.getdbt.com] Needs better documentation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions