Skip to content

feat: add triagers to the generation of teams#116

Merged
aepfli merged 1 commit intomainfrom
feat/add_triagers
Sep 10, 2025
Merged

feat: add triagers to the generation of teams#116
aepfli merged 1 commit intomainfrom
feat/add_triagers

Conversation

@aepfli
Copy link
Copy Markdown
Member

@aepfli aepfli commented Aug 28, 2025

Adding a new root group of triagers - below you see the output with the added test config.

orgs:
  test-org:
    admins:
    - owner1
    - owner2
    default_repository_permission: read
    description: Standardizing Feature Flagging for Everyone
    has_organization_projects: true
    has_repository_projects: true
    members:
    - triager1
    - approver1
    - maintainer1
    - admin1
    - globaladmin1
    - globalmaintainer1
    - globalapprover1
    - globaltriager1
    - governor1
    - tc1
    members_can_create_repositories: false
    name: OpenFeature
    repos:
      cli:
        allow_merge_commit: false
        allow_rebase_merge: false
        allow_squash_merge: true
        description: OpenFeature’s official command-line tool
        has_projects: true
        has_wiki: false
      org-repo1:
        allow_merge_commit: false
        allow_rebase_merge: false
        allow_squash_merge: true
        has_projects: true
        has_wiki: false
      org-repo2:
        allow_merge_commit: false
        allow_rebase_merge: false
        allow_squash_merge: true
        has_projects: true
        has_wiki: false
    teams:
      Governance Board:
        members:
        - governor1
        repos:
          cli: admin
          org-repo1: admin
          org-repo2: admin
      Technical Steering Committee:
        members:
        - tc1
        repos:
          cli: admin
          org-repo1: admin
          org-repo2: admin
      admins:
        members:
        - globaladmin1
        repos:
          cli: admin
          org-repo1: admin
          org-repo2: admin
      approvers:
        members:
        - globalapprover1
        repos:
          cli: write
          org-repo1: write
          org-repo2: write
      cli-triagers:
        repos:
          cli: triage
        teams:
          cli-approvers:
            repos:
              cli: write
            teams:
              cli-maintainers:
                repos:
                  cli: maintain
                teams:
                  cli-admins:
                    repos:
                      cli: admin
      maintainers:
        members:
        - globalmaintainer1
        repos:
          cli: maintain
          org-repo1: maintain
          org-repo2: maintain
      org-triagers:
        members:
        - triagers1
        repos:
          org-repo1: triage
          org-repo2: triage
        teams:
          org-approvers:
            members:
            - approver1
            repos:
              org-repo1: write
              org-repo2: write
            teams:
              org-maintainers:
                members:
                - maintainer1
                repos:
                  org-repo1: maintain
                  org-repo2: maintain
                teams:
                  org-admins:
                    members:
                    - admin1
                    repos:
                      org-repo1: admin
                      org-repo2: admin
      triagers:
        members:
        - globaltriager1
        repos:
          cli: triage
          org-repo1: triage
          org-repo2: triage

@aepfli aepfli requested review from a team and toddbaert August 28, 2025 06:48
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @aepfli, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the organization and repository management system by integrating a new 'triagers' team role. It involves updating the Go application to recognize and manage this new role, alongside adding comprehensive YAML configurations to define the 'triagers' teams and their permissions across various repositories. The changes streamline the process of assigning triage responsibilities and ensure the system accurately reflects the new organizational structure.

Highlights

  • New Team Role: Triagers: This pull request introduces a new 'triagers' team role, enabling a dedicated group of individuals to manage and triage issues and pull requests within the organization's repositories.
  • Application Logic Update: The core application logic in main.go has been updated to recognize and correctly process the new 'triagers' team type, ensuring proper permission assignment and team generation.
  • Configuration File Additions: New YAML configuration files have been added under the config/test-org/ directory to define the structure and permissions for the 'test-org' organization, including the setup of global and workgroup-specific 'triagers' teams.
  • Dependency Management: The go.sum file has been updated, reflecting a cleanup and consolidation of Go module dependencies, specifically for golang.org/x/exp and golang.org/x/sync.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@aepfli
Copy link
Copy Markdown
Member Author

aepfli commented Aug 28, 2025

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a 'triagers' role to the organization management tool, which is a valuable addition. The implementation is solid and correctly extends the permission hierarchy. I've identified a couple of minor issues in the new test configuration files related to misleading comments. Additionally, I've suggested a potential refactoring in main.go to enhance maintainability by reducing code repetition. Overall, the changes are well-implemented.

Comment thread config/test-org/org.yaml
Comment thread config/test-org/org/workgroup.yaml
Comment thread main.go Outdated
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for a triagers role in the GitHub organization management tool. The changes include updating the Go application to handle the new role and its permissions, and adding new test configuration files. The core logic for adding the triagers role is sound. My review includes a few suggestions to improve the maintainability of the configuration files by adhering to the alphabetical sorting convention mentioned in comments, and a suggestion to refactor some repetitive code in main.go.

Comment thread config/test-org/org.yaml
Comment thread config/test-org/org/workgroup.yaml
Comment thread main.go Outdated
@aepfli aepfli force-pushed the feat/add_triagers branch from 4ab11cd to 95f9f2f Compare August 28, 2025 06:57
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
@aepfli aepfli force-pushed the feat/add_triagers branch from 95f9f2f to 4465ec8 Compare August 28, 2025 06:58
@aepfli
Copy link
Copy Markdown
Member Author

aepfli commented Aug 28, 2025

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for a triagers role in the team generation logic. The changes include updating the configuration structure to accommodate triagers and refactoring the generateGroupConfig function to be more data-driven and extensible. The refactoring is a significant improvement in maintainability. I have one suggestion to make the new logic more robust against future changes. Overall, this is a great enhancement.

Comment thread main.go
@aepfli aepfli merged commit 241deb5 into main Sep 10, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants