Avanade / gh-management

This tool allows an organization to manage users, and their association to a public GitHub, and a private GitHub enterprise (for InnerSource.)
MIT License
5 stars 0 forks source link

gh-management

This tool allows an organization to manage users, and their association to a public GitHub, and a private GitHub enterprise (for InnerSource.)

Commitizen friendly GitHub issues GitHub GitHub Repo stars Contributor Covenant Incubating InnerSource

Overview

This project contains a PowerApp, which is the main entry point for the application. Backend functionality is provided through a Go application, which handles associations with GitHub, and events (including leavers.)

Microsoft has an excellent GitHub management portal to allow for self-service at scale - but this provides significantly more functionality than some organizations require.

It's recommended to call the leaving API as part of your JML process when users leave the organisation, but a Power Automate example is provided as an alternative (this is significantly less performant.)

This repository allows for basic self-service and automation of common workflows using PowerApps for:

Architecture Overview

Architecture Diagram

Example Call Flow

  sequenceDiagram
    participant Client
    participant Business Logic
    participant Database Service
    participant Database Provider
    participant GitHubAPI Service
    participant GitHubAPI
    Client->>Business Logic: HTTP request
    Business Logic->>Business Logic: input validation
    Business Logic->>Database Service: data request
    Database Service->>Database Provider: execute stored procedure
    Database Provider->>Database Service: raw data result
    Database Service->>Database Service: parse raw data
    Database Service->>Business Logic: parsed data
    Business Logic->>GitHubAPI Service: GitHubAPI request
    GitHubAPI Service->>GitHubAPI Service: Prepare request
    GitHubAPI Service->>GitHubAPI: Execute API call
    GitHubAPI->>GitHubAPI Service: raw data result
    GitHubAPI Service->>GitHubAPI Service: parse raw data
    GitHubAPI Service->>Business Logic: parsed data
    Business Logic->>Business Logic:data calculations/transforms
    Business Logic->>Business Logic: package data per user-facing contract
    Business Logic->>Client: Request result

Licensing

gh-management is available under the MIT Licence.

Solutions Referenced

Documentation

The docs folder contains more detailed documentation, along with setup instructions.

Contact

Feel free to raise an issue on GitHub, or see our security disclosure policy.

Contributing

Contributions are welcome. See information on contributing, as well as our code of conduct.

If you're happy to follow these guidelines, then check out the getting started guide.

Who is Avanade?

Avanade is the leading provider of innovative digital and cloud services, business solutions and design-led experiences on the Microsoft ecosystem, and the power behind the Accenture Microsoft Business Group.