My Workflow
The Action: code-owner-self-merge
Using the CODEOWNERS format (a set of globs, then a set of GitHub usernames) you can define areas in a codebase which gives people the right to merge PRs which just affect their spaces.
Submission Category:
Maintainer Must-Haves
Yaml File or Link to Code
orta / code-owner-self-merge
A GitHub Action for letting CODEOWNERS merge PRs via green PR reviews
A GitHub action that lets code-owners merge PRs via a comment.
This action uses the standardized structure of a CODEOWNERS file to handle the access controls.
A simple example
So, with this file at: .github/CODEOWNERS
:
README.md @orta
If a PR contained only a change to the README.md
- this action would say that "@orta
has the ability to merge by commenting 'LGTM'".
Then, when/if this happens the GitHub Action will merge for you.
A real-world example
.github/CODEOWNERS
:
# Collaborators for Japanese Translation of the Website
packages/playground-examples/copy/ja/** @sasurau4
@quramy
@naturalclar
@Takepepe @orta
packages/tsconfig-reference/copy/ja/** @sasurau4
@quramy
@naturalclar
@Takepepe @orta
packages/typescriptlang-org/src/copy/ja/** @sasurau4
@quramy
@naturalclar
@Takepepe @orta
packages/documentation/copy/ja/** @sasurau4
@quramy
@naturalclar
@Takepepe @orta
This allows any of @sasurau4
, @Quramy
, @Naturalclar
, @Takepepe
or @orta
to merge PRs which affect their areas of the translation process in the TypeScript Website repo.
Setting It Up
You want a…
name: Codeowners merging
on:
pull_request_target:
issue_comment: { types: created }
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run Codeowners merge check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: orta/code-owner-self-merge@v1
Additional Resources / Info
This is being used in the new TypeScript Website, to give translators access to merge PRs to their language: https://github.com/microsoft/TypeScript-Website/pull/899
Top comments (1)
Wow, that is a fascinating action.