mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 08:01:25 +00:00
2e430c4c0b
* feat: add GitHub Enterprise Server (GHES) support for GitHub App git sync Add a self-managed GitHub App mode alongside the existing managed (stats.windmill.dev) mode, enabling git sync for GitHub Enterprise Server and custom GitHub App installations. Backend: - Parameterize GitHub API URLs (no more hardcoded github.com) - Add GITHUB_ENTERPRISE_APP_SETTING global setting - Add OpenAPI specs for ghes_installation_callback and ghes_config endpoints Frontend: - Add instance settings UI for configuring self-managed GitHub Apps with setup instructions and validation - GHES installation flow in gh_success page - Dynamic installation URL based on GHES config - Increase git sync test connection timeout to 10s - Block "Review changes" save when settings are invalid EE companion PR: windmill-labs/windmill-ee-private#<PR_NUMBER> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: update ee-repo-ref to c74c86b78a66b976fd9968b21f77903723e668ec This commit updates the EE repository reference after PR #459 was merged in windmill-ee-private. Previous ee-repo-ref: 45e4550110799525b5502cf072c8af8132492638 New ee-repo-ref: c74c86b78a66b976fd9968b21f77903723e668ec Automated by sync-ee-ref workflow. * sqlx --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
35 lines
894 B
Rust
35 lines
894 B
Rust
#[cfg(feature = "private")]
|
|
#[allow(unused)]
|
|
pub use crate::git_sync_ee::*;
|
|
#[cfg(not(feature = "private"))]
|
|
use sqlx::{Pool, Postgres};
|
|
use url::Url;
|
|
|
|
#[cfg(not(feature = "private"))]
|
|
pub async fn get_github_app_token_internal(
|
|
_db: &Pool<Postgres>,
|
|
_job_token: &str,
|
|
) -> crate::error::Result<String> {
|
|
return Err(crate::error::Error::BadRequest(
|
|
"Github app authentication is not available on the open source build".to_string(),
|
|
));
|
|
}
|
|
|
|
pub fn prepend_token_to_github_url(
|
|
github_url: &str,
|
|
installation_token: &str,
|
|
) -> crate::error::Result<String> {
|
|
let url = Url::parse(github_url)?;
|
|
|
|
let host = url.host_str().ok_or_else(|| {
|
|
crate::error::Error::BadRequest("Invalid GitHub URL: no host".to_string())
|
|
})?;
|
|
|
|
Ok(format!(
|
|
"https://x-access-token:{}@{}{}",
|
|
installation_token,
|
|
host,
|
|
url.path()
|
|
))
|
|
}
|