Skip to main content

args_api/endpoint/migration/github/
migrate_github_repositories.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{endpoint::Endpoint, resource::migration::MigrationResource};
4
5pub struct MigrateGitHubRepositories;
6
7impl Endpoint for MigrateGitHubRepositories {
8    const PATH: &'static str = "/migration/github/{installation_id}/migrate";
9    const METHOD: http::Method = http::Method::POST;
10
11    type Request = MigrateGitHubRepositoriesRequest;
12    type Response = MigrateGitHubRepositoriesResponse;
13}
14
15#[derive(ApiRequest, Debug, Serialize, Deserialize)]
16pub struct MigrateGitHubRepositoriesRequest {
17    pub origin: String,
18    pub origin_type: String,
19    pub destination: String,
20    pub destination_type: String,
21    pub repositories: Vec<GitHubRepository>,
22    pub readonly: bool,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct GitHubRepository {
27    pub name: String,
28    pub id: i64,
29}
30
31pub type MigrateGitHubRepositoriesResponse = MigrationResource;