Skip to content

stCarolas/Enki

Repository files navigation

Enki

Release Version Docker Pulls Codacy Badge Codacy Coverage

  1. Why
  2. Set Up With Maven
  3. Set Up With Gradle
  4. Running With Docker
  5. Core Concepts
  6. Providers:
    • Bitbucket
    • Github
    • Gitlab
    • Gitea
  7. Handlers:
    • Add Discord commit hook
    • Mirror repo to Gitea
    • Archive GitHub repo
    • Sync with GoCD
    • JaCoCo configurator for maven projects
    • Print a list of found repositories
    • Collect all dependency from maven project
  8. Cli/Server Runner
  9. Roadmap

Why

Sometimes we want to do some work with multiple repositories - add step with SonarQube to all pipelines, add JaCoCo to all projects, up library version everywhere, add helm charts, etc. There is where Enki can help you.

Enki takes all the problems with handling of cloning and iterating over multiple repositories, commiting and pushing them. All you need to do is write or reuse some handler which takes metadata and local cloned copy of repository and just does required job.

Set Up with Maven

Add to pom.xml

<repositories>
    <repository>
      <id>jcenter</id>
      <url>https://jcenter.bintray.com/</url>
    </repository>
</repositories>
<dependency>
  <groupId>com.github.stcarolas.enki</groupId>
  <artifactId>enki-core</artifactId>
  <version>0.1.49</version>
  <type>pom</type>
</dependency>

Set Up with Gradle

Add to build.gradle

repositories {
    jcenter()
}
implementation 'com.github.stcarolas.enki:enki-core:0.1.49'

Running with Docker

Docker image includes a launcher and all RepoProviders but no handlers. RepoHandlers must be provided via volume like -v $(pwd):/tmp as in examples below or packaged in custom image.

Cli mode:

docker run -v $(pwd):/tmp stcarolas/enki \
    --github --github-username=stCarolas --github-password=252f939e823c441fc7a2f5914e93a9fe30725b3c \
    /tmp/enki-logging-handlers-0.1.5.jar 

Server mode:

docker run -v $(pwd):/tmp -p 8080:8080 stcarolas/enki \
    --server \
    --github --github-username=stCarolas --github-password=252f939e823c441fc7a2f5914e93a9fe30725b3c \
    /tmp/enki-logging-handlers-0.1.5.jar