Как мы можем создать репозиторий в GitHub с другим контентом репозитория с шаблоном, используя GitHub Rest API

Я использовал API Get Repo (https://api.github.com/repos/myId/myRepoName), чтобы получить сведения о репозитории. Теперь я хочу создать новый репозиторий с содержимым и файлами в моем "myRepoName". Как я могу этого добиться. Создать API(сообщение)(https://api.github.com/user/repos)

1 ответ

Решение

Если ваш исходный репозиторий является репозиторием шаблонов (https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository), вы можете использовать следующий API:

Примечание. Создание и использование шаблонов репозитория в настоящее время доступно для предварительного просмотра разработчиками. Чтобы получить доступ к этой новой конечной точке во время периода предварительного просмотра, вы должны указать пользовательский тип мультимедиа в заголовке Accept:

application/vnd.github.baptiste-preview+json

Создает новый репозиторий, используя шаблон репозитория. Используйте параметры маршрута template_owner и template_repo, чтобы указать репозиторий, который будет использоваться в качестве шаблона. Авторизованный пользователь должен владеть или быть членом организации, которой принадлежит репозиторий. Чтобы проверить, доступен ли репозиторий для использования в качестве шаблона, получите информацию о репозитории с помощью конечной точки Получить репозиторий и убедитесь, что ключ is_template верен.

POST /repos/:template_owner/:template_repo/generate

Параметры

Имя Тип Описание
владелец строка Организация или лицо, которым будет принадлежать новое хранилище. Чтобы> > создать новый репозиторий в организации, аутентифицированный пользователь должен быть членом> указанной организации.
имя строка Обязательно. Имя нового репозитория.
description string Краткое описание нового репозитория.
private boolean Либо true, чтобы создать новый частный репозиторий, либо false, чтобы> создать новый публичный. По умолчанию: false

https://developer.github.com/v3/repos/

Использование node js v12.18.1 или новее и octokit/rest api v17: просто сгенерируйте токен личного доступа из настроек вашего профиля github и используйте приведенный ниже код:

require('dotenv').config();

const { Octokit } = require('@octokit/rest');
const clientWithAuth = new Octokit({
  auth: process.env.TOKEN, //create github personal token
});

const main = async () => {
  const owner = process.env.OWNER;
  const username = process.env.USERNAME;

  const response = await clientWithAuth.repos.createUsingTemplate({
    template_owner: owner,
    template_repo: 'template-testing',
    name: `template-${username}`,
  });

  console.log('repository successfully create ');
};

main();
Другие вопросы по тегам