Azure GitHub Management: azure-oss-portal
The Azure Open Source Portal for GitHub is the culmination of years of trying to manage the Azure presence on GitHub through a lot of trial, error, and improvement in tooling.
Starting as a hackathon, today it is used to manage a number of organizations on GitHub at an enterprise-grade scale by automating organization onboarding and delegating management decisions to team maintainers.
A ton of information is available right now in this post in lieu of other README content http://www.jeff.wilcox.name/2015/11/azure-on-github/
- Node.js LTS+
- Bring your own Redis server, or use Azure Redis Cache
- Azure Active Directory, or hack your own Passport provider in
- Azure Storage for table,
data.jswill need some refactoring to support other providers
Oh, and you'll need your own GitHub org.
Happy to have contributions, though please consider reviewing the CONTRIBUTING.MD file, the code of conduct, and then also open a work item to help discuss the features or functionality ahead of kicking off any such work.
We have avoided using a rich configuration framework in the name of agility and recognizing the diversity of many deployment environments.
The configuration story for this application has been evolving over time. At this time, the following configuration elements are available at this time, each with a distinct purpose.
- Environment Variables (see
- JSON Files (either committed directly to a repo or overwritten during deployment)
resources.json: categories, links and special resources to light up learning resources
organizations.json: organization configuration information, an alternate and additive way to include organization config in the app at deployment time. For this method to work, make sure to set the configuration environment to use from such a file using the
- Azure Key Vault secrets
KeyVault Secret Support
Any configuration string property can be resolved to a KeyVault secret.
To use a stored KeyVault secret, configuration to allow this application's service
get the secret value, simply use a custom
keyvault:// URI format.
For example, given a key vault named
samplevault, setting a configuration
would resolve that secret.
To select a custom user
tag for a secret, use the
auth parameter of the
URI: a value of
get the secret and its metadata, setting the configuration value to the
username tag, if
At this time the secrets are only read during application initialization, so a rotation of a secret would require restarting, redeploying, or otherwise kicking the service to grab the rotated secret.
When using Microsoft Application Insights, this library reports a number of metrics, events and dependencies.
Library events include:
- UserUnlink: When a user object is unlinked and dropped
User interface events include:
- PortalUserUnlink: When a person initiates and completes an unlink
- PortalUserLink: When a person links their account
- PortalUserReconnectNeeded: When a user needs to reconnect their GitHub account
- PortalUserReconnected: When a user successfully reconnects their GitHub account when using AAD-first auth