diagram-to-iac 1.8.0__py3-none-any.whl → 1.11.0__py3-none-any.whl
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.
- diagram_to_iac/core/issue_tracker.py +2 -13
- diagram_to_iac/core/memory.py +6 -9
- diagram_to_iac/core/test_config.py +0 -123
- diagram_to_iac/services/observability.py +1 -12
- diagram_to_iac/tools/api_utils.py +2 -12
- diagram_to_iac/tools/git/git.py +6 -21
- diagram_to_iac/tools/sec_utils.py +38 -95
- {diagram_to_iac-1.8.0.dist-info → diagram_to_iac-1.11.0.dist-info}/METADATA +1 -1
- {diagram_to_iac-1.8.0.dist-info → diagram_to_iac-1.11.0.dist-info}/RECORD +12 -23
- diagram_to_iac/agents/demonstrator_langgraph/config.yaml +0 -56
- diagram_to_iac/agents/git_langgraph/config.yaml +0 -91
- diagram_to_iac/agents/hello_langgraph/config.yaml +0 -6
- diagram_to_iac/agents/policy_agent/config.yaml +0 -43
- diagram_to_iac/agents/supervisor_langgraph/config.yaml +0 -55
- diagram_to_iac/agents/terraform_langgraph/config.yaml +0 -25
- diagram_to_iac/config.yaml +0 -253
- diagram_to_iac/templates/issue_frontmatter.yml +0 -240
- diagram_to_iac/tools/git/git_config.yaml +0 -102
- diagram_to_iac/tools/shell/shell_config.yaml +0 -41
- diagram_to_iac/tools/tf/terraform_config.yaml +0 -21
- {diagram_to_iac-1.8.0.dist-info → diagram_to_iac-1.11.0.dist-info}/WHEEL +0 -0
- {diagram_to_iac-1.8.0.dist-info → diagram_to_iac-1.11.0.dist-info}/entry_points.txt +0 -0
- {diagram_to_iac-1.8.0.dist-info → diagram_to_iac-1.11.0.dist-info}/top_level.txt +0 -0
@@ -1,240 +0,0 @@
|
|
1
|
-
# Issue Frontmatter Template for R2D Umbrella Issues
|
2
|
-
# =====================================================
|
3
|
-
# This template provides the structured metadata format for GitHub issues
|
4
|
-
# created by the DevOps-in-a-Box R2D Action.
|
5
|
-
|
6
|
-
# Standard R2D Issue Metadata
|
7
|
-
r2d_metadata:
|
8
|
-
# Core identifiers
|
9
|
-
run_key: "{run_key}"
|
10
|
-
repo_url: "{repo_url}"
|
11
|
-
commit_sha: "{commit_sha}"
|
12
|
-
job_name: "{job_name}"
|
13
|
-
|
14
|
-
# Timestamps
|
15
|
-
created_at: "{created_at}"
|
16
|
-
updated_at: "{updated_at}"
|
17
|
-
|
18
|
-
# Status tracking
|
19
|
-
status: "{status}"
|
20
|
-
wait_reason: "{wait_reason}"
|
21
|
-
|
22
|
-
# Associated resources
|
23
|
-
umbrella_issue_id: "{umbrella_issue_id}"
|
24
|
-
linked_pr: "{linked_pr}"
|
25
|
-
branch_name: "{branch_name}"
|
26
|
-
thread_id: "{thread_id}"
|
27
|
-
|
28
|
-
# Artifacts and outputs
|
29
|
-
artifacts_path: "{artifacts_path}"
|
30
|
-
terraform_summary: "{terraform_summary}"
|
31
|
-
|
32
|
-
# Retry information
|
33
|
-
retry_count: {retry_count}
|
34
|
-
predecessor_run: "{predecessor_run}"
|
35
|
-
|
36
|
-
# Agent status summary
|
37
|
-
agent_statuses:
|
38
|
-
supervisor:
|
39
|
-
status: "{supervisor_status}"
|
40
|
-
last_updated: "{supervisor_last_updated}"
|
41
|
-
git_agent:
|
42
|
-
status: "{git_agent_status}"
|
43
|
-
last_updated: "{git_agent_last_updated}"
|
44
|
-
terraform_agent:
|
45
|
-
status: "{terraform_agent_status}"
|
46
|
-
last_updated: "{terraform_agent_last_updated}"
|
47
|
-
shell_agent:
|
48
|
-
status: "{shell_agent_status}"
|
49
|
-
last_updated: "{shell_agent_last_updated}"
|
50
|
-
|
51
|
-
# Issue Template Configuration
|
52
|
-
issue_template:
|
53
|
-
title: "🚀 R2D Deployment: {repo_name} ({short_sha})"
|
54
|
-
labels:
|
55
|
-
- "r2d-deployment"
|
56
|
-
- "automated"
|
57
|
-
- "infrastructure"
|
58
|
-
assignees:
|
59
|
-
- "github-copilot" # Auto-assign to GitHub Copilot for AI assistance
|
60
|
-
|
61
|
-
# Issue body sections
|
62
|
-
body_sections:
|
63
|
-
header:
|
64
|
-
title: "## 🤖 DevOps-in-a-Box: Automated R2D Deployment"
|
65
|
-
content: |
|
66
|
-
This is an automated deployment issue created by the DevOps-in-a-Box R2D Action.
|
67
|
-
|
68
|
-
**Repository:** {repo_url}
|
69
|
-
**Commit:** `{commit_sha}`
|
70
|
-
**Job:** {job_name}
|
71
|
-
**Started:** {created_at}
|
72
|
-
|
73
|
-
status:
|
74
|
-
title: "## 📊 Deployment Status"
|
75
|
-
content: |
|
76
|
-
- **Overall Status:** {status}
|
77
|
-
- **Current Phase:** {current_phase}
|
78
|
-
- **Progress:** {progress_percentage}%
|
79
|
-
|
80
|
-
{status_details}
|
81
|
-
|
82
|
-
agents:
|
83
|
-
title: "## 🤖 Agent Status"
|
84
|
-
content: |
|
85
|
-
| Agent | Status | Last Updated | Notes |
|
86
|
-
|-------|--------|--------------|-------|
|
87
|
-
| Supervisor | {supervisor_status} | {supervisor_last_updated} | {supervisor_notes} |
|
88
|
-
| Git Agent | {git_agent_status} | {git_agent_last_updated} | {git_agent_notes} |
|
89
|
-
| Terraform Agent | {terraform_agent_status} | {terraform_agent_last_updated} | {terraform_agent_notes} |
|
90
|
-
| Shell Agent | {shell_agent_status} | {shell_agent_last_updated} | {shell_agent_notes} |
|
91
|
-
|
92
|
-
resources:
|
93
|
-
title: "## 🔗 Related Resources"
|
94
|
-
content: |
|
95
|
-
- **Branch:** {branch_name}
|
96
|
-
- **Thread ID:** {thread_id}
|
97
|
-
- **Artifacts:** {artifacts_path}
|
98
|
-
{linked_resources}
|
99
|
-
|
100
|
-
terraform:
|
101
|
-
title: "## ⚡ Terraform Operations"
|
102
|
-
content: |
|
103
|
-
```
|
104
|
-
{terraform_summary}
|
105
|
-
```
|
106
|
-
|
107
|
-
logs:
|
108
|
-
title: "## 📋 Deployment Logs"
|
109
|
-
content: |
|
110
|
-
<details>
|
111
|
-
<summary>Click to view detailed logs</summary>
|
112
|
-
|
113
|
-
```
|
114
|
-
{deployment_logs}
|
115
|
-
```
|
116
|
-
</details>
|
117
|
-
|
118
|
-
commands:
|
119
|
-
title: "## 🔧 Available Commands"
|
120
|
-
content: |
|
121
|
-
You can control this deployment by commenting on this issue:
|
122
|
-
|
123
|
-
- `retry` - Retry the current step
|
124
|
-
- `cancel` - Cancel the deployment
|
125
|
-
- `status` - Get current status
|
126
|
-
- `logs` - Show recent logs
|
127
|
-
- `help` - Show all available commands
|
128
|
-
|
129
|
-
footer:
|
130
|
-
title: "## 🤖 Automation Info"
|
131
|
-
content: |
|
132
|
-
This issue is managed by the DevOps-in-a-Box R2D Action.
|
133
|
-
|
134
|
-
**Run Key:** `{run_key}`
|
135
|
-
**Retry Count:** {retry_count}
|
136
|
-
**Predecessor:** {predecessor_run}
|
137
|
-
|
138
|
-
---
|
139
|
-
*Powered by [DevOps-in-a-Box](https://github.com/amartyamandal/diagram-to-iac)*
|
140
|
-
|
141
|
-
# Status messages for different phases
|
142
|
-
status_messages:
|
143
|
-
created: "🆕 Deployment created and queued"
|
144
|
-
in_progress: "🚀 Deployment in progress"
|
145
|
-
waiting_for_pat: "⏳ Waiting for Personal Access Token configuration"
|
146
|
-
waiting_for_pr: "🔄 Waiting for Pull Request review and merge"
|
147
|
-
completed: "✅ Deployment completed successfully"
|
148
|
-
failed: "❌ Deployment failed"
|
149
|
-
cancelled: "🛑 Deployment cancelled"
|
150
|
-
|
151
|
-
# Progress indicators
|
152
|
-
progress_indicators:
|
153
|
-
created: 10
|
154
|
-
in_progress: 50
|
155
|
-
waiting_for_pat: 30
|
156
|
-
waiting_for_pr: 80
|
157
|
-
completed: 100
|
158
|
-
failed: 0
|
159
|
-
cancelled: 0
|
160
|
-
|
161
|
-
# Command responses
|
162
|
-
command_responses:
|
163
|
-
retry: |
|
164
|
-
🔄 **Retry Requested**
|
165
|
-
|
166
|
-
The deployment will be retried from the current step.
|
167
|
-
This may take a few minutes to start.
|
168
|
-
|
169
|
-
cancel: |
|
170
|
-
🛑 **Cancellation Requested**
|
171
|
-
|
172
|
-
The deployment has been marked for cancellation.
|
173
|
-
Any running operations will be stopped gracefully.
|
174
|
-
|
175
|
-
status: |
|
176
|
-
📊 **Current Status**
|
177
|
-
|
178
|
-
- **Phase:** {current_phase}
|
179
|
-
- **Progress:** {progress_percentage}%
|
180
|
-
- **Last Updated:** {last_updated}
|
181
|
-
|
182
|
-
{detailed_status}
|
183
|
-
|
184
|
-
help: |
|
185
|
-
🔧 **Available Commands**
|
186
|
-
|
187
|
-
Comment on this issue with any of these commands:
|
188
|
-
|
189
|
-
- `retry` - Retry the current step
|
190
|
-
- `cancel` - Cancel the deployment
|
191
|
-
- `status` - Get current status
|
192
|
-
- `logs` - Show recent logs
|
193
|
-
- `help` - Show this help message
|
194
|
-
|
195
|
-
**Note:** Only repository members can execute commands.
|
196
|
-
|
197
|
-
# Error templates
|
198
|
-
error_templates:
|
199
|
-
terraform_auth_error: |
|
200
|
-
❌ **Terraform Authentication Error**
|
201
|
-
|
202
|
-
The deployment failed because Terraform Cloud authentication is not properly configured.
|
203
|
-
|
204
|
-
**Required Action:**
|
205
|
-
1. Ensure your `TFE_TOKEN` secret is set in repository settings
|
206
|
-
2. Verify the token has access to the required workspace
|
207
|
-
3. Comment `retry` to restart the deployment
|
208
|
-
|
209
|
-
git_auth_error: |
|
210
|
-
❌ **Git Authentication Error**
|
211
|
-
|
212
|
-
The deployment failed because Git operations require authentication.
|
213
|
-
|
214
|
-
**Required Action:**
|
215
|
-
1. Ensure your `GITHUB_TOKEN` has sufficient permissions
|
216
|
-
2. Verify repository access settings
|
217
|
-
3. Comment `retry` to restart the deployment
|
218
|
-
|
219
|
-
missing_terraform_files: |
|
220
|
-
❌ **Missing Terraform Files**
|
221
|
-
|
222
|
-
The deployment failed because no Terraform files were found in the repository.
|
223
|
-
|
224
|
-
**Required Action:**
|
225
|
-
1. Ensure your repository contains `.tf` files
|
226
|
-
2. Check that files are in the expected directory structure
|
227
|
-
3. Update the repository and create a new issue
|
228
|
-
|
229
|
-
policy_violation: |
|
230
|
-
❌ **Security Policy Violation**
|
231
|
-
|
232
|
-
The deployment was blocked by security policies.
|
233
|
-
|
234
|
-
**Details:**
|
235
|
-
{policy_details}
|
236
|
-
|
237
|
-
**Required Action:**
|
238
|
-
1. Review and fix the security issues listed above
|
239
|
-
2. Update your Terraform code
|
240
|
-
3. Create a new deployment issue
|
@@ -1,102 +0,0 @@
|
|
1
|
-
# Git Tools specific configuration
|
2
|
-
# Inherits common settings from src/diagram_to_iac/config.yaml
|
3
|
-
# Only tool-specific settings and overrides are defined here
|
4
|
-
|
5
|
-
git_executor:
|
6
|
-
# Default clone settings
|
7
|
-
default_clone_depth: 1
|
8
|
-
|
9
|
-
# Authentication failure detection patterns
|
10
|
-
auth_failure_patterns:
|
11
|
-
- "Authentication failed"
|
12
|
-
- "Permission denied"
|
13
|
-
- "Could not read from remote repository"
|
14
|
-
- "fatal: unable to access"
|
15
|
-
- "403 Forbidden"
|
16
|
-
- "401 Unauthorized"
|
17
|
-
- "Please make sure you have the correct access rights"
|
18
|
-
|
19
|
-
# Repository path generation
|
20
|
-
repo_path_template: "{workspace}/{repo_name}"
|
21
|
-
sanitize_repo_names: true
|
22
|
-
|
23
|
-
# Workspace cleanup configuration
|
24
|
-
auto_cleanup_existing_repos: true # Automatically remove existing repos before cloning
|
25
|
-
cleanup_safety_check: true # Verify path is within workspace before removal
|
26
|
-
backup_existing_repos: false # Create backup before removal (future feature)
|
27
|
-
|
28
|
-
# Git-specific logging configuration
|
29
|
-
enable_detailed_logging: true
|
30
|
-
log_git_commands: true
|
31
|
-
log_auth_failures: true
|
32
|
-
|
33
|
-
# Memory integration
|
34
|
-
store_operations_in_memory: true
|
35
|
-
store_command_output: true
|
36
|
-
|
37
|
-
# GitHub CLI configuration
|
38
|
-
github_cli:
|
39
|
-
default_timeout: 60 # GitHub CLI operations timeout
|
40
|
-
require_auth_check: true
|
41
|
-
auth_failure_patterns:
|
42
|
-
- "authentication failed"
|
43
|
-
- "bad credentials"
|
44
|
-
- "token does not have permission"
|
45
|
-
- "Must have admin rights to Repository"
|
46
|
-
- "HTTP 401"
|
47
|
-
- "HTTP 403"
|
48
|
-
issue_creation_patterns:
|
49
|
-
- "title is required"
|
50
|
-
- "body is required"
|
51
|
-
- "repository not found"
|
52
|
-
success_patterns:
|
53
|
-
- "https://github.com/"
|
54
|
-
- "/issues/"
|
55
|
-
|
56
|
-
# Error messages following our pattern
|
57
|
-
error_messages:
|
58
|
-
invalid_repo_url: "Git executor: Invalid repository URL '{repo_url}'"
|
59
|
-
workspace_not_accessible: "Git executor: Workspace directory '{workspace}' is not accessible"
|
60
|
-
clone_failed: "Git executor: Failed to clone repository '{repo_url}'"
|
61
|
-
auth_failed: "Git executor: Authentication failed for repository '{repo_url}'"
|
62
|
-
timeout_exceeded: "Git executor: Git operation timed out after {timeout} seconds"
|
63
|
-
shell_executor_error: "Git executor: Shell executor error: {error}"
|
64
|
-
repo_already_exists: "Git executor: Repository '{repo_name}' already exists in workspace"
|
65
|
-
repo_cleanup_started: "Git executor: Cleaning up existing repository '{repo_name}' at '{repo_path}'"
|
66
|
-
repo_cleanup_completed: "Git executor: Successfully cleaned up existing repository '{repo_name}'"
|
67
|
-
repo_cleanup_failed: "Git executor: Failed to clean up existing repository '{repo_name}': {error}"
|
68
|
-
cleanup_safety_violation: "Git executor: Repository path '{repo_path}' is outside workspace - cleanup denied for security"
|
69
|
-
|
70
|
-
# GitHub CLI error messages
|
71
|
-
gh_auth_failed: "GitHub CLI: Authentication failed - please check GITHUB_TOKEN"
|
72
|
-
gh_repo_not_found: "GitHub CLI: Repository '{repo_url}' not found or access denied"
|
73
|
-
gh_issue_creation_failed: "GitHub CLI: Failed to create issue in '{repo_url}'"
|
74
|
-
gh_invalid_repo_format: "GitHub CLI: Invalid repository format '{repo_url}' - expected owner/repo"
|
75
|
-
gh_command_failed: "GitHub CLI: Command failed with exit code {exit_code}"
|
76
|
-
|
77
|
-
# Success messages following our pattern
|
78
|
-
success_messages:
|
79
|
-
clone_started: "Git executor: Starting clone of '{repo_url}'"
|
80
|
-
clone_completed: "Git executor: Successfully cloned '{repo_url}' to '{repo_path}' in {duration:.2f}s"
|
81
|
-
repo_path_resolved: "Git executor: Repository path resolved to '{repo_path}'"
|
82
|
-
repo_cleanup_success: "Git executor: Successfully cleaned up existing repository before cloning"
|
83
|
-
|
84
|
-
# GitHub CLI success messages
|
85
|
-
gh_issue_created: "GitHub CLI: Successfully created issue '{title}' in '{repo_url}'"
|
86
|
-
gh_auth_verified: "GitHub CLI: Authentication verified for GitHub operations"
|
87
|
-
gh_repo_accessible: "GitHub CLI: Repository '{repo_url}' is accessible"
|
88
|
-
|
89
|
-
# Status codes for structured responses
|
90
|
-
status_codes:
|
91
|
-
success: "SUCCESS"
|
92
|
-
auth_failed: "AUTH_FAILED"
|
93
|
-
error: "ERROR"
|
94
|
-
timeout: "TIMEOUT"
|
95
|
-
already_exists: "ALREADY_EXISTS"
|
96
|
-
|
97
|
-
# GitHub CLI status codes
|
98
|
-
gh_success: "GH_SUCCESS"
|
99
|
-
gh_auth_failed: "GH_AUTH_FAILED"
|
100
|
-
gh_repo_not_found: "GH_REPO_NOT_FOUND"
|
101
|
-
gh_permission_denied: "GH_PERMISSION_DENIED"
|
102
|
-
gh_error: "GH_ERROR"
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# Shell Tools specific configuration
|
2
|
-
# Inherits common settings from src/diagram_to_iac/config.yaml
|
3
|
-
# Only tool-specific settings and overrides are defined here
|
4
|
-
|
5
|
-
shell_executor:
|
6
|
-
# Allowed binaries for shell execution (security whitelist)
|
7
|
-
allowed_binaries: ["git", "bash", "sh", "gh", "terraform", "tfsec", "ls", "find", "wc"]
|
8
|
-
|
9
|
-
# Maximum output size before truncation (bytes)
|
10
|
-
max_output_size: 8192
|
11
|
-
|
12
|
-
# Security and path validation settings
|
13
|
-
allow_relative_paths: true
|
14
|
-
restrict_to_workspace: true
|
15
|
-
|
16
|
-
# Logging configuration (specific to shell tools)
|
17
|
-
enable_detailed_logging: true
|
18
|
-
log_command_execution: true
|
19
|
-
log_output_truncation: true
|
20
|
-
|
21
|
-
# Error messages for consistent user feedback
|
22
|
-
error_messages:
|
23
|
-
binary_not_allowed: "Shell executor: Binary '{binary}' is not in the allowed list."
|
24
|
-
invalid_workspace_path: "Shell executor: Path '{path}' is outside the allowed workspace."
|
25
|
-
command_timeout: "Shell executor: Command timed out after {timeout} seconds."
|
26
|
-
execution_failed: "Shell executor: Command failed with exit code {exit_code}."
|
27
|
-
output_truncated: "Shell executor: Output truncated to {size} bytes."
|
28
|
-
|
29
|
-
# Success messages for operation feedback
|
30
|
-
success_messages:
|
31
|
-
command_executed: "Shell executor: Command completed successfully in {duration:.2f}s."
|
32
|
-
output_captured: "Shell executor: Captured {size} bytes of output."
|
33
|
-
|
34
|
-
# Development and testing overrides
|
35
|
-
development:
|
36
|
-
# For local development, allow broader workspace access
|
37
|
-
local_workspace_base: "/home/vindpro/Documents/projects/diagram-to-iac"
|
38
|
-
# Extended timeout for development operations
|
39
|
-
extended_timeout: 120
|
40
|
-
# Additional dev binaries (can be enabled for local testing)
|
41
|
-
dev_binaries: ["ls", "pwd", "echo", "cat", "grep"]
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# Terraform Tools specific configuration
|
2
|
-
# Inherits common settings from src/diagram_to_iac/config.yaml
|
3
|
-
# Only tool-specific settings and overrides are defined here
|
4
|
-
|
5
|
-
terraform_executor:
|
6
|
-
# Allowed binaries for terraform execution (security whitelist)
|
7
|
-
allowed_binaries: ["terraform", "git", "bash", "sh"]
|
8
|
-
|
9
|
-
# Terraform-specific settings
|
10
|
-
default_plan_file: "plan.tfplan"
|
11
|
-
default_auto_approve: true
|
12
|
-
|
13
|
-
# Path validation settings
|
14
|
-
restrict_to_workspace: true
|
15
|
-
|
16
|
-
# Terraform-specific logging configuration
|
17
|
-
enable_detailed_logging: true
|
18
|
-
|
19
|
-
# Memory integration
|
20
|
-
store_operations_in_memory: true
|
21
|
-
|
File without changes
|
File without changes
|
File without changes
|