- 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
Removing explicit casts from req.app.settings.providers and using
a function.
Switching from Mocha (which was mostly unused) to Jest.
Moving around type definitions and interfaces in a big way to try
and cleanup some legacy.
This is a set of changes that is still stabalizing. Code churn around modernization
could impact company-specific implementations.
interim refactoring as part of a GitHub Enterprise prototype. please avoid using or extending or open an issue in the repo if you are to discuss what should stay vs get yanked.
- introduces a temporary OperationsCore class and a nearly-empty typed interface for operations
- these types will reduce or be removed once the prototype is validated
- "capabilities" allow for partial implementation of operations methods in the prototype
- custom mail provider
- additional view properties or recipients for new repos
- additional non-client API routes
- custom view names in certain places
- ability to process firehose events optionally in a separate codepath
- removes Microsoft-specific mail provider from the project
- fixes a startup race condition
- more interfaces and types exported down the tree to reduce import statements
- additional insights and reduced error logging for valid not found scenarios
- graph manager removes old callback code and interfaces have minor **breaking renames** as a result
- moves some email-sending functions into independent files to reduce core class line count
- ignored catches replaced with telemetry more consistently (partial)
- graph provider adds optional caching (note: this is not yet stable)
- webhook firehose will only attempt deleting messages once
- latest Octokit versions
- uses reusable functions throughout GitHub API calls for max age seconds, background refresh, page size variables
- fixes a bug around app header selection for cross-organization calls
- attempts to use GitHub App authentication instead of central operations token in more places
- supports alternate GitHub REST API locations for app authentication and the API itself
- new GitHub APIs integrated into business classes: get repository issues
- removes request module family, adopting axios
For improved type safety, this uses a function to return the
IProviders instance from the Express app, replacing all instances
of using req.app.settings.providers as IProviders, etc.
This may also make everything slightly more testable, eventually.
Adds support for organization sudo privileges to flow from
security groups instead of from GitHub Teams as the source of
truth.
Sudo remains on by default and configured for teams.
Also provides for company-specific overrides if you have a
different system for authorization decisions that is not part
of the default kit.
This significant pull request patches the open source project with a number
of updates from inside Microsoft as part of connecting an automated publishing
process to keep the public version up-to-date and buildable.
We are also removing Microsoft-specific endpoints and APIs when easy enough to
do, and adding a "company-specific" extension model to try as we go about this.
- remove 'use strict' from TS files (implicit)
- converting more exports to modern export defaults
- connecting to support for corporate "profile" apps to remove
corp-specific work
- fixes a small bug in the cache provider for Cosmos
- Removes legacy "Witness Redis" code that was a Microsoft-internal thing
- Refactors Mail Address Provider for function signatures with a Promise, no callbacks
- Refactors Microsoft Mail Address Provider to use the Graph Provider for mail lookup instead of the legacy Redis system
- Minor chores on updating some imports, default export module functions
- Web server listen routine happens sooner during startup to better land Kubernetes readiness and liveness probes
During the month of May and June, we forked this application internally
as part of a specific set of temporary changes. To converge once again
with the open source version and make it easier to collaborate with others,
this brings the latest changes up.
There is a need to refactor and feature flag the service account piece into
the newer experience as new debt.
Features
- Team pages now encourage native GitHub.com use for management
- Adding vote capabilities for FOSS Fund (a specialized feature only)
Bug fixes
- Fix for GitHub REST API request endpoints using `requestAsPost`
Chores
- Removing async library
- Cleaner throttle use through a newer `throat` library version and removing confusing typings
- Removes dead code
- Entity metadata providers are moving to a decoupled query and type system vs declarative shared enum sets
- Firehose code is now using await/async and staggers logical threads evenly
- Newer versions of all core dependencies
- More routes imported as modules instead of through `require`
- Enables GitHub App-based server-to-server communication
- Enables dynamic (database-backed) organization setting configuration
- QueryCache system, when paired with a Postgres database and GitHub App webhooks keeps teams, repo lists, etc. up-to-date more efficiently than the older GitHub REST API-based method
- Various bug fixes
- Entities (links, join requests, repo metadata) refactored
- Entities can be stored in Postgres, Azure Table, or memory
- Introduces a quickstart memory provider mode
- Evolution of more classes and methods to ES6, await/async, TypeScript typings
- Updates of package versions
Major updates to the application, including some minor breaking changes.
The public updates (that make it less Microsoft-specific) are still in
development; this represents trying to get it ready for updates.