Module: Creategem::Git

Includes:
Thor::Actions
Included in:
CLI
Defined in:
lib/creategem/git.rb

Instance Method Summary collapse

Instance Method Details

#create_local_git_repositoryObject



7
8
9
10
11
12
# 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) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# 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) ⇒ Object



29
30
31
32
33
34
35
36
37
# 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