зеркало из
1
0
Форкнуть 0
Граф коммитов

49 Коммитов

Автор SHA1 Сообщение Дата
Jeff Wilcox 36cd598471 Company-specific link/unlink events
Adds event hooks that a company can extend when a link is created
or unlinked.

We are using this with our custom Kusto/Azure Data Explorer
integration where we are more actively ingesting changes to
link data.
2024-01-07 12:02:23 -08:00
Jeff Wilcox cc2b07f6a4 Company-specific link/unlink events
Adds event hooks that a company can extend when a link is created
or unlinked.

We are using this with our custom Kusto/Azure Data Explorer
integration where we are more actively ingesting changes to
link data.
2024-01-07 12:00:51 -08:00
Jeff Wilcox 20b1066ed9 Moving files 2024-01-03 11:44:13 -08:00
Jeff Wilcox ef55d3631a Typings: more interfaces to types 2023-12-16 18:16:42 -08:00
Jeff Wilcox c5837d6ec0 Updated typings 2023-12-13 16:35:32 -08:00
Jeff Wilcox 32fc06286f Webhooks: company-specific entry 2023-12-13 08:50:57 -08:00
Jeff Wilcox 89e3d29621 Company-specific team extensions
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.
2023-11-30 08:22:07 -08:00
Jeff Wilcox 00eb7c2ddc Custom properties, token refactor, open access teams
- 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
2023-11-11 16:24:15 -05:00
Jeff Wilcox 9cd60cdad8 Privatize API + updated dependencies
Syncing with our internal bits.
2023-10-20 15:50:54 -07:00
Jeff Wilcox e55f5ca2b1 Repository invitations list support 2023-10-05 21:48:54 -07:00
Jeff Wilcox 040775abd7 API middleware 2023-10-03 16:52:23 -07:00
Jeff Wilcox e165cb14d0 Updates; remove rename branch code 2023-08-14 22:04:30 -07:00
Jeff Wilcox 682553ab0e Syncing updates 2023-07-12 21:00:23 -07:00
Jeff Wilcox d5a28ed738 Octicons, express: major type updates 2023-06-14 13:56:07 -07:00
Jeff Wilcox 4ca3b70ae1 Type updates 2023-06-11 17:42:22 -07:00
Jeff Wilcox deb80e82be Annotation updates 2023-06-08 09:30:25 -07:00
Jeff Wilcox 8bfc9c74b8 API: support watchdogs, multiple scopes 2023-05-31 19:22:40 -07:00
Jeff Wilcox 66b87b31d0 API session refactor + directory prune
- 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
2023-05-11 13:07:14 -07:00
Jeff Wilcox b60d546417 GitHub Apps: supporting custom apps
Expands the custom app support to enable new purposes that are tied
to the settings system. We use this at Microsoft to enable specific
one-off apps with unique identities to work across specific purposes.
2023-04-19 16:44:00 -07:00
Jeff Wilcox 0f42e7f2cb ES2022: cause
Replaces the old custom "inner" and "innerError" concept from
the legacy app with the modern cause parameter.
2023-04-06 18:10:22 -07:00
Jeff Wilcox ed5dd1e039 Downstream integration 2023-02-10 21:27:09 -08:00
Jeff Wilcox 96783326cd Link mail: support company-specific view 2023-02-03 10:59:11 -08:00
Jeff Wilcox f38ea1e2e4 Redis v4 support 2023-01-29 14:56:52 -08:00
Jeff Wilcox 63aa9b421d Static org files, table fix 2023-01-26 23:54:06 +00:00
Jeff Wilcox e48e1dd11d Immutability: store new repo payloads to immutable blob 2023-01-24 15:20:16 -08:00
Jeff Wilcox 182a8e2c9e Corporate: removing unused company-specific bits 2023-01-17 15:52:04 -08:00
Jeff Wilcox b3e35d4fa9 Supporting more app types, client flights
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
2023-01-07 22:40:22 -08:00
Jeff Wilcox 610993dd50 Latest new files 2022-10-31 03:33:51 +00:00
Jeff Wilcox 0af67ee0cd Latest build 2022-10-31 03:32:58 +00:00
Nick Schonning deea160f69
fix: various typos 2022-10-09 23:02:44 -04:00
Jeff Wilcox 9f3f1cb00d
Prettier linting, README update (#399) 2022-10-07 15:25:28 -07:00
Jeff Wilcox 9d54251c56 Prettier / consistency 2022-10-07 06:59:30 +00:00
Jeff Wilcox 0921e2d578 Integrating latest Microsoft changes
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.
2022-10-07 01:23:29 +00:00
Jeff Wilcox a1e3d9f234 Integrating recent internal minor changes, pkgs 2022-04-01 10:13:27 -07:00
Jeff Wilcox f28bb340ba Integrating internal changes up through 2022
This is a batch of updates, including package version improvements.

- Axios: the library has gone through some growing pains for TypeScript
  users. While the library no longer returns "unknown" for response types,
  designed to encourage safe known casting, we do a lot of "cast as any" now,
  and will improve in the future.
- Additional company-specific extension points around authentication
- Additional auth token types for just-in-time
- Cleanup of Passport routing. This could be breaking for anyone who has
  taken the time to hack other Passport providers on top, so interested to
  learn if anyone has (for example, the old Google integration as an auth provider
  over AAD)
2022-02-18 14:39:34 -08:00
Jeff Wilcox 6aca65ae1e
Integrating stylistic community pull request saves 2021-10-07 15:23:50 -07:00
Jeff Wilcox 7da7e65d0c
Additional interfaces for Passport customization 2021-10-06 19:52:55 -07:00
Jeff Wilcox 41047e2612
Latest source 2021-07-17 14:33:35 -07:00
Jeff Wilcox b256b70af0
Improved new repo lockdown, app/job reconfig
- 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
2021-06-03 10:08:30 -07:00
Jeff Wilcox 8a8a2dc181
Removing painless-config support to prefer dotenv always; minor new features
- 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.
2021-05-17 11:54:19 -07:00
Jeff Wilcox 7f3c6f7b43
Integrating recent internal changes
- Changes JSON paging APIs to be zero-based indexes
- Additional optional security app configuration
- Fixes a minor configuration issue
- Adds a more robust "RepositoryEntity" that is not used in the site, but by jobs or data systems
- Updated deps
- Graph provider adds a "get direct reports" method
2021-05-05 20:07:09 -07:00
Jeff Wilcox 1e9db0803e
Interface and Test refactor
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.
2021-04-09 16:36:15 -07:00
Jeff Wilcox 98502f7a72 Interim refactorings and improvements
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
2021-03-25 10:20:40 -07:00
Jeff Wilcox e6ea0608c8 Fixing circular dependency 2021-03-18 20:27:48 -07:00
Jeff Wilcox d1baf801ff Expanded client API
Open sourcing an additional set of APIs that we use for the client
experience.
2021-03-18 15:19:39 -07:00
Jeff Wilcox 023113a2fa Portal sudo SG support
Supports using security groups for portal sudo permissions
instead of the primary GitHub org's sudo configuration, if
present.

Breaking feature change:
This feature is not enabled by default and must use a feature flag
to opt-in.

The feature flag is "FEATURE_FLAG_ALLOW_PORTAL_SUDO".

The standard behavior, when the flag is enabled, is still to use
the first org. Alternatively, configuration and a SG ID can be provided.
2021-03-17 16:18:44 -07:00
Jeff Wilcox 456c5d0646 Organization sudo security group support
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.
2021-03-17 13:02:11 -07:00
Jeff Wilcox 0c14799b1f Company-specific: adding strings to link mail instead of static values 2021-03-05 17:19:16 -08:00
Jeff Wilcox a17d48e8ef Integrating latest Microsoft changes
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.
2021-03-05 14:50:31 -08:00