From Fedora Project Wiki

Revision as of 13:19, 17 April 2020 by Siddharthvipul1 (talk | contribs) (→‎General User: add more requirements)

This page is to track requirements and progress on Fedora Git Forge change decision

Requirements

Infosec

What Why
Associates must be able to use SSO to sign in So that RH as a business is protected against harmful activity from its employees
Example Example

RHEL Engineer

  • I want to be able to create branches via an API
    • So that git branch management can be automated
  • I want to know 6 months in advance if CPE move git forge
    • So that my team has time to adopt our dependant services to the new offering in a timely manner
  • I want a modern git workflow
    • So that I can use upstream practices in RHEL development for quicker delivery of features & fixes

General User

What Why
I want to sign in using the SSO of my account system So that I can access the git forge repos and contribute to RHEL
I want an API to interact programmatically with the forge So that I can integrate any/my application with the gitforge
I need to be able to port patches between projects S o that I can easily collaborate between projects
I need CentOS & Fedora to be integrated in gitforge So I can push requests from one OS to the other
I need to be able to see SIG groups So that I know what group to reach out to to ask for help
I will see inline images against comments So that it is easier for me to see communications and status’s of issues
The gitforge supports a message bus So that I can continue to create formatted messages and provide alerts and metrics
I want to be able to create a bot/service account That integrates with the gitforge in the same way as a human does
I want to be able to make suggestions to fedora docs Without having to set up an entire infrastructure for making low-friction contributions
I want to create projects and groups of projects So that I can self organise my teams work
I want to create custom access levels So that I can protect my projects but remain open by default
I want the ability to search across metadata To easily search code, commits and issues within a project
I want to rebase without waiting for the submitter to rebase So that I can proceed with accepting PRs
I want a unique URI to my code archive So that I can have a point in time snapshot
I want to access repos fully over https For environments where SSH is blocked
I want to see active branches prioritised So that end of life branches do not clutter my view
I can request access rights to a repository So that I can contribute in a low friction manner
I can file bugs and feature requests So that I can provide feedback and track future work
I can vote on issues To indicate my support or not for a particular issue
I want a mobile native app To allow me contribute while away from my desk
I can reassign issues to another component Where it can receive help and cooperation
I want the service to be reliable and available 24/7 to me so that I can access the service in a CD manner at all times
I would like support to address a bug that I have logged in a timely manner so that it does not unduly disrupt my workflow
I want the ability to use SSH and HTTP pulls to give me optimal usage
I want branches and visualisations of the branching setup to allow me track releases
I want the ability to have private and public repositories to allow me work in private and publish it publicly
I want groups and group membership and management to allow me create access control on a suite of repositories
I want a GUI to interface with the system as well as a CLI so new users have an easier way to interface with it
I want an extensible git hook service to allow me integrate with popular services or create that binding To allow a CI system evolve around my code
I want a temporary file (gist) So that I can share code easily
I want to have interactive code reviews in my branches and PRs to foster collaboration
I want to be notified of CVEs in my code so that I can stay on top of critical vulnerabilities
I want integrated keyword support to allow me automate a lot of my actions such as a rebuild / retest
I want integration with my git forge in my IDE so I can stay focused in one spot
I want to gain analytics and insights from my code so that I can have historic context to make decisions moving forward
I would like a static website as part of my git forge to allow me advertise my projects and personal self
I would like to track my work in an Agile manner allowing me centralise all my planning in my forge and gain insights into how I am working.
I would like merge protection on my PRs to enable reviewers protect my code
I would like insights into the quality of my code to allow for technical debt planning
I would like historical logs and audits of all actions so that I can satisfy regulatory requirements
I would like a suite of templates, to boostrap projects easier
I want registry integration so that I can store dependencies
I want the ability to have a private branch So that I do not need to leave the code tree I am already in
I want to have private repos So that I can secure an entire repository for privacy reasons
I want protected branches So that I do not accidentally cause any issue
I want email notifications So that I am aware of changes on my PR
I want to have multiple PRs merge as a group So that I can verify wider functionality as one
I want automerges when specific acceptance criteria are met So that I do not need manual intervention
I want to set a filter for PRs of interest on a repo So that I get notified when something triggers my filter