Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions config-production-firefox.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,32 @@ sentry_dsn = ""

[clones]
directory = "/clones"

###########
# FIREFOX #
###########

[[tracked_repositories]]
name = "firefox"
url = "https://github.com/mozilla-firefox/firefox.git_NOT_YET_IN_USE"


#
# MOZILLA-UNIFIED
#
# We don't sync to this repository, but we put it here first to fetch all
# references early, with the benefit of bundles.
#
[[branch_mappings]]
source_url = "https://github.com/mozilla-firefox/firefox.git_NOT_YET_IN_USE"
branch_pattern = "THIS_SHOULD_MATCH_NOTHING"
destination_url = "https://hg.mozilla.org/mozilla-unified/"
destination_branch = "NOT_A_VALID_BRANCH"

[[tag_mappings]]
source_url = "https://github.com/mozilla-firefox/firefox.git_NOT_YET_IN_USE"
tag_pattern = "THIS_SHOULD_MATCH_NOTHING"
destination_url = "https://hg.mozilla.org/mozilla-unified/"
tags_destination_branch = "NOT_A_VALID_BRANCH"
# Default
#tag_message_suffix = "a=tagging CLOSED TREE DONTBUILD"
64 changes: 64 additions & 0 deletions config-production-thunderbird.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
[pulse]
# Those parameters can be overriden by PULSE_* environment variables
host = "pulse.mozilla.org"
port = 5671
ssl = true
userid = "SET THIS IN PULSE_USERID ENV VARIABLE"
password = "SET THIS IN PULSE_PASSWORD ENV VARIABLE"
# The exchange is declared by the Producer.
exchange = "exchange/landoprod/pushes"
routing_key = "gitpushes"
# The Consumer declares the queue and binds it to the exchange.
heartbeat = 30
queue = "queue/githgsyncprod/pushes"

[sentry]
sentry_dsn = ""

[clones]
directory = "/clones"

#############################
# THUNDERBIRD-INFRA-TESTING #
#############################

[[tracked_repositories]]
name = "thunderbird-infra-testing"
url = "https://github.com/thunderbird/infra-testing.git"

#
# COMM-UNIFIED
#
# We don't sync to this repository, but we put it here first to fetch all
# references early, with the benefit of bundles.
#
[[branch_mappings]]
source_url = "https://github.com/thunderbird/infra-testing.git"
branch_pattern = "THIS_SHOULD_MATCH_NOTHING"
destination_url = "https://hg.mozilla.org/comm-unified/"
destination_branch = "NOT_A_VALID_BRANCH"

[[branch_mappings]]
source_url = "https://github.com/thunderbird/infra-testing.git"
branch_pattern = "main"
destination_url = "ssh://hg.mozilla.org/conduit-testing/comm-infra-testing/"
destination_branch = "default"

[[tag_mappings]]
source_url = "https://github.com/thunderbird/infra-testing.git"
# (NIGHTLY)_(\d+)_(BASE|END)
# (BETA)_(\d+)_(BASE|END)
# (RELEASE)_(\d+)_(BASE|END)
# tag_pattern = "^(THUNDERBIRD)_.*$"
# destination_url = "ssh://hg.mozilla.org/releases/comm-beta/"
# RELEASES
# tag_pattern = "^(THUNDERBIRD)_.*$"
# destination_url = "ssh://hg.mozilla.org/releases/comm-release/"
# ESR
# tag_pattern = "^(THUNDERBIRD)_(\\d+)(_\\d+)+esr_(BUILD\\d+|RELEASE)$"
# destination_url = "ssh://hg.mozilla.org/releases/comm-esr\\2/"
Copy link

@coreycb coreycb Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should there be a tag_pattern for comm-central?

Do the tag_patterns only include tags from the corresponding git branch?
I think the following would cover tags, assuming only tags from the corresponding git branches are included:

https://hg-edge.mozilla.org/comm-central/tags

(NIGHTLY)_(\d+)_(BASE|END)
(BETA)_(\d+)_(BASE|END)

https://hg-edge.mozilla.org/releases/comm-beta/tags

(NIGHTLY)_(\d+)_(BASE|END)
(BETA)_(\d+)_(BASE|END)
(RELEASE)_(\d+)_(BASE|END)
^(THUNDERBIRD)_(\\d+)_0b(\\d+)_(BUILD\\d+|RELEASE)$  # beta tags

https://hg-edge.mozilla.org/releases/comm-release/tags

(NIGHTLY)_(\d+)_(BASE|END)
(BETA)_(\d+)_(BASE|END)
(RELEASE)_(\d+)_(BASE|END)
^(THUNDERBIRD)_(\\d+)_0b(\\d+)_(BUILD\\d+|RELEASE)$  # beta tags
^(THUNDERBIRD)_(\\d+)(_\\d+)+_(BUILD\\d+|RELEASE)$  # release tags

https://hg-edge.mozilla.org/releases/comm-esr140/tags

(NIGHTLY)_(\d+)_(BASE|END)
(BETA)_(\d+)_(BASE|END)
(RELEASE)_(\d+)_(BASE|END)
(ESR)_(\d+)_(BASE|END)
^(THUNDERBIRD)_(\\d+)_0b(\\d+)_(BUILD\\d+|RELEASE)$  # beta tags
^(THUNDERBIRD)_(\\d+)(_\\d+)+esr_(BUILD\\d+|RELEASE)$  # esr tags

tag_pattern = ".+"
destination_url = "ssh://hg.mozilla.org/conduit-testing/comm-infra-testing/"
tags_destination_branch = "tags-testing"
# Default
#tag_message_suffix = "a=tagging CLOSED TREE DONTBUILD"
Empty file removed config-suite.toml
Empty file.
25 changes: 12 additions & 13 deletions tests/test_config_files.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
from pathlib import Path

import pytest
from pydantic import ValidationError

from git_hg_sync.config import Config

HERE = Path(__file__).parent
BASEDIR = Path(__file__).parent.parent


@pytest.mark.parametrize(
"config_file",
[
"config-development.toml",
"config-docker.toml",
"config-production.toml",
"config-staging.toml",
],
list(BASEDIR.glob("config-*.toml"))
)
def test_config_files(config_file: str) -> None:
config = Config.from_file(HERE / ".." / config_file)
def test_config_files(config_file: Path) -> None:
try:
config = Config.from_file(config_file)
except ValidationError as exc:
raise AssertionError(f"Syntax in {config_file}") from exc

# We just do a shallow verification. What we really care is that the file could be
# loaded correctly.
assert config.pulse
assert config.tracked_repositories
assert config.branch_mappings
assert config.tag_mappings
assert config.pulse, f"`pulse` section missing in {config_file}"
assert config.tracked_repositories, f"`tracked_repositories` section missing in {config_file}"
assert config.branch_mappings, f"`branch_mappings` section missing in {config_file}"
assert config.tag_mappings, f"`tag_mappings` section missing in {config_file}"