chore: enable self-mutation on fork PRs and use GithubCredentials API #1056
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR improves the CI automation workflows by using projen's
GithubCredentialsAPI and enabling self-mutation on fork PRs.The existing self-mutation job in the build workflow only worked for PRs from the same repository. Fork PRs would fail the build if projen-generated files were outdated, with no way to automatically fix them. This change introduces a separate
self-mutationworkflow that triggers on build completion and can apply patches to fork PRs as well.Additionally, this migrates all workflow token handling to use projen's
GithubCredentialsAPI instead of raw secret references. This provides a consistent way to configure authentication across workflows and enables the use of GitHub environments for secret access control.Key changes:
SelfMutationOnForksprojen component that creates a dedicated self-mutation workflowGithubCredentials.fromPersonalAccessToken()with theautomationenvironmentGitHubTokenutility from enum to class usingGithubCredentialsGithubCredentialsAPI improvementsBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license