angular-cn/dev-infra/commit-message
Paul Gschwendtner 67f65a9d25 refactor(dev-infra): improve type-safety of git client utility (#42468)
Currently the `GitClient` accepts a generic parameter for determining
whether the `githubToken` should be set or not. This worked fine so far
in terms of distinguishing between an authenticated and
non-authenticated git client instance, but if we intend to conditionally
show methods only for authenticated instances, the generic parameter
is not suitable.

This commit splits up the `GitClient` into two classes. One for
the base logic without any authorization, and a second class that
extends the base logic with authentication logic. i.e. the
`AuthenticatedGitClient`. This allows us to have specific methods only
for the authenticated instance. e.g.

  * `hasOauthScopes` has been moved to only exist for authenticated
    instances.
  * the GraphQL functionality within `gitClient.github` is not
    accessible for non-authenticated instances. GraphQL API requires
    authentication as per Github.

The initial motiviation for this was that we want to throw if
`hasOAuthScopes` is called without the Octokit instance having
a token configured. This should help avoiding issues as within
3b434ed94d
that prevented the caretaker process momentarily.

Additionally, the Git client has moved from `index.ts` to
`git-client.ts` for better discoverability in the codebase.

PR Close #42468
2021-06-03 14:34:33 -07:00
..
restore-commit-message refactor(dev-infra): set up new method for checking range of commits (#41341) 2021-04-01 11:30:26 -07:00
validate-file refactor(dev-infra): improve type-safety of git client utility (#42468) 2021-06-03 14:34:33 -07:00
validate-range refactor(dev-infra): set up new method for checking range of commits (#41341) 2021-04-01 11:30:26 -07:00
BUILD.bazel refactor(dev-infra): set up new method for checking range of commits (#41341) 2021-04-01 11:30:26 -07:00
cli.ts fix(dev-infra): remove commit message wizard and builder (#41280) 2021-03-19 12:41:09 -07:00
config.ts fix(dev-infra): make scopes for `test` and `refactor` commit types optional (#41486) 2021-04-07 09:40:31 -07:00
parse.spec.ts fix(dev-infra): breaking change and deprecation notes incorrectly picked up (#42436) 2021-06-02 13:22:55 -07:00
parse.ts fix(dev-infra): breaking change and deprecation notes incorrectly picked up (#42436) 2021-06-02 13:22:55 -07:00
test-util.ts test(dev-infra): extract commit message build function into testing util function (#41476) 2021-04-09 07:49:48 -07:00
utils.ts feat(dev-infra): update commit-message functions to properly type commits from git log (#41458) 2021-04-06 10:04:53 -07:00
validate.spec.ts feat(dev-infra): validate deprecation notes in commit messages (#42436) 2021-06-02 13:22:55 -07:00
validate.ts feat(dev-infra): validate deprecation notes in commit messages (#42436) 2021-06-02 13:22:55 -07:00