Skip to content

Commit f57dfb3

Browse files
📝 add initial transition thoughts (#116)
1 parent 265f06d commit f57dfb3

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

docs/TransitionPlanning.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Planning to transition from the Sync Bot?
2+
3+
As it stands today, the GitHub Team Sync bot performs one overarching responsibility- synchronizing GitHub Teams with an external source of truth. With that being said, there are realistically 3 "levels" of teams that this application synchronizes, and all three must be accounted for so that any transition to a different tool can succeed:
4+
5+
1. Management of teams at the Enterprise level
6+
2. Management of teams at the Organization level
7+
3. Management of teams within an Organization
8+
9+
## Features to support
10+
11+
1. Enterprise Level features
12+
1. Enterprise Level Security Managers
13+
* Given a series of GitHub Organizations, this application will create and synchronize a provided Security Manager team across all organizations.
14+
* Note: this Enterprise Level Security Manager team does not override Org specific Security Managers. It instead adds the Enterprise level team to the Org specific list.
15+
2. ~~Enterprise Level Organization Owners~~
16+
* Feature not yet implemented
17+
2. Organization Level features
18+
1. Organization Owners
19+
* Synchronizes a GitHub Team that represents the Organization Owners for a particular GitHub Org, and ensures that the specific team is added as Organization Owners.
20+
* The sync bot is written to only allow 1 Organization Owners group.
21+
2. Organization Security Managers
22+
* Synchronizes a GitHub Team that represents the Organization Security Managers for a particular GitHub Org, and ensures that the specific team is added as Organization Security Managers.
23+
* An Organization may provide multiple Security Manager teams to synchronize.
24+
3. Within an Organization Level features
25+
1. GitHub Team Sync
26+
* Given a list of teams, this application will synchronize said teams with an external source of truth.
27+
2. Display names for GitHub Teams
28+
* As some source of truth teams may have names not conducive for working with GitHub, this application allows users to specify a different "display name" that will be used within GitHub.
29+
3. Tracing
30+
* This application sets the Description of any GitHub Team it manages so that it is clear where the source of the information is coming from.
31+
4. Copilot Enablement
32+
* This application provides a mechanism in which users can "enable" GitHub Copilot for a particular team.
33+
34+
## Suggested Transition Plan
35+
36+
As a successful and painless transition between tools is very dependent on proper preparation, I provide the following list of items to consider when planning your own transition:
37+
38+
1. Announce well ahead of time that the mechanism in which GitHub Teams are managed will be changing.
39+
* Include a date if possible.
40+
2. Ensure the tool you are transitioning to has *at least* the features [listed above](#Features-to-support).
41+
* If it does not, you must either implement those features yourself, or include in your plan what consumers of your tool should do instead.
42+
* For example, if your tool does not support display names, you must clearly communicate this and provide a clear transition plan for those two who currently use Display Names.
43+
3. Create and test a "transition script." This script should fully automate the transition of any particular GitHub Organization to the new way of managing GitHub Teams, including, but not limited to, the following steps:
44+
1. MANUAL STEP: work with Organization Owners to disable the Team Sync Bot during the transition.
45+
2. Import existing Sync Bot managed teams into the new management tool (as a "draft," if possible, so as not to disrupt current team syncs during the transition). This can be done via scanning the org config file. Once confidence is gained in the new tool properly managing the existing teams, move on to the next step.
46+
3. Update the existing Team Sync Options file so that it contains a single commented line that explains how members of the Organization should now manage their team.
47+
* This is important as many may miss the transition announcement. By adding a comment to the configuration file many are used to, this will help catch those who missed the original announcement.
48+
49+
## Bonus Points
50+
51+
* Everyone learns and consumes information differently. *Before* transitioning to the new tool, supporting documentation must be created so that how to use it is clear. Bonus points if a video demonstration is included (again, everyone learns differently).
52+

0 commit comments

Comments
 (0)