module Creategem::Git

Public Instance Methods

create_local_git_repository() click to toggle source
# File lib/creategem/git.rb, line 7
def create_local_git_repository
  say "Create local git repository", :green
  run "git init"
  run "git add ."
  run "git commit -aqm 'Initial commit'"
end
create_remote_git_repository(repository) click to toggle source
# File lib/creategem/git.rb, line 14
def create_remote_git_repository(repository)
  say "Create remote #{repository.vendor} repository", :green
  if repository.github?
    token = ask("Please enter your Github personal access token", echo: false)
    run "curl --request POST --user #{repository.user}:#{token} https://api.github.com/user/repos -d '{\"name\":\"#{repository.name}\", \"private\":#{repository.private?}}'"
  else # bitbucket
    password = ask("Please enter yout Bitbucket password", echo: false)
    fork_policy = repository.public? ? "allow_forks" : "no_public_forks"
    run "curl --request POST --user #{repository.user}:#{password} https://api.bitbucket.org/2.0/repositories/#{repository.user}/#{repository.name} -d '{\"scm\":\"git\", \"fork_policy\":\"#{fork_policy}\", \"is_private\":\"#{repository.private?}\"}'"
  end
  run "git remote add origin #{repository.origin}"
  say "Push initial commit to remote #{repository.vendor} repository", :green
  run "git push -u origin master"
end
gem_server_url(private) click to toggle source
# File lib/creategem/git.rb, line 39
def gem_server_url(private)
  if private
    git_config_key = "creategem.gemserver"
    url = ::Git.global_config(git_config_key)
    if url.nil? || url.empty?
      url = ask("What is the url of your geminabox server?")
      ::Git.global_config(git_config_key, url)
    end
    url
  else
    "https://rubygems.org"
  end
end
git_repository_user_name(vendor) click to toggle source
# File lib/creategem/git.rb, line 29
def git_repository_user_name(vendor)
  git_config_key = "creategem.#{vendor}user"
  user = ::Git.global_config(git_config_key)
  if user.nil? || user.empty?
    user = ask("What is your #{vendor} user name?")
    ::Git.global_config(git_config_key, user)
  end
  user
end