Commit f436ec3a authored by GitLab Bot's avatar GitLab Bot

Merge remote-tracking branch 'upstream/master' into ce-to-ee-2018-10-15

parents 75e6ab53 edb46ca6
<script>
import $ from 'jquery';
import { glEmojiTag } from '~/emoji';
import detailedMetric from './detailed_metric.vue';
import requestSelector from './request_selector.vue';
......@@ -64,6 +65,16 @@ export default {
lineProfileModal() {
return $('#modal-peek-line-profile');
},
hasHost() {
return this.currentRequest && this.currentRequest.details && this.currentRequest.details.host;
},
birdEmoji() {
if (this.hasHost && this.currentRequest.details.host.canary) {
return glEmojiTag('baby_chick');
}
return '';
},
},
mounted() {
this.currentRequest = this.requestId;
......@@ -93,9 +104,11 @@ export default {
class="view"
>
<span
v-if="currentRequest.details"
v-if="hasHost"
class="current-host"
:class="{ 'canary' : currentRequest.details.host.canary }"
>
<span v-html="birdEmoji"></span>
{{ currentRequest.details.host.hostname }}
</span>
</div>
......
......@@ -162,18 +162,20 @@
<span class="label-branch">
<a :href="mr.targetBranchPath">{{ mr.targetBranch }}</a>
</span>
with
<a
:href="mr.mergeCommitPath"
class="commit-sha js-mr-merged-commit-sha"
v-text="mr.shortMergeCommitSha"
>
</a>
<clipboard-button
:title="__('Copy commit SHA to clipboard')"
:text="mr.mergeCommitSha"
css-class="btn-default btn-transparent btn-clipboard js-mr-merged-copy-sha"
/>
<template v-if="mr.mergeCommitSha">
with
<a
:href="mr.mergeCommitPath"
class="commit-sha js-mr-merged-commit-sha"
v-text="mr.shortMergeCommitSha"
>
</a>
<clipboard-button
:title="__('Copy commit SHA to clipboard')"
:text="mr.mergeCommitSha"
css-class="btn-default btn-transparent btn-clipboard js-mr-merged-copy-sha"
/>
</template>
</p>
<p v-if="mr.sourceBranchRemoved">
{{ s__("mrWidget|The source branch has been removed") }}
......
......@@ -625,6 +625,7 @@ $perf-bar-development: #4c1210;
$perf-bar-bucket-bg: #111;
$perf-bar-bucket-box-shadow-from: rgba($white-light, 0.2);
$perf-bar-bucket-box-shadow-to: rgba($black, 0.25);
$perf-bar-canary-text: $orange-400;
/*
Issuable warning
......
......@@ -68,6 +68,10 @@
}
}
.current-host.canary {
color: $perf-bar-canary-text;
}
strong {
color: $white-light;
}
......
---
title: Fix 'merged with' UI being displayed when merge request has no merge commit
merge_request: 22022
author:
type: fixed
---
title: Show canary status in the performance bar
merge_request: 22222
author:
type: changed
---
title: Enable some frozen string in lib/gitlab
merge_request:
author: gfyoung
type: performance
# frozen_string_literal: true
module Gitlab
module Auth
##
......
# frozen_string_literal: true
# These calls help to authenticate to OAuth provider by providing username and password
#
......
# frozen_string_literal: true
module Gitlab
module Auth
class IpRateLimiter
......
# frozen_string_literal: true
# LDAP authorization model
#
# * Check if we are allowed access (not blocked)
......
# frozen_string_literal: true
module Gitlab
module Auth
module LDAP
......
# frozen_string_literal: true
# Class to parse and transform the info provided by omniauth
#
module Gitlab
......
# frozen_string_literal: true
# These calls help to authenticate to LDAP by providing username and password
#
# Since multiple LDAP servers are supported, it will loop through all of them
......
# frozen_string_literal: true
# Load a specific server configuration
module Gitlab
module Auth
......
# -*- ruby encoding: utf-8 -*-
# frozen_string_literal: true
# Based on the `ruby-net-ldap` gem's `Net::LDAP::DN`
#
......
# frozen_string_literal: true
module Gitlab
module Auth
module LDAP
......
# frozen_string_literal: true
module Gitlab
module Auth
module LDAP
......
# frozen_string_literal: true
# LDAP extension for User model
#
# * Find or create user from omniauth.auth data
......
# frozen_string_literal: true
# Class to parse and transform the info provided by omniauth
#
module Gitlab
......
# frozen_string_literal: true
# These calls help to authenticate to OAuth provider by providing username and password
#
......
# frozen_string_literal: true
module Gitlab
module Auth
module OAuth
......
# frozen_string_literal: true
module Gitlab
module Auth
module OAuth
......
# frozen_string_literal: true
# :nocov:
module Gitlab
module Auth
......
# frozen_string_literal: true
# OAuth extension for User model
#
# * Find GitLab user based on omniauth uid and provider
......
# frozen_string_literal: true
module Gitlab
module Auth
class OmniauthIdentityLinkerBase
......
# frozen_string_literal: true
# Use for authentication only, in particular for Rack::Attack.
# Does not perform authorization of scopes, etc.
module Gitlab
......
module Gitlab # rubocop:disable Naming/FileName
# rubocop:disable Naming/FileName
# frozen_string_literal: true
module Gitlab
module Auth
Result = Struct.new(:actor, :project, :type, :authentication_abilities) do
prepend ::EE::Gitlab::Auth::Result
......
# frozen_string_literal: true
module Gitlab
module Auth
module Saml
......
# frozen_string_literal: true
module Gitlab
module Auth
module Saml
......
# frozen_string_literal: true
module Gitlab
module Auth
module Saml
......
# frozen_string_literal: true
# SAML extension for User model
#
# * Find GitLab user based on SAML uid and provider
......
# frozen_string_literal: true
module Gitlab
module Auth
class TooManyIps < StandardError
......
# frozen_string_literal: true
module Gitlab
module Auth
class UniqueIpsLimiter
......
# frozen_string_literal: true
module Gitlab
module Auth
class UserAccessDeniedReason
......
# frozen_string_literal: true
module Gitlab
module Auth
AuthenticationError = Class.new(StandardError)
......
# frozen_string_literal: true
module Gitlab
module Badge
class Base
......
# frozen_string_literal: true
module Gitlab
module Badge
module Coverage
......
# frozen_string_literal: true
module Gitlab
module Badge
module Coverage
......
# frozen_string_literal: true
module Gitlab
module Badge
module Coverage
......
# frozen_string_literal: true
module Gitlab
module Badge
##
......
# frozen_string_literal: true
module Gitlab
module Badge
module Pipeline
......
# frozen_string_literal: true
module Gitlab
module Badge
module Pipeline
......
# frozen_string_literal: true
module Gitlab
module Badge
module Pipeline
......
# frozen_string_literal: true
module Gitlab
module Badge
##
......
# frozen_string_literal: true
module Gitlab
module BareRepositoryImport
class Importer
NoAdminError = Class.new(StandardError)
def self.execute(import_path)
import_path << '/' unless import_path.ends_with?('/')
unless import_path.ends_with?('/')
import_path = "#{import_path}/"
end
repos_to_import = Dir.glob(import_path + '**/*.git')
unless user = User.admins.order_id_asc.first
......
# frozen_string_literal: true
module Gitlab
module BareRepositoryImport
class Repository
......@@ -6,9 +8,12 @@ module Gitlab
attr_reader :group_path, :project_name, :repo_path
def initialize(root_path, repo_path)
unless root_path.ends_with?('/')
root_path = "#{root_path}/"
end
@root_path = root_path
@repo_path = repo_path
@root_path << '/' unless root_path.ends_with?('/')
full_path =
if hashed? && !wiki?
......
# frozen_string_literal: true
module Gitlab
module BitbucketImport
class Importer
......
# frozen_string_literal: true
module Gitlab
module BitbucketImport
class ProjectCreator
......
# frozen_string_literal: true
module Gitlab
module BitbucketServerImport
class ProjectCreator
......
# frozen_string_literal: true
# This class is not backed by a table in the main database.
# It loads the latest Pipeline for the HEAD of a repository, and caches that
# in Redis.
......
# frozen_string_literal: true
module Gitlab
module Cache
# See https://docs.gitlab.com/ee/development/utilities.html#requestcache
......
# frozen_string_literal: true
module Gitlab
module Checks
class ChangeAccess
......
# frozen_string_literal: true
module Gitlab
module Checks
class CommitCheck
......
# frozen_string_literal: true
module Gitlab
module Checks
class ForcePush
......
# frozen_string_literal: true
module Gitlab
module Checks
class LfsIntegrity
......
# frozen_string_literal: true
module Gitlab
module Checks
class MatchingMergeRequest
......
# frozen_string_literal: true
module Gitlab
module Checks
class PostPushMessage
......
# frozen_string_literal: true
module Gitlab
module Checks
class ProjectCreated < PostPushMessage
......
# frozen_string_literal: true
module Gitlab
module Checks
class ProjectMoved < PostPushMessage
......
......@@ -2,33 +2,33 @@
image: openjdk:8-jdk
variables:
ANDROID_COMPILE_SDK: "25"
ANDROID_BUILD_TOOLS: "24.0.0"
ANDROID_SDK_TOOLS: "24.4.1"
ANDROID_COMPILE_SDK: "28"
ANDROID_BUILD_TOOLS: "28.0.3"
ANDROID_SDK_TOOLS: "26.1.1"
before_script:
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
- wget --quiet --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r${ANDROID_SDK_TOOLS}-linux.tgz
- tar --extract --gzip --file=android-sdk.tgz
- echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK}
- echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter platform-tools
- echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS}
- echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository
- echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services
- echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
- chmod +x ./gradlew
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
- unzip android-sdk.zip -d android-sdk-linux
- echo y | android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" > /dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager platform-tools > /dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" > /dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager "extras;google;google_play_services" > /dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager "extras;google;m2repository" > /dev/null
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
- yes | android-sdk-linux/tools/bin/sdkmanager --licenses &
- chmod +x ./gradlew
stages:
- build
- test
- build
- test
build:
stage: build
script:
- ./gradlew assembleDebug
- ./gradlew assembleDebug
artifacts:
paths:
- app/build/outputs/
......@@ -36,7 +36,7 @@ build:
unitTests:
stage: test
script:
- ./gradlew test
- ./gradlew test
functionalTests:
stage: test
......
......@@ -4,7 +4,10 @@ module Peek
module Views
class Host < View
def results
{ hostname: Gitlab::Environment.hostname }
{
hostname: Gitlab::Environment.hostname,
canary: Gitlab::Utils.to_boolean(ENV['CANARY'])
}
end
end
end
......
......@@ -157,6 +157,16 @@ describe('MRWidgetMerged', () => {
expect(selectors.copyMergeShaButton.getAttribute('data-clipboard-text')).toBe(vm.mr.mergeCommitSha);
});
it('hides button to copy commit SHA if SHA does not exist', (done) => {
vm.mr.mergeCommitSha = null;
Vue.nextTick(() => {
expect(selectors.copyMergeShaButton).not.toExist();
expect(vm.$el.querySelector('.mr-info-list').innerText).not.toContain('with');
done();
});
});
it('shows merge commit SHA link', () => {
expect(selectors.mergeCommitShaLink).toExist();
expect(selectors.mergeCommitShaLink.text).toContain(vm.mr.shortMergeCommitSha);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment