diff --git a/.github/auto_request_review.yml b/.github/auto_request_review.yml index 82fab00..24c4a5e 100644 --- a/.github/auto_request_review.yml +++ b/.github/auto_request_review.yml @@ -1,22 +1,17 @@ -# More info at https://github.com/necojackarc/auto-request-review +# DO NOT EDIT DIRECTLY +# EDIT TEMPLATE IN ROLLKIT/.GITHUB REPO reviewers: - # The default reviewers defaults: - # Example of Github Team. Github team must have write access to repo. - # NOTE: This assigned the team itself, not members of the team. - # - team:engineering # This is the Github Team - - MSevey - + - rollkit + groups: + rollkit: + - team:core files: ".github/**": - MSevey - + - rollkit options: ignore_draft: true ignored_keywords: - - DO NOT REVIEW - enable_group_assignment: false - - # Randomly pick reviewers up to this number. - # Do not set this option if you'd like to assign all matching reviewers. - number_of_reviewers: 2 + - WIP + number_of_reviewers: 3 diff --git a/.github/dependabot.njk b/.github/dependabot.njk new file mode 100644 index 0000000..cc8651a --- /dev/null +++ b/.github/dependabot.njk @@ -0,0 +1,20 @@ +# DO NOT EDIT DIRECTLY +# EDIT TEMPLATE IN ROLLKIT/.GITHUB REPO +version: 2 +updates: +{% for dep in deps %} + - package-ecosystem: {{dep.ecosystem}} + directory: "/" + schedule: + interval: weekly + open-pull-requests-limit: 10 + groups: + patch-updates: + applies-to: version-updates + update-types: + - "patch" + - "minor" + commit-message: + include: "scope" + prefix: "build" +{% endfor %} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index decb467..1eaf998 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -11,7 +11,6 @@ updates: update-types: - "patch" - "minor" - # Including this due to certain github action steps installing via npm - package-ecosystem: npm directory: "/" schedule: diff --git a/.github/sync.yml b/.github/sync.yml new file mode 100644 index 0000000..6422ebf --- /dev/null +++ b/.github/sync.yml @@ -0,0 +1,108 @@ +# Use individual repo settings for files that differ +rollkit/.github: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "docker"}, {ecosystem: "github-actions"}, {ecosystem: "npm"}] +rollkit/astria-sequencer: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/avail-da: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/based-sequencer: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "docker"}, {ecosystem: "github-actions"}] +rollkit/bitcoin-da: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/centralized-sequencer: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "docker"}, {ecosystem: "github-actions"}] +rollkit/cosmos-sdk-starter: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/docs: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "npm"}, {ecosystem: "github-actions"}] +rollkit/go-da: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/go-execution: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/go-execution-abci: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/go-execution-evm: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/go-sequencing: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] +rollkit/local-da: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "docker"}, {ecosystem: "github-actions"}] +rollkit/rollkit: + # Listing additional files here since the rollkit repo doesn't currently use the semantic release action + - .github/workflows/approve_merge_bots.yml + - .github/workflows/semantic_pull_request.yml + - .github/auto_request_review.yml + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "docker"}, {ecosystem: "github-actions"}] +rollkit/template-da-repo: + - source: .github/dependabot.njk + dest: .github/dependabot.yml + template: + deps: [{ecosystem: "gomod"}, {ecosystem: "github-actions"}] + +# Use groups for common files that have no differences +group: + repos: | + rollkit/astria-sequencer + rollkit/avail-da + rollkit/based-sequencer + rollkit/bitcoin-da + rollkit/centralized-sequencer + rollkit/cosmos-sdk-starter + rollkit/docs + rollkit/go-da + rollkit/go-execution + rollkit/go-execution-abci + rollkit/go-execution-evm + rollkit/go-sequencing + rollkit/local-da + rollkit/template-da-repo + files: + - .github/workflows/approve_merge_bots.yml + - .github/workflows/semantic_pull_request.yml + - .github/workflows/semantic_release.yml + - .github/auto_request_review.yml diff --git a/.github/workflows/approve_merge_bots.yml b/.github/workflows/approve_merge_bots.yml new file mode 100644 index 0000000..77e05b9 --- /dev/null +++ b/.github/workflows/approve_merge_bots.yml @@ -0,0 +1,48 @@ +# DO NOT EDIT DIRECTLY +# EDIT TEMPLATE IN ROLLKIT/.GITHUB REPO +name: Approve and Merge Bot PRs +on: + pull_request: + +jobs: + dependabot: + name: "Approve and Merge Dependabot PRs" + if: ${{ github.actor == 'dependabot[bot]' }} + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - uses: actions/checkout@v4 + - name: RollkitBot Approval + run: | + gh auth login --with-token <<< "$PAT" + gh pr review --approve "$PR_URL" + gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + PAT: ${{secrets.PR_APPROVE_PAT_RB}} + - name: Sevey Approval + run: | + gh auth login --with-token <<< "$PAT" + gh pr review --approve "$PR_URL" + gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + PAT: ${{secrets.PR_APPROVE_PAT_SEVEY}} + + rollkitbot: + name: "Approve and Merge RollkitBot PRs" + if: ${{ github.actor == 'RollkitBot' && contains(github.event.pull_request.labels.*.name, 'action sync') }} + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - uses: actions/checkout@v4 + - name: Sevey Approval + run: | + gh auth login --with-token <<< "$PAT" + gh pr review --approve "$PR_URL" + gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + PAT: ${{secrets.PR_APPROVE_PAT_SEVEY}} diff --git a/.github/workflows/semantic_pull_request.yml b/.github/workflows/semantic_pull_request.yml index e11fe30..cb26def 100644 --- a/.github/workflows/semantic_pull_request.yml +++ b/.github/workflows/semantic_pull_request.yml @@ -1,3 +1,5 @@ +# DO NOT EDIT DIRECTLY +# EDIT TEMPLATE IN ROLLKIT/.GITHUB REPO name: Semantic Pull Request on: diff --git a/.github/workflows/semantic_release.yml b/.github/workflows/semantic_release.yml index c5f1d5d..949a997 100644 --- a/.github/workflows/semantic_release.yml +++ b/.github/workflows/semantic_release.yml @@ -1,3 +1,5 @@ +# DO NOT EDIT DIRECTLY +# EDIT TEMPLATE IN ROLLKIT/.GITHUB REPO name: Semantic Release on: diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml new file mode 100644 index 0000000..59d9c89 --- /dev/null +++ b/.github/workflows/sync.yml @@ -0,0 +1,19 @@ +name: Sync Files +on: + push: + branches: + - main + workflow_dispatch: +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Run GitHub File Sync + uses: BetaHuhn/repo-file-sync-action@v1 + with: + GH_PAT: ${{ secrets.FILE_SYNC_PAT }} + PR_LABELS: "action sync" + COMMIT_PREFIX: "chore: " + COMMIT_EACH_FILE: false