- Track what’s going on: Trello board
- XWiki design page: GitHub Importer Design.XWiki
- Original GSOC proposal
Requirements
1. Import from a GitHub Wiki repository
Instead of creating each page on XWiki Platform, user will be able to simply provide the GitHub repository with Wiki and let the Filter Application convert it to XWiki pages and save them inside XWiki according to the Sidebar (if provided).
2. Main Repository
A wiki repository is different from the main repository. It can be cloned via .wiki.git. Some users may provide the main <repository>.git
, so the extension will automatically fix the link to improve UX.
3. Convert Syntax
Convert the pages written in the GitHub-flavored Markdown markup to XWiki Syntax 2.1. Also provide an option to decide to do this conversion or not (if users want to use them in MD in XWiki they should be able to do so).
4. Ability to pass an oauth token
Make the import process accept a oauth token to perform the fetching of the GitHub repo. This allows to support private repos.
5. Provide a simplified Import UI
The Filter Stream app provides a generic UI but it’s complex and not very user-friendly. This app should provide a simplified UI geared towards importing GitHub pages.
6. (Optional) Merge Wiki
In this use case, if the wiki is re-imported, it merges the changes inside the pages so the new page will be shown merged instead of overwritten.
7. (Optional) Two-way sync
If the project is done early and if there’s enough time, it would be interesting to support round-tripping and be able push changes done in XWiki on the imported pages back to GitHub (either by git pushing or by using a GitHub REST API). Specifically this means:
- Remembering the list of imported pages and their content.
- Writing an XWiki EventListener for auto-sync.
- Having an XWiki UI to display changes since the last import with ability to see the diffs.
8. (Optional) Support offline importing
User will be able to use a .zip file containing the wiki repo, as an input to the GitHub Importer and get them into XWiki as XWiki pages.
Feel free to suggest more use cases.
…to be updated.