32 lines
730 B
Go
32 lines
730 B
Go
package archive
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/cli/cli/v2/api"
|
|
"github.com/cli/cli/v2/internal/ghinstance"
|
|
graphql "github.com/cli/shurcooL-graphql"
|
|
"github.com/shurcooL/githubv4"
|
|
)
|
|
|
|
func archiveRepo(client *http.Client, repo *api.Repository) error {
|
|
var mutation struct {
|
|
ArchiveRepository struct {
|
|
Repository struct {
|
|
ID string
|
|
}
|
|
} `graphql:"archiveRepository(input: $input)"`
|
|
}
|
|
|
|
variables := map[string]interface{}{
|
|
"input": githubv4.ArchiveRepositoryInput{
|
|
RepositoryID: repo.ID,
|
|
},
|
|
}
|
|
|
|
host := repo.RepoHost()
|
|
gql := graphql.NewClient(ghinstance.GraphQLEndpoint(host), client)
|
|
err := gql.MutateNamed(context.Background(), "ArchiveRepository", &mutation, variables)
|
|
return err
|
|
}
|