BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
8adc3569
Commit
8adc3569
authored
Jan 27, 2017
by
Oswaldo Ferreira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove deprecated templates endpoints in V4
parent
79e8e613
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
398 additions
and
97 deletions
+398
-97
api.js
app/assets/javascripts/api.js
+1
-1
22818-licence-gitignore-and-yml-endpoints-removal.yml
...sed/22818-licence-gitignore-and-yml-endpoints-removal.yml
+4
-0
v3_to_v4.md
doc/api/v3_to_v4.md
+10
-0
api.rb
lib/api/api.rb
+1
-0
templates.rb
lib/api/templates.rb
+39
-56
templates.rb
lib/api/v3/templates.rb
+122
-0
templates_spec.rb
spec/requests/api/templates_spec.rb
+18
-40
templates_spec.rb
spec/requests/api/v3/templates_spec.rb
+203
-0
No files found.
app/assets/javascripts/api.js
View file @
8adc3569
...
...
@@ -11,7 +11,7 @@
licensePath
:
"/api/:version/templates/licenses/:key"
,
gitignorePath
:
"/api/:version/templates/gitignores/:key"
,
gitlabCiYmlPath
:
"/api/:version/templates/gitlab_ci_ymls/:key"
,
dockerfilePath
:
"/api/:version/dockerfiles/:key"
,
dockerfilePath
:
"/api/:version/
templates/
dockerfiles/:key"
,
issuableTemplatePath
:
"/:namespace_path/:project_path/templates/:type/:key"
,
group
:
function
(
group_id
,
callback
)
{
var
url
=
Api
.
buildUrl
(
Api
.
groupPath
)
...
...
changelogs/unreleased/22818-licence-gitignore-and-yml-endpoints-removal.yml
0 → 100644
View file @
8adc3569
---
title
:
V3 deprecated templates endpoints removal
merge_request
:
8853
author
:
doc/api/v3_to_v4.md
View file @
8adc3569
...
...
@@ -13,3 +13,13 @@ changes are in V4:
-
Project snippets do not return deprecated field
`expires_at`
-
Endpoints under
`projects/:id/keys`
have been removed (use
`projects/:id/deploy_keys`
)
-
Status 409 returned for POST
`project/:id/members`
when a member already exists
-
Removed the following deprecated Templates endpoints (these are still accessible with
`/templates`
prefix)
-
`/licences`
-
`/licences/:key`
-
`/gitignores`
-
`/gitlab_ci_ymls`
-
`/dockerfiles`
-
`/gitignores/:key`
-
`/gitlab_ci_ymls/:key`
-
`/dockerfiles/:key`
lib/api/api.rb
View file @
8adc3569
...
...
@@ -11,6 +11,7 @@ module API
mount
::
API
::
V3
::
MergeRequests
mount
::
API
::
V3
::
Projects
mount
::
API
::
V3
::
ProjectSnippets
mount
::
API
::
V3
::
Templates
end
before
{
allow_access_with_scope
:api
}
...
...
lib/api/templates.rb
View file @
8adc3569
...
...
@@ -24,7 +24,6 @@ module API
/[\<\{\[]
(fullname|name\sof\s(author|copyright\sowner))
[\>\}\]]/xi
.
freeze
DEPRECATION_MESSAGE
=
' This endpoint is deprecated and will be removed in GitLab 9.0.'
.
freeze
helpers
do
def
parsed_license_template
...
...
@@ -46,74 +45,58 @@ module API
end
end
{
"licenses"
=>
:deprecated
,
"templates/licenses"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the list of the available license template'
do
detailed_desc
=
'This feature was introduced in GitLab 8.7.'
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
Entities
::
RepoLicense
end
params
do
optional
:popular
,
type:
Boolean
,
desc:
'If passed, returns only popular licenses'
end
get
route
do
options
=
{
featured:
declared
(
params
).
popular
.
present?
?
true
:
nil
}
present
Licensee
::
License
.
all
(
options
),
with:
Entities
::
RepoLicense
end
desc
'Get the list of the available license template'
do
detail
'This feature was introduced in GitLab 8.7.'
success
::
API
::
Entities
::
RepoLicense
end
params
do
optional
:popular
,
type:
Boolean
,
desc:
'If passed, returns only popular licenses'
end
get
"templates/licenses"
do
options
=
{
featured:
declared
(
params
).
popular
.
present?
?
true
:
nil
}
present
Licensee
::
License
.
all
(
options
),
with:
::
API
::
Entities
::
RepoLicense
end
{
"licenses/:name"
=>
:deprecated
,
"templates/licenses/:name"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the text for a specific license'
do
detailed_desc
=
'This feature was introduced in GitLab 8.7.'
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
Entities
::
RepoLicense
end
params
do
requires
:name
,
type:
String
,
desc:
'The name of the template'
end
get
route
,
requirements:
{
name:
/[\w\.-]+/
}
do
not_found!
(
'License'
)
unless
Licensee
::
License
.
find
(
declared
(
params
).
name
)
desc
'Get the text for a specific license'
do
detail
'This feature was introduced in GitLab 8.7.'
success
::
API
::
Entities
::
RepoLicense
end
params
do
requires
:name
,
type:
String
,
desc:
'The name of the template'
end
get
"templates/licenses/:name"
,
requirements:
{
name:
/[\w\.-]+/
}
do
not_found!
(
'License'
)
unless
Licensee
::
License
.
find
(
declared
(
params
).
name
)
template
=
parsed_license_template
template
=
parsed_license_template
present
template
,
with:
Entities
::
RepoLicense
end
present
template
,
with:
::
API
::
Entities
::
RepoLicense
end
GLOBAL_TEMPLATE_TYPES
.
each
do
|
template_type
,
properties
|
klass
=
properties
[
:klass
]
gitlab_version
=
properties
[
:gitlab_version
]
{
template_type
=>
:deprecated
,
"templates/
#{
template_type
}
"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the list of the available template'
do
detailed_desc
=
"This feature was introduced in GitLab
#{
gitlab_version
}
."
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
Entities
::
TemplatesList
end
get
route
do
present
klass
.
all
,
with:
Entities
::
TemplatesList
end
desc
'Get the list of the available template'
do
detail
"This feature was introduced in GitLab
#{
gitlab_version
}
."
success
Entities
::
TemplatesList
end
get
"templates/
#{
template_type
}
"
do
present
klass
.
all
,
with:
Entities
::
TemplatesList
end
{
"
#{
template_type
}
/:name"
=>
:deprecated
,
"templates/
#{
template_type
}
/:name"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the text for a specific template present in local filesystem'
do
detailed_desc
=
"This feature was introduced in GitLab
#{
gitlab_version
}
."
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
Entities
::
Template
end
params
do
requires
:name
,
type:
String
,
desc:
'The name of the template'
end
get
route
do
new_template
=
klass
.
find
(
declared
(
params
).
name
)
desc
'Get the text for a specific template present in local filesystem'
do
detail
"This feature was introduced in GitLab
#{
gitlab_version
}
."
success
Entities
::
Template
end
params
do
requires
:name
,
type:
String
,
desc:
'The name of the template'
end
get
"templates/
#{
template_type
}
/:name"
do
new_template
=
klass
.
find
(
declared
(
params
).
name
)
render_response
(
template_type
,
new_template
)
end
render_response
(
template_type
,
new_template
)
end
end
end
...
...
lib/api/v3/templates.rb
0 → 100644
View file @
8adc3569
module
API
module
V3
class
Templates
<
Grape
::
API
GLOBAL_TEMPLATE_TYPES
=
{
gitignores:
{
klass:
Gitlab
::
Template
::
GitignoreTemplate
,
gitlab_version:
8.8
},
gitlab_ci_ymls:
{
klass:
Gitlab
::
Template
::
GitlabCiYmlTemplate
,
gitlab_version:
8.9
},
dockerfiles:
{
klass:
Gitlab
::
Template
::
DockerfileTemplate
,
gitlab_version:
8.15
}
}.
freeze
PROJECT_TEMPLATE_REGEX
=
/[\<\{\[]
(project|description|
one\sline\s.+\swhat\sit\sdoes\.) # matching the start and end is enough here
[\>\}\]]/xi
.
freeze
YEAR_TEMPLATE_REGEX
=
/[<{\[](year|yyyy)[>}\]]/i
.
freeze
FULLNAME_TEMPLATE_REGEX
=
/[\<\{\[]
(fullname|name\sof\s(author|copyright\sowner))
[\>\}\]]/xi
.
freeze
DEPRECATION_MESSAGE
=
' This endpoint is deprecated and has been removed in V4.'
.
freeze
helpers
do
def
parsed_license_template
# We create a fresh Licensee::License object since we'll modify its
# content in place below.
template
=
Licensee
::
License
.
new
(
params
[
:name
])
template
.
content
.
gsub!
(
YEAR_TEMPLATE_REGEX
,
Time
.
now
.
year
.
to_s
)
template
.
content
.
gsub!
(
PROJECT_TEMPLATE_REGEX
,
params
[
:project
])
if
params
[
:project
].
present?
fullname
=
params
[
:fullname
].
presence
||
current_user
.
try
(
:name
)
template
.
content
.
gsub!
(
FULLNAME_TEMPLATE_REGEX
,
fullname
)
if
fullname
template
end
def
render_response
(
template_type
,
template
)
not_found!
(
template_type
.
to_s
.
singularize
)
unless
template
present
template
,
with:
::
API
::
Entities
::
Template
end
end
{
"licenses"
=>
:deprecated
,
"templates/licenses"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the list of the available license template'
do
detailed_desc
=
'This feature was introduced in GitLab 8.7.'
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
::
API
::
Entities
::
RepoLicense
end
params
do
optional
:popular
,
type:
Boolean
,
desc:
'If passed, returns only popular licenses'
end
get
route
do
options
=
{
featured:
declared
(
params
).
popular
.
present?
?
true
:
nil
}
present
Licensee
::
License
.
all
(
options
),
with:
::
API
::
Entities
::
RepoLicense
end
end
{
"licenses/:name"
=>
:deprecated
,
"templates/licenses/:name"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the text for a specific license'
do
detailed_desc
=
'This feature was introduced in GitLab 8.7.'
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
::
API
::
Entities
::
RepoLicense
end
params
do
requires
:name
,
type:
String
,
desc:
'The name of the template'
end
get
route
,
requirements:
{
name:
/[\w\.-]+/
}
do
not_found!
(
'License'
)
unless
Licensee
::
License
.
find
(
declared
(
params
).
name
)
template
=
parsed_license_template
present
template
,
with:
::
API
::
Entities
::
RepoLicense
end
end
GLOBAL_TEMPLATE_TYPES
.
each
do
|
template_type
,
properties
|
klass
=
properties
[
:klass
]
gitlab_version
=
properties
[
:gitlab_version
]
{
template_type
=>
:deprecated
,
"templates/
#{
template_type
}
"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the list of the available template'
do
detailed_desc
=
"This feature was introduced in GitLab
#{
gitlab_version
}
."
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
::
API
::
Entities
::
TemplatesList
end
get
route
do
present
klass
.
all
,
with:
::
API
::
Entities
::
TemplatesList
end
end
{
"
#{
template_type
}
/:name"
=>
:deprecated
,
"templates/
#{
template_type
}
/:name"
=>
:ok
}.
each
do
|
route
,
status
|
desc
'Get the text for a specific template present in local filesystem'
do
detailed_desc
=
"This feature was introduced in GitLab
#{
gitlab_version
}
."
detailed_desc
<<
DEPRECATION_MESSAGE
unless
status
==
:ok
detail
detailed_desc
success
::
API
::
Entities
::
Template
end
params
do
requires
:name
,
type:
String
,
desc:
'The name of the template'
end
get
route
do
new_template
=
klass
.
find
(
declared
(
params
).
name
)
render_response
(
template_type
,
new_template
)
end
end
end
end
end
end
spec/requests/api/templates_spec.rb
View file @
8adc3569
...
...
@@ -3,23 +3,23 @@ require 'spec_helper'
describe
API
::
Templates
,
api:
true
do
include
ApiHelpers
shared_examples_for
'the Template Entity'
do
|
path
|
before
{
get
api
(
path
)
}
context
'the Template Entity'
do
before
{
get
api
(
'/templates/gitignores/Ruby'
)
}
it
{
expect
(
json_response
[
'name'
]).
to
eq
(
'Ruby'
)
}
it
{
expect
(
json_response
[
'content'
]).
to
include
(
'*.gem'
)
}
end
shared_examples_for
'the TemplateList Entity'
do
|
path
|
before
{
get
api
(
path
)
}
context
'the TemplateList Entity'
do
before
{
get
api
(
'/templates/gitignores'
)
}
it
{
expect
(
json_response
.
first
[
'name'
]).
not_to
be_nil
}
it
{
expect
(
json_response
.
first
[
'content'
]).
to
be_nil
}
end
shared_examples_for
'requesting gitignores'
do
|
path
|
context
'requesting gitignores'
do
it
'returns a list of available gitignore templates'
do
get
api
(
path
)
get
api
(
'/templates/gitignores'
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
...
...
@@ -27,9 +27,9 @@ describe API::Templates, api: true do
end
end
shared_examples_for
'requesting gitlab-ci-ymls'
do
|
path
|
context
'requesting gitlab-ci-ymls'
do
it
'returns a list of available gitlab_ci_ymls'
do
get
api
(
path
)
get
api
(
'/templates/gitlab_ci_ymls'
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
...
...
@@ -37,17 +37,17 @@ describe API::Templates, api: true do
end
end
shared_examples_for
'requesting gitlab-ci-yml for Ruby'
do
|
path
|
context
'requesting gitlab-ci-yml for Ruby'
do
it
'adds a disclaimer on the top'
do
get
api
(
path
)
get
api
(
'/templates/gitlab_ci_ymls/Ruby'
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
[
'content'
]).
to
start_with
(
"# This file is a template,"
)
end
end
shared_examples_for
'the License Template Entity'
do
|
path
|
before
{
get
api
(
path
)
}
context
'the License Template Entity'
do
before
{
get
api
(
'/templates/licenses/mit'
)
}
it
'returns a license template'
do
expect
(
json_response
[
'key'
]).
to
eq
(
'mit'
)
...
...
@@ -64,9 +64,9 @@ describe API::Templates, api: true do
end
end
shared_examples_for
'GET licenses'
do
|
path
|
context
'GET templates/licenses'
do
it
'returns a list of available license templates'
do
get
api
(
path
)
get
api
(
'/templates/licenses'
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
...
...
@@ -77,7 +77,7 @@ describe API::Templates, api: true do
describe
'the popular parameter'
do
context
'with popular=1'
do
it
'returns a list of available popular license templates'
do
get
api
(
"
#{
path
}
?popular=1"
)
get
api
(
'/templates/licenses?popular=1'
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
...
...
@@ -88,10 +88,10 @@ describe API::Templates, api: true do
end
end
shared_examples_for
'GET licenses/:name'
do
|
path
|
context
'GET templates/licenses/:name'
do
context
'with :project and :fullname given'
do
before
do
get
api
(
"
#{
path
}
/
#{
license_type
}
?project=My+Awesome+Project&fullname=Anton+
#{
license_type
.
upcase
}
"
)
get
api
(
"
/templates/licenses
/
#{
license_type
}
?project=My+Awesome+Project&fullname=Anton+
#{
license_type
.
upcase
}
"
)
end
context
'for the mit license'
do
...
...
@@ -178,26 +178,4 @@ describe API::Templates, api: true do
end
end
end
describe
'with /templates namespace'
do
it_behaves_like
'the Template Entity'
,
'/templates/gitignores/Ruby'
it_behaves_like
'the TemplateList Entity'
,
'/templates/gitignores'
it_behaves_like
'requesting gitignores'
,
'/templates/gitignores'
it_behaves_like
'requesting gitlab-ci-ymls'
,
'/templates/gitlab_ci_ymls'
it_behaves_like
'requesting gitlab-ci-yml for Ruby'
,
'/templates/gitlab_ci_ymls/Ruby'
it_behaves_like
'the License Template Entity'
,
'/templates/licenses/mit'
it_behaves_like
'GET licenses'
,
'/templates/licenses'
it_behaves_like
'GET licenses/:name'
,
'/templates/licenses'
end
describe
'without /templates namespace'
do
it_behaves_like
'the Template Entity'
,
'/gitignores/Ruby'
it_behaves_like
'the TemplateList Entity'
,
'/gitignores'
it_behaves_like
'requesting gitignores'
,
'/gitignores'
it_behaves_like
'requesting gitlab-ci-ymls'
,
'/gitlab_ci_ymls'
it_behaves_like
'requesting gitlab-ci-yml for Ruby'
,
'/gitlab_ci_ymls/Ruby'
it_behaves_like
'the License Template Entity'
,
'/licenses/mit'
it_behaves_like
'GET licenses'
,
'/licenses'
it_behaves_like
'GET licenses/:name'
,
'/licenses'
end
end
spec/requests/api/v3/templates_spec.rb
0 → 100644
View file @
8adc3569
require
'spec_helper'
describe
API
::
V3
::
Templates
,
api:
true
do
include
ApiHelpers
shared_examples_for
'the Template Entity'
do
|
path
|
before
{
get
v3_api
(
path
)
}
it
{
expect
(
json_response
[
'name'
]).
to
eq
(
'Ruby'
)
}
it
{
expect
(
json_response
[
'content'
]).
to
include
(
'*.gem'
)
}
end
shared_examples_for
'the TemplateList Entity'
do
|
path
|
before
{
get
v3_api
(
path
)
}
it
{
expect
(
json_response
.
first
[
'name'
]).
not_to
be_nil
}
it
{
expect
(
json_response
.
first
[
'content'
]).
to
be_nil
}
end
shared_examples_for
'requesting gitignores'
do
|
path
|
it
'returns a list of available gitignore templates'
do
get
v3_api
(
path
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
.
size
).
to
be
>
15
end
end
shared_examples_for
'requesting gitlab-ci-ymls'
do
|
path
|
it
'returns a list of available gitlab_ci_ymls'
do
get
v3_api
(
path
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
.
first
[
'name'
]).
not_to
be_nil
end
end
shared_examples_for
'requesting gitlab-ci-yml for Ruby'
do
|
path
|
it
'adds a disclaimer on the top'
do
get
v3_api
(
path
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
[
'content'
]).
to
start_with
(
"# This file is a template,"
)
end
end
shared_examples_for
'the License Template Entity'
do
|
path
|
before
{
get
v3_api
(
path
)
}
it
'returns a license template'
do
expect
(
json_response
[
'key'
]).
to
eq
(
'mit'
)
expect
(
json_response
[
'name'
]).
to
eq
(
'MIT License'
)
expect
(
json_response
[
'nickname'
]).
to
be_nil
expect
(
json_response
[
'popular'
]).
to
be
true
expect
(
json_response
[
'html_url'
]).
to
eq
(
'http://choosealicense.com/licenses/mit/'
)
expect
(
json_response
[
'source_url'
]).
to
eq
(
'https://opensource.org/licenses/MIT'
)
expect
(
json_response
[
'description'
]).
to
include
(
'A permissive license that is short and to the point.'
)
expect
(
json_response
[
'conditions'
]).
to
eq
(
%w[include-copyright]
)
expect
(
json_response
[
'permissions'
]).
to
eq
(
%w[commercial-use modifications distribution private-use]
)
expect
(
json_response
[
'limitations'
]).
to
eq
(
%w[no-liability]
)
expect
(
json_response
[
'content'
]).
to
include
(
'The MIT License (MIT)'
)
end
end
shared_examples_for
'GET licenses'
do
|
path
|
it
'returns a list of available license templates'
do
get
v3_api
(
path
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
.
size
).
to
eq
(
15
)
expect
(
json_response
.
map
{
|
l
|
l
[
'key'
]
}).
to
include
(
'agpl-3.0'
)
end
describe
'the popular parameter'
do
context
'with popular=1'
do
it
'returns a list of available popular license templates'
do
get
v3_api
(
"
#{
path
}
?popular=1"
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
.
size
).
to
eq
(
3
)
expect
(
json_response
.
map
{
|
l
|
l
[
'key'
]
}).
to
include
(
'apache-2.0'
)
end
end
end
end
shared_examples_for
'GET licenses/:name'
do
|
path
|
context
'with :project and :fullname given'
do
before
do
get
v3_api
(
"
#{
path
}
/
#{
license_type
}
?project=My+Awesome+Project&fullname=Anton+
#{
license_type
.
upcase
}
"
)
end
context
'for the mit license'
do
let
(
:license_type
)
{
'mit'
}
it
'returns the license text'
do
expect
(
json_response
[
'content'
]).
to
include
(
'The MIT License (MIT)'
)
end
it
'replaces placeholder values'
do
expect
(
json_response
[
'content'
]).
to
include
(
"Copyright (c)
#{
Time
.
now
.
year
}
Anton"
)
end
end
context
'for the agpl-3.0 license'
do
let
(
:license_type
)
{
'agpl-3.0'
}
it
'returns the license text'
do
expect
(
json_response
[
'content'
]).
to
include
(
'GNU AFFERO GENERAL PUBLIC LICENSE'
)
end
it
'replaces placeholder values'
do
expect
(
json_response
[
'content'
]).
to
include
(
'My Awesome Project'
)
expect
(
json_response
[
'content'
]).
to
include
(
"Copyright (C)
#{
Time
.
now
.
year
}
Anton"
)
end
end
context
'for the gpl-3.0 license'
do
let
(
:license_type
)
{
'gpl-3.0'
}
it
'returns the license text'
do
expect
(
json_response
[
'content'
]).
to
include
(
'GNU GENERAL PUBLIC LICENSE'
)
end
it
'replaces placeholder values'
do
expect
(
json_response
[
'content'
]).
to
include
(
'My Awesome Project'
)
expect
(
json_response
[
'content'
]).
to
include
(
"Copyright (C)
#{
Time
.
now
.
year
}
Anton"
)
end
end
context
'for the gpl-2.0 license'
do
let
(
:license_type
)
{
'gpl-2.0'
}
it
'returns the license text'
do
expect
(
json_response
[
'content'
]).
to
include
(
'GNU GENERAL PUBLIC LICENSE'
)
end
it
'replaces placeholder values'
do
expect
(
json_response
[
'content'
]).
to
include
(
'My Awesome Project'
)
expect
(
json_response
[
'content'
]).
to
include
(
"Copyright (C)
#{
Time
.
now
.
year
}
Anton"
)
end
end
context
'for the apache-2.0 license'
do
let
(
:license_type
)
{
'apache-2.0'
}
it
'returns the license text'
do
expect
(
json_response
[
'content'
]).
to
include
(
'Apache License'
)
end
it
'replaces placeholder values'
do
expect
(
json_response
[
'content'
]).
to
include
(
"Copyright
#{
Time
.
now
.
year
}
Anton"
)
end
end
context
'for an uknown license'
do
let
(
:license_type
)
{
'muth-over9000'
}
it
'returns a 404'
do
expect
(
response
).
to
have_http_status
(
404
)
end
end
end
context
'with no :fullname given'
do
context
'with an authenticated user'
do
let
(
:user
)
{
create
(
:user
)
}
it
'replaces the copyright owner placeholder with the name of the current user'
do
get
v3_api
(
'/templates/licenses/mit'
,
user
)
expect
(
json_response
[
'content'
]).
to
include
(
"Copyright (c)
#{
Time
.
now
.
year
}
#{
user
.
name
}
"
)
end
end
end
end
describe
'with /templates namespace'
do
it_behaves_like
'the Template Entity'
,
'/templates/gitignores/Ruby'
it_behaves_like
'the TemplateList Entity'
,
'/templates/gitignores'
it_behaves_like
'requesting gitignores'
,
'/templates/gitignores'
it_behaves_like
'requesting gitlab-ci-ymls'
,
'/templates/gitlab_ci_ymls'
it_behaves_like
'requesting gitlab-ci-yml for Ruby'
,
'/templates/gitlab_ci_ymls/Ruby'
it_behaves_like
'the License Template Entity'
,
'/templates/licenses/mit'
it_behaves_like
'GET licenses'
,
'/templates/licenses'
it_behaves_like
'GET licenses/:name'
,
'/templates/licenses'
end
describe
'without /templates namespace'
do
it_behaves_like
'the Template Entity'
,
'/gitignores/Ruby'
it_behaves_like
'the TemplateList Entity'
,
'/gitignores'
it_behaves_like
'requesting gitignores'
,
'/gitignores'
it_behaves_like
'requesting gitlab-ci-ymls'
,
'/gitlab_ci_ymls'
it_behaves_like
'requesting gitlab-ci-yml for Ruby'
,
'/gitlab_ci_ymls/Ruby'
it_behaves_like
'the License Template Entity'
,
'/licenses/mit'
it_behaves_like
'GET licenses'
,
'/licenses'
it_behaves_like
'GET licenses/:name'
,
'/licenses'
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment