nextflow.scm
The nextflow.scm package defines the Git provider interface and implements several built-in Git providers.
Class Diagram
            classDiagram
    %%
    %% nextflow.scm
    %%
    direction LR
    CmdRun --> AssetManager : run
    class AssetManager {
        project : String
        localPath : File
        mainScript : String
        repositoryProvider : RepositoryProvider
        hub : String
        providerConfigs : List~ProviderConfig~
    }
    AssetManager --* RepositoryProvider
    AssetManager "1" --* "*" ProviderConfig
    RepositoryProvider <|-- AzureRepositoryProvider
    RepositoryProvider <|-- BitbucketRepositoryProvider
    RepositoryProvider <|-- BitbucketServerRepositoryProvider
    RepositoryProvider <|-- GiteaRepositoryProvider
    RepositoryProvider <|-- GithubRepositoryProvider
    RepositoryProvider <|-- GitlabRepositoryProvider
    RepositoryProvider <|-- LocalRepositoryProvider
        
Note
Some classes may be excluded from the above diagram for brevity.
Notes
The RepositoryProvider class is the base class for all Git providers. It defines how to authenticate with the provider, clone a Git repository, inspect branches and tags, etc.