n8n-nodes-github-copilot 3.37.6 → 3.38.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/dist/nodes/GitHubCopilotOpenAI/GitHubCopilotOpenAI.node.d.ts +6 -1
- package/dist/nodes/GitHubCopilotOpenAI/GitHubCopilotOpenAI.node.js +31 -1
- package/dist/nodes/GitHubCopilotOpenAI/nodeProperties.js +59 -3
- package/dist/package.json +1 -1
- package/dist/shared/utils/GitHubCopilotApiUtils.js +3 -3
- package/package.json +1 -1
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription, ILoadOptionsFunctions, INodePropertyOptions } from "n8n-workflow";
|
|
2
2
|
export declare class GitHubCopilotOpenAI implements INodeType {
|
|
3
3
|
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
loadOptions: {
|
|
6
|
+
getAvailableModels(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
4
9
|
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
10
|
}
|
|
@@ -5,6 +5,7 @@ const n8n_workflow_1 = require("n8n-workflow");
|
|
|
5
5
|
const nodeProperties_1 = require("./nodeProperties");
|
|
6
6
|
const utils_1 = require("../GitHubCopilotChatAPI/utils");
|
|
7
7
|
const GitHubCopilotEndpoints_1 = require("../../shared/utils/GitHubCopilotEndpoints");
|
|
8
|
+
const DynamicModelLoader_1 = require("../../shared/models/DynamicModelLoader");
|
|
8
9
|
class GitHubCopilotOpenAI {
|
|
9
10
|
constructor() {
|
|
10
11
|
this.description = {
|
|
@@ -28,6 +29,13 @@ class GitHubCopilotOpenAI {
|
|
|
28
29
|
],
|
|
29
30
|
properties: nodeProperties_1.nodeProperties,
|
|
30
31
|
};
|
|
32
|
+
this.methods = {
|
|
33
|
+
loadOptions: {
|
|
34
|
+
async getAvailableModels() {
|
|
35
|
+
return await DynamicModelLoader_1.loadAvailableModels.call(this);
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
31
39
|
}
|
|
32
40
|
async execute() {
|
|
33
41
|
var _a;
|
|
@@ -37,7 +45,29 @@ class GitHubCopilotOpenAI {
|
|
|
37
45
|
try {
|
|
38
46
|
const operation = this.getNodeParameter("operation", i);
|
|
39
47
|
if (operation === "chat") {
|
|
40
|
-
const
|
|
48
|
+
const modelSource = this.getNodeParameter("modelSource", i, "fromList");
|
|
49
|
+
let model;
|
|
50
|
+
if (modelSource === "custom") {
|
|
51
|
+
model = this.getNodeParameter("customModel", i);
|
|
52
|
+
if (!model || model.trim() === "") {
|
|
53
|
+
throw new Error("Custom model name is required when using 'Custom (Manual Entry)' mode");
|
|
54
|
+
}
|
|
55
|
+
console.log(`🔧 Using custom model: ${model}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const selectedModel = this.getNodeParameter("model", i);
|
|
59
|
+
if (selectedModel === "__manual__") {
|
|
60
|
+
model = this.getNodeParameter("customModel", i);
|
|
61
|
+
if (!model || model.trim() === "") {
|
|
62
|
+
throw new Error("Custom model name is required when selecting '✏️ Enter Custom Model Name'");
|
|
63
|
+
}
|
|
64
|
+
console.log(`✏️ Using manually entered model: ${model}`);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
model = selectedModel;
|
|
68
|
+
console.log(`📋 Using model from list: ${model}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
41
71
|
const messagesInputMode = this.getNodeParameter("messagesInputMode", i, "manual");
|
|
42
72
|
const temperature = this.getNodeParameter("temperature", i, 1);
|
|
43
73
|
const tools = this.getNodeParameter("tools", i, "");
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.nodeProperties = void 0;
|
|
4
|
+
const GitHubCopilotModels_1 = require("../../shared/models/GitHubCopilotModels");
|
|
4
5
|
exports.nodeProperties = [
|
|
5
6
|
{
|
|
6
7
|
displayName: "Operation",
|
|
@@ -16,13 +17,68 @@ exports.nodeProperties = [
|
|
|
16
17
|
],
|
|
17
18
|
default: "chat",
|
|
18
19
|
},
|
|
20
|
+
{
|
|
21
|
+
displayName: "Model Source",
|
|
22
|
+
name: "modelSource",
|
|
23
|
+
type: "options",
|
|
24
|
+
options: [
|
|
25
|
+
{
|
|
26
|
+
name: "From List (Auto-Discovered)",
|
|
27
|
+
value: "fromList",
|
|
28
|
+
description: "Select from available models based on your subscription",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "Custom (Manual Entry)",
|
|
32
|
+
value: "custom",
|
|
33
|
+
description: "Enter model name manually (use at your own risk)",
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
default: "fromList",
|
|
37
|
+
description: "Choose how to specify the model",
|
|
38
|
+
},
|
|
19
39
|
{
|
|
20
40
|
displayName: "Model",
|
|
21
41
|
name: "model",
|
|
42
|
+
type: "options",
|
|
43
|
+
typeOptions: {
|
|
44
|
+
loadOptionsMethod: "getAvailableModels",
|
|
45
|
+
},
|
|
46
|
+
default: GitHubCopilotModels_1.DEFAULT_MODELS.GENERAL,
|
|
47
|
+
description: "Select the GitHub Copilot model to use (loaded dynamically based on your subscription)",
|
|
48
|
+
displayOptions: {
|
|
49
|
+
show: {
|
|
50
|
+
modelSource: ["fromList"],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
displayName: "Custom Model Name",
|
|
56
|
+
name: "customModel",
|
|
22
57
|
type: "string",
|
|
23
|
-
default: "
|
|
24
|
-
placeholder: "gpt-4o",
|
|
25
|
-
description: "
|
|
58
|
+
default: "",
|
|
59
|
+
placeholder: "gpt-4o, claude-3.5-sonnet, grok-code-fast-1, etc.",
|
|
60
|
+
description: "Enter the model name manually. Use at your own risk if the model is not available in your subscription.",
|
|
61
|
+
hint: "Examples: gpt-4o, gpt-4o-mini, claude-3.5-sonnet, gemini-2.0-flash-exp, grok-code-fast-1",
|
|
62
|
+
displayOptions: {
|
|
63
|
+
show: {
|
|
64
|
+
modelSource: ["custom"],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
displayName: "Custom Model Name",
|
|
70
|
+
name: "customModel",
|
|
71
|
+
type: "string",
|
|
72
|
+
default: "",
|
|
73
|
+
placeholder: "gpt-4o, claude-3.5-sonnet, grok-code-fast-1, etc.",
|
|
74
|
+
description: "Enter the model name manually. This is useful for new/beta models not yet in the list.",
|
|
75
|
+
hint: "Examples: gpt-4o, gpt-4o-mini, claude-3.5-sonnet, gemini-2.0-flash-exp, grok-code-fast-1",
|
|
76
|
+
displayOptions: {
|
|
77
|
+
show: {
|
|
78
|
+
modelSource: ["fromList"],
|
|
79
|
+
model: ["__manual__"],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
26
82
|
},
|
|
27
83
|
{
|
|
28
84
|
displayName: "Messages Input Mode",
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-github-copilot",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.38.0",
|
|
4
4
|
"description": "n8n community node for GitHub Copilot with CLI integration, Chat API access, and AI Chat Model for workflows - access GPT-5, Claude, Gemini and more using your Copilot subscription",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/sufficit/n8n-nodes-github-copilot",
|
|
@@ -28,10 +28,10 @@ async function makeGitHubCopilotRequest(context, endpoint, body, hasMedia = fals
|
|
|
28
28
|
console.log(`🔍 ${credentialType} Credentials Debug:`, Object.keys(credentials));
|
|
29
29
|
const githubToken = credentials.token;
|
|
30
30
|
if (!githubToken) {
|
|
31
|
-
throw new Error("GitHub
|
|
31
|
+
throw new Error("GitHub token not found in credentials");
|
|
32
32
|
}
|
|
33
|
-
if (!githubToken.startsWith("gho_")) {
|
|
34
|
-
throw new Error("Invalid GitHub token format. Must start with gho_");
|
|
33
|
+
if (!githubToken.startsWith("ghu_") && !githubToken.startsWith("github_pat_") && !githubToken.startsWith("gho_")) {
|
|
34
|
+
throw new Error("Invalid GitHub token format. Must start with ghu_, github_pat_, or gho_");
|
|
35
35
|
}
|
|
36
36
|
console.log(`🔄 Using GitHub token to generate OAuth token...`);
|
|
37
37
|
let token;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-github-copilot",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.38.0",
|
|
4
4
|
"description": "n8n community node for GitHub Copilot with CLI integration, Chat API access, and AI Chat Model for workflows - access GPT-5, Claude, Gemini and more using your Copilot subscription",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/sufficit/n8n-nodes-github-copilot",
|