diff --git a/app/models/research/journal/article.rb b/app/models/research/journal/article.rb
index 896c54bcc1d38402822b94a04aa308c973139484..6dbbde9097d0ed07b5064f8c99de0e3102e20efe 100644
--- a/app/models/research/journal/article.rb
+++ b/app/models/research/journal/article.rb
@@ -32,13 +32,15 @@
 #  fk_rails_...  (updated_by_id => users.id)
 #
 class Research::Journal::Article < ApplicationRecord
+  include WithGithub
+
   belongs_to :university
   belongs_to :journal, foreign_key: :research_journal_id
   belongs_to :volume, foreign_key: :research_journal_volume_id, optional: true
   belongs_to :updated_by, class_name: 'User'
   has_and_belongs_to_many :researchers, class_name: 'Research::Researcher'
 
-  after_commit :publish_to_github
+  after_commit :update_researchers
 
   has_one_attached :pdf
 
@@ -58,22 +60,21 @@ class Research::Journal::Article < ApplicationRecord
 
   protected
 
-  def publish_to_github
-    github.publish  kind: :articles,
-                    file: "#{id}.md",
-                    title: title,
-                    data: ApplicationController.render(
-                      template: 'admin/research/journal/articles/jekyll',
-                      layout: false,
-                      assigns: { article: self }
-                    )
+  def github_path_generated
+    "_articles/#{id}.html"
+  end
+
+  def to_jekyll
+    ApplicationController.render(
+      template: 'admin/research/journal/articles/jekyll',
+      layout: false,
+      assigns: { article: self }
+    )
+  end
+
+  def update_researchers
     researchers.each do |researcher|
       researcher.publish_to_website(journal.website)
     end
-    github.send_file pdf, pdf_path if pdf.attached?
-  end
-
-  def github
-    @github ||= Github.with_site(journal.website)
   end
 end
diff --git a/app/models/research/researcher.rb b/app/models/research/researcher.rb
index 6b85efede27a16e94b22e46452cd9e03b07e7c62..3ff523338bc2cb62b8b605e98763ad3412e69f30 100644
--- a/app/models/research/researcher.rb
+++ b/app/models/research/researcher.rb
@@ -32,14 +32,9 @@ class Research::Researcher < ApplicationRecord
 
   def publish_to_website(website)
     github = Github.new website.access_token, website.repository
-    github.publish  kind: :authors,
-                    file: "#{ id }.md",
-                    title: to_s,
-                    data: ApplicationController.render(
-                      template: 'admin/research/researchers/jekyll',
-                      layout: false,
-                      assigns: { researcher: self }
-                    )
+    github.publish  path: "_authors/#{ id }.md",
+                    data: to_jekyll,
+                    commit: "[Researcher] Save #{to_s}"
   end
 
   def to_s
@@ -48,6 +43,14 @@ class Research::Researcher < ApplicationRecord
 
   protected
 
+  def to_jekyll
+    ApplicationController.render(
+      template: 'admin/research/researchers/jekyll',
+      layout: false,
+      assigns: { researcher: self }
+    )
+  end
+
   def publish_to_github
     websites.each { |website| publish_to_website(website) }
   end
diff --git a/app/services/github.rb b/app/services/github.rb
index 5f029c5d9b5c0db061680b7e867e1fe21103a445..ce50a1d6ead90eeff1c73ebed2a92432e9cd9a4e 100644
--- a/app/services/github.rb
+++ b/app/services/github.rb
@@ -10,22 +10,11 @@ class Github
     @repository = repository
   end
 
-  def publish(kind: nil, # Deprecated
-              file: nil, # Deprecated
-              title: nil, # Deprecated
-              path: nil,
+  def publish(path: nil,
               previous_path: nil,
               commit: nil,
               data:)
-    if path
-      local_path = "#{ tmp_directory }/#{ path }"
-      remote_file = path
-    else
-      # Deprecated
-      local_path = "#{ tmp_directory }/#{ file }"
-      remote_file = "_#{ kind }/#{ file }"
-      commit = "Save #{ title }"
-    end
+    local_path = "#{ tmp_directory }/#{ path }"
     Pathname(local_path).dirname.mkpath
     File.write local_path, data
     return if repository.blank?
@@ -33,10 +22,10 @@ class Github
       move_file previous_path, path
     end
     client.create_contents  repository,
-                            remote_file,
+                            path,
                             commit,
                             file: local_path,
-                            sha: file_sha(remote_file)
+                            sha: file_sha(path)
   rescue
     # byebug
   end