JetBrains Plugins for 2.0.0+ gradle plugin release. #245
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Repo Sync | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
############################## | |
# SYNC REPO FILES # | |
############################## | |
sync_repo_files: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Run Repo File Sync Action | |
id: repo-file-sync | |
# Use my own fork for now, as I want to try out a few new features I'm adding... | |
# uses: BetaHuhn/repo-file-sync-action@v1 | |
uses: ChrisCarini/repo-file-sync-action@main | |
with: | |
ASSIGNEES: | | |
ChrisCarini | |
# NOTE: As much as I would like to be marked to review each of these, because | |
# this GitHub Action uses a PAT, the commit is coming from myself (ie, `ChrisCarini`) | |
# and thus, trying to set myself as a reviewer yields the below error message: | |
# | |
# "Error: Review cannot be requested from pull request author." | |
# | |
# REVIEWERS: | | |
# ChrisCarini | |
PR_LABELS: | | |
repo-file-sync | |
AUTO_MERGE_MERGE_METHOD: squash | |
CONFIG_PATH: sync.yml | |
GH_PAT: ${{ secrets.GH_PAT_REPO_WORKFLOW_SCOPE }} | |
- name: List PRs | |
run: | | |
echo "${STEPS__REPO_FILE_SYNC__OUTPUTS__PULL_REQUEST_URLS}" | jq . | |
env: | |
STEPS__REPO_FILE_SYNC__OUTPUTS__PULL_REQUEST_URLS: "${{ steps.repo-file-sync.outputs.pull_request_urls }}" | |
############################## | |
# SYNC REPO SETTINGS # | |
############################## | |
sync_repo_settings: | |
name: Repo Settings | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: | |
# JetBrains Plugins | |
- ChrisCarini/automatic-github-issue-navigation-configuration-jetbrains-plugin | |
- ChrisCarini/environment-variable-settings-summary-intellij-plugin | |
- ChrisCarini/example-loc-plugin-config-plugin | |
- ChrisCarini/git-push-reminder-jetbrains-plugin | |
- ChrisCarini/intellij-code-exfiltration | |
- ChrisCarini/intellij-notification-sample | |
- ChrisCarini/iris-jetbrains-plugin | |
- ChrisCarini/jetbrains-auto-power-saver | |
- ChrisCarini/jetbrains-sdk-cleaner | |
- ChrisCarini/loc-change-count-detector-jetbrains-plugin | |
- ChrisCarini/logshipper-intellij-plugin | |
- ChrisCarini/sample-intellij-plugin | |
# Misc Repos | |
- ChrisCarini/github-repo-files-sync | |
- ChrisCarini/ieee-csdl-downloader | |
- ChrisCarini/jetbrains-ide-release-dates | |
- ChrisCarini/repo-file-sync-action | |
- ChrisCarini/shodan-exposure-box | |
- ChrisCarini/trivia-box | |
- ChrisCarini/unsafe-curl.chriscarini.com | |
- ChrisCarini/upptime | |
# Private Repos | |
- ChrisCarini/fitbit-data-extract | |
steps: | |
- name: Sync Repo Settings - ${{ matrix.repo }} | |
run: | | |
gh api /repos/${{ matrix.repo }} \ | |
--method PATCH \ | |
-H "Accept: application/vnd.github+json" \ | |
-F has_issues=true \ | |
-F has_projects=true \ | |
-F has_wiki=$([[ "$(gh api /repos/${{ matrix.repo }} --jq '.private')" = true ]] && echo "false" || echo "true") \ | |
-F allow_merge_commit=false \ | |
-F allow_squash_merge=true \ | |
-F allow_rebase_merge=false \ | |
-F allow_auto_merge=$([[ "$(gh api /repos/${{ matrix.repo }} --jq '.private')" = true ]] && echo "false" || echo "true") \ | |
-F delete_branch_on_merge=true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_PAT_REPO_SCOPE }} | |
sync_repo_branch_protection_rules: | |
name: Branch Protection | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: | |
- ChrisCarini/automatic-github-issue-navigation-configuration-jetbrains-plugin | |
- ChrisCarini/environment-variable-settings-summary-intellij-plugin | |
- ChrisCarini/example-loc-plugin-config-plugin | |
- ChrisCarini/git-push-reminder-jetbrains-plugin | |
- ChrisCarini/intellij-code-exfiltration | |
- ChrisCarini/intellij-notification-sample | |
- ChrisCarini/iris-jetbrains-plugin | |
- ChrisCarini/jetbrains-auto-power-saver | |
- ChrisCarini/jetbrains-sdk-cleaner | |
- ChrisCarini/loc-change-count-detector-jetbrains-plugin | |
- ChrisCarini/logshipper-intellij-plugin | |
- ChrisCarini/sample-intellij-plugin | |
steps: | |
- name: Branch Protection Rules - JetBrains Plugin - ${{ matrix.repo }} | |
run: | | |
cat <<EOM | gh api -X PUT --input - /repos/${{ matrix.repo }}/branches/main/protection | |
{ | |
"required_pull_request_reviews": null, | |
"required_status_checks": { | |
"strict": true, | |
"checks": [ | |
{"app_id": 15368, "context": "Build"}, | |
{"app_id": 15368, "context": "Gradle Wrapper"}, | |
{"app_id": 15368, "context": "Ensure plugin compatibility against targeted platform version & the latest EAP snapshot for both ..."}, | |
{"app_id": 15368, "context": "Test"} | |
] | |
}, | |
"required_conversation_resolution": true, | |
"required_signatures": false, | |
"required_linear_history": true, | |
"lock_branch": false, | |
"enforce_admins": true, | |
"allow_force_pushes": false, | |
"allow_deletions": false, | |
"restrictions": null, | |
"block_creations": false, | |
"allow_fork_syncing": false | |
} | |
EOM | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_PAT_REPO_SCOPE }} | |
############################# | |
# SYNC REPO SECRETS # | |
############################# | |
sync_repo_secrets: | |
name: Repo Secrets | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: | |
# JetBrains Plugins | |
- ChrisCarini/automatic-github-issue-navigation-configuration-jetbrains-plugin | |
- ChrisCarini/environment-variable-settings-summary-intellij-plugin | |
- ChrisCarini/example-loc-plugin-config-plugin | |
- ChrisCarini/git-push-reminder-jetbrains-plugin | |
- ChrisCarini/intellij-code-exfiltration | |
- ChrisCarini/intellij-notification-sample | |
- ChrisCarini/iris-jetbrains-plugin | |
- ChrisCarini/jetbrains-auto-power-saver | |
- ChrisCarini/jetbrains-error-utils | |
- ChrisCarini/jetbrains-sdk-cleaner | |
- ChrisCarini/loc-change-count-detector-jetbrains-plugin | |
- ChrisCarini/logshipper-intellij-plugin | |
- ChrisCarini/sample-intellij-plugin | |
steps: | |
- name: Sync Secrets to [${{ matrix.repo }}] | |
run: | | |
cat <<EOF > .env | |
CERTIFICATE_CHAIN="${{ secrets.CERTIFICATE_CHAIN }}" | |
GH_PAT_REPO_SCOPE_FOR_ACTIONS_THAT_OPEN_PRS="${{ secrets.GH_PAT_REPO_SCOPE_FOR_ACTIONS_THAT_OPEN_PRS }}" | |
GH_PAT_REPO_WORKFLOW_SCOPE="${{ secrets.GH_PAT_REPO_WORKFLOW_SCOPE }}" | |
PAT_TOKEN_FOR_IJ_UPDATE_ACTION="${{ secrets.PAT_TOKEN_FOR_IJ_UPDATE_ACTION }}" | |
PRIVATE_KEY="${{ secrets.PRIVATE_KEY }}" | |
PRIVATE_KEY_PASSWORD="${{ secrets.PRIVATE_KEY_PASSWORD }}" | |
PUBLISH_TOKEN="${{ secrets.PUBLISH_TOKEN }}" | |
EOF | |
gh secret set --repo ${{ matrix.repo }} --env-file .env | |
rm .env | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_PAT_REPO_SCOPE }} |