# git.agaric.com's Forgejo

Create an organization for each client (Forgejo does not support sub-groups).

 - [git.agaric.com/org/create](https://git.agaric.com/org/create)
   - **Organization name** should be what you want in the URL— all lowercase, with dashes instead of any spaces (an "Organization full name" can be set in the organization settings later).
   - **Visibility** should be either **Public** or **Private** ("Limited" makes no sense for Agaric's diverse clients and initiatives).
     - For Drutopia and some other clients, the organization made for them should be public.
   - Leave "Repository admin can add and remove access for teams" checked.

After it is created, press the **View example-org** button in the upper right of the screen.  From here you can press settings to add a logo, full name, and description.

Then migrate or make a new repository project (**New migration** or **New repository** buttons).
  - For migrating:
    - Get an API access token from GitLab or GitHub to be able to import issues etc.
    - Be sure to uncheck "This repository will be a mirror" generally.
    - Be sure to check off what you want to migrate in addition to the code.
  - **Visibility** can have "Make repository private" left unchecked to keep it public.  In this case it is worth noting why in the **Description**, for example "As a Drutopia project we hope others can learn from and emulate, this project is public."

Add members of Agaric who will be involved in the project to the **Owners** team (for example at `https://git.agaric.com/org/example/teams/owners`) at least until this feature request gets added to Forgejo: [#2712 - [FEAT] Common team(s) fo multiple organizations - forgejo/forgejo - Codeberg.org](https://codeberg.org/forgejo/forgejo/issues/2712)

## User account creation and adding people to a project

As of now, do *not* invite users by e-mail address directly from a Team tab but instead:

1.  Create user at [git.agaric.com/admin/users/new](https://git.agaric.com/admin/users/new)
    - Leave **Authentication source** as "Local".
    - Leave **User visibility** as "Private".
    - Leave **Require user to change password** checked.
    - Checkmark **Notify about registration via email**
2.  Return to the team tab for the organization (`org/example-organization/teams`
3.  Click into ('View') the 'Owners' team `/org/example-organization/teams/owners` (or create) the team named after the client (so `/org/example-organization/teams/example`)
4.  Use the search user bar to find that user account and then—only if it autocompletes and you select the user—the "Add Team Member" button.

*Side notes*

 - Leave the setting for *User visibility* to *Private*.
 - Leave *Allow Creation of Organizations by Default* disabled.
 - (The 'Add Team Member' button used to be green, now it is red, why Forgejo why.)