You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/06/13 09:39:07 UTC

[ignite-teamcity-bot] branch master updated: TC Bot modules refactoring: GitHub module extracted

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new 6a5572f  TC Bot modules refactoring: GitHub module extracted
6a5572f is described below

commit 6a5572fa8bfb910f6e670103664882bb7c85e61c
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Thu Jun 13 11:53:19 2019 +0300

    TC Bot modules refactoring: GitHub module extracted
---
 build.gradle                                       | 12 +++--
 ignite-tc-helper-web/build.gradle                  |  6 +--
 .../java/org/apache/ignite/ci/db/TcHelperDb.java   |  9 ----
 .../org/apache/ignite/ci/di/IgniteTcBotModule.java |  2 +-
 .../ignite/ci/jira/ignited/JiraTicketDao.java      |  3 +-
 .../apache/ignite/ci/runners/ClientTmpHelper.java  |  2 +-
 .../ignite/ci/tcbot/chain/PrChainsProcessor.java   |  6 +--
 .../ignite/ci/tcbot/visa/BranchTicketMatcher.java  |  4 +-
 .../tcbot/visa/TcBotTriggerAndSignOffService.java  |  4 +-
 .../apache/ignite/ci/web/rest/TriggerBuilds.java   |  5 +-
 .../ignite/ci/web/rest/pr/GetPrTestFailures.java   |  6 +--
 .../ignite/ci/github/pure/GitHubPrsParseTest.java  | 54 ----------------------
 .../ci/tcbot/chain/MockBasedTcBotModule.java       |  8 ++--
 jetty-launcher/build.gradle                        |  6 +--
 settings.gradle                                    |  2 +
 tcbot-common/build.gradle                          | 15 ++----
 .../common/conf/IDataSourcesConfigSupplier.java    |  2 +
 tcbot-engine/build.gradle                          |  8 +---
 tcbot-github-ignited/README.md                     |  3 ++
 .../build.gradle                                   |  7 +--
 .../githubignited}/GitHubConnIgnitedImpl.java      | 14 +++---
 .../ignite/githubignited}/GitHubIgnitedModule.java |  4 +-
 .../githubignited}/GitHubIgnitedProvImpl.java      |  6 +--
 .../ignite/githubignited}/IGitHubConnIgnited.java  |  2 +-
 .../githubignited}/IGitHubConnIgnitedProvider.java |  2 +-
 tcbot-github/README.md                             |  3 ++
 {tcbot-engine => tcbot-github}/build.gradle        | 11 ++---
 .../org/apache/ignite/ci/github/GitHubBranch.java  |  3 +-
 .../apache/ignite/ci/github/GitHubBranchKey.java   |  7 +--
 .../apache/ignite/ci/github/GitHubBranchShort.java |  3 +-
 .../org/apache/ignite/ci/github/GitHubCommit.java  |  3 +-
 .../org/apache/ignite/ci/github/GitHubUser.java    |  3 +-
 .../org/apache/ignite/ci/github/PullRequest.java   |  5 +-
 .../githubservice}/GitHubCachingProvider.java      |  2 +-
 .../githubservice}/GitHubConnectionImpl.java       | 11 ++---
 .../githubservice}/GitHubIntegrationModule.java    |  2 +-
 .../ignite/githubservice}/IGitHubConnection.java   |  4 +-
 .../githubservice}/IGitHubConnectionProvider.java  |  2 +-
 .../ignite/githubservice}/GitHubPrsParseTest.java  |  3 +-
 tcbot-teamcity-ignited/build.gradle                |  7 +--
 tcbot-teamcity/build.gradle                        |  9 +---
 41 files changed, 98 insertions(+), 172 deletions(-)

diff --git a/build.gradle b/build.gradle
index 1c2ddc3..edf7b84 100644
--- a/build.gradle
+++ b/build.gradle
@@ -58,13 +58,19 @@ allprojects {
         slf4jVer = '1.7.25'
 
         gsonVer = '2.8.2'
+        
+        junitVer = '4.12'
+        mockitoVer = '2.22.0'
     }
 
     repositories {
         //uncomment for RC testing
-       // maven {
-       //     url "https://repository.apache.org/content/repositories/orgapacheignite-1463/"
-       // }
+        // maven {
+        //     url "https://repository.apache.org/content/repositories/orgapacheignite-1463/"
+        // }
+
+        mavenCentral()
+        mavenLocal()
     }
 }
 
diff --git a/ignite-tc-helper-web/build.gradle b/ignite-tc-helper-web/build.gradle
index 9f5c512..313f275 100644
--- a/ignite-tc-helper-web/build.gradle
+++ b/ignite-tc-helper-web/build.gradle
@@ -20,11 +20,7 @@ apply plugin: 'war'
 
 sourceCompatibility = '1.8'
 targetCompatibility = '1.8'
-
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
+ 
 
 // https://www.apache.org/legal/resolved.html#category-a
 dependencies {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/TcHelperDb.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/TcHelperDb.java
index 14642cc..e706b33 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/TcHelperDb.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/TcHelperDb.java
@@ -111,15 +111,6 @@ public class TcHelperDb {
 
     }
 
-    @NotNull
-    public static <K, V> CacheConfiguration<K, V> getCache8PartsConfig(String name) {
-        CacheConfiguration<K, V> ccfg = new CacheConfiguration<>(name);
-
-        ccfg.setAffinity(new RendezvousAffinityFunction(false, 8));
-
-        return ccfg;
-    }
-
     public static class LocalOnlyTcpDiscoveryIpFinder implements TcpDiscoveryIpFinder {
         /** Port. */
         private int port;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java
index bcbc2e7..efed362 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java
@@ -29,7 +29,7 @@ import org.apache.ignite.Ignite;
 import org.apache.ignite.ci.db.Ignite1Init;
 import org.apache.ignite.ci.di.cache.GuavaCachedModule;
 import org.apache.ignite.ci.di.scheduler.SchedulerModule;
-import org.apache.ignite.ci.github.ignited.GitHubIgnitedModule;
+import org.apache.ignite.githubignited.GitHubIgnitedModule;
 import org.apache.ignite.ci.jira.ignited.JiraIgnitedModule;
 import org.apache.ignite.ci.observer.BuildObserver;
 import org.apache.ignite.ci.observer.ObserverTask;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
index 361860f..c836f05 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
@@ -32,6 +32,7 @@ import org.apache.ignite.ci.db.TcHelperDb;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.tcbot.common.interceptor.GuavaCached;
 import org.apache.ignite.ci.jira.pure.Ticket;
+import org.apache.ignite.tcbot.persistence.CacheConfigs;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -56,7 +57,7 @@ public class JiraTicketDao {
      *
      */
     public void init() {
-        jiraCache = igniteProvider.get().getOrCreateCache(TcHelperDb.getCache8PartsConfig(TEAMCITY_JIRA_TICKET_CACHE_NAME));
+        jiraCache = igniteProvider.get().getOrCreateCache(CacheConfigs.getCache8PartsConfig(TEAMCITY_JIRA_TICKET_CACHE_NAME));
     }
 
     /**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
index e799ed2..b114350 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ci.runners;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
+import org.apache.ignite.githubignited.IGitHubConnIgnited;
 import org.apache.ignite.ci.issue.Issue;
 import org.apache.ignite.ci.issue.IssuesStorage;
 import org.apache.ignite.ci.jira.ignited.JiraTicketDao;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java
index a141286..f2a45aa 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java
@@ -24,10 +24,10 @@ import java.util.stream.Collectors;
 import javax.inject.Inject;
 
 import org.apache.ignite.ci.github.PullRequest;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
+import org.apache.ignite.githubservice.IGitHubConnection;
 import org.apache.ignite.tcbot.engine.chain.*;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
+import org.apache.ignite.githubignited.IGitHubConnIgnited;
+import org.apache.ignite.githubignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
 import org.apache.ignite.ci.tcbot.visa.BranchTicketMatcher;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/BranchTicketMatcher.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/BranchTicketMatcher.java
index 390e71b..8876f3a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/BranchTicketMatcher.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/BranchTicketMatcher.java
@@ -18,10 +18,10 @@
 package org.apache.ignite.ci.tcbot.visa;
 
 import com.google.common.base.Strings;
+import org.apache.ignite.githubservice.IGitHubConnection;
 import org.apache.ignite.tcbot.common.interceptor.GuavaCached;
 import org.apache.ignite.ci.github.PullRequest;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
+import org.apache.ignite.githubignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
 import org.apache.ignite.ci.jira.ignited.TicketCompacted;
 import org.apache.ignite.ci.jira.pure.Ticket;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
index cd17eaa..e1bdb2c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
@@ -41,8 +41,8 @@ import org.apache.ignite.tcservice.ITeamcity;
 import org.apache.ignite.ci.github.GitHubBranch;
 import org.apache.ignite.ci.github.GitHubUser;
 import org.apache.ignite.ci.github.PullRequest;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
+import org.apache.ignite.githubignited.IGitHubConnIgnited;
+import org.apache.ignite.githubignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
 import org.apache.ignite.ci.jira.pure.Ticket;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
index 54de527..b2466ca 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
@@ -31,8 +31,9 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
-import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
+
+import org.apache.ignite.githubservice.IGitHubConnection;
+import org.apache.ignite.githubservice.IGitHubConnectionProvider;
 import org.apache.ignite.tcbot.common.conf.IJiraServerConfig;
 import org.apache.ignite.tcbot.engine.conf.ITcBotConfig;
 import org.apache.ignite.ci.tcbot.trigger.TriggerResult;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java
index 700b3f2..761a497 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java
@@ -30,10 +30,10 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import org.apache.ignite.ci.github.PullRequest;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
+import org.apache.ignite.githubignited.IGitHubConnIgnited;
+import org.apache.ignite.githubignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.tcbot.chain.PrChainsProcessor;
+import org.apache.ignite.githubservice.IGitHubConnection;
 import org.apache.ignite.tcignited.SyncMode;
 import org.apache.ignite.ci.user.ITcBotUserCreds;
 import org.apache.ignite.ci.web.CtxListener;
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java
index 8a82657..e69de29 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ignite.ci.github.pure;
-
-import com.google.common.base.Preconditions;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.ignite.ci.github.PullRequest;
-import org.junit.Test;
-
-import static junit.framework.TestCase.assertEquals;
-
-public class GitHubPrsParseTest {
-
-    @Test
-    public void parse() {
-        InputStream stream = this.getClass().getResourceAsStream("/prsList.json");
-        Preconditions.checkNotNull(stream, "Can't find resource");
-        Type listType = new TypeToken<ArrayList<PullRequest>>() {
-        }.getType();
-        List<PullRequest> list = new Gson().fromJson(new InputStreamReader(stream), listType);
-
-        System.out.println(list.size());
-        System.out.println(list);
-    }
-
-    @Test
-    public void parseLinkRspHeader() {
-        String s = "<https://api.github.com/repositories/31006158/pulls?sort=updated&direction=desc&page=2>; rel=\"next\", <https://api.github.com/repositories/31006158/pulls?sort=updated&direction=desc&page=45>; rel=\"last\"\n";
-        String nextLink = GitHubConnectionImpl.parseNextLinkFromLinkRspHeader(s);
-
-        assertEquals("https://api.github.com/repositories/31006158/pulls?sort=updated&direction=desc&page=2", nextLink);
-    }
-
-}
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java
index 8755a59..c8037cb 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java
@@ -23,15 +23,15 @@ import java.io.File;
 import java.util.Properties;
 import org.apache.ignite.ci.HelperConfig;
 import org.apache.ignite.ci.github.PullRequest;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
-import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
-import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
+import org.apache.ignite.githubignited.IGitHubConnIgnited;
+import org.apache.ignite.githubignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
 import org.apache.ignite.ci.jira.pure.IJiraIntegration;
 import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
 import org.apache.ignite.ci.tcbot.conf.TcBotJsonConfig;
+import org.apache.ignite.githubservice.IGitHubConnection;
+import org.apache.ignite.githubservice.IGitHubConnectionProvider;
 import org.apache.ignite.tcbot.common.conf.IGitHubConfig;
 import org.apache.ignite.tcbot.common.conf.IJiraServerConfig;
 import org.apache.ignite.tcbot.engine.conf.ITcBotConfig;
diff --git a/jetty-launcher/build.gradle b/jetty-launcher/build.gradle
index 120d87f..edfb84d 100644
--- a/jetty-launcher/build.gradle
+++ b/jetty-launcher/build.gradle
@@ -20,11 +20,7 @@ apply plugin: 'application'
 
 sourceCompatibility = '1.8'
 targetCompatibility = '1.8'
-
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
+ 
 
 mainClassName = 'org.apache.ignite.ci.TcHelperJettyLauncher'
 applicationDefaultJvmArgs = ["-Dteamcity.helper.home=../work",
diff --git a/settings.gradle b/settings.gradle
index b421c7c..67a2d87 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -5,5 +5,7 @@ include 'tcbot-common'
 include 'tcbot-persistence'
 include 'tcbot-teamcity'
 include 'tcbot-teamcity-ignited'
+include 'tcbot-github'
+include 'tcbot-github-ignited'
 include 'tcbot-engine'
 
diff --git a/tcbot-common/build.gradle b/tcbot-common/build.gradle
index 4b3cb08..dc1148b 100644
--- a/tcbot-common/build.gradle
+++ b/tcbot-common/build.gradle
@@ -17,11 +17,6 @@
 
 apply plugin: 'java'
 
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
-
 dependencies {
     compile group: 'com.google.guava', name: 'guava', version: guavaVer
 
@@ -29,16 +24,14 @@ dependencies {
     //Apache License Version 2.0
     compile group: 'com.google.code.gson', name: 'gson', version: gsonVer
 
-    testCompile group: 'junit', name: 'junit', version: '4.12'
-    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.22.0'
-
     compile group: 'javax.inject', name: 'javax.inject', version: '1'
     compile group: 'com.google.inject', name: 'guice', version: '4.2.0'
 
     compile group: 'org.xerial.snappy', name: 'snappy-java', version: '1.1.7.2'
 
-    /// JAXB replacement for Java 11
+    //impl is used by TC module, only converters needed here
     compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
-    compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.0'
-    compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0'
+    
+    testCompile group: 'junit', name: 'junit', version: junitVer
+    testCompile group: 'org.mockito', name: 'mockito-core', version: mockitoVer
 }
diff --git a/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IDataSourcesConfigSupplier.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IDataSourcesConfigSupplier.java
index 9ef5b1f..1b399dd 100644
--- a/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IDataSourcesConfigSupplier.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IDataSourcesConfigSupplier.java
@@ -22,4 +22,6 @@ package org.apache.ignite.tcbot.common.conf;
  */
 public interface IDataSourcesConfigSupplier {
     public ITcServerConfig getTeamcityConfig(String srvCode);
+
+    public IGitHubConfig getGitConfig(String srvCode);
 }
diff --git a/tcbot-engine/build.gradle b/tcbot-engine/build.gradle
index 411db8d..bfac9d0 100644
--- a/tcbot-engine/build.gradle
+++ b/tcbot-engine/build.gradle
@@ -17,13 +17,9 @@
 
 apply plugin: 'java'
 
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
-
 dependencies {
     compile (project(":tcbot-persistence"));
-    compile (project(":tcbot-teamcity-ignited")); 
+    compile (project(":tcbot-teamcity-ignited"));
+    compile (project(":tcbot-github-ignited"));
 }
  
\ No newline at end of file
diff --git a/tcbot-github-ignited/README.md b/tcbot-github-ignited/README.md
new file mode 100644
index 0000000..e25096c
--- /dev/null
+++ b/tcbot-github-ignited/README.md
@@ -0,0 +1,3 @@
+TC Bot GitHub Ignited module
+--------------------------------
+Module for requests to Ingnite caches containing GitHub data
\ No newline at end of file
diff --git a/tcbot-teamcity-ignited/build.gradle b/tcbot-github-ignited/build.gradle
similarity index 90%
copy from tcbot-teamcity-ignited/build.gradle
copy to tcbot-github-ignited/build.gradle
index 41593b3..e780b09 100644
--- a/tcbot-teamcity-ignited/build.gradle
+++ b/tcbot-github-ignited/build.gradle
@@ -17,13 +17,8 @@
 
 apply plugin: 'java'
 
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
-
 dependencies {
-    compile (project(":tcbot-teamcity"));
+    compile (project(":tcbot-github"));
     compile (project(":tcbot-persistence"));
 }
  
\ No newline at end of file
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubConnIgnitedImpl.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
rename to tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubConnIgnitedImpl.java
index 3415a83..21214ef 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
+++ b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubConnIgnitedImpl.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.ignited;
+package org.apache.ignite.githubignited;
 
 import java.util.HashSet;
 import java.util.List;
@@ -25,21 +25,21 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
+import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.inject.Inject;
 import javax.inject.Provider;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.ci.db.TcHelperDb;
+import org.apache.ignite.githubservice.IGitHubConnection;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.tcbot.common.interceptor.MonitoredTask;
+import org.apache.ignite.tcbot.persistence.CacheConfigs;
 import org.apache.ignite.tcbot.persistence.scheduler.IScheduler;
 import org.apache.ignite.ci.github.GitHubBranchKey;
 import org.apache.ignite.ci.github.GitHubBranchShort;
 import org.apache.ignite.ci.github.PullRequest;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
 import org.apache.ignite.tcbot.common.conf.IGitHubConfig;
-import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -86,8 +86,8 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
         srvIdMaskHigh = Math.abs(srvCode.hashCode());
 
         Ignite ignite = igniteProvider.get();
-        prCache = ignite.getOrCreateCache(TcHelperDb.getCache8PartsConfig(GIT_HUB_PR));
-        branchCache = ignite.getOrCreateCache(TcHelperDb.getCache8PartsConfig(GIT_HUB_BRANCHES));
+        prCache = ignite.getOrCreateCache(CacheConfigs.getCache8PartsConfig(GIT_HUB_PR));
+        branchCache = ignite.getOrCreateCache(CacheConfigs.getCache8PartsConfig(GIT_HUB_BRANCHES));
     }
 
     /** {@inheritDoc} */
@@ -148,7 +148,7 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
      * @param taskName Task name.
      * @return Task name concatenated with server name.
      */
-    @NotNull
+    @Nonnull
     private String taskName(String taskName) {
         return IGitHubConnIgnited.class.getSimpleName() + "." + taskName + "." + srvCode;
     }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubIgnitedModule.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java
rename to tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubIgnitedModule.java
index 22c39f9..9c19965 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java
+++ b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubIgnitedModule.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.ignited;
+package org.apache.ignite.githubignited;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.internal.SingletonScope;
-import org.apache.ignite.ci.github.pure.GitHubIntegrationModule;
+import org.apache.ignite.githubservice.GitHubIntegrationModule;
 
 /**
  * Requires {@link org.apache.ignite.ci.di.scheduler.SchedulerModule} to be installed
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubIgnitedProvImpl.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
rename to tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubIgnitedProvImpl.java
index cf8fbb0..99e8a2d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
+++ b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/GitHubIgnitedProvImpl.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.ignited;
+package org.apache.ignite.githubignited;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
@@ -24,8 +24,8 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import javax.inject.Inject;
 import javax.inject.Provider;
-import org.apache.ignite.ci.github.pure.IGitHubConnection;
-import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
+import org.apache.ignite.githubservice.IGitHubConnection;
+import org.apache.ignite.githubservice.IGitHubConnectionProvider;
 import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
 
 class GitHubIgnitedProvImpl implements IGitHubConnIgnitedProvider {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/IGitHubConnIgnited.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java
rename to tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/IGitHubConnIgnited.java
index 125cc37..1ceb322 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java
+++ b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/IGitHubConnIgnited.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.ignited;
+package org.apache.ignite.githubignited;
 
 import java.util.List;
 import org.apache.ignite.ci.github.PullRequest;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnitedProvider.java b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/IGitHubConnIgnitedProvider.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnitedProvider.java
rename to tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/IGitHubConnIgnitedProvider.java
index 729e77e..e1a94a8 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnitedProvider.java
+++ b/tcbot-github-ignited/src/main/java/org/apache/ignite/githubignited/IGitHubConnIgnitedProvider.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.ignited;
+package org.apache.ignite.githubignited;
 
 /**
  *
diff --git a/tcbot-github/README.md b/tcbot-github/README.md
new file mode 100644
index 0000000..c1322e4
--- /dev/null
+++ b/tcbot-github/README.md
@@ -0,0 +1,3 @@
+TC Bot GitHub (service) module
+--------------------------------
+Module for pure (non cached) requests to GitHub service
\ No newline at end of file
diff --git a/tcbot-engine/build.gradle b/tcbot-github/build.gradle
similarity index 73%
copy from tcbot-engine/build.gradle
copy to tcbot-github/build.gradle
index 411db8d..1dd6eba 100644
--- a/tcbot-engine/build.gradle
+++ b/tcbot-github/build.gradle
@@ -17,13 +17,12 @@
 
 apply plugin: 'java'
 
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
-
 dependencies {
+    compile (project(":tcbot-common"));
+    // GitHub integration shares entries for pure and Ignited connection, so persistence module is here for interfaces/annotations
     compile (project(":tcbot-persistence"));
-    compile (project(":tcbot-teamcity-ignited")); 
+    
+    testCompile group: 'junit', name: 'junit', version: junitVer
+    testCompile group: 'org.mockito', name: 'mockito-core', version: mockitoVer
 }
  
\ No newline at end of file
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
similarity index 99%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
rename to tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
index 804fe65..9359342 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
@@ -16,9 +16,10 @@
  */
 package org.apache.ignite.ci.github;
 
-import java.util.Objects;
 import org.apache.ignite.tcbot.persistence.Persisted;
 
+import java.util.Objects;
+
 @Persisted
 public class GitHubBranch {
     /** Label. */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranchKey.java b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranchKey.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranchKey.java
rename to tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranchKey.java
index e3abf77..976bf63 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranchKey.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranchKey.java
@@ -17,9 +17,10 @@
 package org.apache.ignite.ci.github;
 
 import com.google.common.base.Strings;
-import java.util.Objects;
 import org.apache.ignite.tcbot.persistence.Persisted;
-import org.jetbrains.annotations.NotNull;
+
+import javax.annotation.Nonnull;
+import java.util.Objects;
 
 @Persisted
 public class GitHubBranchKey implements Comparable<GitHubBranchKey> {
@@ -63,7 +64,7 @@ public class GitHubBranchKey implements Comparable<GitHubBranchKey> {
     }
 
     /** {@inheritDoc} */
-    @Override public int compareTo(@NotNull GitHubBranchKey o) {
+    @Override public int compareTo(@Nonnull GitHubBranchKey o) {
         int compare = Integer.compare(srvId, o.srvId());
         if (compare != 0)
             return compare;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranchShort.java b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranchShort.java
similarity index 99%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranchShort.java
rename to tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranchShort.java
index 496b4ce..bf3a31d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranchShort.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubBranchShort.java
@@ -16,9 +16,10 @@
  */
 package org.apache.ignite.ci.github;
 
-import java.util.Objects;
 import org.apache.ignite.tcbot.persistence.Persisted;
 
+import java.util.Objects;
+
 /**
  *
  */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubCommit.java b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubCommit.java
similarity index 99%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubCommit.java
rename to tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubCommit.java
index 7cad8cf..3d14983 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubCommit.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubCommit.java
@@ -16,9 +16,10 @@
  */
 package org.apache.ignite.ci.github;
 
-import java.util.Objects;
 import org.apache.ignite.tcbot.persistence.Persisted;
 
+import java.util.Objects;
+
 @Persisted
 public class GitHubCommit {
     /** Sha of the commit. */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubUser.java b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubUser.java
similarity index 99%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubUser.java
rename to tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubUser.java
index 767dd8f..71510e0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubUser.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/ci/github/GitHubUser.java
@@ -17,9 +17,10 @@
 package org.apache.ignite.ci.github;
 
 import com.google.gson.annotations.SerializedName;
-import java.util.Objects;
 import org.apache.ignite.tcbot.persistence.Persisted;
 
+import java.util.Objects;
+
 @Persisted
 public class GitHubUser {
     @SerializedName("login") private String login;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java b/tcbot-github/src/main/java/org/apache/ignite/ci/github/PullRequest.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java
rename to tcbot-github/src/main/java/org/apache/ignite/ci/github/PullRequest.java
index 24a1364..84b338b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/ci/github/PullRequest.java
@@ -24,7 +24,8 @@ import java.util.Objects;
 
 import org.apache.ignite.tcbot.persistence.IVersionedEntity;
 import org.apache.ignite.tcbot.persistence.Persisted;
-import org.jetbrains.annotations.Nullable;
+
+import javax.annotation.Nullable;
 
 /**
  *
@@ -167,7 +168,7 @@ public class PullRequest implements IVersionedEntity {
         return LATEST_VERSION;
     }
 
-    @Nullable public String lastCommitShaShort() {
+    @Nullable  public String lastCommitShaShort() {
         String sha = head().sha();
 
         return Strings.isNullOrEmpty(sha) ? null : sha.substring(0, INCLUDE_SHORT_VER);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java b/tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubCachingProvider.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
rename to tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubCachingProvider.java
index ea73be2..d352442 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubCachingProvider.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.pure;
+package org.apache.ignite.githubservice;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java b/tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubConnectionImpl.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
rename to tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubConnectionImpl.java
index 8d5a41e..832cf2f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubConnectionImpl.java
@@ -14,24 +14,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.pure;
+package org.apache.ignite.githubservice;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import org.apache.ignite.tcbot.common.conf.IDataSourcesConfigSupplier;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.ci.github.GitHubBranchShort;
 import org.apache.ignite.ci.github.PullRequest;
 import org.apache.ignite.tcbot.common.conf.IGitHubConfig;
-import org.apache.ignite.tcbot.engine.conf.ITcBotConfig;
 import org.apache.ignite.tcbot.common.util.HttpUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.inject.Inject;
 import java.io.IOException;
 import java.io.InputStream;
@@ -54,7 +53,7 @@ class GitHubConnectionImpl implements IGitHubConnection {
 
     /** Config. */
     @Inject
-    private ITcBotConfig cfg;
+    private IDataSourcesConfigSupplier cfg;
 
     /** Service (server) code. */
     private String srvCode;
@@ -152,7 +151,7 @@ class GitHubConnectionImpl implements IGitHubConnection {
         return readOnePage(outLinkNext, url, rspHeaders, tok);
     }
 
-    @NotNull public String getApiUrlMandatory() {
+    @Nonnull public String getApiUrlMandatory() {
         String gitApiUrl = config().gitApiUrl();
 
         Preconditions.checkState(!isNullOrEmpty(gitApiUrl), "Git API URL is not configured for this server.");
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubIntegrationModule.java b/tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubIntegrationModule.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubIntegrationModule.java
rename to tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubIntegrationModule.java
index 8b2911e..63090ad 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubIntegrationModule.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/githubservice/GitHubIntegrationModule.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.pure;
+package org.apache.ignite.githubservice;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.internal.SingletonScope;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/IGitHubConnection.java b/tcbot-github/src/main/java/org/apache/ignite/githubservice/IGitHubConnection.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/IGitHubConnection.java
rename to tcbot-github/src/main/java/org/apache/ignite/githubservice/IGitHubConnection.java
index 8f8f420..e806f37 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/IGitHubConnection.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/githubservice/IGitHubConnection.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.pure;
+package org.apache.ignite.githubservice;
 
 import com.google.common.base.Strings;
 import java.util.List;
@@ -23,9 +23,9 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.apache.ignite.ci.github.GitHubBranchShort;
 import org.apache.ignite.ci.github.PullRequest;
 import org.apache.ignite.tcbot.common.conf.IGitHubConfig;
-import org.jetbrains.annotations.Nullable;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
  * GitHub pure connection
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/IGitHubConnectionProvider.java b/tcbot-github/src/main/java/org/apache/ignite/githubservice/IGitHubConnectionProvider.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/IGitHubConnectionProvider.java
rename to tcbot-github/src/main/java/org/apache/ignite/githubservice/IGitHubConnectionProvider.java
index 3da468f..e089fc1 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/IGitHubConnectionProvider.java
+++ b/tcbot-github/src/main/java/org/apache/ignite/githubservice/IGitHubConnectionProvider.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.pure;
+package org.apache.ignite.githubservice;
 
 public interface IGitHubConnectionProvider {
     /**
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java b/tcbot-github/src/test/java/org/apache/ignite/githubservice/GitHubPrsParseTest.java
similarity index 95%
copy from ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java
copy to tcbot-github/src/test/java/org/apache/ignite/githubservice/GitHubPrsParseTest.java
index 8a82657..e311008 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/github/pure/GitHubPrsParseTest.java
+++ b/tcbot-github/src/test/java/org/apache/ignite/githubservice/GitHubPrsParseTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ignite.ci.github.pure;
+package org.apache.ignite.githubservice;
 
 import com.google.common.base.Preconditions;
 import com.google.gson.Gson;
@@ -25,6 +25,7 @@ import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.ignite.ci.github.PullRequest;
+import org.apache.ignite.githubservice.GitHubConnectionImpl;
 import org.junit.Test;
 
 import static junit.framework.TestCase.assertEquals;
diff --git a/tcbot-teamcity-ignited/build.gradle b/tcbot-teamcity-ignited/build.gradle
index 41593b3..8f6c5eb 100644
--- a/tcbot-teamcity-ignited/build.gradle
+++ b/tcbot-teamcity-ignited/build.gradle
@@ -16,12 +16,7 @@
  */
 
 apply plugin: 'java'
-
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
-
+ 
 dependencies {
     compile (project(":tcbot-teamcity"));
     compile (project(":tcbot-persistence"));
diff --git a/tcbot-teamcity/build.gradle b/tcbot-teamcity/build.gradle
index 4ed3806..df805fb 100644
--- a/tcbot-teamcity/build.gradle
+++ b/tcbot-teamcity/build.gradle
@@ -16,17 +16,12 @@
  */
 
 apply plugin: 'java'
-
-repositories {
-    mavenCentral()
-    mavenLocal()
-}
+ 
 
 dependencies {
     compile (project(":tcbot-common"));
 
-    /// JAXB replacement for Java 11
-    compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+    /// JAXB replacement for Java 11, API is defined in common
     compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.0'
     compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0'
 }