Merge pull request 'PR-via-plugin' (#2) from PR-via-plugin into main

Reviewed-on: ComputerLiebe_ORG_private/Gitea-VSCode-Clone-Plugin#2
This commit is contained in:
Peter 2024-10-20 23:58:55 +00:00
commit 28e0e8197c
2 changed files with 32 additions and 13 deletions

View File

@ -9,7 +9,7 @@
"categories": [
"Other"
],
"activationEvents": [],
"activationEvents": ["onStartupFinished"],
"main": "./dist/extension.js",
"contributes": {
"commands": [

View File

@ -46,22 +46,20 @@ async function createGiteaPullRequest() {
const { title, body } = await getLastCommit(currentWorkspaceFolder);
const branch = await getCurrentBranch(currentWorkspaceFolder);
// Debugging-Ausgabe zur Überprüfung
console.log('Branch:', branch);
console.log('Title:', title);
console.log('Body:', body);
if (!branch) {
vscode.window.showErrorMessage('Branch konnte nicht ermittelt werden.');
return;
}
// Base-Branch über die Gitea API ermitteln
const baseBranch = await getDefaultBranch(instanceUrl, owner, repo, token);
// API-Request-Daten vorbereiten
const prData = {
title: title, // Der letzte Commit als Titel
body: body || '', // Commit-Kommentare als Body
head: branch, // Der aktuelle Branch als "head"
base: 'main' // Standardmäßig auf 'main' als Basisbranch
base: baseBranch // Der ermittelte base-Branch
};
const config = {
@ -83,8 +81,8 @@ async function createGiteaPullRequest() {
// Öffne die URL des erstellten PRs im Browser
vscode.env.openExternal(vscode.Uri.parse(prUrl));
vscode.window.showInformationMessage('Pull-Request erfolgreich erstellt und im Browser geöffnet.');
} catch (err: unknown) {
vscode.window.showErrorMessage('Fehler beim Erstellen des Pull Requests.');
} catch (err: any) {
vscode.window.showErrorMessage(`Fehler beim Erstellen des Pull Requests: ${err.message}`);
console.error('Fehler beim Erstellen des PRs:', err);
}
});
@ -119,13 +117,34 @@ async function getCurrentBranch(folderPath: string): Promise<string> {
});
}
// Hilfsfunktion, um den base-Branch über die Gitea API zu ermitteln
async function getDefaultBranch(instanceUrl: string, owner: string, repo: string, token: string): Promise<string> {
try {
const response = await axios.get(`${instanceUrl}/api/v1/repos/${owner}/${repo}`, {
headers: {
'Authorization': `token ${token}`
}
});
if (response.status === 200 && response.data.default_branch) {
return response.data.default_branch;
} else {
vscode.window.showErrorMessage('Konnte den base-Branch nicht ermitteln. Standardmäßig "main" verwendet.');
return 'main';
}
} catch (error) {
vscode.window.showErrorMessage('Fehler beim Abrufen des base-Branches. Standardmäßig "main" verwendet.');
return 'main';
}
}
// Funktion zum Hinzufügen des Statusbar-Icons
function addStatusBarIcon() {
const statusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
statusBar.text = `$(git-pull-request) Create PR`;
statusBar.text = `$(git-pull-request) Create Gitea PR`;
statusBar.tooltip = 'Create a Pull Request in Gitea';
statusBar.command = 'gitea.createPullRequest';
statusBar.show();
statusBar.show(); // Sofortiges Anzeigen des Icons in der Statusleiste
return statusBar;
}
@ -189,8 +208,8 @@ export function activate(context: vscode.ExtensionContext) {
let pullRequestCommand = vscode.commands.registerCommand('gitea.createPullRequest', createGiteaPullRequest);
context.subscriptions.push(pullRequestCommand);
// Statusbar-Icon hinzufügen
const statusBar = addStatusBarIcon();
// Statusbar-Icon sofort anzeigen
const statusBar = addStatusBarIcon(); // Icon wird sofort beim Aktivieren angezeigt
context.subscriptions.push(statusBar);
}