The Fedora Hosted request system. Ironically hosted on GitHub for now, but I will move it to fedorahosted soon.
Python JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 71 commits behind relrod:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Fedora Hosted Processor

This application stores, manages, and processes Fedora Hosted requests.

Project Goals

Web Interface

  • Provide an easy interface for any person to request a project on Fedora Hosted, and store the requests in a database.
  • Be awesome. Don't suck.

CLI Interface

  • Allow administrators to easily process new hosted requests.
  • Allow users to easily create hosted requests (alternative to the web interface).
  • Provide a noop mode to see what would happen without actually doing anything.
  • Be awesome. Don't suck.


  • Admin starts processing the request (./ -p 1)
  • Script asks for admin's FAS username/password.
  • Script creates the new FAS group.
  • Script runs all the commands needed on hostedXX.
  • Script tells the web app to check with FAS and see if the new group exists.
    • This prevents having to send FAS auth info to the web app.
    • If the group exists, the web app sets HostedRequest.completed = true

Dependencies (Fedora packages)

  • python-fedora
  • python-flask
  • python-flask-sqlalchemy
  • python-flask-wtf
  • python-sqlalchemy
  • python-wtforms
  • python-pep8 (if you plan on hacking, not needed to deploy)


To set up the app, copy the included to and edit its values appropriately.

Then, look to Flask's Documentation for figuring out the best way to deploy. In Fedora Infrastructure, we will likely use mod_wsgi, simply for the fact that we already have infrastructure built up around it, and know how to support it.


Please have read and signed the Fedora Project Contributor Agreement before sending patches.

Please follow PEP 8 and ensure all unit tests pass.

A good .git/hooks/pre-commit hook is as follows (and make sure the hook is chmod +x) though it does depend on the package: python-pep8:

pep8 *.py && python

Above all, have fun!