Class: Gitlab::Checks::PostPushMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/checks/post_push_message.rb

Direct Known Subclasses

ContainerMoved, ProjectCreated

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repository, user, protocol) ⇒ PostPushMessage

Returns a new instance of PostPushMessage.



6
7
8
9
10
# File 'lib/gitlab/checks/post_push_message.rb', line 6

def initialize(repository, user, protocol)
  @repository = repository
  @user = user
  @protocol = protocol
end

Class Method Details

.fetch_message(user, repository) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gitlab/checks/post_push_message.rb', line 12

def self.fetch_message(user, repository)
  key = message_key(user, repository)

  # Also check for messages in the legacy key
  # TODO: Remove in the next release
  # https://gitlab.com/gitlab-org/gitlab/-/issues/292030
  legacy_key = legacy_message_key(user, repository) if respond_to?(:legacy_message_key)

  Gitlab::Redis::SharedState.with do |redis|
    message = redis.get(key)
    redis.del(key)

    if legacy_key
      legacy_message = redis.get(legacy_key)
      redis.del(legacy_key)
    end

    legacy_message || message
  end
end

Instance Method Details

#add_messageObject



33
34
35
36
37
38
39
40
# File 'lib/gitlab/checks/post_push_message.rb', line 33

def add_message
  return unless user && repository

  Gitlab::Redis::SharedState.with do |redis|
    key = self.class.message_key(user, repository)
    redis.setex(key, 5.minutes, message)
  end
end

#messageObject

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/gitlab/checks/post_push_message.rb', line 42

def message
  raise NotImplementedError
end