Execute the push command. Syncs the current (or specified) view's parent chain to the remote via view manifests, then uploads attestations, provenance graphs, and tags that travel with the pushed changes. # Errors - `CliError::RepositoryNotFound` - Not in a repository - `CliError::RemoteNotFound` - Remote doesn't exist - `CliError::AuthenticationFailed` - Auth failure - `CliError::Conflict` - H
(&self)
| 913 | /// - `CliError::RemoteError` - Network/server error (including servers |
| 914 | /// that predate view-manifest support) |
| 915 | fn run(&self) -> CliResult<()> { |
| 916 | // Create async runtime for HTTP operations |
| 917 | let runtime = tokio::runtime::Runtime::new().map_err(|e| { |
| 918 | CliError::Internal(anyhow::anyhow!("Failed to create async runtime: {}", e)) |
| 919 | })?; |
| 920 | |
| 921 | runtime.block_on(self.run_async()) |
| 922 | } |
| 923 | } |
| 924 | |
| 925 | // Tests |