Merge branch 'zj-gitignore-dropdown'
This commit is contained in:
commit
ec86644545
196 changed files with 4141 additions and 41 deletions
|
@ -71,6 +71,7 @@ v 8.8.0 (unreleased)
|
|||
- Improve Issue formatting for the Slack Service (Jeroen van Baarsen)
|
||||
- Fixed advice on invalid permissions on upload path !2948 (Ludovic Perrine)
|
||||
- Allows MR authors to have the source branch removed when merging the MR. !2801 (Jeroen Jacobs)
|
||||
- When creating a .gitignore file a dropdown with templates will be provided
|
||||
|
||||
v 8.7.6
|
||||
- Fix links on wiki pages for relative url setups. !4131 (Artem Sidorenko)
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
@Api =
|
||||
groups_path: "/api/:version/groups.json"
|
||||
group_path: "/api/:version/groups/:id.json"
|
||||
namespaces_path: "/api/:version/namespaces.json"
|
||||
group_projects_path: "/api/:version/groups/:id/projects.json"
|
||||
projects_path: "/api/:version/projects.json"
|
||||
labels_path: "/api/:version/projects/:id/labels"
|
||||
license_path: "/api/:version/licenses/:key"
|
||||
groupsPath: "/api/:version/groups.json"
|
||||
groupPath: "/api/:version/groups/:id.json"
|
||||
namespacesPath: "/api/:version/namespaces.json"
|
||||
groupProjectsPath: "/api/:version/groups/:id/projects.json"
|
||||
projectsPath: "/api/:version/projects.json"
|
||||
labelsPath: "/api/:version/projects/:id/labels"
|
||||
licensePath: "/api/:version/licenses/:key"
|
||||
gitignorePath: "/api/:version/gitignores/:key"
|
||||
|
||||
group: (group_id, callback) ->
|
||||
url = Api.buildUrl(Api.group_path)
|
||||
url = Api.buildUrl(Api.groupPath)
|
||||
url = url.replace(':id', group_id)
|
||||
|
||||
$.ajax(
|
||||
|
@ -22,7 +23,7 @@
|
|||
# Return groups list. Filtered by query
|
||||
# Only active groups retrieved
|
||||
groups: (query, skip_ldap, callback) ->
|
||||
url = Api.buildUrl(Api.groups_path)
|
||||
url = Api.buildUrl(Api.groupsPath)
|
||||
|
||||
$.ajax(
|
||||
url: url
|
||||
|
@ -36,7 +37,7 @@
|
|||
|
||||
# Return namespaces list. Filtered by query
|
||||
namespaces: (query, callback) ->
|
||||
url = Api.buildUrl(Api.namespaces_path)
|
||||
url = Api.buildUrl(Api.namespacesPath)
|
||||
|
||||
$.ajax(
|
||||
url: url
|
||||
|
@ -50,7 +51,7 @@
|
|||
|
||||
# Return projects list. Filtered by query
|
||||
projects: (query, order, callback) ->
|
||||
url = Api.buildUrl(Api.projects_path)
|
||||
url = Api.buildUrl(Api.projectsPath)
|
||||
|
||||
$.ajax(
|
||||
url: url
|
||||
|
@ -64,7 +65,7 @@
|
|||
callback(projects)
|
||||
|
||||
newLabel: (project_id, data, callback) ->
|
||||
url = Api.buildUrl(Api.labels_path)
|
||||
url = Api.buildUrl(Api.labelsPath)
|
||||
url = url.replace(':id', project_id)
|
||||
|
||||
data.private_token = gon.api_token
|
||||
|
@ -80,7 +81,7 @@
|
|||
|
||||
# Return group projects list. Filtered by query
|
||||
groupProjects: (group_id, query, callback) ->
|
||||
url = Api.buildUrl(Api.group_projects_path)
|
||||
url = Api.buildUrl(Api.groupProjectsPath)
|
||||
url = url.replace(':id', group_id)
|
||||
|
||||
$.ajax(
|
||||
|
@ -95,7 +96,7 @@
|
|||
|
||||
# Return text for a specific license
|
||||
licenseText: (key, data, callback) ->
|
||||
url = Api.buildUrl(Api.license_path).replace(':key', key)
|
||||
url = Api.buildUrl(Api.licensePath).replace(':key', key)
|
||||
|
||||
$.ajax(
|
||||
url: url
|
||||
|
@ -103,6 +104,12 @@
|
|||
).done (license) ->
|
||||
callback(license)
|
||||
|
||||
gitignoreText: (key, callback) ->
|
||||
url = Api.buildUrl(Api.gitignorePath).replace(':key', key)
|
||||
|
||||
$.get url, (gitignore) ->
|
||||
callback(gitignore)
|
||||
|
||||
buildUrl: (url) ->
|
||||
url = gon.relative_url_root + url if gon.relative_url_root?
|
||||
return url.replace(':version', gon.api_version)
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
class @BlobGitignoreSelector
|
||||
constructor: (opts) ->
|
||||
{
|
||||
@dropdown
|
||||
@editor
|
||||
@$wrapper = @dropdown.closest('.gitignore-selector')
|
||||
@$filenameInput = $('#file_name')
|
||||
@data = @dropdown.data('filenames')
|
||||
} = opts
|
||||
|
||||
@dropdown.glDropdown(
|
||||
data: @data,
|
||||
filterable: true,
|
||||
selectable: true,
|
||||
search:
|
||||
fields: ['name']
|
||||
clicked: @onClick
|
||||
text: (gitignore) ->
|
||||
gitignore.name
|
||||
)
|
||||
|
||||
@toggleGitignoreSelector()
|
||||
@bindEvents()
|
||||
|
||||
bindEvents: ->
|
||||
@$filenameInput
|
||||
.on 'keyup blur', (e) =>
|
||||
@toggleGitignoreSelector()
|
||||
|
||||
toggleGitignoreSelector: ->
|
||||
filename = @$filenameInput.val() or $('.editor-file-name').text().trim()
|
||||
@$wrapper.toggleClass 'hidden', filename isnt '.gitignore'
|
||||
|
||||
onClick: (item, el, e) =>
|
||||
e.preventDefault()
|
||||
@requestIgnoreFile(item.name)
|
||||
|
||||
requestIgnoreFile: (name) ->
|
||||
Api.gitignoreText name, @requestIgnoreFileSuccess.bind(@)
|
||||
|
||||
requestIgnoreFileSuccess: (gitignore) ->
|
||||
@editor.setValue(gitignore.content, 1)
|
||||
@editor.focus()
|
||||
|
||||
class @BlobGitignoreSelectors
|
||||
constructor: (opts) ->
|
||||
{
|
||||
@$dropdowns = $('.js-gitignore-selector')
|
||||
@editor
|
||||
} = opts
|
||||
|
||||
@$dropdowns.each (i, dropdown) =>
|
||||
$dropdown = $(dropdown)
|
||||
|
||||
new BlobGitignoreSelector(
|
||||
dropdown: $dropdown,
|
||||
editor: @editor
|
||||
)
|
|
@ -13,6 +13,7 @@ class @EditBlob
|
|||
|
||||
@initModePanesAndLinks()
|
||||
new BlobLicenseSelector(@editor)
|
||||
new BlobGitignoreSelectors(editor: @editor)
|
||||
|
||||
initModePanesAndLinks: ->
|
||||
@$editModePanes = $(".js-edit-mode-pane")
|
||||
|
|
|
@ -60,9 +60,36 @@ class GitLabDropdownFilter
|
|||
results = data
|
||||
|
||||
if search_text isnt ''
|
||||
results = fuzzaldrinPlus.filter(data, search_text,
|
||||
key: @options.keys
|
||||
)
|
||||
# When data is an array of objects therefore [object Array] e.g.
|
||||
# [
|
||||
# { prop: 'foo' },
|
||||
# { prop: 'baz' }
|
||||
# ]
|
||||
if _.isArray(data)
|
||||
results = fuzzaldrinPlus.filter(data, search_text,
|
||||
key: @options.keys
|
||||
)
|
||||
else
|
||||
# If data is grouped therefore an [object Object]. e.g.
|
||||
# {
|
||||
# groupName1: [
|
||||
# { prop: 'foo' },
|
||||
# { prop: 'baz' }
|
||||
# ],
|
||||
# groupName2: [
|
||||
# { prop: 'abc' },
|
||||
# { prop: 'def' }
|
||||
# ]
|
||||
# }
|
||||
if gl.utils.isObject data
|
||||
results = {}
|
||||
for key, group of data
|
||||
tmp = fuzzaldrinPlus.filter(group, search_text,
|
||||
key: @options.keys
|
||||
)
|
||||
|
||||
if tmp.length
|
||||
results[key] = tmp.map (item) -> item
|
||||
|
||||
@options.callback results
|
||||
else
|
||||
|
@ -141,8 +168,9 @@ class GitLabDropdown
|
|||
searchFields = if @options.search then @options.search.fields else [];
|
||||
|
||||
if @options.data
|
||||
# If data is an array
|
||||
if _.isArray @options.data
|
||||
# If we provided data
|
||||
# data could be an array of objects or a group of arrays
|
||||
if _.isObject(@options.data) and not _.isFunction(@options.data)
|
||||
@fullData = @options.data
|
||||
@parseData @options.data
|
||||
else
|
||||
|
@ -230,19 +258,33 @@ class GitLabDropdown
|
|||
parseData: (data) ->
|
||||
@renderedData = data
|
||||
|
||||
# Render each row
|
||||
html = $.map data, (obj) =>
|
||||
return @renderItem(obj)
|
||||
|
||||
if @options.filterable and data.length is 0
|
||||
# render no matching results
|
||||
html = [@noResults()]
|
||||
else
|
||||
# Handle array groups
|
||||
if gl.utils.isObject data
|
||||
html = []
|
||||
for name, groupData of data
|
||||
# Add header for each group
|
||||
html.push(@renderItem(header: name, name))
|
||||
|
||||
@renderData(groupData, name)
|
||||
.map (item) ->
|
||||
html.push item
|
||||
else
|
||||
# Render each row
|
||||
html = @renderData(data)
|
||||
|
||||
# Render the full menu
|
||||
full_html = @renderMenu(html.join(""))
|
||||
|
||||
@appendMenu(full_html)
|
||||
|
||||
renderData: (data, group = false) ->
|
||||
data.map (obj, index) =>
|
||||
return @renderItem(obj, group, index)
|
||||
|
||||
shouldPropagate: (e) =>
|
||||
if @options.multiSelect
|
||||
$target = $(e.target)
|
||||
|
@ -299,11 +341,10 @@ class GitLabDropdown
|
|||
selector = '.dropdown-content'
|
||||
if @dropdown.find(".dropdown-toggle-page").length
|
||||
selector = ".dropdown-page-one .dropdown-content"
|
||||
|
||||
$(selector, @dropdown).html html
|
||||
|
||||
# Render the row
|
||||
renderItem: (data) ->
|
||||
renderItem: (data, group = false, index = false) ->
|
||||
html = ""
|
||||
|
||||
# Divider
|
||||
|
@ -346,8 +387,13 @@ class GitLabDropdown
|
|||
if @highlight
|
||||
text = @highlightTextMatches(text, @filterInput.val())
|
||||
|
||||
if group
|
||||
groupAttrs = "data-group='#{group}' data-index='#{index}'"
|
||||
else
|
||||
groupAttrs = ''
|
||||
|
||||
html = "<li>
|
||||
<a href='#{url}' class='#{cssClass}'>
|
||||
<a href='#{url}' #{groupAttrs} class='#{cssClass}'>
|
||||
#{text}
|
||||
</a>
|
||||
</li>"
|
||||
|
@ -377,9 +423,15 @@ class GitLabDropdown
|
|||
|
||||
rowClicked: (el) ->
|
||||
fieldName = @options.fieldName
|
||||
selectedIndex = el.parent().index()
|
||||
if @renderedData
|
||||
selectedObject = @renderedData[selectedIndex]
|
||||
groupName = el.data('group')
|
||||
if groupName
|
||||
selectedIndex = el.data('index')
|
||||
selectedObject = @renderedData[groupName][selectedIndex]
|
||||
else
|
||||
selectedIndex = el.closest('li').index()
|
||||
selectedObject = @renderedData[selectedIndex]
|
||||
|
||||
value = if @options.id then @options.id(selectedObject, el) else selectedObject.id
|
||||
field = @dropdown.parent().find("input[name='#{fieldName}'][value='#{value}']")
|
||||
if el.hasClass(ACTIVE_CLASS)
|
||||
|
|
9
app/assets/javascripts/lib/type_utility.js.coffee
Normal file
9
app/assets/javascripts/lib/type_utility.js.coffee
Normal file
|
@ -0,0 +1,9 @@
|
|||
((w) ->
|
||||
|
||||
w.gl ?= {}
|
||||
w.gl.utils ?= {}
|
||||
|
||||
w.gl.utils.isObject = (obj) ->
|
||||
obj? and (obj.constructor is Object)
|
||||
|
||||
) window
|
|
@ -23,7 +23,7 @@
|
|||
.file-title {
|
||||
@extend .monospace;
|
||||
|
||||
line-height: 42px;
|
||||
line-height: 35px;
|
||||
padding-top: 7px;
|
||||
padding-bottom: 7px;
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
|||
|
||||
.editor-file-name {
|
||||
@extend .monospace;
|
||||
|
||||
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
@ -59,7 +59,22 @@
|
|||
}
|
||||
|
||||
.encoding-selector,
|
||||
.license-selector {
|
||||
.license-selector,
|
||||
.gitignore-selector {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
font-family: $regular_font;
|
||||
}
|
||||
|
||||
.gitignore-selector {
|
||||
|
||||
.dropdown {
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.dropdown-menu-toggle {
|
||||
vertical-align: top;
|
||||
width: 220px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -184,4 +184,14 @@ module BlobHelper
|
|||
Other: licenses.reject(&:featured).map { |license| [license.name, license.key] }
|
||||
}
|
||||
end
|
||||
|
||||
def gitignore_names
|
||||
return @gitignore_names if defined?(@gitignore_names)
|
||||
|
||||
@gitignore_names = {
|
||||
Global: Gitlab::Gitignore.global.map { |gitignore| { name: gitignore.name } },
|
||||
# Note that the key here doesn't cover it really
|
||||
Languages: Gitlab::Gitignore.languages_frameworks.map{ |gitignore| { name: gitignore.name } }
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -245,7 +245,7 @@ class Repository
|
|||
def cache_keys
|
||||
%i(size branch_names tag_names commit_count
|
||||
readme version contribution_guide changelog
|
||||
license_blob license_key)
|
||||
license_blob license_key gitignore)
|
||||
end
|
||||
|
||||
def build_cache
|
||||
|
@ -256,6 +256,10 @@ class Repository
|
|||
end
|
||||
end
|
||||
|
||||
def expire_gitignore
|
||||
cache.expire(:gitignore)
|
||||
end
|
||||
|
||||
def expire_tags_cache
|
||||
cache.expire(:tag_names)
|
||||
@tags = nil
|
||||
|
@ -472,9 +476,7 @@ class Repository
|
|||
|
||||
def changelog
|
||||
cache.fetch(:changelog) do
|
||||
tree(:head).blobs.find do |file|
|
||||
file.name =~ /\A(changelog|history|changes|news)/i
|
||||
end
|
||||
file_on_head(/\A(changelog|history|changes|news)/i)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -482,9 +484,7 @@ class Repository
|
|||
return nil unless head_exists?
|
||||
|
||||
cache.fetch(:license_blob) do
|
||||
tree(:head).blobs.find do |file|
|
||||
file.name =~ /\A(licen[sc]e|copying)(\..+|\z)/i
|
||||
end
|
||||
file_on_head(/\A(licen[sc]e|copying)(\..+|\z)/i)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -496,6 +496,14 @@ class Repository
|
|||
end
|
||||
end
|
||||
|
||||
def gitignore
|
||||
return nil if !exists? || empty?
|
||||
|
||||
cache.fetch(:gitignore) do
|
||||
file_on_head(/\A\.gitignore\z/)
|
||||
end
|
||||
end
|
||||
|
||||
def gitlab_ci_yml
|
||||
return nil unless head_exists?
|
||||
|
||||
|
@ -989,4 +997,8 @@ class Repository
|
|||
def head_exists?
|
||||
exists? && !empty? && !rugged.head_unborn?
|
||||
end
|
||||
|
||||
def file_on_head(regex)
|
||||
tree(:head).blobs.find { |file| file.name =~ regex }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
.license-selector.js-license-selector.hide
|
||||
= select_tag :license_type, grouped_options_for_select(licenses_for_select, @project.repository.license_key), include_blank: true, class: 'select2 license-select', data: {placeholder: 'Choose a license template', project: @project.name, fullname: @project.namespace.human_name}
|
||||
|
||||
.gitignore-selector.hidden
|
||||
= dropdown_tag("Choose a .gitignore template", options: { toggle_class: 'js-gitignore-selector', title: "Choose a template", filter: true, placeholder: "Filter", data: { filenames: gitignore_names } } )
|
||||
|
||||
.encoding-selector
|
||||
= select_tag :encoding, options_for_select([ "base64", "text" ], "text"), class: 'select2'
|
||||
|
||||
|
|
|
@ -15,10 +15,14 @@
|
|||
If you already have files you can push them using command line instructions below.
|
||||
%p
|
||||
Otherwise you can start with adding a
|
||||
= link_to "README", new_readme_path, class: 'underlined-link'
|
||||
= succeed ',' do
|
||||
= link_to "README", new_readme_path, class: 'underlined-link'
|
||||
a
|
||||
= succeed ',' do
|
||||
= link_to "LICENSE", add_special_file_path(@project, file_name: 'LICENSE'), class: 'underlined-link'
|
||||
or a
|
||||
= link_to "LICENSE", add_special_file_path(@project, file_name: 'LICENSE'), class: 'underlined-link'
|
||||
file to this project.
|
||||
= link_to '.gitignore', add_special_file_path(@project, file_name: '.gitignore'), class: 'underlined-link'
|
||||
to this project.
|
||||
|
||||
- if can?(current_user, :push_code, @project)
|
||||
%div{ class: container_class }
|
||||
|
|
|
@ -58,5 +58,6 @@ module API
|
|||
mount ::API::Runners
|
||||
mount ::API::Licenses
|
||||
mount ::API::Subscriptions
|
||||
mount ::API::Gitignores
|
||||
end
|
||||
end
|
||||
|
|
|
@ -457,5 +457,13 @@ module API
|
|||
expose(:limitations) { |license| license.meta['limitations'] }
|
||||
expose :content
|
||||
end
|
||||
|
||||
class GitignoresList < Grape::Entity
|
||||
expose :name
|
||||
end
|
||||
|
||||
class Gitignore < Grape::Entity
|
||||
expose :name, :content
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
29
lib/api/gitignores.rb
Normal file
29
lib/api/gitignores.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
module API
|
||||
class Gitignores < Grape::API
|
||||
|
||||
# Get the list of the available gitignore templates
|
||||
#
|
||||
# Example Request:
|
||||
# GET /gitignores
|
||||
get 'gitignores' do
|
||||
present Gitlab::Gitignore.all, with: Entities::GitignoresList
|
||||
end
|
||||
|
||||
# Get the text for a specific gitignore
|
||||
#
|
||||
# Parameters:
|
||||
# name (required) - The name of a license
|
||||
#
|
||||
# Example Request:
|
||||
# GET /gitignores/Elixir
|
||||
#
|
||||
get 'gitignores/:name' do
|
||||
required_attributes! [:name]
|
||||
|
||||
gitignore = Gitlab::Gitignore.find(params[:name])
|
||||
not_found!('.gitignore') unless gitignore
|
||||
|
||||
present gitignore, with: Entities::Gitignore
|
||||
end
|
||||
end
|
||||
end
|
56
lib/gitlab/gitignore.rb
Normal file
56
lib/gitlab/gitignore.rb
Normal file
|
@ -0,0 +1,56 @@
|
|||
module Gitlab
|
||||
class Gitignore
|
||||
FILTER_REGEX = /\.gitignore\z/.freeze
|
||||
|
||||
def initialize(path)
|
||||
@path = path
|
||||
end
|
||||
|
||||
def name
|
||||
File.basename(@path, '.gitignore')
|
||||
end
|
||||
|
||||
def content
|
||||
File.read(@path)
|
||||
end
|
||||
|
||||
class << self
|
||||
def all
|
||||
languages_frameworks + global
|
||||
end
|
||||
|
||||
def find(key)
|
||||
file_name = "#{key}.gitignore"
|
||||
|
||||
directory = select_directory(file_name)
|
||||
directory ? new(File.join(directory, file_name)) : nil
|
||||
end
|
||||
|
||||
def global
|
||||
files_for_folder(global_dir).map { |file| new(File.join(global_dir, file)) }
|
||||
end
|
||||
|
||||
def languages_frameworks
|
||||
files_for_folder(gitignore_dir).map { |file| new(File.join(gitignore_dir, file)) }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def select_directory(file_name)
|
||||
[gitignore_dir, global_dir].find { |dir| File.exist?(File.join(dir, file_name)) }
|
||||
end
|
||||
|
||||
def global_dir
|
||||
File.join(gitignore_dir, 'Global')
|
||||
end
|
||||
|
||||
def gitignore_dir
|
||||
Rails.root.join('vendor/gitignore')
|
||||
end
|
||||
|
||||
def files_for_folder(dir)
|
||||
Dir.glob("#{dir.to_s}/*.gitignore").map { |file| file.gsub(FILTER_REGEX, '') }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
46
lib/tasks/gitlab/update_gitignore.rake
Normal file
46
lib/tasks/gitlab/update_gitignore.rake
Normal file
|
@ -0,0 +1,46 @@
|
|||
namespace :gitlab do
|
||||
desc "GitLab | Update gitignore"
|
||||
task :update_gitignore do
|
||||
unless clone_gitignores
|
||||
puts "Cloning the gitignores failed".red
|
||||
return
|
||||
end
|
||||
|
||||
remove_unneeded_files(gitignore_directory)
|
||||
remove_unneeded_files(global_directory)
|
||||
|
||||
puts "Done".green
|
||||
end
|
||||
|
||||
def clone_gitignores
|
||||
FileUtils.rm_rf(gitignore_directory) if Dir.exist?(gitignore_directory)
|
||||
FileUtils.cd vendor_directory
|
||||
|
||||
system('git clone --depth=1 --branch=master https://github.com/github/gitignore.git')
|
||||
end
|
||||
|
||||
# Retain only certain files:
|
||||
# - The LICENSE, because we have to
|
||||
# - The sub dir global
|
||||
# - The gitignores themself
|
||||
# - Dir.entires returns also the entries '.' and '..'
|
||||
def remove_unneeded_files(path)
|
||||
Dir.foreach(path) do |file|
|
||||
FileUtils.rm_rf(File.join(path, file)) unless file =~ /(\.{1,2}|LICENSE|Global|\.gitignore)\z/
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def vendor_directory
|
||||
Rails.root.join('vendor')
|
||||
end
|
||||
|
||||
def gitignore_directory
|
||||
File.join(vendor_directory, 'gitignore')
|
||||
end
|
||||
|
||||
def global_directory
|
||||
File.join(gitignore_directory, 'Global')
|
||||
end
|
||||
end
|
30
spec/features/projects/files/gitignore_dropdown_spec.rb
Normal file
30
spec/features/projects/files/gitignore_dropdown_spec.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'User wants to add a .gitignore file', feature: true do
|
||||
include WaitForAjax
|
||||
|
||||
before do
|
||||
user = create(:user)
|
||||
project = create(:project)
|
||||
project.team << [user, :master]
|
||||
login_as user
|
||||
visit namespace_project_new_blob_path(project.namespace, project, 'master', file_name: '.gitignore')
|
||||
end
|
||||
|
||||
scenario 'user can see .gitignore dropdown' do
|
||||
expect(page).to have_css('.gitignore-selector')
|
||||
end
|
||||
|
||||
scenario 'user can pick a .gitignore file from the dropdown', js: true do
|
||||
find('.js-gitignore-selector').click
|
||||
wait_for_ajax
|
||||
within '.gitignore-selector' do
|
||||
find('.dropdown-input-field').set('rails')
|
||||
find('.dropdown-content li', text: 'Rails').click
|
||||
end
|
||||
wait_for_ajax
|
||||
|
||||
expect(page).to have_content('/.bundle')
|
||||
expect(page).to have_content('# Gemfile.lock, .ruby-version, .ruby-gemset')
|
||||
end
|
||||
end
|
|
@ -1,5 +1,6 @@
|
|||
#= require bootstrap
|
||||
#= require select2
|
||||
#= require lib/type_utility
|
||||
#= require gl_dropdown
|
||||
#= require api
|
||||
#= require project_select
|
||||
|
|
40
spec/lib/gitlab/gitignore_spec.rb
Normal file
40
spec/lib/gitlab/gitignore_spec.rb
Normal file
|
@ -0,0 +1,40 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::Gitignore do
|
||||
subject { Gitlab::Gitignore }
|
||||
|
||||
describe '.all' do
|
||||
it 'strips the gitignore suffix' do
|
||||
expect(subject.all.first.name).not_to end_with('.gitignore')
|
||||
end
|
||||
|
||||
it 'combines the globals and rest' do
|
||||
all = subject.all.map(&:name)
|
||||
|
||||
expect(all).to include('Vim')
|
||||
expect(all).to include('Ruby')
|
||||
end
|
||||
end
|
||||
|
||||
describe '.find' do
|
||||
it 'returns nil if the file does not exist' do
|
||||
expect(subject.find('mepmep-yadida')).to be nil
|
||||
end
|
||||
|
||||
it 'returns the Gitignore object of a valid file' do
|
||||
ruby = subject.find('Ruby')
|
||||
|
||||
expect(ruby).to be_a Gitlab::Gitignore
|
||||
expect(ruby.name).to eq('Ruby')
|
||||
end
|
||||
end
|
||||
|
||||
describe '#content' do
|
||||
it 'loads the full file' do
|
||||
gitignore = subject.new(Rails.root.join('vendor/gitignore/Ruby.gitignore'))
|
||||
|
||||
expect(gitignore.name).to eq 'Ruby'
|
||||
expect(gitignore.content).to start_with('*.gem')
|
||||
end
|
||||
end
|
||||
end
|
29
spec/requests/api/gitignores_spec.rb
Normal file
29
spec/requests/api/gitignores_spec.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe API::Gitignores, api: true do
|
||||
include ApiHelpers
|
||||
|
||||
describe 'Entity Gitignore' do
|
||||
before { get api('/gitignores/Ruby') }
|
||||
|
||||
it { expect(json_response['name']).to eq('Ruby') }
|
||||
it { expect(json_response['content']).to include('*.gem') }
|
||||
end
|
||||
|
||||
describe 'Entity GitignoresList' do
|
||||
before { get api('/gitignores') }
|
||||
|
||||
it { expect(json_response.first['name']).not_to be_nil }
|
||||
it { expect(json_response.first['content']).to be_nil }
|
||||
end
|
||||
|
||||
describe 'GET /gitignores' do
|
||||
it 'returns a list of available license templates' do
|
||||
get api('/gitignores')
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(json_response).to be_an Array
|
||||
expect(json_response.size).to be > 15
|
||||
end
|
||||
end
|
||||
end
|
19
vendor/gitignore/Actionscript.gitignore
vendored
Normal file
19
vendor/gitignore/Actionscript.gitignore
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Build and Release Folders
|
||||
bin/
|
||||
bin-debug/
|
||||
bin-release/
|
||||
[Oo]bj/ # FlashDevelop obj
|
||||
[Bb]in/ # FlashDevelop bin
|
||||
|
||||
# Other files and folders
|
||||
.settings/
|
||||
|
||||
# Executables
|
||||
*.swf
|
||||
*.air
|
||||
*.ipa
|
||||
*.apk
|
||||
|
||||
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
|
||||
# should NOT be excluded as they contain compiler settings and other important
|
||||
# information for Eclipse / Flash Builder.
|
5
vendor/gitignore/Ada.gitignore
vendored
Normal file
5
vendor/gitignore/Ada.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Object file
|
||||
*.o
|
||||
|
||||
# Ada Library Information
|
||||
*.ali
|
1
vendor/gitignore/Agda.gitignore
vendored
Normal file
1
vendor/gitignore/Agda.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.agdai
|
39
vendor/gitignore/Android.gitignore
vendored
Normal file
39
vendor/gitignore/Android.gitignore
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Built application files
|
||||
*.apk
|
||||
*.ap_
|
||||
|
||||
# Files for the Dalvik VM
|
||||
*.dex
|
||||
|
||||
# Java class files
|
||||
*.class
|
||||
|
||||
# Generated files
|
||||
bin/
|
||||
gen/
|
||||
out/
|
||||
|
||||
# Gradle files
|
||||
.gradle/
|
||||
build/
|
||||
|
||||
# Local configuration file (sdk path, etc)
|
||||
local.properties
|
||||
|
||||
# Proguard folder generated by Eclipse
|
||||
proguard/
|
||||
|
||||
# Log Files
|
||||
*.log
|
||||
|
||||
# Android Studio Navigation editor temp files
|
||||
.navigation/
|
||||
|
||||
# Android Studio captures folder
|
||||
captures/
|
||||
|
||||
# Intellij
|
||||
*.iml
|
||||
|
||||
# Keystore files
|
||||
*.jks
|
2
vendor/gitignore/AppEngine.gitignore
vendored
Normal file
2
vendor/gitignore/AppEngine.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Google App Engine generated folder
|
||||
appengine-generated/
|
3
vendor/gitignore/AppceleratorTitanium.gitignore
vendored
Normal file
3
vendor/gitignore/AppceleratorTitanium.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Build folder and log file
|
||||
build/
|
||||
build.log
|
13
vendor/gitignore/ArchLinuxPackages.gitignore
vendored
Normal file
13
vendor/gitignore/ArchLinuxPackages.gitignore
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
*.tar
|
||||
*.tar.*
|
||||
*.jar
|
||||
*.exe
|
||||
*.msi
|
||||
*.zip
|
||||
*.tgz
|
||||
*.log
|
||||
*.log.*
|
||||
*.sig
|
||||
|
||||
pkg/
|
||||
src/
|
18
vendor/gitignore/Autotools.gitignore
vendored
Normal file
18
vendor/gitignore/Autotools.gitignore
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
# http://www.gnu.org/software/automake
|
||||
|
||||
Makefile.in
|
||||
|
||||
# http://www.gnu.org/software/autoconf
|
||||
|
||||
/autom4te.cache
|
||||
/autoscan.log
|
||||
/autoscan-*.log
|
||||
/aclocal.m4
|
||||
/compile
|
||||
/config.h.in
|
||||
/configure
|
||||
/configure.scan
|
||||
/depcomp
|
||||
/install-sh
|
||||
/missing
|
||||
/stamp-h1
|
28
vendor/gitignore/C++.gitignore
vendored
Normal file
28
vendor/gitignore/C++.gitignore
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
33
vendor/gitignore/C.gitignore
vendored
Normal file
33
vendor/gitignore/C.gitignore
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Object files
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
# Debug files
|
||||
*.dSYM/
|
||||
*.su
|
12
vendor/gitignore/CFWheels.gitignore
vendored
Normal file
12
vendor/gitignore/CFWheels.gitignore
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
# unpacked plugin folders
|
||||
plugins/**/*
|
||||
|
||||
# files directory where uploads go
|
||||
files
|
||||
|
||||
# DBMigrate plugin: generated SQL
|
||||
db/sql
|
||||
|
||||
# AssetBundler plugin: generated bundles
|
||||
javascripts/bundles
|
||||
stylesheets/bundles
|
6
vendor/gitignore/CMake.gitignore
vendored
Normal file
6
vendor/gitignore/CMake.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
CMakeScripts
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
6
vendor/gitignore/CUDA.gitignore
vendored
Normal file
6
vendor/gitignore/CUDA.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
*.i
|
||||
*.ii
|
||||
*.gpu
|
||||
*.ptx
|
||||
*.cubin
|
||||
*.fatbin
|
25
vendor/gitignore/CakePHP.gitignore
vendored
Normal file
25
vendor/gitignore/CakePHP.gitignore
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# CakePHP 3
|
||||
|
||||
/vendor/*
|
||||
/config/app.php
|
||||
|
||||
/tmp/cache/models/*
|
||||
!/tmp/cache/models/empty
|
||||
/tmp/cache/persistent/*
|
||||
!/tmp/cache/persistent/empty
|
||||
/tmp/cache/views/*
|
||||
!/tmp/cache/views/empty
|
||||
/tmp/sessions/*
|
||||
!/tmp/sessions/empty
|
||||
/tmp/tests/*
|
||||
!/tmp/tests/empty
|
||||
|
||||
/logs/*
|
||||
!/logs/empty
|
||||
|
||||
# CakePHP 2
|
||||
|
||||
/app/tmp/*
|
||||
/app/Config/core.php
|
||||
/app/Config/database.php
|
||||
/vendors/*
|
9
vendor/gitignore/ChefCookbook.gitignore
vendored
Normal file
9
vendor/gitignore/ChefCookbook.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
.vagrant
|
||||
/cookbooks
|
||||
|
||||
# Bundler
|
||||
bin/*
|
||||
.bundle/*
|
||||
|
||||
.kitchen/
|
||||
.kitchen.local.yml
|
1
vendor/gitignore/Clojure.gitignore
vendored
Symbolic link
1
vendor/gitignore/Clojure.gitignore
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
Leiningen.gitignore
|
6
vendor/gitignore/CodeIgniter.gitignore
vendored
Normal file
6
vendor/gitignore/CodeIgniter.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
*/config/development
|
||||
*/logs/log-*.php
|
||||
!*/logs/index.html
|
||||
*/cache/*
|
||||
!*/cache/index.html
|
||||
!*/cache/.htaccess
|
3
vendor/gitignore/CommonLisp.gitignore
vendored
Normal file
3
vendor/gitignore/CommonLisp.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*.FASL
|
||||
*.fasl
|
||||
*.lisp-temp
|
6
vendor/gitignore/Composer.gitignore
vendored
Normal file
6
vendor/gitignore/Composer.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
composer.phar
|
||||
/vendor/
|
||||
|
||||
# Commit your application's lock file http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
|
||||
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
||||
# composer.lock
|
4
vendor/gitignore/Concrete5.gitignore
vendored
Normal file
4
vendor/gitignore/Concrete5.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
config/site.php
|
||||
files/cache/*
|
||||
files/tmp/*
|
||||
.htaccess
|
3
vendor/gitignore/Coq.gitignore
vendored
Normal file
3
vendor/gitignore/Coq.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*.vo
|
||||
*.glob
|
||||
*.v.d
|
3
vendor/gitignore/CraftCMS.gitignore
vendored
Normal file
3
vendor/gitignore/CraftCMS.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Craft Storage (cache) [http://buildwithcraft.com/help/craft-storage-gitignore]
|
||||
/craft/storage/*
|
||||
!/craft/storage/logo/*
|
20
vendor/gitignore/D.gitignore
vendored
Normal file
20
vendor/gitignore/D.gitignore
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Compiled Object files
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Compiled Static libraries
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
|
||||
# DUB
|
||||
.dub
|
||||
docs.json
|
||||
__dummy.html
|
5
vendor/gitignore/DM.gitignore
vendored
Normal file
5
vendor/gitignore/DM.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
*.dmb
|
||||
*.rsc
|
||||
*.int
|
||||
*.lk
|
||||
*.zip
|
27
vendor/gitignore/Dart.gitignore
vendored
Normal file
27
vendor/gitignore/Dart.gitignore
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
# See https://www.dartlang.org/tools/private-files.html
|
||||
|
||||
# Files and directories created by pub
|
||||
.buildlog
|
||||
.packages
|
||||
.project
|
||||
.pub/
|
||||
build/
|
||||
**/packages/
|
||||
|
||||
# Files created by dart2js
|
||||
# (Most Dart developers will use pub build to compile Dart, use/modify these
|
||||
# rules if you intend to use dart2js directly
|
||||
# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
|
||||
# differentiate from explicit Javascript files)
|
||||
*.dart.js
|
||||
*.part.js
|
||||
*.js.deps
|
||||
*.js.map
|
||||
*.info.json
|
||||
|
||||
# Directory created by dartdoc
|
||||
doc/api/
|
||||
|
||||
# Don't commit pubspec lock file
|
||||
# (Library packages only! Remove pattern if developing an application package)
|
||||
pubspec.lock
|
66
vendor/gitignore/Delphi.gitignore
vendored
Normal file
66
vendor/gitignore/Delphi.gitignore
vendored
Normal file
|
@ -0,0 +1,66 @@
|
|||
# Uncomment these types if you want even more clean repository. But be careful.
|
||||
# It can make harm to an existing project source. Read explanations below.
|
||||
#
|
||||
# Resource files are binaries containing manifest, project icon and version info.
|
||||
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
|
||||
#*.res
|
||||
#
|
||||
# Type library file (binary). In old Delphi versions it should be stored.
|
||||
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
|
||||
#*.tlb
|
||||
#
|
||||
# Diagram Portfolio file. Used by the diagram editor up to Delphi 7.
|
||||
# Uncomment this if you are not using diagrams or use newer Delphi version.
|
||||
#*.ddp
|
||||
#
|
||||
# Visual LiveBindings file. Added in Delphi XE2.
|
||||
# Uncomment this if you are not using LiveBindings Designer.
|
||||
#*.vlb
|
||||
#
|
||||
# Deployment Manager configuration file for your project. Added in Delphi XE2.
|
||||
# Uncomment this if it is not mobile development and you do not use remote debug feature.
|
||||
#*.deployproj
|
||||
#
|
||||
# C++ object files produced when C/C++ Output file generation is configured.
|
||||
# Uncomment this if you are not using external objects (zlib library for example).
|
||||
#*.obj
|
||||
#
|
||||
|
||||
# Delphi compiler-generated binaries (safe to delete)
|
||||
*.exe
|
||||
*.dll
|
||||
*.bpl
|
||||
*.bpi
|
||||
*.dcp
|
||||
*.so
|
||||
*.apk
|
||||
*.drc
|
||||
*.map
|
||||
*.dres
|
||||
*.rsm
|
||||
*.tds
|
||||
*.dcu
|
||||
*.lib
|
||||
*.a
|
||||
*.o
|
||||
*.ocx
|
||||
|
||||
# Delphi autogenerated files (duplicated info)
|
||||
*.cfg
|
||||
*.hpp
|
||||
*Resource.rc
|
||||
|
||||
# Delphi local files (user-specific info)
|
||||
*.local
|
||||
*.identcache
|
||||
*.projdata
|
||||
*.tvsconfig
|
||||
*.dsk
|
||||
|
||||
# Delphi history and backups
|
||||
__history/
|
||||
__recovery/
|
||||
*.~*
|
||||
|
||||
# Castalia statistics file (since XE7 Castalia is distributed with Delphi)
|
||||
*.stat
|
36
vendor/gitignore/Drupal.gitignore
vendored
Normal file
36
vendor/gitignore/Drupal.gitignore
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
# Ignore configuration files that may contain sensitive information.
|
||||
sites/*/*settings*.php
|
||||
|
||||
# Ignore paths that contain generated content.
|
||||
files/
|
||||
sites/*/files
|
||||
sites/*/private
|
||||
|
||||
# Ignore default text files
|
||||
robots.txt
|
||||
/CHANGELOG.txt
|
||||
/COPYRIGHT.txt
|
||||
/INSTALL*.txt
|
||||
/LICENSE.txt
|
||||
/MAINTAINERS.txt
|
||||
/UPGRADE.txt
|
||||
/README.txt
|
||||
sites/README.txt
|
||||
sites/all/modules/README.txt
|
||||
sites/all/themes/README.txt
|
||||
|
||||
# Ignore everything but the "sites" folder ( for non core developer )
|
||||
.htaccess
|
||||
web.config
|
||||
authorize.php
|
||||
cron.php
|
||||
index.php
|
||||
install.php
|
||||
update.php
|
||||
xmlrpc.php
|
||||
/includes
|
||||
/misc
|
||||
/modules
|
||||
/profiles
|
||||
/scripts
|
||||
/themes
|
4
vendor/gitignore/EPiServer.gitignore
vendored
Normal file
4
vendor/gitignore/EPiServer.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
######################
|
||||
## EPiServer Files
|
||||
######################
|
||||
*License.config
|
44
vendor/gitignore/Eagle.gitignore
vendored
Normal file
44
vendor/gitignore/Eagle.gitignore
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Ignore list for Eagle, a PCB layout tool
|
||||
|
||||
# Backup files
|
||||
*.s#?
|
||||
*.b#?
|
||||
*.l#?
|
||||
|
||||
# Eagle project file
|
||||
# It contains a serial number and references to the file structure
|
||||
# on your computer.
|
||||
# comment the following line if you want to have your project file included.
|
||||
eagle.epf
|
||||
|
||||
# Autorouter files
|
||||
*.pro
|
||||
*.job
|
||||
|
||||
# CAM files
|
||||
*.$$$
|
||||
*.cmp
|
||||
*.ly2
|
||||
*.l15
|
||||
*.sol
|
||||
*.plc
|
||||
*.stc
|
||||
*.sts
|
||||
*.crc
|
||||
*.crs
|
||||
|
||||
*.dri
|
||||
*.drl
|
||||
*.gpi
|
||||
*.pls
|
||||
|
||||
*.drd
|
||||
*.drd.*
|
||||
|
||||
*.info
|
||||
|
||||
*.eps
|
||||
|
||||
# file locks introduced since 7.x
|
||||
*.lck
|
||||
|
5
vendor/gitignore/Elisp.gitignore
vendored
Normal file
5
vendor/gitignore/Elisp.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Compiled
|
||||
*.elc
|
||||
|
||||
# Packaging
|
||||
.cask
|
5
vendor/gitignore/Elixir.gitignore
vendored
Normal file
5
vendor/gitignore/Elixir.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
/_build
|
||||
/cover
|
||||
/deps
|
||||
erl_crash.dump
|
||||
*.ez
|
4
vendor/gitignore/Elm.gitignore
vendored
Normal file
4
vendor/gitignore/Elm.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# elm-package generated files
|
||||
elm-stuff/
|
||||
# elm-repl generated files
|
||||
repl-temp-*
|
10
vendor/gitignore/Erlang.gitignore
vendored
Normal file
10
vendor/gitignore/Erlang.gitignore
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
.eunit
|
||||
deps
|
||||
*.o
|
||||
*.beam
|
||||
*.plt
|
||||
erl_crash.dump
|
||||
ebin
|
||||
rel/example_project
|
||||
.concrete/DEV_MODE
|
||||
.rebar
|
19
vendor/gitignore/ExpressionEngine.gitignore
vendored
Normal file
19
vendor/gitignore/ExpressionEngine.gitignore
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
.DS_Store
|
||||
|
||||
# Images
|
||||
images/avatars/
|
||||
images/captchas/
|
||||
images/smileys/
|
||||
images/member_photos/
|
||||
images/signature_attachments/
|
||||
images/pm_attachments/
|
||||
|
||||
# For security do not publish the following files
|
||||
system/expressionengine/config/database.php
|
||||
system/expressionengine/config/config.php
|
||||
|
||||
# Caches
|
||||
sized/
|
||||
thumbs/
|
||||
_thumbs/
|
||||
*/expressionengine/cache/*
|
4
vendor/gitignore/ExtJs.gitignore
vendored
Normal file
4
vendor/gitignore/ExtJs.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.architect
|
||||
bootstrap.json
|
||||
build/
|
||||
ext/
|
2
vendor/gitignore/Fancy.gitignore
vendored
Normal file
2
vendor/gitignore/Fancy.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*.rbc
|
||||
*.fyc
|
13
vendor/gitignore/Finale.gitignore
vendored
Normal file
13
vendor/gitignore/Finale.gitignore
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
*.bak
|
||||
*.db
|
||||
*.avi
|
||||
*.pdf
|
||||
*.ps
|
||||
*.mid
|
||||
*.midi
|
||||
*.mp3
|
||||
*.aif
|
||||
*.wav
|
||||
# Some versions of Finale have a bug and randomly save extra copies of
|
||||
# the music source as "<Filename> copy.mus"
|
||||
*copy.mus
|
4
vendor/gitignore/ForceDotCom.gitignore
vendored
Normal file
4
vendor/gitignore/ForceDotCom.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.project
|
||||
.settings
|
||||
salesforce.schema
|
||||
Referenced Packages
|
1
vendor/gitignore/Fortran.gitignore
vendored
Symbolic link
1
vendor/gitignore/Fortran.gitignore
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
C++.gitignore
|
21
vendor/gitignore/FuelPHP.gitignore
vendored
Normal file
21
vendor/gitignore/FuelPHP.gitignore
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
# the composer package lock file and install directory
|
||||
# Commit your application's lock file http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
|
||||
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
||||
# /composer.lock
|
||||
/fuel/vendor
|
||||
|
||||
# the fuelphp document
|
||||
/docs/
|
||||
|
||||
# you may install these packages with `oil package`.
|
||||
# http://fuelphp.com/docs/packages/oil/package.html
|
||||
# /fuel/packages/auth/
|
||||
# /fuel/packages/email/
|
||||
# /fuel/packages/oil/
|
||||
# /fuel/packages/orm/
|
||||
# /fuel/packages/parser/
|
||||
|
||||
# dynamically generated files
|
||||
/fuel/app/logs/*/*/*
|
||||
/fuel/app/cache/*/*
|
||||
/fuel/app/config/crypt.php
|
28
vendor/gitignore/GWT.gitignore
vendored
Normal file
28
vendor/gitignore/GWT.gitignore
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
*.class
|
||||
|
||||
# Package Files #
|
||||
*.jar
|
||||
*.war
|
||||
|
||||
# gwt caches and compiled units #
|
||||
war/gwt_bree/
|
||||
gwt-unitCache/
|
||||
|
||||
# boilerplate generated classes #
|
||||
.apt_generated/
|
||||
|
||||
# more caches and things from deploy #
|
||||
war/WEB-INF/deploy/
|
||||
war/WEB-INF/classes/
|
||||
|
||||
#compilation logs
|
||||
.gwt/
|
||||
|
||||
#caching for already compiled files
|
||||
gwt-unitCache/
|
||||
|
||||
#gwt junit compilation files
|
||||
www-test/
|
||||
|
||||
#old GWT (1.5) created this dir
|
||||
.gwt-tmp/
|
5
vendor/gitignore/Gcov.gitignore
vendored
Normal file
5
vendor/gitignore/Gcov.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
# gcc coverage testing tool files
|
||||
|
||||
*.gcno
|
||||
*.gcda
|
||||
*.gcov
|
16
vendor/gitignore/GitBook.gitignore
vendored
Normal file
16
vendor/gitignore/GitBook.gitignore
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Node rules:
|
||||
## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
## Dependency directory
|
||||
## Commenting this out is preferred by some people, see
|
||||
## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git
|
||||
node_modules
|
||||
|
||||
# Book build output
|
||||
_book
|
||||
|
||||
# eBook build output
|
||||
*.epub
|
||||
*.mobi
|
||||
*.pdf
|
3
vendor/gitignore/Global/Anjuta.gitignore
vendored
Normal file
3
vendor/gitignore/Global/Anjuta.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Local configuration folder and symbol database
|
||||
/.anjuta/
|
||||
/.anjuta_sym_db.db
|
27
vendor/gitignore/Global/Archives.gitignore
vendored
Normal file
27
vendor/gitignore/Global/Archives.gitignore
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
# It's better to unpack these files and commit the raw source because
|
||||
# git has its own built in compression methods.
|
||||
*.7z
|
||||
*.jar
|
||||
*.rar
|
||||
*.zip
|
||||
*.gz
|
||||
*.bzip
|
||||
*.bz2
|
||||
*.xz
|
||||
*.lzma
|
||||
*.cab
|
||||
|
||||
#packing-only formats
|
||||
*.iso
|
||||
*.tar
|
||||
|
||||
#package management formats
|
||||
*.dmg
|
||||
*.xpi
|
||||
*.gem
|
||||
*.egg
|
||||
*.deb
|
||||
*.rpm
|
||||
*.msi
|
||||
*.msm
|
||||
*.msp
|
4
vendor/gitignore/Global/BricxCC.gitignore
vendored
Normal file
4
vendor/gitignore/Global/BricxCC.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Bricx Command Center IDE
|
||||
# http://bricxcc.sourceforge.net
|
||||
*.bak
|
||||
*.sym
|
4
vendor/gitignore/Global/CVS.gitignore
vendored
Normal file
4
vendor/gitignore/Global/CVS.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
/CVS/*
|
||||
**/CVS/*
|
||||
.cvsignore
|
||||
*/.cvsignore
|
10
vendor/gitignore/Global/Calabash.gitignore
vendored
Normal file
10
vendor/gitignore/Global/Calabash.gitignore
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Calabash / Cucumber
|
||||
rerun/
|
||||
reports/
|
||||
screenshots/
|
||||
screenshot*.png
|
||||
test-servers/
|
||||
|
||||
# bundler
|
||||
.bundle
|
||||
vendor
|
3
vendor/gitignore/Global/Cloud9.gitignore
vendored
Normal file
3
vendor/gitignore/Global/Cloud9.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Cloud9 IDE - http://c9.io
|
||||
.c9revisions
|
||||
.c9
|
3
vendor/gitignore/Global/CodeKit.gitignore
vendored
Normal file
3
vendor/gitignore/Global/CodeKit.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# General CodeKit files to ignore
|
||||
config.codekit
|
||||
/min
|
2
vendor/gitignore/Global/DartEditor.gitignore
vendored
Normal file
2
vendor/gitignore/Global/DartEditor.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
.project
|
||||
.buildlog
|
7
vendor/gitignore/Global/Dreamweaver.gitignore
vendored
Normal file
7
vendor/gitignore/Global/Dreamweaver.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
# DW Dreamweaver added files
|
||||
_notes
|
||||
_compareTemp
|
||||
configs/
|
||||
dwsync.xml
|
||||
dw_php_codehinting.config
|
||||
*.mno
|
4
vendor/gitignore/Global/Dropbox.gitignore
vendored
Normal file
4
vendor/gitignore/Global/Dropbox.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Dropbox settings and caches
|
||||
.dropbox
|
||||
.dropbox.attr
|
||||
.dropbox.cache
|
51
vendor/gitignore/Global/Eclipse.gitignore
vendored
Normal file
51
vendor/gitignore/Global/Eclipse.gitignore
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
|
||||
# Eclipse Core
|
||||
.project
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
|
||||
# JDT-specific (Eclipse Java Development Tools)
|
||||
.classpath
|
||||
|
||||
# Java annotation processor (APT)
|
||||
.factorypath
|
||||
|
||||
# PDT-specific (PHP Development Tools)
|
||||
.buildpath
|
||||
|
||||
# sbteclipse plugin
|
||||
.target
|
||||
|
||||
# Tern plugin
|
||||
.tern-project
|
||||
|
||||
# TeXlipse plugin
|
||||
.texlipse
|
||||
|
||||
# STS (Spring Tool Suite)
|
||||
.springBeans
|
||||
|
||||
# Code Recommenders
|
||||
.recommenders/
|
2
vendor/gitignore/Global/EiffelStudio.gitignore
vendored
Normal file
2
vendor/gitignore/Global/EiffelStudio.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# The compilation directory
|
||||
EIFGENs
|
42
vendor/gitignore/Global/Emacs.gitignore
vendored
Normal file
42
vendor/gitignore/Global/Emacs.gitignore
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
# -*- mode: gitignore; -*-
|
||||
*~
|
||||
\#*\#
|
||||
/.emacs.desktop
|
||||
/.emacs.desktop.lock
|
||||
*.elc
|
||||
auto-save-list
|
||||
tramp
|
||||
.\#*
|
||||
|
||||
# Org-mode
|
||||
.org-id-locations
|
||||
*_archive
|
||||
|
||||
# flymake-mode
|
||||
*_flymake.*
|
||||
|
||||
# eshell files
|
||||
/eshell/history
|
||||
/eshell/lastdir
|
||||
|
||||
# elpa packages
|
||||
/elpa/
|
||||
|
||||
# reftex files
|
||||
*.rel
|
||||
|
||||
# AUCTeX auto folder
|
||||
/auto/
|
||||
|
||||
# cask packages
|
||||
.cask/
|
||||
dist/
|
||||
|
||||
# Flycheck
|
||||
flycheck_*.el
|
||||
|
||||
# server auth directory
|
||||
/server/
|
||||
|
||||
# projectiles files
|
||||
.projectile
|
4
vendor/gitignore/Global/Ensime.gitignore
vendored
Normal file
4
vendor/gitignore/Global/Ensime.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Ensime specific
|
||||
.ensime
|
||||
.ensime_cache/
|
||||
.ensime_lucene/
|
1
vendor/gitignore/Global/Espresso.gitignore
vendored
Normal file
1
vendor/gitignore/Global/Espresso.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.esproj
|
3
vendor/gitignore/Global/FlexBuilder.gitignore
vendored
Normal file
3
vendor/gitignore/Global/FlexBuilder.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
bin/
|
||||
bin-debug/
|
||||
bin-release/
|
2
vendor/gitignore/Global/GPG.gitignore
vendored
Normal file
2
vendor/gitignore/Global/GPG.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
secring.*
|
||||
|
2
vendor/gitignore/Global/IPythonNotebook.gitignore
vendored
Normal file
2
vendor/gitignore/Global/IPythonNotebook.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Temporary data
|
||||
.ipynb_checkpoints/
|
13
vendor/gitignore/Global/JDeveloper.gitignore
vendored
Normal file
13
vendor/gitignore/Global/JDeveloper.gitignore
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# default application storage directory used by the IDE Performance Cache feature
|
||||
.data/
|
||||
|
||||
# used for ADF styles caching
|
||||
temp/
|
||||
|
||||
# default output directories
|
||||
classes/
|
||||
deploy/
|
||||
javadoc/
|
||||
|
||||
# lock file, a part of Oracle Credential Store Framework
|
||||
cwallet.sso.lck
|
44
vendor/gitignore/Global/JetBrains.gitignore
vendored
Normal file
44
vendor/gitignore/Global/JetBrains.gitignore
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff:
|
||||
.idea/workspace.xml
|
||||
.idea/tasks.xml
|
||||
.idea/dictionaries
|
||||
.idea/vcs.xml
|
||||
.idea/jsLibraryMappings.xml
|
||||
|
||||
# Sensitive or high-churn files:
|
||||
.idea/dataSources.ids
|
||||
.idea/dataSources.xml
|
||||
.idea/dataSources.local.xml
|
||||
.idea/sqlDataSources.xml
|
||||
.idea/dynamic.xml
|
||||
.idea/uiDesigner.xml
|
||||
|
||||
# Gradle:
|
||||
.idea/gradle.xml
|
||||
.idea/libraries
|
||||
|
||||
# Mongo Explorer plugin:
|
||||
.idea/mongoSettings.xml
|
||||
|
||||
## File-based project format:
|
||||
*.iws
|
||||
|
||||
## Plugin-specific files:
|
||||
|
||||
# IntelliJ
|
||||
/out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
2
vendor/gitignore/Global/KDevelop4.gitignore
vendored
Normal file
2
vendor/gitignore/Global/KDevelop4.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*.kdev4
|
||||
.kdev4/
|
3
vendor/gitignore/Global/Kate.gitignore
vendored
Normal file
3
vendor/gitignore/Global/Kate.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Swap Files #
|
||||
.*.kate-swp
|
||||
.swp.*
|
30
vendor/gitignore/Global/Lazarus.gitignore
vendored
Normal file
30
vendor/gitignore/Global/Lazarus.gitignore
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Lazarus compiler-generated binaries (safe to delete)
|
||||
*.exe
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
*.lrs
|
||||
*.res
|
||||
*.compiled
|
||||
*.dbg
|
||||
*.ppu
|
||||
*.o
|
||||
*.or
|
||||
*.a
|
||||
|
||||
# Lazarus autogenerated files (duplicated info)
|
||||
*.rst
|
||||
*.rsj
|
||||
*.lrt
|
||||
|
||||
# Lazarus local files (user-specific info)
|
||||
*.lps
|
||||
|
||||
# Lazarus backups and unit output folders.
|
||||
# These can be changed by user in Lazarus/project options.
|
||||
backup/
|
||||
*.bak
|
||||
lib/
|
||||
|
||||
# Application bundle for Mac OS
|
||||
*.app/
|
2
vendor/gitignore/Global/LibreOffice.gitignore
vendored
Normal file
2
vendor/gitignore/Global/LibreOffice.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# LibreOffice locks
|
||||
.~lock.*#
|
10
vendor/gitignore/Global/Linux.gitignore
vendored
Normal file
10
vendor/gitignore/Global/Linux.gitignore
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
4
vendor/gitignore/Global/LyX.gitignore
vendored
Normal file
4
vendor/gitignore/Global/LyX.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Ignore LyX backup and autosave files
|
||||
# http://www.lyx.org/
|
||||
*.lyx~
|
||||
*.lyx#
|
19
vendor/gitignore/Global/Matlab.gitignore
vendored
Normal file
19
vendor/gitignore/Global/Matlab.gitignore
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
##---------------------------------------------------
|
||||
## Remove autosaves generated by the Matlab editor
|
||||
## We have git for backups!
|
||||
##---------------------------------------------------
|
||||
|
||||
# Windows default autosave extension
|
||||
*.asv
|
||||
|
||||
# OSX / *nix default autosave extension
|
||||
*.m~
|
||||
|
||||
# Compiled MEX binaries (all platforms)
|
||||
*.mex*
|
||||
|
||||
# Simulink Code Generation
|
||||
slprj/
|
||||
|
||||
# Session info
|
||||
octave-workspace
|
6
vendor/gitignore/Global/Mercurial.gitignore
vendored
Normal file
6
vendor/gitignore/Global/Mercurial.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
.hg/
|
||||
.hgignore
|
||||
.hgsigs
|
||||
.hgsub
|
||||
.hgsubstate
|
||||
.hgtags
|
16
vendor/gitignore/Global/MicrosoftOffice.gitignore
vendored
Normal file
16
vendor/gitignore/Global/MicrosoftOffice.gitignore
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
*.tmp
|
||||
|
||||
# Word temporary
|
||||
~$*.doc*
|
||||
|
||||
# Excel temporary
|
||||
~$*.xls*
|
||||
|
||||
# Excel Backup File
|
||||
*.xlk
|
||||
|
||||
# PowerPoint temporary
|
||||
~$*.ppt*
|
||||
|
||||
# Visio autosave temporary files
|
||||
*.~vsdx
|
23
vendor/gitignore/Global/ModelSim.gitignore
vendored
Normal file
23
vendor/gitignore/Global/ModelSim.gitignore
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
# ignore ModelSim generated files and directories (temp files and so on)
|
||||
[_@]*
|
||||
|
||||
# ignore compilation output of ModelSim
|
||||
*.mti
|
||||
*.dat
|
||||
*.dbs
|
||||
*.psm
|
||||
*.bak
|
||||
*.cmp
|
||||
*.jpg
|
||||
*.html
|
||||
*.bsf
|
||||
|
||||
# ignore simulation output of ModelSim
|
||||
wlf*
|
||||
*.wlf
|
||||
*.vstf
|
||||
*.ucdb
|
||||
cov*/
|
||||
transcript*
|
||||
sc_dpiheader.h
|
||||
vsim.dbg
|
8
vendor/gitignore/Global/Momentics.gitignore
vendored
Normal file
8
vendor/gitignore/Global/Momentics.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Built files
|
||||
x86/
|
||||
arm/
|
||||
arm-p/
|
||||
translations/*.qm
|
||||
|
||||
# IDE settings
|
||||
.settings/
|
8
vendor/gitignore/Global/MonoDevelop.gitignore
vendored
Normal file
8
vendor/gitignore/Global/MonoDevelop.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
#User Specific
|
||||
*.userprefs
|
||||
*.usertasks
|
||||
|
||||
#Mono Project Files
|
||||
*.pidb
|
||||
*.resources
|
||||
test-results/
|
7
vendor/gitignore/Global/NetBeans.gitignore
vendored
Normal file
7
vendor/gitignore/Global/NetBeans.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
nbproject/private/
|
||||
build/
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
nbactions.xml
|
||||
.nb-gradle/
|
2
vendor/gitignore/Global/Ninja.gitignore
vendored
Normal file
2
vendor/gitignore/Global/Ninja.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
.ninja_deps
|
||||
.ninja_log
|
2
vendor/gitignore/Global/NotepadPP.gitignore
vendored
Normal file
2
vendor/gitignore/Global/NotepadPP.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Notepad++ backups #
|
||||
*.bak
|
24
vendor/gitignore/Global/OSX.gitignore
vendored
Normal file
24
vendor/gitignore/Global/OSX.gitignore
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
1
vendor/gitignore/Global/Otto.gitignore
vendored
Normal file
1
vendor/gitignore/Global/Otto.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.otto/
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue