Merge branch 'api-new-attributes' into 'master'
Add project star and fork count, group avatar URL and user/group web URL attributes to API Addresses internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2521. See merge request !1058
This commit is contained in:
commit
a876db48d9
|
@ -18,6 +18,7 @@ v 7.14.0 (unreleased)
|
|||
- Expire Rails cache entries after two weeks to prevent endless Redis growth
|
||||
- Add support for destroying project milestones (Stan Hu)
|
||||
- Add fetch command to the MR page
|
||||
- Add project star and fork count, group avatar URL and user/group web URL attributes to API
|
||||
- Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
|
||||
- Add fetch command to the MR page.
|
||||
- Disabled autocapitalize and autocorrect on login field (Daryl Chan)
|
||||
|
|
|
@ -56,6 +56,12 @@ class Group < Namespace
|
|||
name
|
||||
end
|
||||
|
||||
def avatar_url(size = nil)
|
||||
if avatar.present?
|
||||
[gitlab_config.url, avatar.url].join
|
||||
end
|
||||
end
|
||||
|
||||
def owners
|
||||
@owners ||= group_members.owners.map(&:user)
|
||||
end
|
||||
|
|
|
@ -36,7 +36,6 @@ class Project < ActiveRecord::Base
|
|||
include Gitlab::ConfigHelper
|
||||
include Gitlab::ShellAdapter
|
||||
include Gitlab::VisibilityLevel
|
||||
include Rails.application.routes.url_helpers
|
||||
include Referable
|
||||
include Sortable
|
||||
|
||||
|
@ -316,7 +315,7 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def web_url
|
||||
[gitlab_config.url, path_with_namespace].join('/')
|
||||
Rails.application.routes.url_helpers.namespace_project_url(self.namespace, self)
|
||||
end
|
||||
|
||||
def web_url_without_protocol
|
||||
|
@ -433,7 +432,7 @@ class Project < ActiveRecord::Base
|
|||
if avatar.present?
|
||||
[gitlab_config.url, avatar.url].join
|
||||
elsif avatar_in_git
|
||||
[gitlab_config.url, namespace_project_avatar_path(namespace, self)].join
|
||||
Rails.application.routes.url_helpers.namespace_project_avatar_url(namespace, self)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -571,7 +570,7 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def http_url_to_repo
|
||||
[gitlab_config.url, '/', path_with_namespace, '.git'].join('')
|
||||
"#{web_url}.git"
|
||||
end
|
||||
|
||||
# Check if current branch name is marked as protected in the system
|
||||
|
|
|
@ -6,6 +6,10 @@ module API
|
|||
|
||||
class UserBasic < UserSafe
|
||||
expose :id, :state, :avatar_url
|
||||
|
||||
expose :web_url do |user, options|
|
||||
Rails.application.routes.url_helpers.user_url(user)
|
||||
end
|
||||
end
|
||||
|
||||
class User < UserBasic
|
||||
|
@ -59,6 +63,7 @@ module API
|
|||
expose :namespace
|
||||
expose :forked_from_project, using: Entities::ForkedFromProject, if: lambda{ | project, options | project.forked? }
|
||||
expose :avatar_url
|
||||
expose :star_count, :forks_count
|
||||
end
|
||||
|
||||
class ProjectMember < UserBasic
|
||||
|
@ -69,6 +74,11 @@ module API
|
|||
|
||||
class Group < Grape::Entity
|
||||
expose :id, :name, :path, :description
|
||||
expose :avatar_url
|
||||
|
||||
expose :web_url do |group, options|
|
||||
Rails.application.routes.url_helpers.group_url(group)
|
||||
end
|
||||
end
|
||||
|
||||
class GroupDetail < Group
|
||||
|
|
|
@ -111,14 +111,20 @@ describe Project do
|
|||
expect(project.url_to_repo).to eq(Gitlab.config.gitlab_shell.ssh_path_prefix + 'somewhere.git')
|
||||
end
|
||||
|
||||
it 'returns the full web URL for this repo' do
|
||||
project = Project.new(path: 'somewhere')
|
||||
expect(project.web_url).to eq("#{Gitlab.config.gitlab.url}/somewhere")
|
||||
describe "#web_url" do
|
||||
let(:project) { create(:empty_project, path: "somewhere") }
|
||||
|
||||
it 'returns the full web URL for this repo' do
|
||||
expect(project.web_url).to eq("#{Gitlab.config.gitlab.url}/#{project.namespace.path}/somewhere")
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns the web URL without the protocol for this repo' do
|
||||
project = Project.new(path: 'somewhere')
|
||||
expect(project.web_url_without_protocol).to eq("#{Gitlab.config.gitlab.url.split('://')[1]}/somewhere")
|
||||
describe "#web_url_without_protocol" do
|
||||
let(:project) { create(:empty_project, path: "somewhere") }
|
||||
|
||||
it 'returns the web URL without the protocol for this repo' do
|
||||
expect(project.web_url_without_protocol).to eq("#{Gitlab.config.gitlab.url.split('://')[1]}/#{project.namespace.path}/somewhere")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'last_activity methods' do
|
||||
|
|
Loading…
Reference in New Issue