For modern apps using GitHub Apps instead of PATs or OAuth tokens,
this makes sure that the Uncontrolled Organization method can still
be used to retrieve other GitHub organizations that are not managed
by the apps for purposes such as pulling org details and basics.
To support newer scenarios that are Microsoft-specific for automating
some types of team membership, this adds new extension points to
evaluate team join request conditions sooner in the middleware and
pipeline.
Also augments the JSON for client APIs about the team(s) to allow
inserting company-specific configuration or state into those responses.
- Removes CENTRAL_OPERATIONS_TOKEN
- System teams - open access
- adds open access concept, which is a broad access team anyone in the org can join without approval
- open access teams are not recommended the same way as broad access teams during new repo setup
- TypeScript: prefer types to interfaces
- GitHub Apps and REST APIs:
- Simplifying bound function calls
- Relocated app and token management files
- Improves types for header/tokens
- Allow custom app purposes to retrieve app token instances
- Custom app purpose debug display fix
- PAT/app token type identification helper method
- Collections now expose "collectAllPages" and "collectAllPagesViaHttpGet" to move specific code out of the file
- Fix for custom apps initialized after startup
- Custom Properties Beta support
- Client APIs remain behind the session middleware
- Non-client APIs no longer set cookies given their stateless nature
- Simplifies the directory structure
- Removes Microsoft-specific API configuration and code not useful to the OSS version
Updates the fork lock (which admin-locks new forks) to instead delete
them right away. Helps reduce confusion and abandoned/messy instances
on official corp orgs when used.
Integrates multiple changes from an internal fork to the open project:
- Strongly typing basic organization properties and flags
- Specialized app purposes
- Organization annotations
- Repo unarchive
- Configuration resolver supports dates
- Configuration resolver supporting above-root .env over env vars for Codespaces
- Initialization routine adds support for an optional company-specific secondary stage
- Supports flighting a second React frontend for specific or all users
- Most basic organization APIs support managed and unmanaged orgs for org details
* Remove hardcoded references to microsoft (#6)
* add config to some more mail options
Co-authored-by: Moritz Fuchs <moritz.fuchs@sap.com>
Co-authored-by: Tobias Gabriel <tobias.gabriel@sap.com>
Updates the open source project to reflect the recent updates
around continuing to make it easier to build in paralell and have
company-specific updates without impacting the upstream as much.
- Improved new repository lockdown experience
- Supports swapping description and website URL for repos temporarily until approval
- Supports an initial README commit directing people to the setup experience, if there are no commits yet
- Directly created repos become private immediately but retain access for the initial creator of the repo with read permission
- Removes new repository branch rename feature (GitHub natively supports org-level and enterprise-level custom defaults now)
- Removes 'uuid' dependency to favor newer Node LTS 14+ crypto.randomUUID
- App and job configuration object replaces "treatGitHubAppAsBackground" with "enableAllGitHubApps"
- Table encryption bug fix when pulling from key vault
- Chore: updates NPM dependencies
- Removes antiquated Azure Storage and table SDKs
- Removes dependency on painless-config-resolver (which is now inline inside the project and adopts the latest Azure SDK for KeyVault)
- Adds company-specific unlink and link mail template overrides
- Adds new unlink notification mail to people who remove themselves, or are removed
- Updates more legacy functions from callbacks to more modern equivalents
- Removes unused reports "data lake" storage methods
- Removes moment timezone library
- System administrator data can now alternatively come from security groups instead of hard-coded configuration
Breaking changes
- Removes painless-config support. .env and environment/container env methods only. If you have a JSON env file, update it to a .env-compatible format for local development use.