Use different commit author for collab project clients (#24058)
Follow-up of https://github.com/zed-industries/zed/pull/23869 * Retrieves user + email for collab project clients and use these when such users commit Same as in https://github.com/zed-industries/zed/pull/23329, "is it the right user name and e-mail" and "how to override these" questions apply. * If this data is unavailable, forbid committing to the remote client * Forbid running related actions in git panel, if committing/writing is not permitted Release Notes: - N/A
This commit is contained in:
parent
93c7b54caa
commit
9a6b9e3124
8 changed files with 182 additions and 50 deletions
|
@ -4,7 +4,7 @@ use extension_host::headless_host::HeadlessExtensionStore;
|
|||
use fs::Fs;
|
||||
use futures::channel::mpsc;
|
||||
use git::repository::RepoPath;
|
||||
use gpui::{App, AppContext as _, AsyncApp, Context, Entity, PromptLevel};
|
||||
use gpui::{App, AppContext as _, AsyncApp, Context, Entity, PromptLevel, SharedString};
|
||||
use http_client::HttpClient;
|
||||
use language::{proto::serialize_operation, Buffer, BufferEvent, LanguageRegistry};
|
||||
use node_runtime::NodeRuntime;
|
||||
|
@ -721,9 +721,11 @@ impl HeadlessProject {
|
|||
})??;
|
||||
|
||||
let commit_message = envelope.payload.message;
|
||||
let name = envelope.payload.name.map(SharedString::from);
|
||||
let email = envelope.payload.email.map(SharedString::from);
|
||||
let (err_sender, mut err_receiver) = mpsc::channel(1);
|
||||
repository_handle
|
||||
.commit_with_message(commit_message, err_sender)
|
||||
.commit_with_message(commit_message, name.zip(email), err_sender)
|
||||
.context("unstaging entries")?;
|
||||
if let Some(error) = err_receiver.next().await {
|
||||
Err(error.context("error during unstaging"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue