<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/app/services/git, branch docs-pages-force-https</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Backport of 12014-incremental-es-wiki-updates</title>
<updated>2019-06-18T22:57:37+00:00</updated>
<author>
<name>Mario de la Ossa</name>
<email>mariodelaossa@gmail.com</email>
</author>
<published>2019-06-12T04:35:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=39ec4d1c2824dafccc0d59bd0cfa3abce7d9154c'/>
<id>39ec4d1c2824dafccc0d59bd0cfa3abce7d9154c</id>
<content type='text'>
Bringing in the DB migration and some light changes for CE classes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bringing in the DB migration and some light changes for CE classes
</pre>
</div>
</content>
</entry>
<entry>
<title>Look for new branches more carefully</title>
<updated>2019-06-18T11:53:53+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2019-06-17T15:12:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=b2c73fde791ebac6c2cc615fce19294190b05609'/>
<id>b2c73fde791ebac6c2cc615fce19294190b05609</id>
<content type='text'>
In certain cases, GitLab can miss a PostReceive invocation the first
time a branch is pushed. When this happens, the "branch created" hooks
are not run, which means various features don't work until the branch
is deleted and pushed again.

This MR changes the `Git::BranchPushService` so it checks the cache of
existing branches in addition to the `oldrev` reported for the branch.
If the branch name isn't in the cache, chances are we haven't run the
service yet (it's what refreshes the cache), so we can go ahead and
run it, even through `oldrev` is set.

If the cache has been cleared by some other means in the meantime, then
we'll still fail to run the hooks when we should. Fixing that in the
general case is a larger problem, and we'd need to devote significant
engineering effort to it.

There's a chance that we'll run the relevant hooks *multiple times*
with this change, if there's a race between the branch being created,
and the `PostReceive` worker being run multiple times, but this can
already happen, since Sidekiq is "at-least-once" execution of jobs. So,
this should be safe.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In certain cases, GitLab can miss a PostReceive invocation the first
time a branch is pushed. When this happens, the "branch created" hooks
are not run, which means various features don't work until the branch
is deleted and pushed again.

This MR changes the `Git::BranchPushService` so it checks the cache of
existing branches in addition to the `oldrev` reported for the branch.
If the branch name isn't in the cache, chances are we haven't run the
service yet (it's what refreshes the cache), so we can go ahead and
run it, even through `oldrev` is set.

If the cache has been cleared by some other means in the meantime, then
we'll still fail to run the hooks when we should. Fixing that in the
general case is a larger problem, and we'd need to devote significant
engineering effort to it.

There's a chance that we'll run the relevant hooks *multiple times*
with this change, if there's a race between the branch being created,
and the `PostReceive` worker being run multiple times, but this can
already happen, since Sidekiq is "at-least-once" execution of jobs. So,
this should be safe.
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify the branch hooks spec to expect processing of commit messages</title>
<updated>2019-06-13T10:46:47+00:00</updated>
<author>
<name>Fabio Papa</name>
<email>fabtheman@gmail.com</email>
</author>
<published>2019-06-13T10:46:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=352b43e0af67377b8e75b4a082418e32b13ee5f6'/>
<id>352b43e0af67377b8e75b4a082418e32b13ee5f6</id>
<content type='text'>
Commit messages are not processed for references to issues when
creating the default branch on push. This was expected
behavior (probably to avoid performance problems when first pushing a
repository with thousands of commits). However, this is not an issue
because we always limit the number of commits to process to 100
regardless of whether we are creating the default branch or not.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit messages are not processed for references to issues when
creating the default branch on push. This was expected
behavior (probably to avoid performance problems when first pushing a
repository with thousands of commits). However, this is not an issue
because we always limit the number of commits to process to 100
regardless of whether we are creating the default branch or not.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix remote mirrors not updating after tag push</title>
<updated>2019-05-17T21:45:41+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2019-05-17T21:43:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=6c6e4ca495f56ec9df8e5e6ec744744404414f8c'/>
<id>6c6e4ca495f56ec9df8e5e6ec744744404414f8c</id>
<content type='text'>
Remote mirrors were only being updated after pushes to branches, not
tags. This change consolidates the functionality into
Git::BaseHooksService so that both tags and branches will now update
remote mirrors.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/51240
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remote mirrors were only being updated after pushes to branches, not
tags. This change consolidates the functionality into
Git::BaseHooksService so that both tags and branches will now update
remote mirrors.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/51240
</pre>
</div>
</content>
</entry>
<entry>
<title>Change DetectRepositoryLanguagesWorker to not receive user</title>
<updated>2019-05-09T15:54:20+00:00</updated>
<author>
<name>Diego Silva</name>
<email>diego.silva@live.com</email>
</author>
<published>2019-05-04T09:11:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=091b15b7421374df4e06bfdb91bef6a0c36072cf'/>
<id>091b15b7421374df4e06bfdb91bef6a0c36072cf</id>
<content type='text'>
Fixes #60425
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #60425
</pre>
</div>
</content>
</entry>
<entry>
<title>Use all keyword args for DataBuilder::Push.build()</title>
<updated>2019-04-25T11:54:26+00:00</updated>
<author>
<name>Jonathon Reinhart</name>
<email>Jonathon.Reinhart@gmail.com</email>
</author>
<published>2018-12-31T03:31:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=f48605c796bf9098370a258e00fce41f1770ff74'/>
<id>f48605c796bf9098370a258e00fce41f1770ff74</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Process at most 4 pipelines during push</title>
<updated>2019-04-10T09:51:19+00:00</updated>
<author>
<name>Kamil Trzciński</name>
<email>ayufan@ayufan.eu</email>
</author>
<published>2019-04-10T09:04:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=2b9492a292d389d8390a9eca6a80e730ab7b6f1e'/>
<id>2b9492a292d389d8390a9eca6a80e730ab7b6f1e</id>
<content type='text'>
This adds a limitation that we will try to create pipeline
for at most 4 first changes (branches and tags).

This does not affect processing of Pipelines for Merge Requests,
as each updated MR will have associated pipeline created.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a limitation that we will try to create pipeline
for at most 4 first changes (branches and tags).

This does not affect processing of Pipelines for Merge Requests,
as each updated MR will have associated pipeline created.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use Gitlab::PushOptions for `ci.skip` push option</title>
<updated>2019-04-08T22:03:26+00:00</updated>
<author>
<name>Luke Duncalfe</name>
<email>lduncalfe@eml.cc</email>
</author>
<published>2019-04-05T04:19:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=1883e320eafa02b332a16eec658f65c4a28def83'/>
<id>1883e320eafa02b332a16eec658f65c4a28def83</id>
<content type='text'>
Previously the raw push option Array was sent to Pipeline::Chain::Skip.

This commit updates this class (and the chain of classes that pass the
push option parameters from the API internal `post_receive` endpoint to
that class) to treat push options as a Hash of options parsed by
GitLab::PushOptions.

The GitLab::PushOptions class takes options like this:

    -o ci.skip -o merge_request.create -o merge_request.target=branch

and turns them into a Hash like this:

    {
      ci: {
        skip: true
      },
      merge_request: {
        create: true,
        target: 'branch'
      }
    }

This now how Pipeline::Chain::Skip is determining if the `ci.skip` push
option was used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously the raw push option Array was sent to Pipeline::Chain::Skip.

This commit updates this class (and the chain of classes that pass the
push option parameters from the API internal `post_receive` endpoint to
that class) to treat push options as a Hash of options parsed by
GitLab::PushOptions.

The GitLab::PushOptions class takes options like this:

    -o ci.skip -o merge_request.create -o merge_request.target=branch

and turns them into a Hash like this:

    {
      ci: {
        skip: true
      },
      merge_request: {
        create: true,
        target: 'branch'
      }
    }

This now how Pipeline::Chain::Skip is determining if the `ci.skip` push
option was used.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract a Git::{Base,Tag,Branch}HooksService</title>
<updated>2019-04-05T17:26:53+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2019-03-28T14:59:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=e46d4bf4da3ee207043c85524df238475e47d650'/>
<id>e46d4bf4da3ee207043c85524df238475e47d650</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Only execute system hooks once when pushing tags</title>
<updated>2019-04-03T00:53:38+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2019-04-03T00:48:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d17cce6aedf67139275362481c5b7fdeebf1b6a3'/>
<id>d17cce6aedf67139275362481c5b7fdeebf1b6a3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
