mcp-postgresql-ops 3.4.1__tar.gz → 3.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mcp_postgresql_ops-3.4.1/README.md → mcp_postgresql_ops-3.4.2/PKG-INFO +18 -14
- mcp_postgresql_ops-3.4.1/src/mcp_postgresql_ops.egg-info/PKG-INFO → mcp_postgresql_ops-3.4.2/README.md +0 -32
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/scripts/check_release.py +3 -6
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/scripts/publish_release.py +1 -3
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2/src/mcp_postgresql_ops.egg-info}/PKG-INFO +1 -15
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/scm_version.json +2 -2
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/test_release.py +30 -14
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.env.example +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/CONTRIBUTING.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/FUNDING.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/copilot-instructions.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/dependabot.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/pull_request_template.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/workflows/pypi-publish.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/workflows/test.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.gitignore +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.gitleaks.toml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.pre-commit-config.yaml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.python-version +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/Dockerfile.MCP-Server +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/Dockerfile.MCPO-Proxy +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/LICENSE +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/MANIFEST.in +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/SECURITY.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/_config.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/_includes/head-custom-google-analytics.html +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/build-mcp-server-docker-image.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/build-mcpo-server-docker-image.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/docker-compose.custom-db.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/docker-compose.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/MCP-Workflow-of-Quickstart-Tutorial.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-000.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-001.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-002.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-004.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-005.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-claude-desktop-airflow-connections-html.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-claude-desktop-mermaid-diagram.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-claude-desktop-question-001.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-swagger-api.png +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/mcp-config.json.http +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/mcp-config.json.stdio +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/pyproject.toml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/run-mcp-inspector-local.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/run-mcp-inspector-pypi.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/scripts/create-test-data.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/scripts/create-test-data.sql +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/scripts/enable-pgsql-extensions.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/scripts/mcp-server-docker-cmd.sh +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/setup.cfg +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/__init__.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/__main__.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/functions.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/mcp_main.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/prompt_template.md +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/version_compat.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/SOURCES.txt +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/dependency_links.txt +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/entry_points.txt +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/requires.txt +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/scm_file_list.json +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/top_level.txt +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/__init__.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/conftest.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/docker/docker-compose.test.yml +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/docker/init-test-db.sql +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/test_tool_schema_null_defaults.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/test_tools_integration.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/test_version_compat.py +0 -0
- {mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/uv.lock +0 -0
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mcp-postgresql-ops
|
|
3
|
+
Version: 3.4.2
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Author-email: JungJungIn <call518@gmail.com>
|
|
6
|
+
Requires-Python: >=3.12
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Dist: fastmcp>=2.12.3
|
|
10
|
+
Requires-Dist: asyncpg>=0.29.0
|
|
11
|
+
Requires-Dist: psycopg2-binary>=2.9.7
|
|
12
|
+
Requires-Dist: setuptools-scm>=10.0.5
|
|
13
|
+
Requires-Dist: pre-commit>=4.6.0
|
|
14
|
+
Provides-Extra: dev
|
|
15
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
16
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
1
19
|
# MCP Server for PostgreSQL Operations and Monitoring
|
|
2
20
|
|
|
3
21
|
[](https://mcptoplist.com/server/smithery%2Fcall518%2Fmcp-postgresql-ops)
|
|
@@ -291,20 +309,6 @@ The `create-test-data.sql` script is executed by the `postgres-init-extensions`
|
|
|
291
309
|
|
|
292
310
|
---
|
|
293
311
|
|
|
294
|
-
## Tagged Releases
|
|
295
|
-
|
|
296
|
-
The GitHub Actions workflow publishes a pushed version tag (for example,
|
|
297
|
-
`v1.2.3`, `1.2.3`, or `1.2.3rc1`) to TestPyPI, then PyPI, and finally creates
|
|
298
|
-
a GitHub Release with the tag as its title. Both distribution versions must match
|
|
299
|
-
the tag. The existing `testpypi` and `pypi` GitHub environments must have Trusted
|
|
300
|
-
Publishing configured on their respective package indexes.
|
|
301
|
-
|
|
302
|
-
Release notes include full commit messages since the most recently published
|
|
303
|
-
GitHub Release, or all commits for the first release. The previous release tag
|
|
304
|
-
must be an ancestor of the new tag. Alpha, beta, and release candidate tags create
|
|
305
|
-
prereleases. Existing published releases are preserved; an existing draft requires
|
|
306
|
-
manual review. A failed publication prevents subsequent publication jobs.
|
|
307
|
-
|
|
308
312
|
## Installation
|
|
309
313
|
|
|
310
314
|
### From PyPI (Recommended)
|
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: mcp-postgresql-ops
|
|
3
|
-
Version: 3.4.1
|
|
4
|
-
Summary: Add your description here
|
|
5
|
-
Author-email: JungJungIn <call518@gmail.com>
|
|
6
|
-
Requires-Python: >=3.12
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
License-File: LICENSE
|
|
9
|
-
Requires-Dist: fastmcp>=2.12.3
|
|
10
|
-
Requires-Dist: asyncpg>=0.29.0
|
|
11
|
-
Requires-Dist: psycopg2-binary>=2.9.7
|
|
12
|
-
Requires-Dist: setuptools-scm>=10.0.5
|
|
13
|
-
Requires-Dist: pre-commit>=4.6.0
|
|
14
|
-
Provides-Extra: dev
|
|
15
|
-
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
16
|
-
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
17
|
-
Dynamic: license-file
|
|
18
|
-
|
|
19
1
|
# MCP Server for PostgreSQL Operations and Monitoring
|
|
20
2
|
|
|
21
3
|
[](https://mcptoplist.com/server/smithery%2Fcall518%2Fmcp-postgresql-ops)
|
|
@@ -309,20 +291,6 @@ The `create-test-data.sql` script is executed by the `postgres-init-extensions`
|
|
|
309
291
|
|
|
310
292
|
---
|
|
311
293
|
|
|
312
|
-
## Tagged Releases
|
|
313
|
-
|
|
314
|
-
The GitHub Actions workflow publishes a pushed version tag (for example,
|
|
315
|
-
`v1.2.3`, `1.2.3`, or `1.2.3rc1`) to TestPyPI, then PyPI, and finally creates
|
|
316
|
-
a GitHub Release with the tag as its title. Both distribution versions must match
|
|
317
|
-
the tag. The existing `testpypi` and `pypi` GitHub environments must have Trusted
|
|
318
|
-
Publishing configured on their respective package indexes.
|
|
319
|
-
|
|
320
|
-
Release notes include full commit messages since the most recently published
|
|
321
|
-
GitHub Release, or all commits for the first release. The previous release tag
|
|
322
|
-
must be an ancestor of the new tag. Alpha, beta, and release candidate tags create
|
|
323
|
-
prereleases. Existing published releases are preserved; an existing draft requires
|
|
324
|
-
manual review. A failed publication prevents subsequent publication jobs.
|
|
325
|
-
|
|
326
294
|
## Installation
|
|
327
295
|
|
|
328
296
|
### From PyPI (Recommended)
|
|
@@ -10,13 +10,10 @@ from pathlib import Path
|
|
|
10
10
|
|
|
11
11
|
def release_version(tag: str) -> str:
|
|
12
12
|
"""Validate a canonical release tag and return its package version."""
|
|
13
|
-
version = tag.removeprefix("v")
|
|
14
13
|
number = r"(?:0|[1-9][0-9]*)"
|
|
15
|
-
if not re.fullmatch(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
raise ValueError("Use a tag such as 0.5.7, v0.5.7, or 0.5.7rc1")
|
|
19
|
-
return version
|
|
14
|
+
if not re.fullmatch(rf"{number}\.{number}\.{number}", tag):
|
|
15
|
+
raise ValueError("Use a numeric major.minor.patch tag such as 0.5.7")
|
|
16
|
+
return tag
|
|
20
17
|
|
|
21
18
|
|
|
22
19
|
def check_release(tag: str, directory: Path) -> None:
|
|
@@ -69,7 +69,7 @@ def release_notes(repository: str, tag: str, previous: str | None) -> str:
|
|
|
69
69
|
|
|
70
70
|
def publish_release(repository: str, tag: str) -> None:
|
|
71
71
|
"""Create a release once, using the last published release as the baseline."""
|
|
72
|
-
|
|
72
|
+
release_version(tag)
|
|
73
73
|
current = command("git", "rev-parse", "--verify", f"refs/tags/{tag}^{{commit}}")
|
|
74
74
|
remote = command("gh", "api", f"repos/{repository}/commits/{tag}", "--jq", ".sha")
|
|
75
75
|
if current != remote or current != command("git", "rev-parse", "HEAD"):
|
|
@@ -117,8 +117,6 @@ def publish_release(repository: str, tag: str) -> None:
|
|
|
117
117
|
"--notes-file",
|
|
118
118
|
str(path),
|
|
119
119
|
]
|
|
120
|
-
if re.search(r"(?:a|b|rc)\d+$", version):
|
|
121
|
-
args.extend(["--prerelease", "--latest=false"])
|
|
122
120
|
command(*args)
|
|
123
121
|
print(f"Published GitHub Release {tag} (previous release: {previous or 'none'}).")
|
|
124
122
|
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2/src/mcp_postgresql_ops.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-postgresql-ops
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.2
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Author-email: JungJungIn <call518@gmail.com>
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -309,20 +309,6 @@ The `create-test-data.sql` script is executed by the `postgres-init-extensions`
|
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
312
|
-
## Tagged Releases
|
|
313
|
-
|
|
314
|
-
The GitHub Actions workflow publishes a pushed version tag (for example,
|
|
315
|
-
`v1.2.3`, `1.2.3`, or `1.2.3rc1`) to TestPyPI, then PyPI, and finally creates
|
|
316
|
-
a GitHub Release with the tag as its title. Both distribution versions must match
|
|
317
|
-
the tag. The existing `testpypi` and `pypi` GitHub environments must have Trusted
|
|
318
|
-
Publishing configured on their respective package indexes.
|
|
319
|
-
|
|
320
|
-
Release notes include full commit messages since the most recently published
|
|
321
|
-
GitHub Release, or all commits for the first release. The previous release tag
|
|
322
|
-
must be an ancestor of the new tag. Alpha, beta, and release candidate tags create
|
|
323
|
-
prereleases. Existing published releases are preserved; an existing draft requires
|
|
324
|
-
manual review. A failed publication prevents subsequent publication jobs.
|
|
325
|
-
|
|
326
312
|
## Installation
|
|
327
313
|
|
|
328
314
|
### From PyPI (Recommended)
|
|
@@ -16,12 +16,18 @@ from scripts.check_release import check_release, release_version
|
|
|
16
16
|
from scripts.publish_release import publish_release, release_notes
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
@pytest.mark.parametrize("tag", ["
|
|
19
|
+
@pytest.mark.parametrize("tag", ["0.0.0", "1.2.3", "10.20.30"])
|
|
20
20
|
def test_release_version(tag):
|
|
21
|
-
assert release_version(tag) == tag
|
|
21
|
+
assert release_version(tag) == tag
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
@pytest.mark.parametrize(
|
|
24
|
+
@pytest.mark.parametrize(
|
|
25
|
+
"tag",
|
|
26
|
+
[
|
|
27
|
+
"latest", "1.2", "1.2.3.4", "v1.2.3", "01.2.3", "1.02.3", "1.2.03",
|
|
28
|
+
"1.2.3a1", "1.2.3b1", "1.2.3rc1", "1.2.3+local", "1..3", "1.2.3",
|
|
29
|
+
],
|
|
30
|
+
)
|
|
25
31
|
def test_invalid_release_version(tag):
|
|
26
32
|
with pytest.raises(ValueError):
|
|
27
33
|
release_version(tag)
|
|
@@ -37,20 +43,20 @@ def test_distribution_versions(tmp_path, version):
|
|
|
37
43
|
info.size = len(metadata)
|
|
38
44
|
archive.addfile(info, io.BytesIO(metadata))
|
|
39
45
|
if version == "1.2.3":
|
|
40
|
-
check_release("
|
|
46
|
+
check_release("1.2.3", tmp_path)
|
|
41
47
|
else:
|
|
42
48
|
with pytest.raises(ValueError, match="expected"):
|
|
43
|
-
check_release("
|
|
49
|
+
check_release("1.2.3", tmp_path)
|
|
44
50
|
|
|
45
51
|
|
|
46
52
|
def test_notes_use_previous_release_and_preserve_messages():
|
|
47
53
|
message = "Fix issue\n\n```\n$(touch unwanted)\n```"
|
|
48
54
|
with patch("scripts.publish_release.command") as command:
|
|
49
55
|
command.side_effect = ["new", "old", "", f"abcdef123\0{message}\0"]
|
|
50
|
-
notes = release_notes("owner/repo", "
|
|
56
|
+
notes = release_notes("owner/repo", "1.2.3", "1.2.2")
|
|
51
57
|
assert message in notes
|
|
52
58
|
assert "````text" in notes
|
|
53
|
-
assert "compare/
|
|
59
|
+
assert "compare/1.2.2...1.2.3" in notes
|
|
54
60
|
assert command.call_args.args[-2:] == ("old..new", "--")
|
|
55
61
|
|
|
56
62
|
|
|
@@ -59,28 +65,38 @@ def test_existing_release_is_not_overwritten(draft):
|
|
|
59
65
|
with patch("scripts.publish_release.command") as command:
|
|
60
66
|
command.side_effect = [
|
|
61
67
|
"sha", "sha", "sha",
|
|
62
|
-
json.dumps([[{"tag_name": "
|
|
68
|
+
json.dumps([[{"tag_name": "1.2.3", "draft": draft}]]),
|
|
63
69
|
]
|
|
64
70
|
if draft:
|
|
65
71
|
with pytest.raises(ValueError, match="draft"):
|
|
66
|
-
publish_release("owner/repo", "
|
|
72
|
+
publish_release("owner/repo", "1.2.3")
|
|
67
73
|
else:
|
|
68
|
-
publish_release("owner/repo", "
|
|
74
|
+
publish_release("owner/repo", "1.2.3")
|
|
69
75
|
assert command.call_count == 4
|
|
70
76
|
|
|
71
77
|
|
|
72
|
-
def
|
|
78
|
+
def test_first_release_creation():
|
|
73
79
|
with patch("scripts.publish_release.command") as command:
|
|
74
80
|
command.side_effect = ["sha", "sha", "sha", "[[]]", "sha", "", ""]
|
|
75
|
-
publish_release("owner/repo", "
|
|
81
|
+
publish_release("owner/repo", "1.2.3")
|
|
76
82
|
args = command.call_args.args
|
|
77
83
|
assert args[:3] == ("gh", "release", "create")
|
|
78
|
-
assert args[
|
|
84
|
+
assert args[3] == "1.2.3"
|
|
85
|
+
assert "--prerelease" not in args
|
|
86
|
+
assert "--latest=false" not in args
|
|
79
87
|
|
|
80
88
|
|
|
81
89
|
def test_remote_tag_mismatch_stops_publication():
|
|
82
90
|
with patch("scripts.publish_release.command") as command:
|
|
83
91
|
command.side_effect = ["local", "remote"]
|
|
84
92
|
with pytest.raises(ValueError, match="must match"):
|
|
85
|
-
publish_release("owner/repo", "
|
|
93
|
+
publish_release("owner/repo", "1.2.3")
|
|
86
94
|
assert command.call_count == 2
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@pytest.mark.parametrize("tag", ["v1.2.3", "1.2.3rc1"])
|
|
98
|
+
def test_invalid_tag_stops_publication(tag):
|
|
99
|
+
with patch("scripts.publish_release.command") as command:
|
|
100
|
+
with pytest.raises(ValueError):
|
|
101
|
+
publish_release("owner/repo", tag)
|
|
102
|
+
command.assert_not_called()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/documentation.md
RENAMED
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/.github/ISSUE_TEMPLATE/feature_request.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/_includes/head-custom-google-analytics.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/MCP-Workflow-of-Quickstart-Tutorial.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/img/screenshot-claude-desktop-question-001.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/prompt_template.md
RENAMED
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops/version_compat.py
RENAMED
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/src/mcp_postgresql_ops.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_postgresql_ops-3.4.1 → mcp_postgresql_ops-3.4.2}/tests/test_tool_schema_null_defaults.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|