Method: Gitlab::Git::Repository#mkdir
- Defined in:
- lib/gitlab_git/repository.rb
#mkdir(path, options = {}) ⇒ Object
Create a new directory with a .gitkeep file. Creates all required nested directories (i.e. mkdir -p behavior)
options should contain next structure:
author: {
email: '[email protected]',
name: 'Test User',
time: Time.now
},
committer: {
email: '[email protected]',
name: 'Test User',
time: Time.now
},
commit: {
message: 'Wow such commit',
branch: 'master',
update_ref: false
}
881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 |
# File 'lib/gitlab_git/repository.rb', line 881 def mkdir(path, = {}) # Check if this directory exists; if it does, then don't bother # adding .gitkeep file. ref = [:commit][:branch] path = PathHelper.normalize_path(path).to_s rugged_ref = rugged.ref(ref) raise InvalidRef.new("Invalid ref") if rugged_ref.nil? target_commit = rugged_ref.target raise InvalidRef.new("Invalid target commit") if target_commit.nil? entry = tree_entry(target_commit, path) if entry if entry[:type] == :blob raise InvalidBlobName.new("Directory already exists as a file") else raise InvalidBlobName.new("Directory already exists") end end [:file] = { content: '', path: "#{path}/.gitkeep", update: true } Blob.commit(self, ) end |