All Projects β†’ probot β†’ Settings

probot / Settings

Licence: isc
Pull Requests for GitHub repository settings

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Settings

Weekly Digest
Weekly summary of activity on your GitHub repository πŸ“†
Stars: ✭ 199 (-61.28%)
Mutual labels:  github-app, probot-app
Mergeable
πŸ€– All the missing GitHub automation πŸ™‚ πŸ™Œ
Stars: ✭ 475 (-7.59%)
Mutual labels:  github-app, probot-app
scalafmt-probot
πŸ€–Github bot for checking code formatting with scalafmt
Stars: ✭ 15 (-97.08%)
Mutual labels:  github-app, probot-app
github-task-list-completed
GitHub - Task list completed PR check
Stars: ✭ 95 (-81.52%)
Mutual labels:  github-app, probot-app
boring-cyborg
πŸ€– A Github bot to automatically label PRs, issues and perform all the boring operations that you don't want to do.
Stars: ✭ 66 (-87.16%)
Mutual labels:  github-app, probot-app
Dco
GitHub App that enforces the Developer Certificate of Origin (DCO) on Pull Requests
Stars: ✭ 188 (-63.42%)
Mutual labels:  github-app, probot-app
new-pr-welcome
Welcome users when they open their first PR in your repository
Stars: ✭ 20 (-96.11%)
Mutual labels:  github-app, probot-app
Autorebase
🐼 GitHub App to make the Rebase Workflow enjoyable and keep master always green
Stars: ✭ 155 (-69.84%)
Mutual labels:  github-app, probot-app
linter-alex
πŸ“Sensitive, considerate writing before you merge your Pull Requests
Stars: ✭ 67 (-86.96%)
Mutual labels:  github-app, probot-app
issuelabeler
A GitHub bot to label issues automatically based on title and body against list of defined labels. System status (https://status.verticalaxisbd.com/)
Stars: ✭ 23 (-95.53%)
Mutual labels:  github-app, probot-app
Project Bot
Automatically add and move Issues/Pull Requests on a Project board
Stars: ✭ 290 (-43.58%)
Mutual labels:  github-app, probot-app
react-preview
a GitHub App built with probot that generates preview links for react based projects.
Stars: ✭ 14 (-97.28%)
Mutual labels:  github-app, probot-app
Gh Polls Bot
Automatically create polls in GitHub issues.
Stars: ✭ 187 (-63.62%)
Mutual labels:  github-app, probot-app
app
GitHub App that enforces the Developer Certificate of Origin (DCO) on Pull Requests
Stars: ✭ 236 (-54.09%)
Mutual labels:  github-app, probot-app
Commitlint Bot
[NOT MAINTAINED] use https://github.com/apps/semantic-pull-requests
Stars: ✭ 157 (-69.46%)
Mutual labels:  github-app, probot-app
yamburger
YAML syntax got you down? That's a YAMBURGER!
Stars: ✭ 32 (-93.77%)
Mutual labels:  github-app, probot-app
Release Drafter
Drafts your next release notes as pull requests are merged into master.
Stars: ✭ 2,119 (+312.26%)
Mutual labels:  github-app, probot-app
Auto Assign
πŸ€– A Probot app that adds reviewers to pull requests when pull requests are opened.
Stars: ✭ 140 (-72.76%)
Mutual labels:  github-app, probot-app
branch-switcher
a GitHub bot that switches the base branch of pull requests to the preferred branch
Stars: ✭ 15 (-97.08%)
Mutual labels:  github-app, probot-app
triage-new-issues
A GitHub App, built with Probot that adds `triage` label to newly-created issues which don't have labels
Stars: ✭ 23 (-95.53%)
Mutual labels:  github-app, probot-app

GitHub Settings

Node CI Workflow Status Dependabot

This GitHub App syncs repository settings defined in .github/settings.yml to GitHub, enabling Pull Requests for repository settings.

Usage

  1. Install the app.
  2. Create a .github/settings.yml file in your repository. Changes to this file on the default branch will be synced to GitHub.

All top-level settings are optional. Some plugins do have required fields.

# These settings are synced to GitHub by https://probot.github.io/apps/settings/

repository:
  # See https://developer.github.com/v3/repos/#edit for all available settings.

  # The name of the repository. Changing this will rename the repository
  name: repo-name

  # A short description of the repository that will show up on GitHub
  description: description of repo

  # A URL with more information about the repository
  homepage: https://example.github.io/

  # A comma-separated list of topics to set on the repository
  topics: github, probot

  # Either `true` to make the repository private, or `false` to make it public.
  private: false

  # Either `true` to enable issues for this repository, `false` to disable them.
  has_issues: true

  # Either `true` to enable projects for this repository, or `false` to disable them.
  # If projects are disabled for the organization, passing `true` will cause an API error.
  has_projects: true

  # Either `true` to enable the wiki for this repository, `false` to disable it.
  has_wiki: true

  # Either `true` to enable downloads for this repository, `false` to disable them.
  has_downloads: true

  # Updates the default branch for this repository.
  default_branch: master

  # Either `true` to allow squash-merging pull requests, or `false` to prevent
  # squash-merging.
  allow_squash_merge: true

  # Either `true` to allow merging pull requests with a merge commit, or `false`
  # to prevent merging pull requests with merge commits.
  allow_merge_commit: true

  # Either `true` to allow rebase-merging pull requests, or `false` to prevent
  # rebase-merging.
  allow_rebase_merge: true

  # Either `true` to enable automated security fixes, or `false` to disable
  # automated security fixes.
  enable_automated_security_fixes: true

  # Either `true` to enable vulnerability alerts, or `false` to disable
  # vulnerability alerts.
  enable_vulnerability_alerts: true

# Labels: define labels for Issues and Pull Requests
labels:
  - name: bug
    color: CC0000
    description: An issue with the system πŸ›.

  - name: feature
    # If including a `#`, make sure to wrap it with quotes!
    color: '#336699'
    description: New functionality.

  - name: first-timers-only
    # include the old name to rename an existing label
    oldname: Help Wanted

# Milestones: define milestones for Issues and Pull Requests
milestones:
  - title: milestone-title
    description: milestone-description
    # The state of the milestone. Either `open` or `closed`
    state: open

# Collaborators: give specific users access to this repository.
# See https://developer.github.com/v3/repos/collaborators/#add-user-as-a-collaborator for available options
collaborators:
  # - username: bkeepers
  #   permission: push
  # - username: hubot
  #   permission: pull

  # Note: `permission` is only valid on organization-owned repositories.
  # The permission to grant the collaborator. Can be one of:
  # * `pull` - can pull, but not push to or administer this repository.
  # * `push` - can pull and push, but not administer this repository.
  # * `admin` - can pull, push and administer this repository.
  # * `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions.
  # * `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access.

# See https://developer.github.com/v3/teams/#add-or-update-team-repository for available options
teams:
  - name: core
    # The permission to grant the team. Can be one of:
    # * `pull` - can pull, but not push to or administer this repository.
    # * `push` - can pull and push, but not administer this repository.
    # * `admin` - can pull, push and administer this repository.
    # * `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions.
    # * `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access.
    permission: admin
  - name: docs
    permission: push

branches:
  - name: master
    # https://developer.github.com/v3/repos/branches/#update-branch-protection
    # Branch Protection settings. Set to null to disable
    protection:
      # Required. Require at least one approving review on a pull request, before merging. Set to null to disable.
      required_pull_request_reviews:
        # The number of approvals required. (1-6)
        required_approving_review_count: 1
        # Dismiss approved reviews automatically when a new commit is pushed.
        dismiss_stale_reviews: true
        # Blocks merge until code owners have reviewed.
        require_code_owner_reviews: true
        # Specify which users and teams can dismiss pull request reviews. Pass an empty dismissal_restrictions object to disable. User and team dismissal_restrictions are only available for organization-owned repositories. Omit this parameter for personal repositories.
        dismissal_restrictions:
          users: []
          teams: []
      # Required. Require status checks to pass before merging. Set to null to disable
      required_status_checks:
        # Required. Require branches to be up to date before merging.
        strict: true
        # Required. The list of status checks to require in order to merge into this branch
        contexts: []
      # Required. Enforce all configured restrictions for administrators. Set to true to enforce required status checks for repository administrators. Set to null to disable.
      enforce_admins: true
      # Prevent merge commits from being pushed to matching branches
      required_linear_history: true
      # Required. Restrict who can push to this branch. Team and user restrictions are only available for organization-owned repositories. Set to null to disable.
      restrictions:
        apps: []
        users: []
        teams: []

Notes

  1. Label color can also start with #, e.g. color: '#F341B2'. Make sure to wrap it with quotes!
  2. Each top-level element under branch protection must be filled (eg: required_pull_request_reviews, required_status_checks, enforce_admins and restrictions). If you don't want to use one of them you must set it to null (see comments in the example above). Otherwise, none of the settings will be applied.

Inheritance

This app uses probot-config. This means you can inherit settings from another repo, and only override what you want to change.

Individual settings in the arrays listed under labels, teams (once it is supported) and branches will be merged with the base repo if the name of an element in the array matches the name of an element in the corresponding array in the base repo. A possible future enhancement would be to make that work for the other settings arrays based on username, or title. This is not currently supported.

To further clarify: Inheritance within the Protected Branches plugin allows you to override specific settings per branch. For example, your .github repo may set default protection on the master branch. You can then include master in your branches array, and only override the required_approving_review_count. Alternatively, you might only have a branch like develop in your branches array, and would still get master protection from your base repo.

Security Implications

WARNING: Note that this app inherently escalates anyone with push permissions to the admin role, since they can push config settings to the master branch, which will be synced. In a future, we may add restrictions to allow changes to the config file to be merged only by specific people/teams, or those with admin access (via a combination of protected branches, required statuses, and branch restrictions). Until then, use caution when merging PRs and adding collaborators.

Until restrictions are added in this app, one way to preserve admin/push permissions is to utilize the GitHub CodeOwners feature to set one or more administrative users as the code owner of the .github/settings.yml file, and turn on "require code owner review" for the master branch. This does have the side effect of requiring code owner review for the entire branch, but helps preserve permission levels.

Deployment

See docs/deploy.md if you would like to run your own instance of this plugin.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].