diff --git a/erpnext/erpnext_integrations/__init__.py b/erpnext/erpnext_integrations/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/erpnext_integrations/__init__.py
diff --git a/erpnext/erpnext_integrations/connectors/__init__.py b/erpnext/erpnext_integrations/connectors/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/erpnext_integrations/connectors/__init__.py
diff --git a/erpnext/erpnext_integrations/connectors/github_connection.py b/erpnext/erpnext_integrations/connectors/github_connection.py
new file mode 100644
index 0000000..ab7708d
--- /dev/null
+++ b/erpnext/erpnext_integrations/connectors/github_connection.py
@@ -0,0 +1,45 @@
+from __future__ import unicode_literals
+import frappe
+from frappe.data_migration.doctype.data_migration_connector.connectors.base import BaseConnection
+from github import Github
+
+class GithubConnection(BaseConnection):
+	def __init__(self, connector):
+		self.connector = connector
+
+		try:
+			password = self.get_password()
+		except frappe.AuthenticationError:
+			password = None
+
+		if self.connector.username and password:
+			self.connection = Github(self.connector.username, self.get_password())
+		else:
+			self.connection = Github()
+
+		self.name_field = 'id'
+
+	def insert(self, doctype, doc):
+		pass
+
+	def update(self, doctype, doc, migration_id):
+		pass
+
+	def delete(self, doctype, migration_id):
+		pass
+
+	def get(self, remote_objectname, fields=None, filters=None, start=0, page_length=10):
+		repo = filters.get('repo')
+
+		if remote_objectname == 'Milestone':
+			return self.get_milestones(repo, start, page_length)
+		if remote_objectname == 'Issue':
+			return self.get_issues(repo, start, page_length)
+
+	def get_milestones(self, repo, start=0, page_length=10):
+		_repo = self.connection.get_repo(repo)
+		return list(_repo.get_milestones()[start:start+page_length])
+
+	def get_issues(self, repo, start=0, page_length=10):
+		_repo = self.connection.get_repo(repo)
+		return list(_repo.get_issues()[start:start+page_length])
diff --git a/erpnext/erpnext_integrations/data_migration_mapping/__init__.py b/erpnext/erpnext_integrations/data_migration_mapping/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/erpnext_integrations/data_migration_mapping/__init__.py
diff --git a/erpnext/erpnext_integrations/data_migration_mapping/issue_to_task/__init__.py b/erpnext/erpnext_integrations/data_migration_mapping/issue_to_task/__init__.py
new file mode 100644
index 0000000..5f0f691
--- /dev/null
+++ b/erpnext/erpnext_integrations/data_migration_mapping/issue_to_task/__init__.py
@@ -0,0 +1,11 @@
+import frappe
+
+def pre_process(issue):
+
+	project = frappe.db.get_value('Project', filters={'project_name': issue.milestone})
+	return {
+		'title': issue.title,
+		'body': frappe.utils.to_html(issue.body or ''),
+		'state': issue.state.title(),
+		'project': project or ''
+	}
diff --git a/erpnext/erpnext_integrations/data_migration_mapping/issue_to_task/issue_to_task.json b/erpnext/erpnext_integrations/data_migration_mapping/issue_to_task/issue_to_task.json
new file mode 100644
index 0000000..e945ba2
--- /dev/null
+++ b/erpnext/erpnext_integrations/data_migration_mapping/issue_to_task/issue_to_task.json
@@ -0,0 +1,36 @@
+{
+ "condition": "{\"repo\":\"frappe/erpnext\"}", 
+ "creation": "2017-10-16 16:03:32.772191", 
+ "docstatus": 0, 
+ "doctype": "Data Migration Mapping", 
+ "fields": [
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "subject", 
+   "remote_fieldname": "title"
+  }, 
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "description", 
+   "remote_fieldname": "body"
+  }, 
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "status", 
+   "remote_fieldname": "state"
+  }
+ ], 
+ "idx": 0, 
+ "local_doctype": "Task", 
+ "local_primary_key": "name", 
+ "mapping_name": "Issue to Task", 
+ "mapping_type": "Pull", 
+ "migration_id_field": "github_sync_id", 
+ "modified": "2017-10-20 11:48:54.575993", 
+ "modified_by": "Administrator", 
+ "name": "Issue to Task", 
+ "owner": "Administrator", 
+ "page_length": 10, 
+ "remote_objectname": "Issue", 
+ "remote_primary_key": "id"
+}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/data_migration_mapping/milestone_to_project/__init__.py b/erpnext/erpnext_integrations/data_migration_mapping/milestone_to_project/__init__.py
new file mode 100644
index 0000000..212f81b
--- /dev/null
+++ b/erpnext/erpnext_integrations/data_migration_mapping/milestone_to_project/__init__.py
@@ -0,0 +1,6 @@
+def pre_process(milestone):
+	return {
+		'title': milestone.title,
+		'description': milestone.description,
+		'state': milestone.state.title()
+	}
diff --git a/erpnext/erpnext_integrations/data_migration_mapping/milestone_to_project/milestone_to_project.json b/erpnext/erpnext_integrations/data_migration_mapping/milestone_to_project/milestone_to_project.json
new file mode 100644
index 0000000..5a3e07e
--- /dev/null
+++ b/erpnext/erpnext_integrations/data_migration_mapping/milestone_to_project/milestone_to_project.json
@@ -0,0 +1,36 @@
+{
+ "condition": "{\"repo\": \"frappe/erpnext\"}", 
+ "creation": "2017-10-13 11:16:49.664925", 
+ "docstatus": 0, 
+ "doctype": "Data Migration Mapping", 
+ "fields": [
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "project_name", 
+   "remote_fieldname": "title"
+  }, 
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "notes", 
+   "remote_fieldname": "description"
+  }, 
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "status", 
+   "remote_fieldname": "state"
+  }
+ ], 
+ "idx": 0, 
+ "local_doctype": "Project", 
+ "local_primary_key": "project_name", 
+ "mapping_name": "Milestone to Project", 
+ "mapping_type": "Pull", 
+ "migration_id_field": "github_sync_id", 
+ "modified": "2017-10-20 11:48:54.552305", 
+ "modified_by": "Administrator", 
+ "name": "Milestone to Project", 
+ "owner": "Administrator", 
+ "page_length": 10, 
+ "remote_objectname": "Milestone", 
+ "remote_primary_key": "id"
+}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/data_migration_plan/github_sync/github_sync.json b/erpnext/erpnext_integrations/data_migration_plan/github_sync/github_sync.json
new file mode 100644
index 0000000..20eb387
--- /dev/null
+++ b/erpnext/erpnext_integrations/data_migration_plan/github_sync/github_sync.json
@@ -0,0 +1,22 @@
+{
+ "creation": "2017-10-13 11:16:53.600026", 
+ "docstatus": 0, 
+ "doctype": "Data Migration Plan", 
+ "idx": 0, 
+ "mappings": [
+  {
+   "enabled": 1, 
+   "mapping": "Milestone to Project"
+  }, 
+  {
+   "enabled": 1, 
+   "mapping": "Issue to Task"
+  }
+ ], 
+ "modified": "2017-10-20 11:48:54.496123", 
+ "modified_by": "Administrator", 
+ "module": "ERPNext Integrations", 
+ "name": "GitHub Sync", 
+ "owner": "Administrator", 
+ "plan_name": "GitHub Sync"
+}
\ No newline at end of file
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 5e9f6c7..79ded14 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -17,3 +17,4 @@
 Regional
 Healthcare
 Restaurant
+ERPNext Integrations
\ No newline at end of file
