line/centraldogma

Provide an easy way to import a directory into Central Dogma programmatically

Aberta

#963 aberto em 19 de jun. de 2024

 (6 comentários) (1 reação) (0 responsável)Java (133 forks)auto 404
good first issuenew feature

Métricas do repositório

Stars
 (664 estrelas)
Métricas de merge de PR
 (Mesclagem média 8d) (14 fundiu PRs em 30d)

Description

A user often needs to import the files in a filesytem into Central Dogma for testing. At the moment, a user need to create a project and a repository, build a commit and push it using the client API. Their life could be simplified a lot by providing the APIs like the following:

public interface CentralDogma {
    // Imports the files in the given directory into Central Dogma.
    // First component in the path becomes the project name.
    // Second component in the path becomes the repository name.
    // e.g. foo/bar/alice.json will create a new project 'foo' and
    //      a new repository 'bar' under the project 'foo', and
    //      add 'alice.json' to the root directory of the repository 'bar'.
    //
    // Placeholder files like '.keep' and '.gitkeep' could be ignored automatically.
    CompletableFuture<ImportResult> importDir(Path dir);
    CompletableFuture<ImportResult> importResourceDir(String dir);
    CompletableFuture<ImportResult> importResourceDir(String dir, ClassLoader classLoader);
}

public interface CentralDogmaRepository {
    // Imports the files in the given directory into the repository.
    // Placeholder files like '.keep' and '.gitkeep' could be ignored automatically.
    CompletableFuture<ImportResult> importDir(Path dir);
    CompletableFuture<ImportResult> importResourceDir(String dir);
    CompletableFuture<ImportResult> importResourceDir(String dir, ClassLoader classLoader);
}

Guia do colaborador