Transfering Group Repositories

Hello all - I have a question regarding transferring repositories out of the organization I use with Classroom. I can successfully transfer repository ownership of individual assignments, but what about group assignments? I have students working in groups of two, on a single repo, which I would like to them both to have. It’s a final project and the students are really excited to show their work in their own Github accounts. When I open the administrative functions on the repo to allow for transfer of ownership of a group assignment, will all of the students who are members of that group be able to transfer ownership?

I’ve scoured through the forums and documentation and can’t find it anywhere. Apologies if I’ve missed something! Tagging @mozzadrella for an assist if possible.

Thanks in advance,

You can transfer the ownership only to a single organization or a single user.

Given that, I can see the following alternatives:

  • If the repo is public and you are not going to remove/archive the Classroom organization, you wouldn’t need to transfer it. The repo can stay within the Classroom and the two students can use it to show off their work.
  • The two students agree to create their own organization where the repo can end up in. The students are responsible for advertising the new org as well as the repo. However, if this org is supposed to contain eventually only a repo, then it turns to be an overkill, obviously.
  • The repo gets transferred to only one specific student, but it is clearly stated that it is the outcome of a joint work. The second student shall have write access to the repo.

Whatever choice you pick up, it is not necessary at all that a given repo lives within a specific org/user account to have users receving credits for their effort. Actually, open source development takes usually place in a community that keeps on collaborating within repositories hosted in many different locations.

GitHub offers a lot of tools to help developers show off their contributions. This is only a very incomplete list of stray points popping up to my mind:

They should be able to pull the whole repo to their local machines from the classroom org, as they’re currently in it, and then commit it to their own separate repos hosted on their own accounts

This can be certainly done; however, duplicating the same code twice in different locations is not a good practice in terms of software engineering or from the standpoint of open-source community.

Forking or importing a repository elsewhere is usually done if you foresee developing new contributions based upon the current status.

True but if the org is private as was the norm for classroom when we used it last year, as far as i’ve been made aware any forks of the repository can only be private, making adding it to your own profile as an entirely new repository for say, linking to a portfolio would be the only real easy way to do this?

1 Like

My main message was about:

  • don’t duplicate/fork/import the repository;
  • rather, host the repository uniquely somewhere public - even on the account space of one particular student - transfer it if needed;
  • all the developers - the one hosting and the others - can show off their contributions from their profiles regardless of who’s actually hosting; thus, no need for code duplication.

Thanks for your thoughts here @pattacini. While I agree that one would normally want to simply fork the repo, the situation I have is the same as @neillj14. The students really like having their “own” repo for portfolio purposes. Since these mostly contain basic Python lab assignments, it’s more about them feeling the pride of ownership. In this case, however, we have decided that we’ll simply fork group repos moving forward. We have temporarily made these repos public in our organization for this purpose.

If you have decided to do forking, read this resource carefully:

In particular, GitHub says that:

If you want to create a new repository from the contents of an existing repository but don’t want to merge your changes upstream in the future, you can duplicate the repository or, if the repository is a template, use the repository as a template. For more information, see “Duplicating a repository” and Creating a repository from a template".

1 Like