Mercurial > hg
view hgext/commitextras.py @ 49181:477b5145e1a0 stable
ci: do not trigger phabricator for merge-request
The fast the phabricator steps has a `rules` entry makes it selected for the
special `merge_requests` pipelines. The other ones behave as default and are not
selected tot the mrege_request pipelines.
This result in a second pipeline to be created, with only the phabricator
pipeline in it. Which usually succeed fast (since there is nothing to do).
This is harmful as this create a false sense of "the series is passing" and
Gitlab will use this simplistic pipeline for validation.
By explicitly preventing the pipeline to be created in the merge-request case,
we prevent this situation to happens
Note that the job will be dropped (alonside phabricator) in the next two weeks
anyway.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 17 May 2022 00:09:51 +0100 |
parents | 45a073af50a2 |
children | 6000f5b25c9b |
line wrap: on
line source
# commitextras.py # # Copyright 2013 Facebook, Inc. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. '''adds a new flag extras to commit (ADVANCED)''' from __future__ import absolute_import import re from mercurial.i18n import _ from mercurial import ( commands, error, extensions, registrar, util, ) cmdtable = {} command = registrar.command(cmdtable) testedwith = b'ships-with-hg-core' usedinternally = { b'amend_source', b'branch', b'close', b'histedit_source', b'topic', b'rebase_source', b'intermediate-source', b'__touch-noise__', b'source', b'transplant_source', } def extsetup(ui): entry = extensions.wrapcommand(commands.table, b'commit', _commit) options = entry[1] options.append( ( b'', b'extra', [], _(b'set a changeset\'s extra values'), _(b"KEY=VALUE"), ) ) def _commit(orig, ui, repo, *pats, **opts): if util.safehasattr(repo, 'unfiltered'): repo = repo.unfiltered() class repoextra(repo.__class__): def commit(self, *innerpats, **inneropts): extras = opts.get('extra') for raw in extras: if b'=' not in raw: msg = _( b"unable to parse '%s', should follow " b"KEY=VALUE format" ) raise error.InputError(msg % raw) k, v = raw.split(b'=', 1) if not k: msg = _(b"unable to parse '%s', keys can't be empty") raise error.InputError(msg % raw) if re.search(br'[^\w-]', k): msg = _( b"keys can only contain ascii letters, digits," b" '_' and '-'" ) raise error.InputError(msg) if k in usedinternally: msg = _( b"key '%s' is used internally, can't be set " b"manually" ) raise error.InputError(msg % k) inneropts['extra'][k] = v return super(repoextra, self).commit(*innerpats, **inneropts) repo.__class__ = repoextra return orig(ui, repo, *pats, **opts)