pdmt5 0.2.0__tar.gz → 0.2.1__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.
- {pdmt5-0.2.0 → pdmt5-0.2.1}/.github/dependabot.yml +4 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1/.github}/renovate.json +2 -3
- {pdmt5-0.2.0 → pdmt5-0.2.1}/.github/workflows/ci.yml +18 -15
- {pdmt5-0.2.0 → pdmt5-0.2.1}/.gitignore +3 -0
- pdmt5-0.2.0/CLAUDE.md → pdmt5-0.2.1/AGENTS.md +8 -25
- pdmt5-0.2.1/CLAUDE.md +1 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/PKG-INFO +2 -2
- {pdmt5-0.2.0 → pdmt5-0.2.1}/pdmt5/trading.py +11 -1
- {pdmt5-0.2.0 → pdmt5-0.2.1}/pyproject.toml +7 -4
- {pdmt5-0.2.0 → pdmt5-0.2.1}/uv.lock +2 -3
- pdmt5-0.2.0/.github/copilot-instructions.md +0 -1
- pdmt5-0.2.0/.github/workflows/claude.yml +0 -59
- pdmt5-0.2.0/.github/workflows/pr-agent.yml +0 -34
- {pdmt5-0.2.0 → pdmt5-0.2.1}/.claude/settings.json +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/.github/FUNDING.yml +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/LICENSE +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/README.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/docs/api/dataframe.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/docs/api/index.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/docs/api/mt5.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/docs/api/trading.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/docs/api/utils.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/docs/index.md +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/mkdocs.yml +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/pdmt5/__init__.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/pdmt5/dataframe.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/pdmt5/mt5.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/pdmt5/utils.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/tests/__init__.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/tests/test_dataframe.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/tests/test_init.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/tests/test_mt5.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/tests/test_trading.py +0 -0
- {pdmt5-0.2.0 → pdmt5-0.2.1}/tests/test_utils.py +0 -0
|
@@ -5,9 +5,13 @@ updates:
|
|
|
5
5
|
directory: /
|
|
6
6
|
schedule:
|
|
7
7
|
interval: daily
|
|
8
|
+
cooldown:
|
|
9
|
+
default-days: 7
|
|
8
10
|
open-pull-requests-limit: 10
|
|
9
11
|
- package-ecosystem: pip
|
|
10
12
|
directory: /
|
|
11
13
|
schedule:
|
|
12
14
|
interval: daily
|
|
15
|
+
cooldown:
|
|
16
|
+
default-days: 7
|
|
13
17
|
open-pull-requests-limit: 10
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
-
"extends": [
|
|
4
|
-
|
|
5
|
-
],
|
|
3
|
+
"extends": ["config:recommended"],
|
|
4
|
+
"minimumReleaseAge": "7 days",
|
|
6
5
|
"packageRules": [
|
|
7
6
|
{
|
|
8
7
|
"description": "Automatically merge minor and patch-level updates",
|
|
@@ -27,6 +27,8 @@ jobs:
|
|
|
27
27
|
github.event_name == 'push'
|
|
28
28
|
|| github.event_name == 'pull_request'
|
|
29
29
|
|| (github.event_name == 'workflow_dispatch' && inputs.workflow == 'lint-and-test')
|
|
30
|
+
permissions:
|
|
31
|
+
contents: read
|
|
30
32
|
uses: dceoy/gh-actions-for-devops/.github/workflows/python-package-lint-and-scan.yml@main
|
|
31
33
|
with:
|
|
32
34
|
package-path: .
|
|
@@ -36,23 +38,12 @@ jobs:
|
|
|
36
38
|
github.event_name == 'push'
|
|
37
39
|
|| github.event_name == 'pull_request'
|
|
38
40
|
|| (github.event_name == 'workflow_dispatch' && inputs.workflow == 'lint-and-test')
|
|
41
|
+
permissions:
|
|
42
|
+
contents: read
|
|
39
43
|
uses: dceoy/gh-actions-for-devops/.github/workflows/python-package-test.yml@main
|
|
40
44
|
with:
|
|
41
45
|
package-path: .
|
|
42
46
|
runs-on: windows-latest
|
|
43
|
-
dependabot-auto-merge:
|
|
44
|
-
if: >
|
|
45
|
-
github.event_name == 'pull_request' && github.actor == 'dependabot[bot]'
|
|
46
|
-
needs:
|
|
47
|
-
- python-lint-and-scan
|
|
48
|
-
- python-test
|
|
49
|
-
uses: dceoy/gh-actions-for-devops/.github/workflows/dependabot-auto-merge.yml@main
|
|
50
|
-
permissions:
|
|
51
|
-
contents: write
|
|
52
|
-
pull-requests: write
|
|
53
|
-
actions: read
|
|
54
|
-
with:
|
|
55
|
-
unconditional: true
|
|
56
47
|
python-package-release:
|
|
57
48
|
if: >
|
|
58
49
|
github.event_name == 'push'
|
|
@@ -60,14 +51,26 @@ jobs:
|
|
|
60
51
|
github.event_name == 'workflow_dispatch'
|
|
61
52
|
&& (inputs.workflow == 'release' || inputs.workflow == 'lint-and-test')
|
|
62
53
|
)
|
|
63
|
-
uses: dceoy/gh-actions-for-devops/.github/workflows/python-package-release-on-pypi-and-github.yml@main
|
|
64
54
|
permissions:
|
|
65
55
|
contents: write
|
|
66
56
|
id-token: write
|
|
57
|
+
uses: dceoy/gh-actions-for-devops/.github/workflows/python-package-release-on-pypi-and-github.yml@main
|
|
67
58
|
with:
|
|
68
59
|
package-path: .
|
|
69
60
|
create-releases: ${{ github.event_name == 'workflow_dispatch' && inputs.workflow == 'release' }}
|
|
70
|
-
python-version: 3.x
|
|
71
61
|
secrets:
|
|
72
62
|
PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
73
63
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
64
|
+
dependabot-auto-merge:
|
|
65
|
+
if: >
|
|
66
|
+
github.event_name == 'pull_request' && github.actor == 'dependabot[bot]'
|
|
67
|
+
needs:
|
|
68
|
+
- python-lint-and-scan
|
|
69
|
+
- python-test
|
|
70
|
+
uses: dceoy/gh-actions-for-devops/.github/workflows/dependabot-auto-merge.yml@main
|
|
71
|
+
permissions:
|
|
72
|
+
contents: write
|
|
73
|
+
pull-requests: write
|
|
74
|
+
actions: read
|
|
75
|
+
with:
|
|
76
|
+
unconditional: true
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
1
|
+
# Repository Guidelines
|
|
4
2
|
|
|
5
3
|
## Commands
|
|
6
4
|
|
|
@@ -111,29 +109,14 @@ Uses MkDocs with Material theme for API documentation built from Google-style do
|
|
|
111
109
|
3. Build: `uv run mkdocs build`
|
|
112
110
|
4. Deploy: `uv run mkdocs gh-deploy`
|
|
113
111
|
|
|
114
|
-
##
|
|
115
|
-
|
|
116
|
-
For tasks requiring web search, always use Gemini CLI (`gemini` command) instead of the built-in web search tools (WebFetch and WebSearch).
|
|
117
|
-
Gemini CLI is an AI workflow tool that provides reliable web search capabilities.
|
|
118
|
-
|
|
119
|
-
### Usage
|
|
120
|
-
|
|
121
|
-
```sh
|
|
122
|
-
# Basic search query
|
|
123
|
-
gemini --sandbox --prompt "WebSearch: <query>"
|
|
124
|
-
|
|
125
|
-
# Example: Search for latest news
|
|
126
|
-
gemini --sandbox --prompt "WebSearch: What are the latest developments in AI?"
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Policy
|
|
130
|
-
|
|
131
|
-
When users request information that requires web search:
|
|
132
|
-
|
|
133
|
-
1. Use `gemini --sandbox --prompt` command via terminal
|
|
134
|
-
2. Parse and present the Gemini response appropriately
|
|
112
|
+
## Serena MCP Usage (Prioritize When Available)
|
|
135
113
|
|
|
136
|
-
|
|
114
|
+
- **If Serena MCP is available, use it first.** Treat Serena MCP tools as the primary interface over local commands or ad-hoc scripts.
|
|
115
|
+
- **Glance at the Serena MCP docs/help before calling a tool** to confirm tool names, required args, and limits.
|
|
116
|
+
- **Use the MCP-exposed tools for supported actions** (e.g., reading/writing files, running tasks, fetching data) instead of re-implementing workflows.
|
|
117
|
+
- **Never hardcode secrets.** Reference environment variables or the MCP’s configured credential store; avoid printing tokens or sensitive paths.
|
|
118
|
+
- **If Serena MCP isn’t enabled or lacks a needed capability, say so and propose a safe fallback.** Mention enabling it via `.mcp.json` when relevant.
|
|
119
|
+
- **Be explicit and reproducible.** Name the exact MCP tool and arguments you intend to use in your steps.
|
|
137
120
|
|
|
138
121
|
## Code Design Principles
|
|
139
122
|
|
pdmt5-0.2.1/CLAUDE.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
AGENTS.md
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pdmt5
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Pandas-based data handler for MetaTrader 5
|
|
5
5
|
Project-URL: Repository, https://github.com/dceoy/pdmt5.git
|
|
6
6
|
Author-email: dceoy <dceoy@users.noreply.github.com>
|
|
@@ -15,7 +15,7 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
17
|
Classifier: Topic :: Office/Business :: Financial :: Investment
|
|
18
|
-
Requires-Python:
|
|
18
|
+
Requires-Python: <3.14,>=3.11
|
|
19
19
|
Requires-Dist: metatrader5>=5.0.4424; sys_platform == 'win32'
|
|
20
20
|
Requires-Dist: pandas>=2.2.2
|
|
21
21
|
Requires-Dist: pydantic>=2.9.0
|
|
@@ -131,6 +131,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
131
131
|
self,
|
|
132
132
|
symbol: str | None = None,
|
|
133
133
|
order_filling_mode: Literal["IOC", "FOK", "RETURN"] = "IOC",
|
|
134
|
+
raise_on_error: bool = False,
|
|
134
135
|
dry_run: bool = False,
|
|
135
136
|
**kwargs: Any, # noqa: ANN401
|
|
136
137
|
) -> list[dict[str, Any]]:
|
|
@@ -139,6 +140,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
139
140
|
Args:
|
|
140
141
|
symbol: Optional symbol filter.
|
|
141
142
|
order_filling_mode: Order filling mode, either "IOC", "FOK", or "RETURN".
|
|
143
|
+
raise_on_error: If True, raise an exception on error.
|
|
142
144
|
dry_run: If True, only check the order without sending it.
|
|
143
145
|
**kwargs: Additional keyword arguments for request parameters.
|
|
144
146
|
|
|
@@ -170,6 +172,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
170
172
|
"position": p["ticket"],
|
|
171
173
|
**kwargs,
|
|
172
174
|
},
|
|
175
|
+
raise_on_error=raise_on_error,
|
|
173
176
|
dry_run=dry_run,
|
|
174
177
|
)
|
|
175
178
|
for p in positions_dict
|
|
@@ -225,6 +228,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
225
228
|
order_side: Literal["BUY", "SELL"],
|
|
226
229
|
order_filling_mode: Literal["IOC", "FOK", "RETURN"] = "IOC",
|
|
227
230
|
order_time_mode: Literal["GTC", "DAY", "SPECIFIED", "SPECIFIED_DAY"] = "GTC",
|
|
231
|
+
raise_on_error: bool = False,
|
|
228
232
|
dry_run: bool = False,
|
|
229
233
|
**kwargs: Any, # noqa: ANN401
|
|
230
234
|
) -> dict[str, Any]:
|
|
@@ -237,6 +241,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
237
241
|
order_filling_mode: Order filling mode, either "IOC", "FOK", or "RETURN".
|
|
238
242
|
order_time_mode: Order time mode, either "GTC", "DAY", "SPECIFIED",
|
|
239
243
|
or "SPECIFIED_DAY".
|
|
244
|
+
raise_on_error: If True, raise an error on operation failure.
|
|
240
245
|
dry_run: If True, only check the order without sending it.
|
|
241
246
|
**kwargs: Additional keyword arguments for request parameters.
|
|
242
247
|
|
|
@@ -256,6 +261,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
256
261
|
"type_time": getattr(self.mt5, f"ORDER_TIME_{order_time_mode.upper()}"),
|
|
257
262
|
**kwargs,
|
|
258
263
|
},
|
|
264
|
+
raise_on_error=raise_on_error,
|
|
259
265
|
dry_run=dry_run,
|
|
260
266
|
)
|
|
261
267
|
|
|
@@ -265,6 +271,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
265
271
|
stop_loss: float | None = None,
|
|
266
272
|
take_profit: float | None = None,
|
|
267
273
|
tickets: list[int] | None = None,
|
|
274
|
+
raise_on_error: bool = False,
|
|
268
275
|
dry_run: bool = False,
|
|
269
276
|
**kwargs: Any, # noqa: ANN401
|
|
270
277
|
) -> list[dict[str, Any]]:
|
|
@@ -276,6 +283,7 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
276
283
|
take_profit: New Take Profit price. If None, it will not be changed.
|
|
277
284
|
tickets: List of position tickets to filter positions. If None, all open
|
|
278
285
|
positions for the symbol will be considered.
|
|
286
|
+
raise_on_error: If True, raise an error on operation failure.
|
|
279
287
|
dry_run: If True, only check the order without sending it.
|
|
280
288
|
**kwargs: Additional keyword arguments for request parameters.
|
|
281
289
|
|
|
@@ -324,7 +332,9 @@ class Mt5TradingClient(Mt5DataClient):
|
|
|
324
332
|
tp,
|
|
325
333
|
)
|
|
326
334
|
return [
|
|
327
|
-
self._send_or_check_order(
|
|
335
|
+
self._send_or_check_order(
|
|
336
|
+
request=r, raise_on_error=raise_on_error, dry_run=dry_run
|
|
337
|
+
)
|
|
328
338
|
for r in order_requests
|
|
329
339
|
]
|
|
330
340
|
else:
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pdmt5"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.1"
|
|
4
4
|
description = "Pandas-based data handler for MetaTrader 5"
|
|
5
5
|
authors = [{name = "dceoy", email = "dceoy@users.noreply.github.com"}]
|
|
6
6
|
maintainers = [{name = "dceoy", email = "dceoy@users.noreply.github.com"}]
|
|
7
7
|
license = "MIT"
|
|
8
8
|
license-files = ["LICENSE"]
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">= 3.11"
|
|
10
|
+
requires-python = ">= 3.11, < 3.14"
|
|
11
11
|
dependencies = [
|
|
12
12
|
"MetaTrader5 >= 5.0.4424; sys_platform == 'win32'",
|
|
13
13
|
"pandas >= 2.2.2",
|
|
@@ -28,7 +28,10 @@ classifiers = [
|
|
|
28
28
|
Repository = "https://github.com/dceoy/pdmt5.git"
|
|
29
29
|
|
|
30
30
|
[tool.uv]
|
|
31
|
-
|
|
31
|
+
required-environments = ["platform_system == 'Windows'"]
|
|
32
|
+
|
|
33
|
+
[dependency-groups]
|
|
34
|
+
dev = [
|
|
32
35
|
"ruff >= 0.11.0",
|
|
33
36
|
"pyright >= 1.1.402",
|
|
34
37
|
"pytest >= 8.0.0",
|
|
@@ -42,7 +45,6 @@ dev-dependencies = [
|
|
|
42
45
|
"mkdocs-material >= 9.6.15",
|
|
43
46
|
"mkdocstrings[python] >= 0.29.1",
|
|
44
47
|
]
|
|
45
|
-
required-environments = ["platform_system == 'Windows'"]
|
|
46
48
|
|
|
47
49
|
[tool.uv.build-backend]
|
|
48
50
|
source-include = ["pdmt5/**", "LICENSE"]
|
|
@@ -150,6 +152,7 @@ exclude = ["build", ".venv"]
|
|
|
150
152
|
venvPath = "."
|
|
151
153
|
venv = ".venv"
|
|
152
154
|
typeCheckingMode = "strict"
|
|
155
|
+
threads = 0
|
|
153
156
|
reportUnknownArgumentType = "none"
|
|
154
157
|
reportUnknownMemberType = "none"
|
|
155
158
|
reportUnknownVariableType = "none"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
version = 1
|
|
2
2
|
revision = 3
|
|
3
|
-
requires-python = ">=3.11"
|
|
3
|
+
requires-python = ">=3.11, <3.14"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.12'",
|
|
6
6
|
"python_full_version < '3.12'",
|
|
@@ -37,7 +37,6 @@ wheels = [
|
|
|
37
37
|
{ url = "https://files.pythonhosted.org/packages/55/07/f0b3375bf0d06014e9787797e6b7cc02b38ac9ff9726ccfe834d94e9991e/backrefs-5.9-py311-none-any.whl", hash = "sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf", size = 392072, upload-time = "2025-06-22T19:34:06.743Z" },
|
|
38
38
|
{ url = "https://files.pythonhosted.org/packages/9d/12/4f345407259dd60a0997107758ba3f221cf89a9b5a0f8ed5b961aef97253/backrefs-5.9-py312-none-any.whl", hash = "sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa", size = 397947, upload-time = "2025-06-22T19:34:08.172Z" },
|
|
39
39
|
{ url = "https://files.pythonhosted.org/packages/10/bf/fa31834dc27a7f05e5290eae47c82690edc3a7b37d58f7fb35a1bdbf355b/backrefs-5.9-py313-none-any.whl", hash = "sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b", size = 399843, upload-time = "2025-06-22T19:34:09.68Z" },
|
|
40
|
-
{ url = "https://files.pythonhosted.org/packages/fc/24/b29af34b2c9c41645a9f4ff117bae860291780d73880f449e0b5d948c070/backrefs-5.9-py314-none-any.whl", hash = "sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9", size = 411762, upload-time = "2025-06-22T19:34:11.037Z" },
|
|
41
40
|
{ url = "https://files.pythonhosted.org/packages/41/ff/392bff89415399a979be4a65357a41d92729ae8580a66073d8ec8d810f98/backrefs-5.9-py39-none-any.whl", hash = "sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60", size = 380265, upload-time = "2025-06-22T19:34:12.405Z" },
|
|
42
41
|
]
|
|
43
42
|
|
|
@@ -613,7 +612,7 @@ wheels = [
|
|
|
613
612
|
|
|
614
613
|
[[package]]
|
|
615
614
|
name = "pdmt5"
|
|
616
|
-
version = "0.2.
|
|
615
|
+
version = "0.2.1"
|
|
617
616
|
source = { editable = "." }
|
|
618
617
|
dependencies = [
|
|
619
618
|
{ name = "metatrader5", marker = "sys_platform == 'win32'" },
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
../CLAUDE.md
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Claude Code
|
|
3
|
-
on:
|
|
4
|
-
issue_comment:
|
|
5
|
-
types:
|
|
6
|
-
- created
|
|
7
|
-
pull_request_review_comment:
|
|
8
|
-
types:
|
|
9
|
-
- created
|
|
10
|
-
issues:
|
|
11
|
-
types:
|
|
12
|
-
- opened
|
|
13
|
-
- assigned
|
|
14
|
-
pull_request_review:
|
|
15
|
-
types:
|
|
16
|
-
- submitted
|
|
17
|
-
jobs:
|
|
18
|
-
claude:
|
|
19
|
-
if: >
|
|
20
|
-
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude'))
|
|
21
|
-
|| (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude'))
|
|
22
|
-
|| (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude'))
|
|
23
|
-
|| (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
24
|
-
permissions:
|
|
25
|
-
contents: read
|
|
26
|
-
pull-requests: read
|
|
27
|
-
issues: read
|
|
28
|
-
id-token: write
|
|
29
|
-
actions: read # Required for Claude to read CI results on PRs
|
|
30
|
-
uses: dceoy/gh-actions-for-devops/.github/workflows/claude-code-action.yml@main
|
|
31
|
-
with:
|
|
32
|
-
# This is an optional setting that allows Claude to read CI results on PRs
|
|
33
|
-
additional-permissions: |
|
|
34
|
-
actions: read
|
|
35
|
-
|
|
36
|
-
# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
|
|
37
|
-
# model: "claude-opus-4-20250514"
|
|
38
|
-
|
|
39
|
-
# Optional: Customize the trigger phrase (default: @claude)
|
|
40
|
-
# trigger-phrase: "/claude"
|
|
41
|
-
|
|
42
|
-
# Optional: Trigger when specific user is assigned to an issue
|
|
43
|
-
# assignee-trigger: "claude-bot"
|
|
44
|
-
|
|
45
|
-
# Optional: Allow Claude to run specific commands
|
|
46
|
-
# allowed-tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"
|
|
47
|
-
|
|
48
|
-
# Optional: Add custom instructions for Claude to customize its behavior for your project
|
|
49
|
-
# custom-instructions: |
|
|
50
|
-
# Follow our coding standards
|
|
51
|
-
# Ensure all new code has tests
|
|
52
|
-
# Use TypeScript for new files
|
|
53
|
-
|
|
54
|
-
# Optional: Custom environment variables for Claude
|
|
55
|
-
# claude-env: |
|
|
56
|
-
# NODE_ENV: test
|
|
57
|
-
secrets:
|
|
58
|
-
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
59
|
-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: PR-agent
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types:
|
|
6
|
-
- opened
|
|
7
|
-
- reopened
|
|
8
|
-
- ready_for_review
|
|
9
|
-
issue_comment:
|
|
10
|
-
types:
|
|
11
|
-
- created
|
|
12
|
-
- edited
|
|
13
|
-
- deleted
|
|
14
|
-
jobs:
|
|
15
|
-
pr-agent:
|
|
16
|
-
if: >
|
|
17
|
-
github.event.sender.type != 'Bot'
|
|
18
|
-
&& (
|
|
19
|
-
github.event_name == 'pull_request'
|
|
20
|
-
|| github.event_name == 'issue_comment'
|
|
21
|
-
)
|
|
22
|
-
uses: dceoy/gh-actions-for-devops/.github/workflows/pr-agent.yml@main
|
|
23
|
-
permissions:
|
|
24
|
-
contents: write
|
|
25
|
-
pull-requests: write
|
|
26
|
-
issues: write
|
|
27
|
-
id-token: write
|
|
28
|
-
with:
|
|
29
|
-
auto-describe: true
|
|
30
|
-
auto-review: true
|
|
31
|
-
auto-improve: true
|
|
32
|
-
secrets:
|
|
33
|
-
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
|
|
34
|
-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|