@vypdev/copilot 3.2.0

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.
package/package.json ADDED
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "@vypdev/copilot",
3
+ "version": "3.2.0",
4
+ "packageManager": "pnpm@10.12.4",
5
+ "description": "Automates branch management, GitHub project linking, and issue/PR tracking with Git-Flow methodology.",
6
+ "homepage": "https://github.com/vypdev/copilot",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/vypdev/copilot.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/vypdev/copilot/issues"
13
+ },
14
+ "main": "build/github_action/index.js",
15
+ "bin": {
16
+ "copilot": "./build/cli/index.js"
17
+ },
18
+ "files": [
19
+ "action.yml",
20
+ "build/cli/index.js",
21
+ "build/github_action/index.js",
22
+ "setup/ISSUE_TEMPLATE/",
23
+ "setup/workflows/",
24
+ "setup/pull_request_template.md",
25
+ "scripts/install-git-hooks.cjs",
26
+ "README.md",
27
+ "LICENSE"
28
+ ],
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "engines": {
33
+ "node": ">=24"
34
+ },
35
+ "scripts": {
36
+ "build": "ncc build src/actions/github_action.ts -o build/github_action && ncc build src/cli.ts -o build/cli && chmod +x build/cli/index.js",
37
+ "validate:build": "node scripts/validate-build.cjs",
38
+ "validate:npm-package": "node scripts/validate-npm-package.cjs",
39
+ "smoke:npm-package": "node scripts/smoke-test-npm-package.cjs",
40
+ "test": "jest",
41
+ "test:watch": "jest --watch",
42
+ "test:coverage": "jest --coverage",
43
+ "typecheck": "tsc --noEmit",
44
+ "metrics:architecture": "node scripts/collect-architecture-metrics.cjs",
45
+ "lint": "eslint src",
46
+ "validate:agent-docs": "node scripts/validate-agent-documentation.cjs",
47
+ "validate:docs-page": "node scripts/validate-docs-page-assets.cjs",
48
+ "validate:workflows": "node scripts/validate-workflow-contract.cjs",
49
+ "lint:fix": "eslint src --fix",
50
+ "postinstall": "node scripts/install-git-hooks.cjs"
51
+ },
52
+ "keywords": [],
53
+ "author": "Efra Espada",
54
+ "license": "MIT",
55
+ "dependencies": {
56
+ "@actions/cache": "^4.1.0",
57
+ "@actions/core": "^1.11.1",
58
+ "@actions/exec": "^1.1.1",
59
+ "@actions/github": "^6.0.1",
60
+ "@types/axios": "^0.14.4",
61
+ "@types/chance": "^1.1.6",
62
+ "@types/dotenv": "^8.2.3",
63
+ "@types/js-yaml": "^4.0.9",
64
+ "axios": "^1.8.4",
65
+ "boxen": "^8.0.1",
66
+ "chalk": "^5.4.1",
67
+ "chance": "^1.1.12",
68
+ "commander": "^12.0.0",
69
+ "dockerode": "^4.0.5",
70
+ "dotenv": "^16.5.0",
71
+ "js-yaml": "^4.1.0",
72
+ "shell-quote": "^1.8.3"
73
+ },
74
+ "devDependencies": {
75
+ "@eslint/js": "^9.15.0",
76
+ "@types/dockerode": "^3.3.37",
77
+ "@types/jest": "^30.0.0",
78
+ "@types/node": "^22.9.1",
79
+ "@vercel/ncc": "^0.36.1",
80
+ "eslint": "^9.15.0",
81
+ "jest": "^30.2.0",
82
+ "ts-jest": "^29.4.5",
83
+ "typescript": "^5.2.2",
84
+ "typescript-eslint": "^8.15.0"
85
+ }
86
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Installs git hooks from scripts/git-hooks/ into .git/hooks/.
3
+ * Cross-platform: Windows, macOS, Linux.
4
+ * Run automatically on pnpm install, or: node scripts/install-git-hooks.cjs
5
+ */
6
+
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+
10
+ const root = path.resolve(__dirname, '..');
11
+ const hooksSrc = path.join(root, 'scripts', 'git-hooks');
12
+ const hooksDst = path.join(root, '.git', 'hooks');
13
+
14
+ if (!fs.existsSync(path.join(root, '.git')) || !fs.statSync(path.join(root, '.git')).isDirectory()) {
15
+ process.exit(0);
16
+ }
17
+ if (!fs.existsSync(hooksSrc) || !fs.statSync(hooksSrc).isDirectory()) {
18
+ process.exit(0);
19
+ }
20
+ if (!fs.existsSync(hooksDst) || !fs.statSync(hooksDst).isDirectory()) {
21
+ process.exit(0);
22
+ }
23
+
24
+ const files = fs.readdirSync(hooksSrc);
25
+ for (const name of files) {
26
+ const src = path.join(hooksSrc, name);
27
+ if (!fs.statSync(src).isFile()) continue;
28
+ const dst = path.join(hooksDst, name);
29
+ fs.copyFileSync(src, dst);
30
+ try {
31
+ fs.chmodSync(dst, 0o755);
32
+ } catch (_) {
33
+ // Windows: chmod may not support execute; Git for Windows still runs the hook
34
+ }
35
+ console.log('Installed hook: ' + name);
36
+ }
@@ -0,0 +1,100 @@
1
+ name: 🐛 Bug Report
2
+ description: Report a bug on copilot
3
+ title: "<YOUR TITLE HERE>"
4
+ labels: ["bug", "bugfix", "priority: high"]
5
+ body:
6
+ - type: checkboxes
7
+ attributes:
8
+ label: Is there an existing issue for this?
9
+ description: |
10
+ Please search to see if an issue already exists for the bug you encountered.
11
+ options:
12
+ - label: I have searched the existing issues.
13
+ required: true
14
+
15
+ - type: markdown
16
+ attributes:
17
+ value: |
18
+ ---
19
+
20
+ - type: dropdown
21
+ id: plugins
22
+ attributes:
23
+ label: Which actions are affected?
24
+ multiple: true
25
+ options:
26
+ - Issue
27
+ - Pull Request
28
+ - Commits
29
+
30
+ - type: dropdown
31
+ id: platforms
32
+ attributes:
33
+ label: Which platforms are affected?
34
+ multiple: true
35
+ options:
36
+ - macOS
37
+ - Windows
38
+ - Linux
39
+
40
+ - type: markdown
41
+ attributes:
42
+ value: |
43
+ ---
44
+
45
+ - type: textarea
46
+ attributes:
47
+ label: Description
48
+ description: |
49
+ Describe the issue. Explain what you _expected_ to happen and what
50
+ _actually_ happened.
51
+ validations:
52
+ required: true
53
+
54
+ - type: textarea
55
+ attributes:
56
+ label: Reproducing the issue
57
+ description: |
58
+ Please provide either **steps to reproduce** or a [**minimal reproducible example**](https://stackoverflow.com/help/minimal-reproducible-example).
59
+ Providing a minimal reproducible example will help us triage your issue
60
+ faster.
61
+ validations:
62
+ required: true
63
+
64
+ - type: markdown
65
+ attributes:
66
+ value: |
67
+ ---
68
+
69
+ - type: input
70
+ attributes:
71
+ label: copilot Version
72
+ description: What version of copilot is being used?
73
+ placeholder: "master"
74
+ validations:
75
+ required: true
76
+
77
+ - type: markdown
78
+ attributes:
79
+ value: |
80
+ ---
81
+
82
+ - type: textarea
83
+ attributes:
84
+ label: Relevant Log Output
85
+ description: |
86
+ Please copy and paste any relevant log output.
87
+ placeholder: |
88
+ Paste your logs here. Please redact any personally identifiable
89
+ information. This will be automatically formatted into code, so no
90
+ need for backticks.
91
+ render: shell
92
+ validations:
93
+ required: false
94
+
95
+ - type: textarea
96
+ id: comments
97
+ attributes:
98
+ label: Additional context and comments
99
+ description: |
100
+ Anything else you want to add for this issue?
@@ -0,0 +1,79 @@
1
+ name: 🔧 Chore Task
2
+ description: Suggest a maintenance or internal improvement task
3
+ title: "<YOUR TITLE HERE>"
4
+ labels: ["chore", "maintenance", "priority: low"]
5
+ body:
6
+ - type: checkboxes
7
+ attributes:
8
+ label: Is there an existing issue for this?
9
+ description: |
10
+ Please search to see if an issue already exists for what you are proposing.
11
+ options:
12
+ - label: I have searched the existing issues.
13
+ required: true
14
+
15
+ - type: markdown
16
+ attributes:
17
+ value: |
18
+ ---
19
+
20
+ - type: dropdown
21
+ id: chore_scope
22
+ attributes:
23
+ label: What area does this task affect?
24
+ multiple: false
25
+ options:
26
+ - CI/CD
27
+ - Dependencies
28
+ - Code Refactoring
29
+ - Repository Configuration
30
+ - Other
31
+
32
+ - type: markdown
33
+ attributes:
34
+ value: |
35
+ ---
36
+
37
+ - type: textarea
38
+ attributes:
39
+ label: Task description
40
+ description: |
41
+ Describe the chore task in detail. Explain what needs to be done and why.
42
+ validations:
43
+ required: true
44
+
45
+ - type: textarea
46
+ attributes:
47
+ label: Current issues or inefficiencies
48
+ description: |
49
+ Describe any problems this task is addressing. Why is this necessary?
50
+ validations:
51
+ required: true
52
+
53
+ - type: textarea
54
+ attributes:
55
+ label: Expected impact
56
+ description: |
57
+ Explain how completing this chore will improve the project.
58
+ validations:
59
+ required: true
60
+
61
+ - type: textarea
62
+ attributes:
63
+ label: Alternatives considered
64
+ description: |
65
+ If you considered alternative solutions, describe them here.
66
+ validations:
67
+ required: false
68
+
69
+ - type: markdown
70
+ attributes:
71
+ value: |
72
+ ---
73
+
74
+ - type: textarea
75
+ id: comments
76
+ attributes:
77
+ label: Additional context or comments
78
+ description: |
79
+ Add any additional context, logs, or examples related to this task.
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Git-Flow
4
+ url: https://nvie.com/posts/a-successful-git-branching-model/
5
+ about: Check the original article by Vincent Driessen about git-flow before opening new issues.
@@ -0,0 +1,71 @@
1
+ name: 📝 Documentation Update
2
+ description: Propose changes or improvements to the documentation
3
+ title: "<YOUR TITLE HERE>"
4
+ labels: ["documentation", "docs", "priority: low"]
5
+ body:
6
+ - type: checkboxes
7
+ attributes:
8
+ label: Is there an existing issue for this?
9
+ description: |
10
+ Please search to see if an issue already exists for what you are proposing.
11
+ options:
12
+ - label: I have searched the existing issues.
13
+ required: true
14
+
15
+ - type: markdown
16
+ attributes:
17
+ value: |
18
+ ---
19
+
20
+ - type: dropdown
21
+ id: docs_scope
22
+ attributes:
23
+ label: What part of the documentation needs an update?
24
+ multiple: false
25
+ options:
26
+ - README.md
27
+ - Wiki
28
+ - API Documentation
29
+ - Inline Code Comments
30
+ - Other
31
+
32
+ - type: markdown
33
+ attributes:
34
+ value: |
35
+ ---
36
+
37
+ - type: textarea
38
+ attributes:
39
+ label: Describe the documentation update
40
+ description: |
41
+ Provide a clear and detailed explanation of what should be updated or added.
42
+ validations:
43
+ required: true
44
+
45
+ - type: textarea
46
+ attributes:
47
+ label: Why is this update needed?
48
+ description: |
49
+ Explain what issues or gaps this update is addressing.
50
+ validations:
51
+ required: true
52
+
53
+ - type: textarea
54
+ attributes:
55
+ label: Additional resources
56
+ description: |
57
+ If you have any external links, references, or examples, include them here.
58
+ validations:
59
+ required: false
60
+
61
+ - type: markdown
62
+ attributes:
63
+ value: |
64
+ ---
65
+
66
+ - type: textarea
67
+ id: comments
68
+ attributes:
69
+ label: Additional context or comments
70
+ description: |
71
+ Add any additional context or suggestions related to this documentation update.
@@ -0,0 +1,113 @@
1
+ name: ✨ Feature Request
2
+ description: Propose an idea or improvement for copilot
3
+ title: "<YOUR TITLE HERE>"
4
+ labels: ["enhancement", "feature", "priority: low"]
5
+ body:
6
+ - type: checkboxes
7
+ attributes:
8
+ label: Is there an existing issue or feature request for this?
9
+ description: |
10
+ Please search to see if an issue or feature request already exists for what you are proposing.
11
+ options:
12
+ - label: I have searched the existing issues and feature requests.
13
+ required: true
14
+
15
+ - type: markdown
16
+ attributes:
17
+ value: |
18
+ ---
19
+
20
+ - type: dropdown
21
+ id: feature_scope
22
+ attributes:
23
+ label: What area does this improvement affect?
24
+ multiple: false
25
+ options:
26
+ - User Interface
27
+ - Performance
28
+ - New Feature
29
+ - Documentation
30
+ - Other
31
+
32
+ - type: dropdown
33
+ id: feature_actions
34
+ attributes:
35
+ label: What actions does this improvement affect?
36
+ multiple: true
37
+ options:
38
+ - Issue
39
+ - Pull Request
40
+ - Commit
41
+
42
+ - type: markdown
43
+ attributes:
44
+ value: |
45
+ ---
46
+
47
+ - type: textarea
48
+ attributes:
49
+ label: Description of the idea or improvement
50
+ description: |
51
+ Describe your proposed idea or improvement in detail. Explain what you
52
+ would like to see and why it matters.
53
+ validations:
54
+ required: true
55
+
56
+ - type: textarea
57
+ attributes:
58
+ label: Current limitations or challenges
59
+ description: |
60
+ Explain what problems or challenges this improvement would address.
61
+ Why is the current functionality insufficient?
62
+ validations:
63
+ required: true
64
+
65
+ - type: markdown
66
+ attributes:
67
+ value: |
68
+ ---
69
+
70
+ - type: textarea
71
+ attributes:
72
+ label: Expected impact
73
+ description: |
74
+ Describe how this improvement would benefit users or developers.
75
+ Include specific scenarios or use cases where this would make a difference.
76
+ validations:
77
+ required: true
78
+
79
+ - type: textarea
80
+ attributes:
81
+ label: Alternatives considered
82
+ description: |
83
+ If you have considered alternative solutions or approaches, describe them here.
84
+ Why do you think your proposal is the best option?
85
+ validations:
86
+ required: false
87
+
88
+ - type: markdown
89
+ attributes:
90
+ value: |
91
+ ---
92
+
93
+ - type: input
94
+ attributes:
95
+ label: Version of copilot
96
+ description: |
97
+ What version of copilot are you using, or does this proposal apply to all versions?
98
+ placeholder: "master"
99
+ validations:
100
+ required: false
101
+
102
+ - type: markdown
103
+ attributes:
104
+ value: |
105
+ ---
106
+
107
+ - type: textarea
108
+ id: comments
109
+ attributes:
110
+ label: Additional context or comments
111
+ description: |
112
+ Add any additional context, screenshots, or examples that may help us
113
+ understand your proposal better.
@@ -0,0 +1,72 @@
1
+ name: 🙋 Help Request
2
+ description: Ask for help, guidance, or clarification about something in the project
3
+ title: "<YOUR QUESTION OR TOPIC HERE>"
4
+ labels: ["help", "question", "priority: medium"]
5
+ body:
6
+ - type: checkboxes
7
+ attributes:
8
+ label: Have you checked for existing help or discussions?
9
+ description: |
10
+ Please make sure no one else has already asked this question or opened a similar issue.
11
+ options:
12
+ - label: I have searched existing issues and discussions.
13
+ required: true
14
+
15
+ - type: markdown
16
+ attributes:
17
+ value: |
18
+ ---
19
+
20
+ - type: dropdown
21
+ id: help_area
22
+ attributes:
23
+ label: What area do you need help with?
24
+ multiple: false
25
+ options:
26
+ - Code or implementation
27
+ - Build or setup
28
+ - Documentation or usage
29
+ - Workflow or CI/CD
30
+ - Other
31
+
32
+ - type: markdown
33
+ attributes:
34
+ value: |
35
+ ---
36
+
37
+ - type: textarea
38
+ attributes:
39
+ label: Describe your problem or question
40
+ description: |
41
+ Clearly describe what you need help with. Include context, what you've tried, and what you expected to happen.
42
+ validations:
43
+ required: true
44
+
45
+ - type: textarea
46
+ attributes:
47
+ label: Steps or attempts you've already made
48
+ description: |
49
+ Describe what you’ve already tried to solve this problem. This helps others avoid suggesting the same things.
50
+ validations:
51
+ required: false
52
+
53
+ - type: textarea
54
+ attributes:
55
+ label: Environment or context
56
+ description: |
57
+ Provide details such as OS, version, branch, or any relevant environment information.
58
+ validations:
59
+ required: false
60
+
61
+ - type: textarea
62
+ attributes:
63
+ label: Additional context or screenshots
64
+ description: |
65
+ If applicable, add screenshots, logs, or any extra information that may help others understand the issue.
66
+ validations:
67
+ required: false
68
+
69
+ - type: markdown
70
+ attributes:
71
+ value: |
72
+ ---
@@ -0,0 +1,64 @@
1
+ name: 🔥 Hotfix Issue
2
+
3
+ description: Request a new hotfix for copilot (only team members)
4
+ title: "<YOUR TITLE HERE>"
5
+ labels: [ "hotfix", "branched", "priority: high" ]
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ ### ⚠️ Disclaimer
11
+ > **Only members of the copilot team can create hotfix issues.**
12
+ > Any hotfix issue created by someone outside the team will be closed automatically.
13
+
14
+ ---
15
+
16
+ - type: input
17
+ id: base_version
18
+ attributes:
19
+ label: Base Version
20
+ description: |
21
+ The base version is typically the most recent tag version. However, you can specify a different version tag if you'd like to start from a specific version for this hotfix.
22
+ placeholder: "e.g., 1.2.3"
23
+ value: "Automatic"
24
+ validations:
25
+ required: false
26
+
27
+ - type: input
28
+ id: hotfix_version
29
+ attributes:
30
+ label: Hotfix Version
31
+ description: |
32
+ By default, the version will increment the patch number of the most recent tag version (e.g., from 1.2.3 to 1.2.4). You can specify a different version number for the hotfix if needed.
33
+ placeholder: "e.g., 1.2.4"
34
+ value: "Automatic"
35
+ validations:
36
+ required: false
37
+
38
+ - type: textarea
39
+ id: issue_description
40
+ attributes:
41
+ label: Issue Description
42
+ description: |
43
+ Provide a detailed description of the issue this hotfix is addressing.
44
+ placeholder: "Describe the issue being fixed."
45
+ validations:
46
+ required: true
47
+
48
+ - type: textarea
49
+ id: hotfix_solution
50
+ attributes:
51
+ label: Hotfix Solution
52
+ description: |
53
+ Explain the solution being implemented in this hotfix.
54
+ placeholder: "Describe the solution."
55
+ validations:
56
+ required: true
57
+
58
+ - type: textarea
59
+ id: additional_context
60
+ attributes:
61
+ label: Additional Context
62
+ description: |
63
+ Add any additional details or context about this hotfix request.
64
+ placeholder: "Anything else to note?"
@@ -0,0 +1,51 @@
1
+ name: 🚀 Release Issue
2
+ description: Request a new release for copilot (only team members)
3
+ title: "<YOUR TITLE HERE>"
4
+ labels: ["release", "branched", "priority: medium"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ ### ⚠️ Disclaimer
10
+ > **Only members of the copilot team can create release issues.**
11
+ > Any release issue created by someone outside the team will be closed automatically.
12
+
13
+ ---
14
+
15
+ - type: dropdown
16
+ id: release_type
17
+ attributes:
18
+ label: Release Type
19
+ description: Indicate the type of release.
20
+ options:
21
+ - Patch
22
+ - Minor
23
+ - Major
24
+ validations:
25
+ required: true
26
+
27
+ - type: input
28
+ id: version
29
+ attributes:
30
+ label: Release Version
31
+ description: The new version is generated from the release type and the most recent tag version. You can specify a different version number for the release (e.g., 1.2.3).
32
+ placeholder: "e.g., 1.2.3"
33
+ value: "Automatic"
34
+ validations:
35
+ required: false
36
+
37
+ - type: textarea
38
+ id: changelog
39
+ attributes:
40
+ label: Changelog
41
+ description: Provide a summary of the changes to be included in this release.
42
+ placeholder: "Add a concise changelog here."
43
+ validations:
44
+ required: true
45
+
46
+ - type: textarea
47
+ id: additional_context
48
+ attributes:
49
+ label: Additional Context
50
+ description: Add any additional details or context about this release request.
51
+ placeholder: "Anything else to note?"