Вилка как организация после уже разветвления в github

Можно ли "развить вилку" в github? Я распахнул публичный репозиторий, но потом стал владельцем организации, и я хотел бы снова открыть тот же оригинальный репозиторий (а не вилку). Тем не менее, кажется, что для того, чтобы выбрать fork как организацию, вы можете сделать это, нажав кнопку "fork", которая, потому что я изначально ее разветвлял, эта кнопка теперь говорит "ваша вилка", чтобы отвезти меня к моему оригиналу fork, но не позволяет мне выбирать "fork как организацию".

Ответ 1

Как насчет

  • Удаление репозитория личного (убедитесь, что у вас есть локальный клон/резервная копия), перейдите в https://github.com/:your_login/:repo_identifier/admin, затем нажмите кнопку Удалить репозиторий в зоне опасности.

enter image description here

  • Просмотр в репозитории upstream. На странице GitHub (https://github.com/:upstream_login/:repo_identifier) теперь должна отображаться кнопка Вилка.

  • Нажав кнопку Вилка, вы увидите диалоговое окно (похожее на приведенное ниже) с просьбой указать, хотите ли вы раскошелиться на свою личную область или ваш организация.

    enter image description here

  • Как только это будет сделано, вы можете добавить в локальный репозиторий удаленный, указывающий на новый разветвленный репозиторий в вашей организации.

$ git remote add your_organization [email protected]:your_organization/repo_identifier.git

UPDATE

Возможно, я нашел (хакерский) способ выполнить ваш запрос

  • Убедитесь, что вы вошли в GitHub
  • Откройте новую вкладку и перейдите к https://github.com/:upstream_login/:repo_identifier/fork_select
  • Это должно отображать страницу без стилизации CSS, предлагающую разветкить репозиторий вверх по течению в вашей организации.
  • Нажмите кнопку:)

Предупреждение: это полагается на недокументированную функцию GitHub, и этот хак может перестать работать в любое время. Однако, как только вилка будет создана, даже если хак перестанет работать, безопасно думать, что вилка должна оставаться.

enter image description here

Ответ 2

Вы можете использовать fork для организации, использующей curl и API github. В приведенном ниже примере будет виден жемчуг faraday ruby ​​в организации "your_organization":

 curl https://api.github.com/repos/technoweenie/faraday/forks \
 -d '{"organization": "your_organization"}'

Примечание. Вам нужно будет изменить "your_organization" на фактическое имя организации, для которой вы хотите использовать fork. Вам также может потребоваться аутентификация для успешной вилки.

Инструкции по вилке с помощью документации разработчика github:

https://developer.github.com/changes/2012-11-27-forking-to-organizations/

Ответ 3

ОБНОВИТЬ

По какой-то причине URL https://api.github.yourdomain не перенаправляет запросы на последнюю версию API, по крайней мере, в нашем Github Enterprise. Так что ни одна из предыдущих процедур не работает для меня.

Следуя последней документации, вы можете сделать это, используя последнюю версию API v3 на данный момент.

curl -k -u "user":"password" https://github.com/api/v3/repos/USER/REPO/forks -d '{"organization": "YOUR_ORGANIZATION"}'

Я создал небольшую функцию в Bash, чтобы сделать это проще.

использование: git_fork_to_org <repo> <organization>

например, $ git_fork_to_org rgcr/dotfiles my_awesome_organization

git_fork_to_org(){
    repo=$1
    org=$2

    [ $# -ne 2 ] && >&2 printf "usage: git_fork_to_org <repo> <organization>\n" && return 1

    printf "github user > "
    read -n gh_user

    printf "github password > "
    read -ns gh_password

    printf "${gh_user} > forking ${repo} to ${org}\n"

    curl -k -u "${gh_user}":"${gh_password}" \
        https://github.com/api/v3/repos/${repo}/forks \
        -d "{\"organization\": \"${org}\"}"
}

Ответ 4

Одним из способов является использование инструмента командной строки github, называемого "hub".

Usage: "hub fork [--no-remote] [--org=<ORGANIZATION>]"