feature/kubernetes-management #70

Merged
sarman merged 4 commits from feature/kubernetes-management into master 2026-06-06 17:28:29 +00:00
5 changed files with 17 additions and 25 deletions

View File

@ -134,14 +134,17 @@ jobs:
exit 1
fi
git-cliff --config cliff.toml --output CHANGELOG.md
# Generate changelog for current tag only
PREV_TAG=$(git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' \
| grep -v "^${CURRENT_TAG}$" | head -1 || echo "")
if [ -n "$PREV_TAG" ]; then
git-cliff --config cliff.toml --tag "$CURRENT_TAG" --strip all > /tmp/release_body.md || true
# Generate full CHANGELOG.md from all tags
git-cliff --config cliff.toml --output CHANGELOG.md
else
echo "No previous tag found, generating from git commits"
git log --pretty=format:"- %s" > /tmp/release_body.md || true
git-cliff --config cliff.toml --output CHANGELOG.md
fi
echo "=== Release body preview ==="
cat /tmp/release_body.md

View File

@ -337,7 +337,9 @@ pub async fn initiate_oauth(
pending_approvals,
clusters: Arc::new(tokio::sync::Mutex::new(std::collections::HashMap::new())),
port_forwards: Arc::new(tokio::sync::Mutex::new(std::collections::HashMap::new())),
refresh_registry: Arc::new(tokio::sync::Mutex::new(crate::kube::RefreshRegistry::new())),
refresh_registry: Arc::new(tokio::sync::Mutex::new(
crate::kube::RefreshRegistry::new(),
)),
};
while let Some(callback) = callback_rx.recv().await {
tracing::info!("Received OAuth callback for state: {}", callback.state);

View File

@ -61,12 +61,9 @@ pub async fn add_cluster(
}
#[tauri::command]
pub async fn remove_cluster(
id: String,
state: State<'_, AppState>,
) -> Result<(), String> {
pub async fn remove_cluster(id: String, state: State<'_, AppState>) -> Result<(), String> {
let mut clusters = state.clusters.lock().await;
if clusters.remove(&id).is_none() {
return Err(format!("Cluster {id} not found"));
}
@ -75,11 +72,9 @@ pub async fn remove_cluster(
}
#[tauri::command]
pub async fn list_clusters(
state: State<'_, AppState>,
) -> Result<Vec<ClusterInfo>, String> {
pub async fn list_clusters(state: State<'_, AppState>) -> Result<Vec<ClusterInfo>, String> {
let clusters = state.clusters.lock().await;
let cluster_list: Vec<ClusterInfo> = clusters
.values()
.map(|c| ClusterInfo {
@ -99,7 +94,7 @@ pub async fn start_port_forward(
state: State<'_, AppState>,
) -> Result<PortForwardResponse, String> {
let session_id = uuid::Uuid::now_v7().to_string();
let session = crate::kube::PortForwardSession::new(
session_id.clone(),
request.cluster_id.clone(),
@ -127,12 +122,9 @@ pub async fn start_port_forward(
}
#[tauri::command]
pub async fn stop_port_forward(
id: String,
state: State<'_, AppState>,
) -> Result<(), String> {
pub async fn stop_port_forward(id: String, state: State<'_, AppState>) -> Result<(), String> {
let mut port_forwards = state.port_forwards.lock().await;
if let Some(session) = port_forwards.get_mut(&id) {
session.stop();
Ok(())
@ -146,7 +138,7 @@ pub async fn list_port_forwards(
state: State<'_, AppState>,
) -> Result<Vec<PortForwardResponse>, String> {
let port_forwards = state.port_forwards.lock().await;
let forwards: Vec<PortForwardResponse> = port_forwards
.values()
.map(|s| PortForwardResponse {

View File

@ -6,12 +6,7 @@ pub struct ClusterClient {
}
impl ClusterClient {
pub fn new(
id: String,
name: String,
context: String,
server_url: String,
) -> Self {
pub fn new(id: String, name: String, context: String, server_url: String) -> Self {
Self {
id,
name,

View File

@ -1,6 +1,6 @@
use std::collections::HashMap;
use tokio::sync::RwLock;
use std::sync::Arc;
use tokio::sync::RwLock;
pub struct RefreshRegistry {
domains: HashMap<String, Domain>,