* move GH tag and release under /v, move variants to query params
- move github /tag and /release under /v
- both sort by date as default
- specify sort=date/semver, include_prereleases as query params
- use graphql api for tags
* pass string params from example defs to modal
* fix: runtime type error in crates version service
* chore: switch CratesVersion tester to use createServiceTester helper
* chore: removed commented out line
* add base class for Graphql APIs
* add GithubAuthV4Service + updates to GH token pool
* update github forks to use GithubAuthV4Service
* rename GithubAuthService to GithubAuthV3Service
Adding TypeScript to the frontend and a `.d.ts` file to `core` (see #3742) has multiplied out the different combinations of lint rules. ESLint has support for file-pattern-based overrides, which we've used in some places, but we've also maintained a separate eslintrc for `frontend/`.
This merges the config together, with the strategy of putting all the rules at the top level except where they conflict, and applying settings to exactly the files where they should apply.
This introduces a few new errors in the server but they are true positives – hoisting and lowercase class names – things we don't really need to be doing).
This is the preferred way we’re handling server URLs: in the query string.
While we still have a mix of these, I’ve argued this way is better for these reasons:
1. It allows us to make the URLs a bit more standardized across services.
2. It makes the routes unambiguous.
3. It requires less code.
While it introduces a URL-encoding requirement on the parameter, I think these tradeoffs are worth it.
Continues the work of #3652.
Since Bitbucket is the only service to use two sets of credentials like this, it seems to make the most sense to build a very local solution.
* Make the osslifecycle badge company-agnostic
Removes references to Netflix in the example titles of the osslifecycle badge
To make the badge more generic and easier to use by companies besides Netflix, the examples should remove Netflix from the title.
* Adding Netflix back in as a keyword, to make the badge easily searchable for people who remember it with the old title.
* Updated GPL, LGPL, and AGPL licence IDs to the SPEX 3.5 specification.
* Add GPL, LGPL, and AGPL aliases in the format in which they are used in Python classifiers.
This is a reworking of #3410 based on some feedback @calebcartwright left on that PR.
The goals of injecting the secrets are threefold:
1. Simplify testing
2. Be consistent with all of the other config (which is injected)
3. Encapsulate the sensitive auth-related code in one place so it can be studied and tested thoroughly
- Rather than add more code to BaseService to handle authorization logic, it delegates that to an AuthHelper class.
- When the server starts, it fetches the credentials from `config` and injects them into `BaseService.register()` which passes them to `invoke()`.
- In `invoke()` the service's auth configuration is checked (`static get auth()`, much like `static get route()`).
- If the auth config is present, an AuthHelper instance is created and attached to the new instance.
- Then within the service, the password, basic auth config, or bearer authentication can be accessed via e.g. `this.authHelper.basicAuth` and passed to `this._requestJson()` and friends.
- Everything is being done very explicitly, so it should be very clear where and how the configured secrets are being used.
- Testing different configurations of services can now be done by injecting the config into `invoke()` in `.spec` files instead of mocking global state in the service tests as was done before. See the new Jira spec files for a good example of this.
Ref #3393
* Ensure Joi is imported as @hapi/joi [cirrus]
I noticed this import failed in #3675. Maybe we've finally dropped the last copy of the old joi?
* Ignore dangerfile
Now that these s0.server.shields.io entries are set up through the main DNS on Cloudflare, we don't need the shields-server.com domain anymore. One less thing to maintain.
This encapsulates the fetch methods slightly better. Cherry-picked from #3410, which needs to be reworked. This change should simplify dropping in the new auth method when that happens.