Try   HackMD

Gitforge User Story Doc

Introduction

Between January 2020 - February 2020, the CPE team released an ODF document outlining the teams intention to
Internal and external user groups were invited to contribute their requirements for a git-forge before 10th Feb 2020.
A collection of requirements have now been compiled from multiple sources based on the replies and submissions the CPE team received from Fedora, CentOS, Red Hat Legal, INFOSEC, Platform Engineering Groups & the Community Platform Engineering Team.
The below table illustrates a grouping of the various actors/users of the proposed git-forge unification, their wants and why this is beneficial to them.

Purpose & Plan

The purpose of this document is to capture all user requirements, and the benefit these requirements bring to the user.

User Story List

We had over 300 User Stories received from all Stakeholders and after duplications and similar in theme requirements were merged together, we were left with the following unique User Story list:

1
As INFOSEC
Associates must be able to use SSO to sign in
So that RH as a business is protected against harmful activity from its employees

2
As a RH Legal rep
Changes to the URL code must be cleared internally
So that correct records are kept and RH is protected from legal action

3
As a RH Legal rep
IP addresses must be blockable
So content is not shipped to embargoed entities inc people, countries & businesses

4
As a RH Infosec rep
Integration logs must be kept and monitored
So that there is traceability in the event of suspicious activity

5
As a RH Developer
I need the ability to privately comment on a PR
so that confidential information does not leak outside Red Hat

6
As a RHEL engineer
I want to be able to create branches via an API
So that git branch management can be automated

7
As a RHEL engineer
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

8
As a RHEL engineer
I want a modern git workflow
So that I can use upstream practices in RHEL development for quicker delivery of features & fixes

9
As a general user
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

10
As a general user
I want an API to interact programmatically with the forge
So that I can integrate any/my application with the gitforge

11
As a general user
I need to be able to port patches between projects
So that I can easily collaborate between projects

12
As a general user
I need CentOS & Fedora to be integrated in gitforge
So I can push requests from one OS to the other

13
As a general user
I need to be able to see SIG groups
So that I know what group to reach out to to ask for help

14
As a general user
I will see inline images against comments
So that it is easier for me to see communications and status’s of issues
Upload possible in issues, not in PR yet, images can be displayed in both

15
As a general user
The gitforge supports a message bus
So that I can continue to create formatted messages and provide alerts and metrics

16
As a general user
I want to be able to create a bot/service account
That integrates with the gitforge in the same way as a human does

17
As a general user
I want to be able to make suggestions to fedora docs
Without having to set up an entire infrastructure for making low-friction contributions

18
As a general user
I want to be able to see a list of orphaned packages
So that I know which ones need a maintainer if I want to adopt one

19
As a Project contributor
I want to be able to use kanban boards
So that my team can easily schedule and prioritize work in a visible way

20
As a Project contributor
I want to be able to apply custom labels to issues
So that I can specify issues on a per-repo basis

21
As a project contributor
I want to be able to use custom fields
So that I can specify metadata that is unique to my teams workflow

22
As a Project contributor
I want to be able to track issues
So that I/my team can track work assigned to us and receive external work requests

23
As a CPE team member
I want the maintaining of a git forge to be more supported
So that I can focus on other projects that meet the mission statement

24
As a General User
I want to create projects and groups of projects
So that I can self organise my teams work

25
As a General User
I want to create custom access levels
So that I can protect my projects but remain open by default

26
As a General User
I want the ability to search across metadata
To easily search code, commits and issues within a project

27
As a General User
I want to rebase without waiting for the submitter to rebase
So that I can proceed with accepting PRs

28
As a General User
I want a unique URI to my code archive
So that I can have a point in time snapshot

29
As a General User
I want to access repos fully over https
For environments where SSH is blocked

30
As a General User
I want to see active branches prioritised
So that end of life branches do not clutter my view

31
As a General User
I can request access rights to a repository
So that I can contribute in a low friction manner

32
As a General User
I can file bugs and feature requests
So that I can provide feedback and track future work

33
As a General User
I can vote on issues
To indicate my support or not for a particular issue

34
As a General User
I want a mobile native app
To allow me contribute while away from my desk

35
As a General User
I can reassign issues to another component
Where it can receive help and cooperation

36
As a General User
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

37
As a General User
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

38
As a General User
I want the ability to use SSH and HTTP pulls
to give me optimal usage

39
As a General User
I want branches and visualisations of the branching setup
to allow me track releases

40
As a General User
I want the ability to have private and public repositories
to allow me work in private and publish it publicly

41
As a General User
I want groups and group membership and management
to allow me create access control on a suite of repositories

42
As a General User
want a GUI to interface with the system as well as a CLI
so new users have an easier way to interface with it

43
As a General User
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

44
As a General User
I want a temporary file (gist)
So that I can share code easily

45
As a General User
I want to have interactive code reviews in my branches and PRs
to foster collaboration

46
As a General User
I want to be notified of CVEs in my code
so that I can stay on top of critical vulnerabilities

47
As a General User
I want integrated keyword support
to allow me automate a lot of my actions such as a rebuild / retest

48
As a General User
I want integration with my git forge in my IDE
so I can stay focused in one spot

49
As a General User
I want to gain analytics and insights from my code
so that I can have historic context to make decisions moving forward

50
As a General User
I would like a static website as part of my git forge
to allow me advertise my projects and personal self

51
As a General User
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.

52
As a General User
I would like merge protection on my PRs
to enable reviewers protect my code

53
As a General User
I would like insights into the quality of my code
to allow for technical debt planning

54
As a General User
I would like historical logs and audits of all actions
so that I can satisfy regulatory requirements

55
As a General User
I would like a suite of templates,
to boostrap projects easier

56
As a General User
I want registry integration
so that I can store dependencies

57
As a General User
I want the ability to have a private branch
So that I do not need to leave the code tree I am already in

58
As a General User
I want to have private repos
So that I can secure an entire repository for privacy reasons

59
As a General User
I want protected branches
So that I do not accidentally cause any issue

60
As a General User
I want email notifications
So that I am aware of changes on my PR

61
As a General User
I want to have multiple PRs merge as a group
So that I can verify wider functionality as one

62
As a General User
I want automerges when specific acceptance criteria are met
So that I do not need manual intervention

63
As a General User
I want to set a filter for PRs of interest on a repo
So that I get notified when something triggers my filter