mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-19 09:36:47 +10:00
Merge branch 'master' into fix-personal-snippet-access-workflow
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.2.0 (unreleased)
|
||||
- Added a GitLab specific profiling tool called "Sherlock" (see GitLab CE merge request #1749)
|
||||
- Upgrade gitlab_git to 7.2.20 and rugged to 0.23.3 (Stan Hu)
|
||||
- Fix bug where manually merged branches in a MR would end up with an empty diff (Stan Hu)
|
||||
- Force update refs/merge-requests/X/head upon a push to the source branch of a merge request (Stan Hu)
|
||||
- Improved performance of finding users by one of their Email addresses
|
||||
- Improved performance of replacing references in comments
|
||||
@@ -14,6 +17,7 @@ v 8.2.0 (unreleased)
|
||||
- Use git follow flag for commits page when retrieve history for file or directory
|
||||
- Show merge request CI status on merge requests index page
|
||||
- Extend yml syntax for only and except to support specifying repository path
|
||||
- Enable shared runners to all new projects
|
||||
- Fix: 500 error returned if destroy request without HTTP referer (Kazuki Shimizu)
|
||||
- Remove deprecated CI events from project settings page
|
||||
- Use issue editor as cross reference comment author when issue is edited with a new mention.
|
||||
@@ -23,10 +27,19 @@ v 8.2.0 (unreleased)
|
||||
- Include commit logs in project search
|
||||
- Add "added", "modified" and "removed" properties to commit object in webhook
|
||||
- Rename "Back to" links to "Go to" because its not always a case it point to place user come from
|
||||
- Allow groups to appear in the search results if the group owner allows it
|
||||
- New design for project graphs page
|
||||
- Fix incoming email config defaults
|
||||
|
||||
v 8.1.4
|
||||
- Fix bug where manually merged branches in a MR would end up with an empty diff (Stan Hu)
|
||||
- Prevent redirect loop when home_page_url is set to the root URL
|
||||
|
||||
v 8.1.3
|
||||
- Force update refs/merge-requests/X/head upon a push to the source branch of a merge request (Stan Hu)
|
||||
- Spread out runner contacted_at updates
|
||||
- New design for user profile page
|
||||
- Use issue editor as cross reference comment author when issue is edited with a new mention
|
||||
- Add Facebook authentication
|
||||
|
||||
v 8.1.1
|
||||
- Fix cloning Wiki repositories via HTTP (Stan Hu)
|
||||
|
||||
@@ -19,6 +19,7 @@ gem 'devise-async', '~> 0.9.0'
|
||||
gem 'doorkeeper', '~> 2.1.3'
|
||||
gem 'omniauth', '~> 1.2.2'
|
||||
gem 'omniauth-bitbucket', '~> 0.0.2'
|
||||
gem 'omniauth-facebook', '~> 3.0.0'
|
||||
gem 'omniauth-github', '~> 1.1.1'
|
||||
gem 'omniauth-gitlab', '~> 1.0.0'
|
||||
gem 'omniauth-google-oauth2', '~> 0.2.0'
|
||||
@@ -39,7 +40,7 @@ gem "browser", '~> 1.0.0'
|
||||
|
||||
# Extracting information from a git repository
|
||||
# Provide access to Gitlab::Git library
|
||||
gem "gitlab_git", '~> 7.2.19'
|
||||
gem "gitlab_git", '~> 7.2.20'
|
||||
|
||||
# LDAP Auth
|
||||
# GitLab fork with several improvements to original library. For full list of changes
|
||||
@@ -50,11 +51,7 @@ gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: "omniauth-ldap"
|
||||
gem 'gollum-lib', '~> 4.0.2'
|
||||
|
||||
# Language detection
|
||||
# GitLab fork of linguist does not require pygments/python dependency.
|
||||
# New version of original gem also dropped pygments support but it has strict
|
||||
# dependency to unstable rugged version. We have internal issue for replacing
|
||||
# fork with original gem when we meet on same rugged version - https://dev.gitlab.org/gitlab/gitlabhq/issues/2052.
|
||||
gem "gitlab-linguist", "~> 3.0.1", require: "linguist"
|
||||
gem "github-linguist", "~> 4.7.0", require: "linguist"
|
||||
|
||||
# API
|
||||
gem 'grape', '~> 0.6.1'
|
||||
@@ -63,7 +60,7 @@ gem 'rack-cors', '~> 0.4.0', require: 'rack/cors'
|
||||
|
||||
# Format dates and times
|
||||
# based on human-friendly examples
|
||||
gem "stamp", '~> 0.5.0'
|
||||
gem "stamp", '~> 0.6.0'
|
||||
|
||||
# Enumeration fields
|
||||
gem 'enumerize', '~> 0.7.0'
|
||||
@@ -184,7 +181,7 @@ gem 'ace-rails-ap', '~> 2.0.1'
|
||||
gem 'mousetrap-rails', '~> 1.4.6'
|
||||
|
||||
# Detect and convert string character encoding
|
||||
gem 'charlock_holmes', '~> 0.6.9.4'
|
||||
gem 'charlock_holmes', '~> 0.7.3'
|
||||
|
||||
gem "sass-rails", '~> 4.0.5'
|
||||
gem "coffee-rails", '~> 4.1.0'
|
||||
@@ -214,11 +211,9 @@ group :development do
|
||||
gem "annotate", "~> 2.6.0"
|
||||
gem "letter_opener", '~> 1.1.2'
|
||||
gem 'quiet_assets', '~> 1.0.2'
|
||||
gem 'rack-mini-profiler', '~> 0.9.0', require: false
|
||||
gem 'rerun', '~> 0.10.0'
|
||||
gem 'bullet', require: false
|
||||
gem 'active_record_query_trace', require: false
|
||||
gem 'rack-lineprof', platform: :mri
|
||||
gem 'rblineprof', platform: :mri, require: false
|
||||
|
||||
# Better errors handler
|
||||
gem 'better_errors', '~> 1.0.1'
|
||||
|
||||
+19
-24
@@ -17,7 +17,6 @@ GEM
|
||||
activesupport (= 4.1.12)
|
||||
builder (~> 3.1)
|
||||
erubis (~> 2.7.0)
|
||||
active_record_query_trace (1.5)
|
||||
activemodel (4.1.12)
|
||||
activesupport (= 4.1.12)
|
||||
builder (~> 3.1)
|
||||
@@ -176,7 +175,7 @@ GEM
|
||||
activesupport (>= 3.2)
|
||||
equalizer (0.0.11)
|
||||
erubis (2.7.0)
|
||||
escape_utils (0.2.4)
|
||||
escape_utils (1.1.0)
|
||||
eventmachine (1.0.8)
|
||||
excon (0.45.4)
|
||||
execjs (2.6.0)
|
||||
@@ -267,6 +266,11 @@ GEM
|
||||
json
|
||||
get_process_mem (0.2.0)
|
||||
gherkin-ruby (0.3.2)
|
||||
github-linguist (4.7.0)
|
||||
charlock_holmes (~> 0.7.3)
|
||||
escape_utils (~> 1.1.0)
|
||||
mime-types (>= 1.19)
|
||||
rugged (>= 0.23.0b)
|
||||
github-markup (1.3.3)
|
||||
gitlab-flowdock-git-hook (1.0.1)
|
||||
flowdock (~> 0.7)
|
||||
@@ -277,17 +281,13 @@ GEM
|
||||
diff-lcs (~> 1.1)
|
||||
mime-types (~> 1.15)
|
||||
posix-spawn (~> 0.3)
|
||||
gitlab-linguist (3.0.1)
|
||||
charlock_holmes (~> 0.6.6)
|
||||
escape_utils (~> 0.2.4)
|
||||
mime-types (~> 1.19)
|
||||
gitlab_emoji (0.1.1)
|
||||
gemojione (~> 2.0)
|
||||
gitlab_git (7.2.19)
|
||||
gitlab_git (7.2.20)
|
||||
activesupport (~> 4.0)
|
||||
charlock_holmes (~> 0.6)
|
||||
gitlab-linguist (~> 3.0)
|
||||
rugged (~> 0.22.2)
|
||||
charlock_holmes (~> 0.7.3)
|
||||
github-linguist (~> 4.7.0)
|
||||
rugged (~> 0.23.3)
|
||||
gitlab_meta (7.0)
|
||||
gitlab_omniauth-ldap (1.2.1)
|
||||
net-ldap (~> 0.9)
|
||||
@@ -423,6 +423,8 @@ GEM
|
||||
multi_json (~> 1.7)
|
||||
omniauth (~> 1.1)
|
||||
omniauth-oauth (~> 1.0)
|
||||
omniauth-facebook (3.0.0)
|
||||
omniauth-oauth2 (~> 1.2)
|
||||
omniauth-github (1.1.2)
|
||||
omniauth (~> 1.0)
|
||||
omniauth-oauth2 (~> 1.1)
|
||||
@@ -489,12 +491,6 @@ GEM
|
||||
rack-attack (4.3.0)
|
||||
rack
|
||||
rack-cors (0.4.0)
|
||||
rack-lineprof (0.0.3)
|
||||
rack (~> 1.5)
|
||||
rblineprof (~> 0.3.6)
|
||||
term-ansicolor (~> 1.3)
|
||||
rack-mini-profiler (0.9.7)
|
||||
rack (>= 1.1.3)
|
||||
rack-mount (0.8.3)
|
||||
rack (>= 1.0.0)
|
||||
rack-oauth2 (1.0.10)
|
||||
@@ -689,7 +685,7 @@ GEM
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
sprockets (>= 2.8, < 4.0)
|
||||
stamp (0.5.0)
|
||||
stamp (0.6.0)
|
||||
state_machine (1.2.0)
|
||||
stringex (2.5.2)
|
||||
systemu (2.6.5)
|
||||
@@ -777,7 +773,6 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
RedCloth (~> 4.2.9)
|
||||
ace-rails-ap (~> 2.0.1)
|
||||
active_record_query_trace
|
||||
activerecord-deprecated_finders (~> 1.0.3)
|
||||
activerecord-session_store (~> 0.1.0)
|
||||
acts-as-taggable-on (~> 3.4)
|
||||
@@ -800,7 +795,7 @@ DEPENDENCIES
|
||||
capybara (~> 2.4.0)
|
||||
capybara-screenshot (~> 1.0.0)
|
||||
carrierwave (~> 0.9.0)
|
||||
charlock_holmes (~> 0.6.9.4)
|
||||
charlock_holmes (~> 0.7.3)
|
||||
coffee-rails (~> 4.1.0)
|
||||
colored (~> 1.2)
|
||||
colorize (~> 0.5.8)
|
||||
@@ -825,11 +820,11 @@ DEPENDENCIES
|
||||
foreman
|
||||
fuubar (~> 2.0.0)
|
||||
gemnasium-gitlab-service (~> 0.2)
|
||||
github-linguist (~> 4.7.0)
|
||||
github-markup (~> 1.3.1)
|
||||
gitlab-flowdock-git-hook (~> 1.0.1)
|
||||
gitlab-linguist (~> 3.0.1)
|
||||
gitlab_emoji (~> 0.1)
|
||||
gitlab_git (~> 7.2.19)
|
||||
gitlab_git (~> 7.2.20)
|
||||
gitlab_meta (= 7.0)
|
||||
gitlab_omniauth-ldap (~> 1.2.1)
|
||||
gollum-lib (~> 4.0.2)
|
||||
@@ -859,6 +854,7 @@ DEPENDENCIES
|
||||
octokit (~> 3.7.0)
|
||||
omniauth (~> 1.2.2)
|
||||
omniauth-bitbucket (~> 0.0.2)
|
||||
omniauth-facebook (~> 3.0.0)
|
||||
omniauth-github (~> 1.1.1)
|
||||
omniauth-gitlab (~> 1.0.0)
|
||||
omniauth-google-oauth2 (~> 0.2.0)
|
||||
@@ -875,11 +871,10 @@ DEPENDENCIES
|
||||
quiet_assets (~> 1.0.2)
|
||||
rack-attack (~> 4.3.0)
|
||||
rack-cors (~> 0.4.0)
|
||||
rack-lineprof
|
||||
rack-mini-profiler (~> 0.9.0)
|
||||
rack-oauth2 (~> 1.0.5)
|
||||
rails (= 4.1.12)
|
||||
raphael-rails (~> 2.1.2)
|
||||
rblineprof
|
||||
rdoc (~> 3.6)
|
||||
redcarpet (~> 3.3.3)
|
||||
redis-rails (~> 4.0.0)
|
||||
@@ -909,7 +904,7 @@ DEPENDENCIES
|
||||
spring-commands-spinach (~> 1.0.0)
|
||||
spring-commands-teaspoon (~> 0.0.2)
|
||||
sprockets (~> 2.12.3)
|
||||
stamp (~> 0.5.0)
|
||||
stamp (~> 0.6.0)
|
||||
state_machine (~> 1.2.0)
|
||||
task_list (~> 1.0.2)
|
||||
teaspoon (~> 1.0.0)
|
||||
|
||||
+2
-2
@@ -119,6 +119,6 @@ rebase with master to see if that solves the issue.
|
||||
### Closing down the issue tracker on GitHub
|
||||
|
||||
We are currently in the process of closing down the issue tracker on GitHub, to
|
||||
prevent duplication with the [GitLab.com issue tracker][https://gitlab.com/gitlab-org/gitlab-ce/issues].
|
||||
prevent duplication with the GitLab.com issue tracker.
|
||||
Since this is an older issue I'll be closing this for now. If you think this is
|
||||
still an issue I encourage you to open it on the [GitLab.com issue tracker][https://gitlab.com/gitlab-org/gitlab-ce/issues].
|
||||
still an issue I encourage you to open it on the \[GitLab.com issue tracker\](https://gitlab.com/gitlab-org/gitlab-ce/issues).
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
@@ -25,7 +25,7 @@ class @Calendar
|
||||
30
|
||||
]
|
||||
legendCellPadding: 3
|
||||
cellSize: $('.user-calendar').width() / 76
|
||||
cellSize: $('.user-calendar').width() / 73
|
||||
onClick: (date, count) ->
|
||||
formated_date = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate()
|
||||
$.ajax
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
border-bottom: 1px solid $border-color;
|
||||
color: $gl-gray;
|
||||
|
||||
&.oneline-block {
|
||||
line-height: 42px;
|
||||
}
|
||||
|
||||
&.white {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
@@ -389,12 +389,32 @@ table {
|
||||
|
||||
.center-middle-menu {
|
||||
@include nav-menu;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
margin: -$gl-padding;
|
||||
height: auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
height: 58px;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
li {
|
||||
&:after {
|
||||
content: "|";
|
||||
color: $border-gray-light;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
&:after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
> a {
|
||||
display: inline-block;
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropzone .dz-preview .dz-progress {
|
||||
|
||||
@@ -106,6 +106,7 @@
|
||||
}
|
||||
|
||||
.markdown-area {
|
||||
@include border-radius(0);
|
||||
background: #FFF;
|
||||
border: 1px solid #ddd;
|
||||
min-height: 140px;
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
|
||||
&:hover, &:active, &:focus {
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
text-decoration: none;
|
||||
padding-left: 22px;
|
||||
font-weight: normal;
|
||||
outline: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
@@ -176,6 +177,7 @@
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
transition-duration: .3s;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.collapse-nav a:hover {
|
||||
@@ -238,6 +240,7 @@
|
||||
width: 100%;
|
||||
padding: 10px 22px;
|
||||
overflow: hidden;
|
||||
outline: none;
|
||||
|
||||
img {
|
||||
width: 36px;
|
||||
|
||||
@@ -367,7 +367,6 @@
|
||||
|
||||
.inline-parallel-buttons {
|
||||
float: right;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
// Mobile
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
.event-item {
|
||||
font-size: $gl-font-size;
|
||||
padding: $gl-padding;
|
||||
padding: $gl-padding $gl-padding $gl-padding ($gl-padding + $gl-avatar-size + 15px);
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border-bottom: 1px solid $table-border-color;
|
||||
@@ -16,10 +16,7 @@
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
.event-title {
|
||||
line-height: 44px;
|
||||
}
|
||||
|
||||
.event-title,
|
||||
.event-item-timestamp {
|
||||
line-height: 44px;
|
||||
}
|
||||
@@ -30,7 +27,7 @@
|
||||
}
|
||||
|
||||
.avatar {
|
||||
margin-right: 15px;
|
||||
margin-left: -($gl-avatar-size + 15px);
|
||||
}
|
||||
|
||||
.event-title {
|
||||
@@ -43,8 +40,7 @@
|
||||
}
|
||||
|
||||
.event-body {
|
||||
margin-left: 63px;
|
||||
margin-right: 80px;
|
||||
margin-right: 174px;
|
||||
|
||||
.event-note {
|
||||
margin-top: 5px;
|
||||
@@ -155,6 +151,8 @@
|
||||
|
||||
@media (max-width: $screen-xs-max) {
|
||||
.event-item {
|
||||
padding-left: $gl-padding;
|
||||
|
||||
.event-title {
|
||||
white-space: normal;
|
||||
overflow: visible;
|
||||
|
||||
@@ -19,6 +19,20 @@
|
||||
.accept-merge-holder {
|
||||
.accept-action {
|
||||
display: inline-block;
|
||||
|
||||
.accept_merge_request {
|
||||
&.ci-pending,
|
||||
&.ci-running {
|
||||
@include btn-orange;
|
||||
}
|
||||
|
||||
&.ci-skipped,
|
||||
&.ci-failed,
|
||||
&.ci-canceled,
|
||||
&.ci-error {
|
||||
@include btn-red;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.accept-control {
|
||||
|
||||
@@ -56,6 +56,10 @@
|
||||
.note_text {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.comment-hints {
|
||||
margin-top: -12px;
|
||||
}
|
||||
}
|
||||
|
||||
/* loading indicator */
|
||||
@@ -168,7 +172,7 @@
|
||||
color: #999;
|
||||
background: #FFF;
|
||||
padding: 7px;
|
||||
margin-top: -11px;
|
||||
margin-top: -7px;
|
||||
border: 1px solid $border-color;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@@ -75,7 +75,3 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.cal-heatmap-container {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
@@ -552,4 +552,4 @@ pre.light-well {
|
||||
z-index: 100;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
table .sherlock-code {
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
.sherlock-code {
|
||||
pre {
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
pre code {
|
||||
white-space: pre;
|
||||
}
|
||||
}
|
||||
|
||||
.sherlock-line-samples-table {
|
||||
margin-bottom: 0px !important;
|
||||
|
||||
thead tr th,
|
||||
tbody tr td {
|
||||
font-size: 13px !important;
|
||||
text-align: right;
|
||||
padding: 0px 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.sherlock-file-sample pre {
|
||||
padding-top: 28px !important;
|
||||
}
|
||||
|
||||
.sherlock-line-samples-table .slow {
|
||||
color: $red-light;
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -57,6 +57,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
|
||||
:version_check_enabled,
|
||||
:admin_notification_email,
|
||||
:user_oauth_applications,
|
||||
:shared_runners_enabled,
|
||||
restricted_visibility_levels: [],
|
||||
import_sources: []
|
||||
)
|
||||
|
||||
@@ -59,13 +59,8 @@ class ApplicationController < ActionController::Base
|
||||
end
|
||||
|
||||
def authenticate_user!(*args)
|
||||
# If user is not signed-in and tries to access root_path - redirect him to landing page
|
||||
# Don't redirect to the default URL to prevent endless redirections
|
||||
if current_application_settings.home_page_url.present? &&
|
||||
current_application_settings.home_page_url.chomp('/') != Gitlab.config.gitlab['url'].chomp('/')
|
||||
if current_user.nil? && root_path == request.path
|
||||
redirect_to current_application_settings.home_page_url and return
|
||||
end
|
||||
if redirect_to_home_page_url?
|
||||
redirect_to current_application_settings.home_page_url and return
|
||||
end
|
||||
|
||||
super(*args)
|
||||
@@ -346,4 +341,17 @@ class ApplicationController < ActionController::Base
|
||||
def git_import_enabled?
|
||||
current_application_settings.import_sources.include?('git')
|
||||
end
|
||||
|
||||
def redirect_to_home_page_url?
|
||||
# If user is not signed-in and tries to access root_path - redirect him to landing page
|
||||
# Don't redirect to the default URL to prevent endless redirections
|
||||
return false unless current_application_settings.home_page_url.present?
|
||||
|
||||
home_page_url = current_application_settings.home_page_url.chomp('/')
|
||||
root_urls = [Gitlab.config.gitlab['url'].chomp('/'), root_url.chomp('/')]
|
||||
|
||||
return false if root_urls.include?(home_page_url)
|
||||
|
||||
current_user.nil? && root_path == request.path
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,12 +4,12 @@ class GroupsController < Groups::ApplicationController
|
||||
before_action :group, except: [:new, :create]
|
||||
|
||||
# Authorize
|
||||
before_action :authorize_read_group!, except: [:show, :new, :create]
|
||||
before_action :authorize_read_group!, except: [:show, :new, :create, :autocomplete]
|
||||
before_action :authorize_admin_group!, only: [:edit, :update, :destroy, :projects]
|
||||
before_action :authorize_create_group!, only: [:new, :create]
|
||||
|
||||
# Load group projects
|
||||
before_action :load_projects, except: [:new, :create, :projects, :edit, :update]
|
||||
before_action :load_projects, except: [:new, :create, :projects, :edit, :update, :autocomplete]
|
||||
before_action :event_filter, only: :show
|
||||
|
||||
layout :determine_layout
|
||||
@@ -133,7 +133,7 @@ class GroupsController < Groups::ApplicationController
|
||||
end
|
||||
|
||||
def group_params
|
||||
params.require(:group).permit(:name, :description, :path, :avatar)
|
||||
params.require(:group).permit(:name, :description, :path, :avatar, :public)
|
||||
end
|
||||
|
||||
def load_events
|
||||
|
||||
@@ -30,7 +30,7 @@ class Projects::BuildsController < Projects::ApplicationController
|
||||
|
||||
def show
|
||||
@builds = @ci_project.commits.find_by_sha(@build.sha).builds.order('id DESC')
|
||||
@builds = @builds.where("id not in (?)", @build.id).page(params[:page]).per(20)
|
||||
@builds = @builds.where("id not in (?)", @build.id)
|
||||
@commit = @build.commit
|
||||
|
||||
respond_to do |format|
|
||||
@@ -42,17 +42,13 @@ class Projects::BuildsController < Projects::ApplicationController
|
||||
end
|
||||
|
||||
def retry
|
||||
if @build.commands.blank?
|
||||
unless @build.retryable?
|
||||
return page_404
|
||||
end
|
||||
|
||||
build = Ci::Build.retry(@build)
|
||||
|
||||
if params[:return_to]
|
||||
redirect_to URI.parse(params[:return_to]).path
|
||||
else
|
||||
redirect_to build_path(build)
|
||||
end
|
||||
redirect_to build_path(build)
|
||||
end
|
||||
|
||||
def status
|
||||
|
||||
@@ -7,14 +7,14 @@ class Projects::CommitController < Projects::ApplicationController
|
||||
before_action :authorize_download_code!, except: [:cancel_builds]
|
||||
before_action :authorize_manage_builds!, only: [:cancel_builds]
|
||||
before_action :commit
|
||||
before_action :authorize_manage_builds!, only: [:cancel_builds, :retry_builds]
|
||||
before_action :define_show_vars, only: [:show, :builds]
|
||||
|
||||
def show
|
||||
return git_not_found! unless @commit
|
||||
|
||||
@line_notes = commit.notes.inline
|
||||
@diffs = @commit.diffs
|
||||
@note = @project.build_commit_note(commit)
|
||||
@notes_count = commit.notes.count
|
||||
@notes = commit.notes.not_inline.fresh
|
||||
@noteable = @commit
|
||||
@comments_allowed = @reply_allowed = true
|
||||
@@ -23,8 +23,6 @@ class Projects::CommitController < Projects::ApplicationController
|
||||
commit_id: @commit.id
|
||||
}
|
||||
|
||||
@ci_commit = project.ci_commit(commit.sha)
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.diff { render text: @commit.to_diff }
|
||||
@@ -32,20 +30,25 @@ class Projects::CommitController < Projects::ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def ci
|
||||
@ci_commit = @project.ci_commit(@commit.sha)
|
||||
@builds = @ci_commit.builds if @ci_commit
|
||||
@notes_count = @commit.notes.count
|
||||
def builds
|
||||
@ci_project = @project.gitlab_ci_project
|
||||
end
|
||||
|
||||
def cancel_builds
|
||||
@ci_commit = @project.ci_commit(@commit.sha)
|
||||
@ci_commit.builds.running_or_pending.each(&:cancel)
|
||||
ci_commit.builds.running_or_pending.each(&:cancel)
|
||||
|
||||
redirect_to ci_namespace_project_commit_path(project.namespace, project, commit.sha)
|
||||
redirect_to builds_namespace_project_commit_path(project.namespace, project, commit.sha)
|
||||
end
|
||||
|
||||
def retry_builds
|
||||
ci_commit.builds.latest.failed.each do |build|
|
||||
if build.retryable?
|
||||
Ci::Build.retry(build)
|
||||
end
|
||||
end
|
||||
|
||||
redirect_to builds_namespace_project_commit_path(project.namespace, project, commit.sha)
|
||||
end
|
||||
|
||||
def branches
|
||||
@branches = @project.repository.branch_names_contains(commit.id)
|
||||
@@ -53,11 +56,22 @@ class Projects::CommitController < Projects::ApplicationController
|
||||
render layout: false
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def commit
|
||||
@commit ||= @project.commit(params[:id])
|
||||
end
|
||||
|
||||
private
|
||||
def ci_commit
|
||||
@ci_commit ||= project.ci_commit(commit.sha)
|
||||
end
|
||||
|
||||
def define_show_vars
|
||||
@diffs = commit.diffs
|
||||
@notes_count = commit.notes.count
|
||||
|
||||
@builds = ci_commit.builds if ci_commit
|
||||
end
|
||||
|
||||
def authorize_manage_builds!
|
||||
unless can?(current_user, :manage_builds, project)
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
module Sherlock
|
||||
class ApplicationController < ::ApplicationController
|
||||
before_action :find_transaction
|
||||
|
||||
def find_transaction
|
||||
if params[:transaction_id]
|
||||
@transaction = Gitlab::Sherlock.collection.
|
||||
find_transaction(params[:transaction_id])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,7 @@
|
||||
module Sherlock
|
||||
class FileSamplesController < Sherlock::ApplicationController
|
||||
def show
|
||||
@file_sample = @transaction.find_file_sample(params[:id])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,7 @@
|
||||
module Sherlock
|
||||
class QueriesController < Sherlock::ApplicationController
|
||||
def show
|
||||
@query = @transaction.find_query(params[:id])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,19 @@
|
||||
module Sherlock
|
||||
class TransactionsController < Sherlock::ApplicationController
|
||||
def index
|
||||
@transactions = Gitlab::Sherlock.collection.newest_first
|
||||
end
|
||||
|
||||
def show
|
||||
@transaction = Gitlab::Sherlock.collection.find_transaction(params[:id])
|
||||
|
||||
render_404 unless @transaction
|
||||
end
|
||||
|
||||
def destroy_all
|
||||
Gitlab::Sherlock.collection.clear
|
||||
|
||||
redirect_to(:back)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -6,33 +6,34 @@ class GroupsFinder
|
||||
private
|
||||
|
||||
def all_groups(current_user)
|
||||
if current_user
|
||||
if current_user.authorized_groups.any?
|
||||
# User has access to groups
|
||||
#
|
||||
# Return only:
|
||||
# groups with public projects
|
||||
# groups with internal projects
|
||||
# groups with joined projects
|
||||
#
|
||||
group_ids = Project.public_and_internal_only.pluck(:namespace_id) +
|
||||
current_user.authorized_groups.pluck(:id)
|
||||
Group.where(id: group_ids)
|
||||
else
|
||||
# User has no group membership
|
||||
#
|
||||
# Return only:
|
||||
# groups with public projects
|
||||
# groups with internal projects
|
||||
#
|
||||
Group.where(id: Project.public_and_internal_only.pluck(:namespace_id))
|
||||
end
|
||||
else
|
||||
# Not authenticated
|
||||
#
|
||||
# Return only:
|
||||
# groups with public projects
|
||||
Group.where(id: Project.public_only.pluck(:namespace_id))
|
||||
end
|
||||
group_ids = if current_user
|
||||
if current_user.authorized_groups.any?
|
||||
# User has access to groups
|
||||
#
|
||||
# Return only:
|
||||
# groups with public projects
|
||||
# groups with internal projects
|
||||
# groups with joined projects
|
||||
#
|
||||
Project.public_and_internal_only.pluck(:namespace_id) +
|
||||
current_user.authorized_groups.pluck(:id)
|
||||
else
|
||||
# User has no group membership
|
||||
#
|
||||
# Return only:
|
||||
# groups with public projects
|
||||
# groups with internal projects
|
||||
#
|
||||
Project.public_and_internal_only.pluck(:namespace_id)
|
||||
end
|
||||
else
|
||||
# Not authenticated
|
||||
#
|
||||
# Return only:
|
||||
# groups with public projects
|
||||
Project.public_only.pluck(:namespace_id)
|
||||
end
|
||||
|
||||
Group.where("public IS TRUE OR id IN(?)", group_ids)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module AuthHelper
|
||||
PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2).freeze
|
||||
PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2 facebook).freeze
|
||||
FORM_BASED_PROVIDERS = [/\Aldap/, 'crowd'].freeze
|
||||
|
||||
def ldap_enabled?
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
module BuildsHelper
|
||||
def build_ref_link build
|
||||
gitlab_ref_link build.project, build.ref
|
||||
end
|
||||
|
||||
def build_commit_link build
|
||||
gitlab_commit_link build.project, build.short_sha
|
||||
end
|
||||
|
||||
def build_url(build)
|
||||
namespace_project_build_path(build.gl_project, build.project, build)
|
||||
end
|
||||
end
|
||||
@@ -4,25 +4,6 @@ module Ci
|
||||
{ :"data-no-turbolink" => "data-no-turbolink" }
|
||||
end
|
||||
|
||||
def gitlab_ref_link project, ref
|
||||
gitlab_url = project.gitlab_url.dup
|
||||
gitlab_url << "/commits/#{ref}"
|
||||
link_to ref, gitlab_url, no_turbolink
|
||||
end
|
||||
|
||||
def gitlab_compare_link project, before, after
|
||||
gitlab_url = project.gitlab_url.dup
|
||||
gitlab_url << "/compare/#{before}...#{after}"
|
||||
|
||||
link_to "#{before}...#{after}", gitlab_url, no_turbolink
|
||||
end
|
||||
|
||||
def gitlab_commit_link project, sha
|
||||
gitlab_url = project.gitlab_url.dup
|
||||
gitlab_url << "/commit/#{sha}"
|
||||
link_to Ci::Commit.truncate_sha(sha), gitlab_url, no_turbolink
|
||||
end
|
||||
|
||||
def yaml_web_editor_link(project)
|
||||
commits = project.commits
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
module CiStatusHelper
|
||||
def ci_status_path(ci_commit)
|
||||
project = ci_commit.gl_project
|
||||
ci_namespace_project_commit_path(project.namespace, project, ci_commit.sha)
|
||||
builds_namespace_project_commit_path(project.namespace, project, ci_commit.sha)
|
||||
end
|
||||
|
||||
def ci_status_icon(ci_commit)
|
||||
|
||||
@@ -137,7 +137,7 @@ module DiffHelper
|
||||
# Always use HTML to handle case where JSON diff rendered this button
|
||||
params_copy.delete(:format)
|
||||
|
||||
link_to url_for(params_copy), id: "inline-diff-btn", class: (params[:view] != 'parallel' ? 'btn btn-sm active' : 'btn btn-sm') do
|
||||
link_to url_for(params_copy), id: "inline-diff-btn", class: (params[:view] != 'parallel' ? 'btn active' : 'btn') do
|
||||
'Inline'
|
||||
end
|
||||
end
|
||||
@@ -148,7 +148,7 @@ module DiffHelper
|
||||
# Always use HTML to handle case where JSON diff rendered this button
|
||||
params_copy.delete(:format)
|
||||
|
||||
link_to url_for(params_copy), id: "parallel-diff-btn", class: (params[:view] == 'parallel' ? 'btn active btn-sm' : 'btn btn-sm') do
|
||||
link_to url_for(params_copy), id: "parallel-diff-btn", class: (params[:view] == 'parallel' ? 'btn active' : 'btn') do
|
||||
'Side-by-side'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -70,7 +70,7 @@ module SearchHelper
|
||||
|
||||
# Autocomplete results for the current user's groups
|
||||
def groups_autocomplete(term, limit = 5)
|
||||
current_user.authorized_groups.search(term).limit(limit).map do |group|
|
||||
GroupsFinder.new.execute(current_user).search(term).limit(limit).map do |group|
|
||||
{
|
||||
label: "group: #{search_result_sanitize(group.name)}",
|
||||
url: group_path(group)
|
||||
|
||||
@@ -87,7 +87,8 @@ class ApplicationSetting < ActiveRecord::Base
|
||||
default_project_visibility: Settings.gitlab.default_projects_features['visibility_level'],
|
||||
default_snippet_visibility: Settings.gitlab.default_projects_features['visibility_level'],
|
||||
restricted_signup_domains: Settings.gitlab['restricted_signup_domains'],
|
||||
import_sources: ['github','bitbucket','gitlab','gitorious','google_code','fogbugz','git']
|
||||
import_sources: ['github','bitbucket','gitlab','gitorious','google_code','fogbugz','git'],
|
||||
shared_runners_enabled: Settings.gitlab_ci['shared_runners_enabled'],
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -106,6 +106,14 @@ module Ci
|
||||
failed? && allow_failure?
|
||||
end
|
||||
|
||||
def retryable?
|
||||
commands.present?
|
||||
end
|
||||
|
||||
def retried?
|
||||
!self.commit.latest_builds_for_ref(self.ref).include?(self)
|
||||
end
|
||||
|
||||
def trace_html
|
||||
html = Ci::Ansi2html::convert(trace) if trace.present?
|
||||
html || ''
|
||||
@@ -222,7 +230,7 @@ module Ci
|
||||
end
|
||||
|
||||
def retry_url
|
||||
if commands.present?
|
||||
if retryable?
|
||||
Gitlab::Application.routes.url_helpers.
|
||||
retry_namespace_project_build_path(gl_project.namespace, gl_project, self)
|
||||
end
|
||||
|
||||
@@ -15,8 +15,8 @@ class CommitStatus < ActiveRecord::Base
|
||||
scope :pending, -> { where(status: 'pending') }
|
||||
scope :success, -> { where(status: 'success') }
|
||||
scope :failed, -> { where(status: 'failed') }
|
||||
scope :running_or_pending, -> { where(status:[:running, :pending]) }
|
||||
scope :finished, -> { where(status:[:success, :failed, :canceled]) }
|
||||
scope :running_or_pending, -> { where(status: [:running, :pending]) }
|
||||
scope :finished, -> { where(status: [:success, :failed, :canceled]) }
|
||||
scope :latest, -> { where(id: unscope(:select).select('max(id)').group(:name, :ref)) }
|
||||
scope :ordered, -> { order(:ref, :stage_idx, :name) }
|
||||
scope :for_ref, ->(ref) { where(ref: ref) }
|
||||
|
||||
@@ -8,12 +8,12 @@ module Sortable
|
||||
included do
|
||||
# By default all models should be ordered
|
||||
# by created_at field starting from newest
|
||||
default_scope { order(created_at: :desc, id: :desc) }
|
||||
default_scope { order(id: :desc) }
|
||||
|
||||
scope :order_created_desc, -> { reorder(created_at: :desc, id: :desc) }
|
||||
scope :order_created_asc, -> { reorder(created_at: :asc, id: :asc) }
|
||||
scope :order_updated_desc, -> { reorder(updated_at: :desc, id: :desc) }
|
||||
scope :order_updated_asc, -> { reorder(updated_at: :asc, id: :asc) }
|
||||
scope :order_created_desc, -> { reorder(created_at: :desc) }
|
||||
scope :order_created_asc, -> { reorder(created_at: :asc) }
|
||||
scope :order_updated_desc, -> { reorder(updated_at: :desc) }
|
||||
scope :order_updated_asc, -> { reorder(updated_at: :asc) }
|
||||
scope :order_name_asc, -> { reorder(name: :asc) }
|
||||
scope :order_name_desc, -> { reorder(name: :desc) }
|
||||
end
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ class Group < Namespace
|
||||
end
|
||||
|
||||
def public_profile?
|
||||
projects.public_only.any?
|
||||
self.public || projects.public_only.any?
|
||||
end
|
||||
|
||||
def post_create_hook
|
||||
|
||||
@@ -37,6 +37,7 @@ class Project < ActiveRecord::Base
|
||||
include Gitlab::ConfigHelper
|
||||
include Gitlab::ShellAdapter
|
||||
include Gitlab::VisibilityLevel
|
||||
include Gitlab::CurrentSettings
|
||||
include Referable
|
||||
include Sortable
|
||||
include AfterCommitQueue
|
||||
@@ -775,7 +776,9 @@ class Project < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def ensure_gitlab_ci_project
|
||||
gitlab_ci_project || create_gitlab_ci_project
|
||||
gitlab_ci_project || create_gitlab_ci_project(
|
||||
shared_runners_enabled: current_application_settings.shared_runners_enabled
|
||||
)
|
||||
end
|
||||
|
||||
def enable_ci
|
||||
|
||||
@@ -11,7 +11,7 @@ module Ci
|
||||
def to_s
|
||||
lines = Array.new
|
||||
lines.push("<a href=\"#{ci_project_url(project)}\">#{project.name}</a> - ")
|
||||
lines.push("<a href=\"#{ci_namespace_project_commit_url(commit.gl_project.namespace, commit.gl_project, commit.sha)}\">Commit ##{commit.id}</a></br>")
|
||||
lines.push("<a href=\"#{builds_namespace_project_commit_url(commit.gl_project.namespace, commit.gl_project, commit.sha)}\">Commit ##{commit.id}</a></br>")
|
||||
lines.push("#{commit.short_sha} #{commit.git_author_name} - #{commit.git_commit_message}</br>")
|
||||
lines.push("#{humanized_status(commit_status)} in #{commit.duration} second(s).")
|
||||
lines.join('')
|
||||
|
||||
@@ -45,7 +45,7 @@ module Ci
|
||||
|
||||
def attachment_message
|
||||
out = "<#{ci_project_url(project)}|#{project_name}>: "
|
||||
out << "Commit <#{ci_namespace_project_commit_url(commit.gl_project.namespace, commit.gl_project, commit.sha)}|\##{commit.id}> "
|
||||
out << "Commit <#{builds_namespace_project_commit_url(commit.gl_project.namespace, commit.gl_project, commit.sha)}|\##{commit.id}> "
|
||||
out << "(<#{commit_sha_link}|#{commit.short_sha}>) "
|
||||
out << "of <#{commit_ref_link}|#{commit.ref}> "
|
||||
out << "by #{commit.git_author_name} " if commit.git_author_name
|
||||
|
||||
@@ -71,7 +71,7 @@ class GitlabCiService < CiService
|
||||
|
||||
def build_page(sha, ref)
|
||||
if project.gitlab_ci_project.present?
|
||||
ci_namespace_project_commit_url(project.namespace, project, sha)
|
||||
builds_namespace_project_commit_url(project.namespace, project, sha)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ class Repository
|
||||
|
||||
def find_commits_by_message(query)
|
||||
# Limited to 1000 commits for now, could be parameterized?
|
||||
args = %W(git log --pretty=%H --max-count 1000 --grep=#{query})
|
||||
args = %W(#{Gitlab.config.git.bin_path} log --pretty=%H --max-count 1000 --grep=#{query})
|
||||
|
||||
git_log_results = Gitlab::Popen.popen(args, path_to_repo).first.lines.map(&:chomp)
|
||||
commits = git_log_results.map { |c| commit(c) }
|
||||
@@ -296,7 +296,7 @@ class Repository
|
||||
end
|
||||
|
||||
def last_commit_for_path(sha, path)
|
||||
args = %W(git rev-list --max-count=1 #{sha} -- #{path})
|
||||
args = %W(#{Gitlab.config.git.bin_path} rev-list --max-count=1 #{sha} -- #{path})
|
||||
sha = Gitlab::Popen.popen(args, path_to_repo).first.strip
|
||||
commit(sha)
|
||||
end
|
||||
@@ -347,7 +347,7 @@ class Repository
|
||||
end
|
||||
|
||||
def branch_names_contains(sha)
|
||||
args = %W(git branch --contains #{sha})
|
||||
args = %W(#{Gitlab.config.git.bin_path} branch --contains #{sha})
|
||||
names = Gitlab::Popen.popen(args, path_to_repo).first
|
||||
|
||||
if names.respond_to?(:split)
|
||||
@@ -364,7 +364,7 @@ class Repository
|
||||
end
|
||||
|
||||
def tag_names_contains(sha)
|
||||
args = %W(git tag --contains #{sha})
|
||||
args = %W(#{Gitlab.config.git.bin_path} tag --contains #{sha})
|
||||
names = Gitlab::Popen.popen(args, path_to_repo).first
|
||||
|
||||
if names.respond_to?(:split)
|
||||
@@ -505,7 +505,7 @@ class Repository
|
||||
|
||||
def search_files(query, ref)
|
||||
offset = 2
|
||||
args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} -e #{query} #{ref || root_ref})
|
||||
args = %W(#{Gitlab.config.git.bin_path} grep -i -n --before-context #{offset} --after-context #{offset} -e #{query} #{ref || root_ref})
|
||||
Gitlab::Popen.popen(args, path_to_repo).first.scrub.split(/^--$/)
|
||||
end
|
||||
|
||||
@@ -537,7 +537,7 @@ class Repository
|
||||
end
|
||||
|
||||
def fetch_ref(source_path, source_ref, target_ref)
|
||||
args = %W(git fetch -f #{source_path} #{source_ref}:#{target_ref})
|
||||
args = %W(#{Gitlab.config.git.bin_path} fetch -f #{source_path} #{source_ref}:#{target_ref})
|
||||
Gitlab::Popen.popen(args, path_to_repo)
|
||||
end
|
||||
|
||||
|
||||
@@ -7,17 +7,17 @@ module MergeRequests
|
||||
@branch_name = Gitlab::Git.ref_name(ref)
|
||||
|
||||
find_new_commits
|
||||
# Be sure to close outstanding MRs before reloading them to avoid generating an
|
||||
# empty diff during a manual merge
|
||||
close_merge_requests
|
||||
reload_merge_requests
|
||||
|
||||
# Leave a system note if a branch was deleted/added
|
||||
if branch_added? || branch_removed?
|
||||
comment_mr_branch_presence_changed
|
||||
comment_mr_with_commits
|
||||
else
|
||||
comment_mr_with_commits
|
||||
close_merge_requests
|
||||
end
|
||||
|
||||
comment_mr_with_commits
|
||||
execute_mr_web_hooks
|
||||
|
||||
true
|
||||
|
||||
@@ -94,8 +94,6 @@ module Projects
|
||||
@project.team << [current_user, :master, current_user]
|
||||
end
|
||||
|
||||
@project.update_column(:last_activity_at, @project.created_at)
|
||||
|
||||
if @project.import?
|
||||
@project.import_start
|
||||
end
|
||||
|
||||
@@ -130,5 +130,14 @@
|
||||
= f.text_area :help_page_text, class: 'form-control', rows: 4
|
||||
.help-block Markdown enabled
|
||||
|
||||
%fieldset
|
||||
%legend Continuous Integration
|
||||
.form-group
|
||||
.col-sm-offset-2.col-sm-10
|
||||
.checkbox
|
||||
= f.label :shared_runners_enabled do
|
||||
= f.check_box :shared_runners_enabled
|
||||
Enable shared runners for a new projects
|
||||
|
||||
.form-actions
|
||||
= f.submit 'Save', class: 'btn btn-primary'
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
= @project.name
|
||||
|
||||
%p
|
||||
Commit link: #{gitlab_commit_link(@project, @build.commit.short_sha)}
|
||||
Commit: #{link_to @build.short_sha, namespace_project_commit_path(@build.gl_project.namespace, @build.gl_project, @build.sha)}
|
||||
%p
|
||||
Author: #{@build.commit.git_author_name}
|
||||
%p
|
||||
@@ -16,4 +16,4 @@
|
||||
Message: #{@build.commit.git_commit_message}
|
||||
|
||||
%p
|
||||
Url: #{link_to @build.short_sha, namespace_project_build_url(@build.gl_project.namespace, @build.gl_project, @build)}
|
||||
Build details: #{link_to "Build #{@build.id}", namespace_project_build_url(@build.gl_project.namespace, @build.gl_project, @build)}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
= @project.name
|
||||
|
||||
%p
|
||||
Commit link: #{gitlab_commit_link(@project, @build.commit.short_sha)}
|
||||
Commit: #{link_to @build.short_sha, namespace_project_commit_path(@build.gl_project.namespace, @build.gl_project, @build.sha)}
|
||||
%p
|
||||
Author: #{@build.commit.git_author_name}
|
||||
%p
|
||||
@@ -17,4 +17,4 @@
|
||||
Message: #{@build.commit.git_commit_message}
|
||||
|
||||
%p
|
||||
Url: #{link_to @build.short_sha, namespace_project_build_url(@build.gl_project.namespace, @build.gl_project, @build)}
|
||||
Build details: #{link_to "Build #{@build.id}", namespace_project_build_url(@build.gl_project.namespace, @build.gl_project, @build)}
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
- group = group_member.group
|
||||
= render 'shared/groups/group', group: group, group_member: group_member
|
||||
|
||||
= paginate @group_members
|
||||
= paginate @group_members, theme: 'gitlab'
|
||||
|
||||
@@ -7,26 +7,34 @@
|
||||
%h3 Sign in
|
||||
.login-body
|
||||
- if form_based_providers.any?
|
||||
%ul.nav.nav-tabs
|
||||
- if form_based_providers.count >= 2 || signin_enabled?
|
||||
%ul.nav.nav-tabs
|
||||
- if crowd_enabled?
|
||||
%li.active
|
||||
= link_to "Crowd", "#tab-crowd", 'data-toggle' => 'tab'
|
||||
- @ldap_servers.each_with_index do |server, i|
|
||||
%li{class: (:active if i.zero? && !crowd_enabled?)}
|
||||
= link_to server['label'], "#tab-#{server['provider_name']}", 'data-toggle' => 'tab'
|
||||
- if signin_enabled?
|
||||
%li
|
||||
= link_to 'Standard', '#tab-signin', 'data-toggle' => 'tab'
|
||||
.tab-content
|
||||
- if crowd_enabled?
|
||||
%div.tab-pane.active{id: "tab-crowd"}
|
||||
= render 'devise/sessions/new_crowd'
|
||||
- @ldap_servers.each_with_index do |server, i|
|
||||
%div.tab-pane{id: "tab-#{server['provider_name']}", class: (:active if i.zero? && !crowd_enabled?)}
|
||||
= render 'devise/sessions/new_ldap', server: server
|
||||
- if signin_enabled?
|
||||
%div#tab-signin.tab-pane
|
||||
= render 'devise/sessions/new_base'
|
||||
- else
|
||||
- if crowd_enabled?
|
||||
%li.active
|
||||
= link_to "Crowd", "#tab-crowd", 'data-toggle' => 'tab'
|
||||
- @ldap_servers.each_with_index do |server, i|
|
||||
%li{class: (:active if i.zero? && !crowd_enabled?)}
|
||||
= link_to server['label'], "#tab-#{server['provider_name']}", 'data-toggle' => 'tab'
|
||||
- if signin_enabled?
|
||||
%li
|
||||
= link_to 'Standard', '#tab-signin', 'data-toggle' => 'tab'
|
||||
.tab-content
|
||||
- if crowd_enabled?
|
||||
%div.tab-pane.active{id: "tab-crowd"}
|
||||
= render 'devise/sessions/new_crowd'
|
||||
- @ldap_servers.each_with_index do |server, i|
|
||||
%div.tab-pane{id: "tab-#{server['provider_name']}", class: (:active if i.zero? && !crowd_enabled?)}
|
||||
= render 'devise/sessions/new_ldap', server: server
|
||||
- if signin_enabled?
|
||||
%div#tab-signin.tab-pane
|
||||
= render 'devise/sessions/new_base'
|
||||
= render 'devise/sessions/new_crowd'
|
||||
- elsif @ldap_servers.any?
|
||||
= render 'devise/sessions/new_ldap', server: @ldap_servers.first
|
||||
- elsif signin_enabled?
|
||||
= render 'devise/sessions/new_base'
|
||||
|
||||
- elsif signin_enabled?
|
||||
= render 'devise/sessions/new_base'
|
||||
|
||||
@@ -25,6 +25,15 @@
|
||||
%hr
|
||||
= link_to 'Remove avatar', group_avatar_path(@group.to_param), data: { confirm: "Group avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-avatar"
|
||||
|
||||
.form-group
|
||||
%hr
|
||||
= f.label :public, class: 'control-label' do
|
||||
Public
|
||||
.col-sm-10
|
||||
.checkbox
|
||||
= f.check_box :public
|
||||
%span.descr Make this group public (even if there is no any public project inside this group)
|
||||
|
||||
.form-actions
|
||||
= f.submit 'Save group', class: "btn btn-save"
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
<!-- Piwik -->
|
||||
:javascript
|
||||
var _paq = _paq || [];
|
||||
_paq.push(["trackPageView"]);
|
||||
_paq.push(["enableLinkTracking"]);
|
||||
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://#{extra_config.piwik_url}/";
|
||||
_paq.push(["setTrackerUrl", u+"piwik.php"]);
|
||||
_paq.push(["setSiteId", "#{extra_config.piwik_site_id}"]);
|
||||
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
|
||||
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
|
||||
var u="//#{extra_config.piwik_url}/";
|
||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||
_paq.push(['setSiteId', #{extra_config.piwik_site_id}]);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
<noscript><p><img src="//#{extra_config.piwik_url}/piwik.php?idsite=#{extra_config.piwik_site_id}" style="border:0;" alt="" /></p></noscript>
|
||||
<!-- End Piwik Code -->
|
||||
|
||||
@@ -9,23 +9,25 @@
|
||||
= nav_link path: 'projects#index' do
|
||||
= link_to ci_admin_projects_path do
|
||||
= icon('list-alt fw')
|
||||
Projects
|
||||
%span
|
||||
Projects
|
||||
= nav_link path: 'events#index' do
|
||||
= link_to ci_admin_events_path do
|
||||
= icon('book fw')
|
||||
Events
|
||||
%span
|
||||
Events
|
||||
= nav_link path: ['runners#index', 'runners#show'] do
|
||||
= link_to ci_admin_runners_path do
|
||||
= icon('cog fw')
|
||||
Runners
|
||||
%small.pull-right
|
||||
= Ci::Runner.count(:all)
|
||||
%span
|
||||
Runners
|
||||
%span.count= Ci::Runner.count(:all)
|
||||
= nav_link path: 'builds#index' do
|
||||
= link_to ci_admin_builds_path do
|
||||
= icon('link fw')
|
||||
Builds
|
||||
%small.pull-right
|
||||
= Ci::Build.count(:all)
|
||||
%span
|
||||
Builds
|
||||
%span.count= Ci::Build.count(:all)
|
||||
= nav_link(controller: :application_settings, html_options: { class: 'separate-item'}) do
|
||||
= link_to ci_admin_application_settings_path do
|
||||
= icon('cogs fw')
|
||||
|
||||
@@ -21,6 +21,11 @@
|
||||
%li
|
||||
= link_to new_project_path, title: 'New project', data: {toggle: 'tooltip', placement: 'bottom'} do
|
||||
= icon('plus fw')
|
||||
- if Gitlab::Sherlock.enabled?
|
||||
%li
|
||||
= link_to sherlock_transactions_path, title: 'Sherlock Transactions',
|
||||
data: {toggle: 'tooltip', placement: 'bottom'} do
|
||||
= icon('tachometer fw')
|
||||
%li
|
||||
= link_to destroy_user_session_path, class: 'logout', method: :delete, title: 'Sign out', data: {toggle: 'tooltip', placement: 'bottom'} do
|
||||
= icon('sign-out')
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
Reply to this email directly or
|
||||
#{link_to "view it on GitLab", @target_url}.
|
||||
- else
|
||||
#{link_to "View it on GitLab", @target_url}
|
||||
#{link_to "View it on GitLab", @target_url}.
|
||||
%br
|
||||
You're receiving this email because of your account on #{link_to Gitlab.config.gitlab.host, root_url}.
|
||||
You're receiving this email because of your account on #{Gitlab.config.gitlab.host}.
|
||||
If you'd like to receive fewer emails, you can adjust your notification settings.
|
||||
|
||||
= email_action @target_url
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
= form_tag profile_notifications_path, method: :put, remote: true, class: 'update-notifications' do
|
||||
= hidden_field_tag :notification_type, type, id: dom_id(membership, 'notification_type')
|
||||
= hidden_field_tag :notification_id, membership.id, id: dom_id(membership, 'notification_id')
|
||||
= select_tag :notification_level, options_for_select(Notification.options_with_labels, notification.level), class: 'trigger-submit'
|
||||
= select_tag :notification_level, options_for_select(Notification.options_with_labels, notification.level), class: 'form-control trigger-submit'
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
= ci_commit.status
|
||||
|
||||
= link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id"
|
||||
= link_to_gfm commit.title, namespace_project_commit_path(project.namespace, project, commit.id), class: "commit-row-message"
|
||||
= link_to_gfm commit.title, namespace_project_commit_path(project.namespace, project, commit), class: "commit-row-message"
|
||||
·
|
||||
#{time_ago_with_tooltip(commit.committed_date, skip_js: true)} by
|
||||
= commit_author_link(commit, avatar: true, size: 24)
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
%tr.build
|
||||
%td.status
|
||||
= ci_status_with_icon(build.status)
|
||||
|
||||
%td.commit_status-link
|
||||
- if build.target_url
|
||||
= link_to build.target_url do
|
||||
%strong Build ##{build.id}
|
||||
- else
|
||||
%strong Build ##{build.id}
|
||||
|
||||
- if build.show_warning?
|
||||
%i.fa.fa-warning.text-warning
|
||||
|
||||
%td
|
||||
= link_to build.short_sha, namespace_project_commit_path(@project.namespace, @project, build.sha)
|
||||
|
||||
%td
|
||||
= link_to build.ref, namespace_project_commits_path(@project.namespace, @project, build.ref)
|
||||
|
||||
%td
|
||||
- if build.runner
|
||||
= runner_link(build.runner)
|
||||
- else
|
||||
.light none
|
||||
|
||||
%td
|
||||
= build.name
|
||||
|
||||
.pull-right
|
||||
- if build.tags.any?
|
||||
- build.tags.each do |tag|
|
||||
%span.label.label-primary
|
||||
= tag
|
||||
- if build.trigger_request
|
||||
%span.label.label-info triggered
|
||||
- if build.allow_failure
|
||||
%span.label.label-danger allowed to fail
|
||||
|
||||
%td.duration
|
||||
- if build.duration
|
||||
#{duration_in_words(build.finished_at, build.started_at)}
|
||||
|
||||
%td.timestamp
|
||||
- if build.finished_at
|
||||
%span #{time_ago_in_words build.finished_at} ago
|
||||
|
||||
%td
|
||||
.pull-right
|
||||
- if current_user && can?(current_user, :manage_builds, @project)
|
||||
- if build.cancel_url
|
||||
= link_to build.cancel_url, title: 'Cancel' do
|
||||
%i.fa.fa-remove.cred
|
||||
@@ -0,0 +1 @@
|
||||
- header_title project_title(@project, "Builds", project_builds_path(@project))
|
||||
@@ -1,12 +1,12 @@
|
||||
- page_title "Builds"
|
||||
- header_title project_title(@project, "Builds", project_builds_path(@project))
|
||||
= render "header_title"
|
||||
|
||||
.project-issuable-filter
|
||||
.controls
|
||||
- if @ci_project && current_user && can?(current_user, :manage_builds, @project)
|
||||
.pull-left.hidden-xs
|
||||
- if @all_builds.running_or_pending.any?
|
||||
= link_to 'Cancel all', cancel_all_namespace_project_builds_path(@project.namespace, @project), data: { confirm: 'Are you sure?' }, class: 'btn btn-danger'
|
||||
= link_to 'Cancel all', cancel_all_namespace_project_builds_path(@project.namespace, @project), data: { confirm: 'Are you sure?' }, class: 'btn btn-danger', method: :post
|
||||
|
||||
%ul.center-top-menu
|
||||
%li{class: ('active' if @scope.nil?)}
|
||||
@@ -25,7 +25,7 @@
|
||||
%span.badge.js-totalbuilds-count= @all_builds.count(:id)
|
||||
|
||||
.gray-content-block
|
||||
List of #{@scope || 'running'} builds from this project
|
||||
#{(@scope || 'running').capitalize} builds from this project
|
||||
|
||||
%ul.content-list
|
||||
- if @builds.blank?
|
||||
@@ -40,14 +40,14 @@
|
||||
%th Build ID
|
||||
%th Commit
|
||||
%th Ref
|
||||
%th Runner
|
||||
%th Stage
|
||||
%th Name
|
||||
%th Duration
|
||||
%th Finished at
|
||||
%th
|
||||
|
||||
- @builds.each do |build|
|
||||
= render 'projects/builds/build', build: build
|
||||
= render 'projects/commit_statuses/commit_status', commit_status: build, commit_sha: true, stage: true, allow_retry: true
|
||||
|
||||
= paginate @builds
|
||||
= paginate @builds, theme: 'gitlab'
|
||||
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
- page_title "#{@build.name} (#{@build.id})", "Builds"
|
||||
= render "header_title"
|
||||
|
||||
.build-page
|
||||
.gray-content-block
|
||||
Build for commit
|
||||
Build ##{@build.id} for commit
|
||||
%strong.monospace
|
||||
= link_to @build.commit.short_sha, ci_status_path(@build.commit)
|
||||
from
|
||||
%code #{@build.ref}
|
||||
= link_to @build.ref, namespace_project_commits_path(@project.namespace, @project, @build.ref)
|
||||
|
||||
#up-build-trace
|
||||
- if @commit.matrix_for_ref?(@build.ref)
|
||||
@@ -20,7 +23,7 @@
|
||||
= build.id
|
||||
|
||||
|
||||
- unless @commit.latest_builds_for_ref(@build.ref).include?(@build)
|
||||
- if @build.retried?
|
||||
%li.active
|
||||
%a
|
||||
Build ##{@build.id}
|
||||
@@ -37,7 +40,7 @@
|
||||
%i.fa.fa-time
|
||||
#{duration_in_words(@build.finished_at, @build.started_at)}
|
||||
.pull-right
|
||||
= @build.updated_at.stamp('19:00 Aug 27')
|
||||
#{time_ago_with_tooltip(@build.finished_at) if @build.finished_at}
|
||||
|
||||
- if @build.show_warning?
|
||||
- unless @build.any_runners_online?
|
||||
@@ -87,13 +90,13 @@
|
||||
|
||||
.build-widget
|
||||
%h4.title
|
||||
Build
|
||||
Build ##{@build.id}
|
||||
- if current_user && can?(current_user, :manage_builds, @project)
|
||||
.pull-right
|
||||
- if @build.active?
|
||||
= link_to "Cancel", cancel_namespace_project_build_path(@project.namespace, @project, @build), class: 'btn btn-sm btn-danger'
|
||||
- elsif @build.commands.present?
|
||||
= link_to "Retry", retry_namespace_project_build_path(@project.namespace, @project, @build), class: 'btn btn-sm btn-primary', method: :post
|
||||
- if @build.cancel_url
|
||||
= link_to "Cancel", @build.cancel_url, class: 'btn btn-sm btn-danger', method: :post
|
||||
- elsif @build.retry_url
|
||||
= link_to "Retry", @build.retry_url, class: 'btn btn-sm btn-primary', method: :post
|
||||
|
||||
- if @build.duration
|
||||
%p
|
||||
@@ -101,15 +104,15 @@
|
||||
#{duration_in_words(@build.finished_at, @build.started_at)}
|
||||
%p
|
||||
%span.attr-name Created:
|
||||
#{time_ago_in_words(@build.created_at)} ago
|
||||
#{time_ago_with_tooltip(@build.created_at)}
|
||||
- if @build.finished_at
|
||||
%p
|
||||
%span.attr-name Finished:
|
||||
#{time_ago_in_words(@build.finished_at)} ago
|
||||
#{time_ago_with_tooltip(@build.finished_at)}
|
||||
%p
|
||||
%span.attr-name Runner:
|
||||
- if @build.runner && current_user && current_user.admin
|
||||
\#{link_to "##{@build.runner.id}", ci_admin_runner_path(@build.runner.id)}
|
||||
= link_to "##{@build.runner.id}", ci_admin_runner_path(@build.runner.id)
|
||||
- elsif @build.runner
|
||||
\##{@build.runner.id}
|
||||
|
||||
@@ -134,10 +137,11 @@
|
||||
%h4.title
|
||||
Commit
|
||||
.pull-right
|
||||
%small #{build_commit_link @build}
|
||||
%small
|
||||
= link_to @build.commit.short_sha, ci_status_path(@build.commit), class: "monospace"
|
||||
%p
|
||||
%span.attr-name Branch:
|
||||
#{build_ref_link @build}
|
||||
= link_to @build.ref, namespace_project_commits_path(@project.namespace, @project, @build.ref)
|
||||
%p
|
||||
%span.attr-name Author:
|
||||
#{@build.commit.git_author_name}
|
||||
@@ -155,7 +159,9 @@
|
||||
|
||||
- if @builds.present?
|
||||
.build-widget
|
||||
%h4.title #{pluralize(@builds.count(:id), "other build")} for #{@build.short_sha}:
|
||||
%h4.title #{pluralize(@builds.count(:id), "other build")} for
|
||||
= succeed ":" do
|
||||
= link_to @build.commit.short_sha, ci_status_path(@build.commit), class: "monospace"
|
||||
%table.table.builds
|
||||
- @builds.each_with_index do |build, i|
|
||||
%tr.build
|
||||
@@ -171,8 +177,5 @@
|
||||
%td.status= build.status
|
||||
|
||||
|
||||
= paginate @builds
|
||||
|
||||
|
||||
:javascript
|
||||
new CiBuild("#{namespace_project_build_url(@project.namespace, @project, @build)}", "#{@build.status}")
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
- page_title @service.title, "CI Services"
|
||||
= render 'form'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- page_title "CI Services"
|
||||
%h3.page-title Project services
|
||||
%p.light Project services allow you to integrate GitLab CI with other applications
|
||||
|
||||
|
||||
@@ -102,9 +102,10 @@
|
||||
%code \(\d+.\d+\%\) covered
|
||||
%li
|
||||
pytest-cov (Python) -
|
||||
%code \d+\%$
|
||||
|
||||
|
||||
%code \d+\%\s*$
|
||||
%li
|
||||
phpunit --coverage-text --colors=never (PHP) -
|
||||
%code ^\s*Lines:\s*\d+.\d+\%
|
||||
|
||||
%fieldset
|
||||
%legend Advanced settings
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- page_title "CI Settings"
|
||||
- if @ci_project.generated_yaml_config
|
||||
%p.alert.alert-danger
|
||||
CI Jobs are deprecated now, you can #{link_to "download", dumped_yaml_ci_project_path(@ci_project)}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- page_title "CI Web Hooks"
|
||||
%h3.page-title
|
||||
CI Web hooks
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
= nav_link(path: 'commit#show') do
|
||||
= link_to namespace_project_commit_path(@project.namespace, @project, @commit.id) do
|
||||
Changes
|
||||
= nav_link(path: 'commit#ci') do
|
||||
= link_to ci_namespace_project_commit_path(@project.namespace, @project, @commit.id) do
|
||||
%span.badge= @diffs.count
|
||||
= nav_link(path: 'commit#builds') do
|
||||
= link_to builds_namespace_project_commit_path(@project.namespace, @project, @commit.id) do
|
||||
Builds
|
||||
%span.badge= @builds.count(:id)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
%p
|
||||
%span.light Commit
|
||||
= link_to @commit.id, namespace_project_commit_path(@project.namespace, @project, @commit)
|
||||
= link_to @commit.id, namespace_project_commit_path(@project.namespace, @project, @commit), class: "monospace"
|
||||
.commit-info-row
|
||||
%span.light Authored by
|
||||
%strong
|
||||
@@ -36,7 +36,7 @@
|
||||
.commit-info-row
|
||||
%span.cgray= pluralize(@commit.parents.count, "parent")
|
||||
- @commit.parents.each do |parent|
|
||||
= link_to parent.short_id, namespace_project_commit_path(@project.namespace, @project, parent)
|
||||
= link_to parent.short_id, namespace_project_commit_path(@project.namespace, @project, parent), class: "monospace"
|
||||
|
||||
- if @ci_commit
|
||||
.pull-right
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
- page_title "#{@commit.title} (#{@commit.short_id})", "Commits"
|
||||
- page_title "Builds", "#{@commit.title} (#{@commit.short_id})", "Commits"
|
||||
= render "projects/commits/header_title"
|
||||
= render "commit_box"
|
||||
= render "ci_menu"
|
||||
@@ -26,8 +26,11 @@
|
||||
|
||||
|
||||
- if @ci_project && current_user && can?(current_user, :manage_builds, @project)
|
||||
- if @ci_commit.builds.latest.failed.any?(&:retryable?)
|
||||
= link_to "Retry failed", retry_builds_namespace_project_commit_path(@project.namespace, @project, @commit.sha), class: 'btn btn-xs btn-primary', method: :post
|
||||
|
||||
- if @ci_commit.builds.running_or_pending.any?
|
||||
= link_to "Cancel all", cancel_builds_namespace_project_commit_path(@project.namespace, @project, @commit.sha), class: 'btn btn-xs btn-danger'
|
||||
= link_to "Cancel running", cancel_builds_namespace_project_commit_path(@project.namespace, @project, @commit.sha), class: 'btn btn-xs btn-danger', method: :post
|
||||
|
||||
.table-holder
|
||||
%table.table.builds
|
||||
@@ -45,7 +48,7 @@
|
||||
%th
|
||||
- @ci_commit.refs.each do |ref|
|
||||
= render partial: "projects/commit_statuses/commit_status", collection: @ci_commit.statuses.for_ref(ref).latest.ordered,
|
||||
locals: { coverage: @ci_project.try(:coverage_enabled?), allow_retry: true }
|
||||
locals: { coverage: @ci_project.try(:coverage_enabled?), stage: true, allow_retry: true }
|
||||
|
||||
- if @ci_commit.retried.any?
|
||||
.gray-content-block.second-block
|
||||
@@ -66,4 +69,4 @@
|
||||
%th Coverage
|
||||
%th
|
||||
= render partial: "projects/commit_statuses/commit_status", collection: @ci_commit.retried,
|
||||
locals: { coverage: @ci_project.try(:coverage_enabled?) }
|
||||
locals: { coverage: @ci_project.try(:coverage_enabled?), stage: true }
|
||||
@@ -12,14 +12,30 @@
|
||||
- if commit_status.show_warning?
|
||||
%i.fa.fa-warning.text-warning
|
||||
|
||||
%td
|
||||
= commit_status.ref
|
||||
- if defined?(commit_sha) && commit_sha
|
||||
%td
|
||||
= link_to commit_status.short_sha, namespace_project_commit_path(@project.namespace, @project, commit_status.sha), class: "monospace"
|
||||
|
||||
%td
|
||||
= commit_status.stage
|
||||
- if commit_status.ref
|
||||
= link_to commit_status.ref, namespace_project_commits_path(@project.namespace, @project, commit_status.ref)
|
||||
- else
|
||||
.light none
|
||||
|
||||
- if defined?(runner) && runner
|
||||
%td
|
||||
- if commit_status.try(:runner)
|
||||
= runner_link(commit_status.runner)
|
||||
- else
|
||||
.light none
|
||||
|
||||
- if defined?(stage) && stage
|
||||
%td
|
||||
= commit_status.stage
|
||||
|
||||
%td
|
||||
= commit_status.name
|
||||
|
||||
.pull-right
|
||||
- if commit_status.tags.any?
|
||||
- commit_status.tags.each do |tag|
|
||||
@@ -36,7 +52,7 @@
|
||||
|
||||
%td.timestamp
|
||||
- if commit_status.finished_at
|
||||
%span #{time_ago_in_words commit_status.finished_at} ago
|
||||
%span #{time_ago_with_tooltip(commit_status.finished_at)}
|
||||
|
||||
- if defined?(coverage) && coverage
|
||||
%td.coverage
|
||||
@@ -46,9 +62,10 @@
|
||||
%td
|
||||
.pull-right
|
||||
- if current_user && can?(current_user, :manage_builds, commit_status.gl_project)
|
||||
- if commit_status.cancel_url
|
||||
= link_to commit_status.cancel_url, title: 'Cancel' do
|
||||
%i.fa.fa-remove.cred
|
||||
- if commit_status.active?
|
||||
- if commit_status.cancel_url
|
||||
= link_to commit_status.cancel_url, method: :post, title: 'Cancel' do
|
||||
%i.fa.fa-remove.cred
|
||||
- elsif defined?(allow_retry) && allow_retry && commit_status.retry_url
|
||||
= link_to commit_status.retry_url, method: :post, title: 'Retry' do
|
||||
%i.fa.fa-repeat
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
- diff_files = safe_diff_files(diffs)
|
||||
|
||||
.gray-content-block.second-block
|
||||
.gray-content-block.second-block.oneline-block
|
||||
.inline-parallel-buttons
|
||||
.btn-group
|
||||
= inline_diff_btn
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
%ul.nav.nav-tabs
|
||||
%ul.center-top-menu
|
||||
= nav_link(action: :show) do
|
||||
= link_to 'Contributors', namespace_project_graph_path
|
||||
= nav_link(action: :commits) do
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
- page_title "Continuous Integration", "Graphs"
|
||||
= render "header_title"
|
||||
= render 'head'
|
||||
.gray-content-block
|
||||
%ul.breadcrumb.repo-breadcrumb
|
||||
= commits_breadcrumbs
|
||||
#charts.ci-charts
|
||||
= render 'projects/graphs/ci/builds'
|
||||
= render 'projects/graphs/ci/build_times'
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
- page_title "Commits", "Graphs"
|
||||
= render "header_title"
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'graphs_commits'
|
||||
= render 'head'
|
||||
|
||||
.gray-content-block
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'graphs_commits'
|
||||
%ul.breadcrumb.repo-breadcrumb
|
||||
= commits_breadcrumbs
|
||||
|
||||
%p.lead
|
||||
Commit statistics for
|
||||
%strong #{@ref}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
- page_title "Contributors", "Graphs"
|
||||
= render "header_title"
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'graphs'
|
||||
= render 'head'
|
||||
|
||||
.gray-content-block
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'graphs'
|
||||
%ul.breadcrumb.repo-breadcrumb
|
||||
= commits_breadcrumbs
|
||||
|
||||
.loading-graph
|
||||
.center
|
||||
%h3.page-title
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
= f.text_field :url, class: "form-control", placeholder: 'http://example.com/trigger-ci.json'
|
||||
.form-group
|
||||
= f.label :url, "Trigger", class: 'control-label'
|
||||
.col-sm-10
|
||||
.col-sm-10.prepend-top-10
|
||||
%div
|
||||
= f.check_box :push_events, class: 'pull-left'
|
||||
.prepend-left-20
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
= render 'shared/show_aside'
|
||||
|
||||
.gray-content-block.second-block
|
||||
.gray-content-block.second-block.oneline-block
|
||||
.row
|
||||
.col-md-9
|
||||
.votes-holder.pull-right
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
.gray-content-block.second-block.oneline-block
|
||||
= icon("sort-amount-desc")
|
||||
Most recent commits displayed first
|
||||
|
||||
= render "projects/commits/commits", project: @merge_request.project
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
- status_class = @merge_request.ci_commit ? " ci-#{@merge_request.ci_commit.status}" : nil
|
||||
|
||||
= form_for [:merge, @project.namespace.becomes(Namespace), @project, @merge_request], remote: true, method: :post, html: { class: 'accept-mr-form js-requires-input' } do |f|
|
||||
= hidden_field_tag :authenticity_token, form_authenticity_token
|
||||
.accept-merge-holder.clearfix.js-toggle-container
|
||||
.accept-action
|
||||
= f.button class: "btn btn-create accept_merge_request" do
|
||||
= f.button class: "btn btn-create accept_merge_request#{status_class}" do
|
||||
Accept Merge Request
|
||||
- if can_remove_branch?(@merge_request.source_project, @merge_request.source_branch) && !@merge_request.for_fork?
|
||||
.accept-control.checkbox
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
- page_title "Edit", "#{@runner.description} ##{@runner.id}", "Runners"
|
||||
|
||||
%h4 Runner ##{@runner.id}
|
||||
%hr
|
||||
= form_for @runner, url: runner_path(@runner), html: { class: 'form-horizontal' } do |f|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- page_title "Runners"
|
||||
.light
|
||||
%p
|
||||
A 'runner' is a process which runs a build.
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
= content_for :title do
|
||||
%h3.project-title
|
||||
Runner ##{@runner.id}
|
||||
.pull-right
|
||||
- if @runner.shared?
|
||||
%span.runner-state.runner-state-shared
|
||||
Shared
|
||||
- else
|
||||
%span.runner-state.runner-state-specific
|
||||
Specific
|
||||
- page_title "#{@runner.description} ##{@runner.id}", "Runners"
|
||||
|
||||
%h3.page-title
|
||||
Runner ##{@runner.id}
|
||||
.pull-right
|
||||
- if @runner.shared?
|
||||
%span.runner-state.runner-state-shared
|
||||
Shared
|
||||
- else
|
||||
%span.runner-state.runner-state-specific
|
||||
Specific
|
||||
|
||||
.table-holder
|
||||
%table.table
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- page_title "Triggers"
|
||||
%h3.page-title
|
||||
Triggers
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- page_title "Variables"
|
||||
%h3.page-title
|
||||
Secret Variables
|
||||
|
||||
|
||||
@@ -23,9 +23,7 @@
|
||||
.col-sm-10
|
||||
= render layout: 'projects/md_preview', locals: { preview_class: "md-preview" } do
|
||||
= render 'projects/zen', f: f, attr: :content, classes: 'description form-control js-quick-submit'
|
||||
.col-sm-12.hint
|
||||
.pull-left Wiki content is parsed with #{link_to "GitLab Flavored Markdown", help_page_path("markdown", "markdown"), target: '_blank'}
|
||||
.pull-right Attach files by dragging & dropping or #{link_to "selecting them", '#', class: 'markdown-selector' }.
|
||||
= render 'projects/notes/hints'
|
||||
|
||||
.clearfix
|
||||
.error-alert
|
||||
|
||||
@@ -27,14 +27,7 @@
|
||||
= render layout: 'projects/md_preview', locals: { preview_class: "md-preview", referenced_users: true } do
|
||||
= render 'projects/zen', f: f, attr: :description,
|
||||
classes: 'description form-control js-quick-submit'
|
||||
.col-sm-12.hint
|
||||
.pull-left
|
||||
Parsed with
|
||||
#{link_to 'GitLab Flavored Markdown', help_page_path('markdown', 'markdown'), target: '_blank'}.
|
||||
.pull-right
|
||||
Attach files by dragging & dropping
|
||||
or #{link_to 'selecting them', '#', class: 'markdown-selector' }.
|
||||
|
||||
= render 'projects/notes/hints'
|
||||
.clearfix
|
||||
.error-alert
|
||||
%hr
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
- page_title t('sherlock.title'), t('sherlock.transaction'),
|
||||
t('sherlock.file_sample')
|
||||
|
||||
- header_title t('sherlock.title'), sherlock_transactions_path
|
||||
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
= link_to(sherlock_transaction_path(@transaction), class: 'btn') do
|
||||
%i.fa.fa-arrow-left
|
||||
= t('sherlock.transaction')
|
||||
.oneline
|
||||
= t('sherlock.file_sample')
|
||||
= @file_sample.id
|
||||
|
||||
.prepend-top-default
|
||||
%p
|
||||
%span.light
|
||||
#{t('sherlock.time')}:
|
||||
%strong
|
||||
= @file_sample.duration.round(2)
|
||||
= t('sherlock.milliseconds')
|
||||
%p
|
||||
%span.light
|
||||
#{t('sherlock.events')}:
|
||||
%strong
|
||||
= @file_sample.events
|
||||
|
||||
%article.file-holder
|
||||
.file-title
|
||||
%i.fa.fa-file-text-o.fa-fw
|
||||
%strong
|
||||
= @file_sample.file
|
||||
.code.file-content.js-syntax-highlight
|
||||
.line-numbers
|
||||
%table.sherlock-line-samples-table
|
||||
%thead
|
||||
%tr
|
||||
%th= t('sherlock.line_capitalized')
|
||||
%th= t('sherlock.events')
|
||||
%th= t('sherlock.time')
|
||||
%th= t('sherlock.percent')
|
||||
%tbody
|
||||
- @file_sample.line_samples.each_with_index do |sample, index|
|
||||
%tr{class: sample.majority_of?(@file_sample.duration) ? 'slow' : ''}
|
||||
%td= index + 1
|
||||
%td= sample.events
|
||||
%td
|
||||
= sample.duration.round(2)
|
||||
= t('sherlock.milliseconds')
|
||||
%td
|
||||
= sample.percentage_of(@file_sample.duration).round
|
||||
= t('sherlock.percent')
|
||||
|
||||
.sherlock-file-sample
|
||||
= highlight(@file_sample.file, @file_sample.source)
|
||||
@@ -0,0 +1,27 @@
|
||||
.prepend-top-default
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
%strong
|
||||
= t('sherlock.application_backtrace')
|
||||
%ul.well-list
|
||||
- @query.application_backtrace.each do |location|
|
||||
%li
|
||||
= location.path
|
||||
%small.light
|
||||
= t('sherlock.line')
|
||||
= location.line
|
||||
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
%strong
|
||||
= t('sherlock.full_backtrace')
|
||||
%ul.well-list
|
||||
- @query.backtrace.each do |location|
|
||||
%li
|
||||
- if location.application?
|
||||
%strong= location.path
|
||||
- else
|
||||
= location.path
|
||||
%small.light
|
||||
= t('sherlock.line')
|
||||
= location.line
|
||||
@@ -0,0 +1,50 @@
|
||||
.prepend-top-default
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
%strong
|
||||
= t('sherlock.general')
|
||||
%ul.well-list
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.time')}:
|
||||
%strong
|
||||
= @query.duration.round(4)
|
||||
= t('sherlock.milliseconds')
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.origin')}:
|
||||
%strong
|
||||
= @query.last_application_frame.path
|
||||
%small.light
|
||||
= t('sherlock.line')
|
||||
= @query.last_application_frame.line
|
||||
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
.pull-right
|
||||
%button.js-clipboard-trigger.btn.btn-xs{title: t('sherlock.copy_to_clipboard'), type: :button}
|
||||
%i.fa.fa-clipboard
|
||||
%pre.hidden
|
||||
= @query.formatted_query
|
||||
%strong
|
||||
= t('sherlock.query')
|
||||
%ul.well-list
|
||||
%li
|
||||
.code.js-syntax-highlight.sherlock-code
|
||||
:preserve
|
||||
#{highlight("#{@query.id}.sql", @query.formatted_query)}
|
||||
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
.pull-right
|
||||
%button.js-clipboard-trigger.btn.btn-xs{title: t('sherlock.copy_to_clipboard'), type: :button}
|
||||
%i.fa.fa-clipboard
|
||||
%pre.hidden
|
||||
= @query.explain
|
||||
%strong
|
||||
= t('sherlock.query_plan')
|
||||
%ul.well-list
|
||||
%li
|
||||
.code.js-syntax-highlight.sherlock-code
|
||||
%pre
|
||||
%code= @query.explain
|
||||
@@ -0,0 +1,26 @@
|
||||
- page_title t('sherlock.title'), t('sherlock.transaction'), t('sherlock.query')
|
||||
- header_title t('sherlock.title'), sherlock_transactions_path
|
||||
|
||||
%ul.center-top-menu
|
||||
%li.active
|
||||
%a(href="#tab-general" data-toggle="tab")
|
||||
= t('sherlock.general')
|
||||
%li
|
||||
%a(href="#tab-backtrace" data-toggle="tab")
|
||||
= t('sherlock.backtrace')
|
||||
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
= link_to(sherlock_transaction_path(@transaction), class: 'btn') do
|
||||
%i.fa.fa-arrow-left
|
||||
= t('sherlock.transaction')
|
||||
.oneline
|
||||
= t('sherlock.query')
|
||||
= @query.id
|
||||
|
||||
.tab-content
|
||||
.tab-pane.active#tab-general
|
||||
= render(partial: 'general')
|
||||
|
||||
.tab-pane#tab-backtrace
|
||||
= render(partial: 'backtrace')
|
||||
@@ -0,0 +1,24 @@
|
||||
- if @transaction.file_samples.empty?
|
||||
.nothing-here-block
|
||||
= t('sherlock.no_file_samples')
|
||||
- else
|
||||
.table-holder
|
||||
%table.table
|
||||
%thead
|
||||
%tr
|
||||
%th= t('sherlock.time_inclusive')
|
||||
%th= t('sherlock.count')
|
||||
%th= t('sherlock.path')
|
||||
%th
|
||||
%tbody
|
||||
- @transaction.sorted_file_samples.each do |sample|
|
||||
%tr
|
||||
%td
|
||||
= sample.duration.round(2)
|
||||
= t('sherlock.milliseconds')
|
||||
%td= @transaction.view_counts.fetch(sample.file, 1)
|
||||
%td= sample.relative_path
|
||||
%td
|
||||
= link_to(t('sherlock.view'),
|
||||
sherlock_transaction_file_sample_path(@transaction, sample),
|
||||
class: 'btn btn-xs')
|
||||
@@ -0,0 +1,33 @@
|
||||
.prepend-top-default
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
%strong
|
||||
= t('sherlock.general')
|
||||
%ul.well-list
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.id')}:
|
||||
%strong
|
||||
= @transaction.id
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.type')}:
|
||||
%strong
|
||||
= @transaction.type
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.path')}:
|
||||
%strong
|
||||
= @transaction.path
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.time')}:
|
||||
%strong
|
||||
= @transaction.duration.round(2)
|
||||
= t('sherlock.seconds')
|
||||
%li
|
||||
%span.light
|
||||
#{t('sherlock.finished_at')}:
|
||||
%strong
|
||||
= time_ago_in_words(@transaction.finished_at)
|
||||
= t('sherlock.ago')
|
||||
@@ -0,0 +1,24 @@
|
||||
- if @transaction.queries.empty?
|
||||
.nothing-here-block
|
||||
= t('sherlock.no_queries')
|
||||
- else
|
||||
.table-holder
|
||||
%table.table#sherlock-queries
|
||||
%thead
|
||||
%tr
|
||||
%th= t('sherlock.time')
|
||||
%th= t('sherlock.query')
|
||||
%td
|
||||
%tbody
|
||||
- @transaction.sorted_queries.each do |query|
|
||||
%tr
|
||||
%td
|
||||
= query.duration.round(2)
|
||||
= t('sherlock.milliseconds')
|
||||
%td
|
||||
.code.js-syntax-highlight.sherlock-code
|
||||
= highlight("#{query.id}.sql", query.formatted_query)
|
||||
%td
|
||||
= link_to(t('sherlock.view'),
|
||||
sherlock_transaction_query_path(@transaction, query),
|
||||
class: 'btn btn-xs')
|
||||
@@ -0,0 +1,42 @@
|
||||
- page_title t('sherlock.title')
|
||||
- header_title t('sherlock.title'), sherlock_transactions_path
|
||||
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
= link_to(destroy_all_sherlock_transactions_path,
|
||||
class: 'btn btn-danger',
|
||||
method: :delete) do
|
||||
%i.fa.fa-trash
|
||||
= t('sherlock.delete_all_transactions')
|
||||
.oneline= t('sherlock.introduction')
|
||||
|
||||
- if @transactions.empty?
|
||||
.nothing-here-block= t('sherlock.no_transactions')
|
||||
- else
|
||||
.table-holder
|
||||
%table.table
|
||||
%thead
|
||||
%tr
|
||||
%th= t('sherlock.type')
|
||||
%th= t('sherlock.path')
|
||||
%th= t('sherlock.time')
|
||||
%th= t('sherlock.queries')
|
||||
%th= t('sherlock.finished_at')
|
||||
%th
|
||||
%tbody
|
||||
- @transactions.each do |trans|
|
||||
%tr
|
||||
%td= trans.type
|
||||
%td
|
||||
%span{title: trans.path}
|
||||
= truncate(trans.path, length: 70)
|
||||
%td
|
||||
= trans.duration.round(2)
|
||||
= t('sherlock.seconds')
|
||||
%td= trans.queries.length
|
||||
%td
|
||||
= time_ago_in_words(trans.finished_at)
|
||||
= t('sherlock.ago')
|
||||
%td
|
||||
= link_to(sherlock_transaction_path(trans), class: 'btn btn-xs') do
|
||||
= t('sherlock.view')
|
||||
@@ -0,0 +1,36 @@
|
||||
- page_title t('sherlock.title'), t('sherlock.transaction')
|
||||
- header_title t('sherlock.title'), sherlock_transactions_path
|
||||
|
||||
%ul.center-top-menu
|
||||
%li.active
|
||||
%a(href="#tab-general" data-toggle="tab")
|
||||
= t('sherlock.general')
|
||||
%li
|
||||
%a(href="#tab-queries" data-toggle="tab")
|
||||
= t('sherlock.queries')
|
||||
%span.badge
|
||||
#{@transaction.queries.length}
|
||||
%li
|
||||
%a(href="#tab-file-samples" data-toggle="tab")
|
||||
= t('sherlock.file_samples')
|
||||
%span.badge
|
||||
#{@transaction.file_samples.length}
|
||||
|
||||
.gray-content-block
|
||||
.pull-right
|
||||
= link_to(sherlock_transactions_path, class: 'btn') do
|
||||
%i.fa.fa-arrow-left
|
||||
= t('sherlock.all_transactions')
|
||||
.oneline
|
||||
= t('sherlock.transaction')
|
||||
= @transaction.id
|
||||
|
||||
.tab-content
|
||||
.tab-pane.active#tab-general
|
||||
= render(partial: 'general')
|
||||
|
||||
.tab-pane#tab-queries
|
||||
= render(partial: 'queries')
|
||||
|
||||
.tab-pane#tab-file-samples
|
||||
= render(partial: 'file_samples')
|
||||
@@ -73,7 +73,7 @@
|
||||
.user-calendar-activities
|
||||
|
||||
|
||||
%ul.nav.center-middle-menu
|
||||
%ul.center-middle-menu
|
||||
%li.active
|
||||
= link_to "#activity", 'data-toggle' => 'tab' do
|
||||
Activity
|
||||
@@ -106,14 +106,14 @@
|
||||
.contributed-projects
|
||||
= render 'shared/projects/list',
|
||||
projects: @contributed_projects.sort_by(&:star_count).reverse,
|
||||
projects_limit: 5, stars: true, avatar: false
|
||||
projects_limit: 5, stars: true, avatar: true
|
||||
|
||||
- if @projects.present?
|
||||
.tab-pane#personal
|
||||
.personal-projects
|
||||
= render 'shared/projects/list',
|
||||
projects: @projects.sort_by(&:star_count).reverse,
|
||||
projects_limit: 10, stars: true, avatar: false
|
||||
projects_limit: 10, stars: true, avatar: true
|
||||
|
||||
:coffeescript
|
||||
$(".user-calendar").load("#{user_calendar_path}")
|
||||
|
||||
+15
-14
@@ -274,27 +274,28 @@ production: &base
|
||||
# arguments, followed by optional 'args' which can be either a hash or an array.
|
||||
# Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html
|
||||
providers:
|
||||
# - { name: 'google_oauth2',
|
||||
# label: 'Google',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET',
|
||||
# args: { access_type: 'offline', approval_prompt: '' } }
|
||||
# - { name: 'twitter',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET' }
|
||||
# - { name: 'github',
|
||||
# label: 'GitHub',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET',
|
||||
# args: { scope: 'user:email' } }
|
||||
# - { name: 'gitlab',
|
||||
# label: 'GitLab.com',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET',
|
||||
# args: { scope: 'api' } }
|
||||
# - { name: 'bitbucket',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET' }
|
||||
# - { name: 'gitlab',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET',
|
||||
# args: { scope: 'api' } }
|
||||
# - { name: 'google_oauth2',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET',
|
||||
# args: { access_type: 'offline', approval_prompt: '' } }
|
||||
# - { name: 'facebook',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET' }
|
||||
# - { name: 'twitter',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET' }
|
||||
#
|
||||
# - { name: 'saml',
|
||||
# label: 'Our SAML Provider',
|
||||
# args: {
|
||||
|
||||
@@ -181,10 +181,11 @@ Settings.gitlab['import_sources'] ||= ['github','bitbucket','gitlab','gitorious'
|
||||
# CI
|
||||
#
|
||||
Settings['gitlab_ci'] ||= Settingslogic.new({})
|
||||
Settings.gitlab_ci['all_broken_builds'] = true if Settings.gitlab_ci['all_broken_builds'].nil?
|
||||
Settings.gitlab_ci['add_pusher'] = false if Settings.gitlab_ci['add_pusher'].nil?
|
||||
Settings.gitlab_ci['url'] ||= Settings.send(:build_gitlab_ci_url)
|
||||
Settings.gitlab_ci['builds_path'] = File.expand_path(Settings.gitlab_ci['builds_path'] || "builds/", Rails.root)
|
||||
Settings.gitlab_ci['shared_runners_enabled'] = true if Settings.gitlab_ci['shared_runners_enabled'].nil?
|
||||
Settings.gitlab_ci['all_broken_builds'] = true if Settings.gitlab_ci['all_broken_builds'].nil?
|
||||
Settings.gitlab_ci['add_pusher'] = false if Settings.gitlab_ci['add_pusher'].nil?
|
||||
Settings.gitlab_ci['url'] ||= Settings.send(:build_gitlab_ci_url)
|
||||
Settings.gitlab_ci['builds_path'] = File.expand_path(Settings.gitlab_ci['builds_path'] || "builds/", Rails.root)
|
||||
|
||||
#
|
||||
# Reply by email
|
||||
@@ -192,8 +193,8 @@ Settings.gitlab_ci['builds_path'] = File.expand_path(Settings.gitlab_ci[
|
||||
Settings['incoming_email'] ||= Settingslogic.new({})
|
||||
Settings.incoming_email['enabled'] = false if Settings.incoming_email['enabled'].nil?
|
||||
Settings.incoming_email['port'] = 143 if Settings.incoming_email['port'].nil?
|
||||
Settings.incoming_email['ssl'] = 143 if Settings.incoming_email['ssl'].nil?
|
||||
Settings.incoming_email['start_tls'] = 143 if Settings.incoming_email['start_tls'].nil?
|
||||
Settings.incoming_email['ssl'] = false if Settings.incoming_email['ssl'].nil?
|
||||
Settings.incoming_email['start_tls'] = false if Settings.incoming_email['start_tls'].nil?
|
||||
Settings.incoming_email['mailbox'] = "inbox" if Settings.incoming_email['mailbox'].nil?
|
||||
|
||||
#
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
module Gitlab
|
||||
VERSION = File.read(Rails.root.join("VERSION")).strip
|
||||
REVISION = Gitlab::Popen.popen(%W(git log --pretty=format:%h -n 1)).first.chomp
|
||||
|
||||
def self.config
|
||||
Settings
|
||||
end
|
||||
|
||||
VERSION = File.read(Rails.root.join("VERSION")).strip
|
||||
REVISION = Gitlab::Popen.popen(%W(#{config.git.bin_path} log --pretty=format:%h -n 1)).first.chomp
|
||||
end
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user