Menu

GitHub Importer

GitHub Importer

We provide an importer to easily copy over project data from an existing GitHub project into our project hosting. We support both importing to a new project, as well as importing individual tools into an existing SourceForge project.

Video Overview


Importing to a new SourceForge project

If you do not have a SourceForge account, register one and log in.

To import to a new project, visit the GitHub Importer page.
First, it will prompt you to authorize SourceForge to connect to and read from your GitHub account.
Then, enter the username and project name of the project you'd like to import, as well as the name of the SourceForge project that will be created. These will often be the same, but if the desired name is taken, you may select a different name here. You can also select what tools you'd like to import from the selected project (you can keep some parts of your project on GitHub and move some to SourceForge, if you want). You will receive an email as each tool is processed.

Once the import request is submitted, it will set your project description and homepage. Just wait a few seconds, and then start configuring the rest of your SourceForge project settings. See the standard new SourceForge projects guide for more information on these settings.

Importing to an existing SourceForge project

To import to an existing SourceForge project, in the Admin menu, there's an "Import" option in the left sidebar. This will show all the available import sources.

Supported Features for Import

Metadata

Project name and homepage URL are imported.

To add additional links, click the "Add New..." link in the project menu bar and add an External Link and specify the URL you want to go to.

Wiki

Markdown, mediawiki, reStructuredText, creole, and textile formatted wiki pages are supported (rdoc, pod, org-mode and asciidoc are not currently supported). Markdown pages will stay as markdown, and mediawiki, rst, creole and textile pages will be converted to markdown. Some manual cleanup may be necessary for specific formatting directives, like tables. If you choose to import your wiki history, each revision will be imported and converted to SourceForge markdown.

Markdown syntax for code blocks, strike-through, and ticket and commit references are different between GitHub and SourceForge's markdown dialects. The import process will automatically convert the syntax for those. Some formatting such as emoji is not converted at this time.

Image references will be imported, but images or other files that are stored in the wiki repository will not be imported. You can manually attach those to the appropriate wiki page. Wiki pages within directories are not supported at this time.

More information on using the Wiki on SourceForge can be found in our Wiki Documentation.

Releases

Binary files released on GitHub can be imported into SourceForge. Statistics for your downloads on SourceForge will start processing within a few hours. Once the download import is complete, further management can be done using the web based file manager, or our File Management service for scp/sftp/rsync access.

Automatic ongoing import of all GitHub releases immediately after they are made is possible. Click the lock icon to unlock the project menu, then click the gear icon next to "Files". Select "GitHub Integration" and proceed to that form. Just enter your GitHub username/repo and approve.

Note: GitHub does not automatically detect files added to a release after it has been published. If you want to add files to a GitHub release after it has been published you will need to create a new release. However, if the release text is edited, it should be detected and files synced.

Source Code

The import process will import the git repository for the project. See our documentation for Git for further management once the repository is imported.

To push new code on an ongoing basis to both GitHub and SourceForge, you can configure git on your development machine to do that. To add SourceForge as a separate "remote" you can do this:

$ # Change the following values to match your project details.  Get the exact ssh:// url from the "clone" URL on your SourceForge repository page.
$ git remote add sourceforge ssh://USERNAME@git.code.sf.net/p/PROJECT/REPO
$ 
$ # now whenever you want, push to SourceForge
$ git push sourceforge master

To push to both GitHub and SourceForge at the same time, do this instead:

$ # Change the following values to match your project details.  Get the exact ssh:// url from the "clone" URL on your SourceForge repository page.
$ git remote set-url --add --push origin ssh://USERNAME@git.code.sf.net/p/PROJECT/REPO
$ # this adds your original repo url as "pushurl", otherwise it would push only to SourceForge
$ git remote set-url --add --push origin `git config remote.origin.url`
$
$ # now whenever you push, it will push to both
$ git push

Issues/Tickets

The "Issues" and "Pull Requests" of a GitHub project will be imported into our Tickets tool. Due to differences in the user databases, imported tickets will have the ticket creator and owner set to anonymous. However, the body of the ticket will include a link to the GitHub pages of both the ticket creator and the ticket owner. If you know the SourceForge username of the owner, you can search "Originally owned by: JohnDoe", click the pencil icon to edit all, and set the owner field.

Comments, attachments, labels, and status changes will be imported. Markdown formatting will be converted as appropriate (see wiki section above for details).

What's Next

If you moved some or all of your project from GitHub, you'll want to let people know. On your GitHub project, you can add a link in your README or Wiki.

Migration issues

If you run into any problems with the data migration, please contact SourceForge Support.