Skip to content

zbeekman/EditorConfig-Action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

EditorConfig-Action

action on GH marketplace Β  gpg on keybase.io Β  GitHub release Β  package.json deps Β  GitHub

πŸ”Ž A GitHub Action to check, enforce & fix EditorConfig style violations

blinking octocat squar-heart EditorConfig logo

Table of Contents

Table of Contents

What is EditorConfig?

From the EditorConfig website:

EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs. The EditorConfig project consists of a file format for defining coding styles and a collection of text editor plugins that enable editors to read the file format and adhere to defined styles. EditorConfig files are easily readable and they work nicely with version control systems.

Checkout this project's .editorconfig file here. However, to use this GitHub Action, your project should define your own .editorconfig.

This project uses eclint by Jed Mao (@jedmao) to lint your project. eclint is also released under an MIT license.

Using EditorConfig-Action with Your Project

Visit the EditorConfig-Action GitHub Marketplace page to get started. Use a tagged release or the master version of this GitHub action by creating your own .github/main.workflow file and adding a on = "push" and/or on = "pull_request" workflow that resolves an action uses = zbeekman/EditorConfig-Action[@ref]. Please see [the GitHub Actions documentation] for additional information.

Example Workflows

Check Conformance of Pushed Commits with .editorconfig

To ensure your repository does not violate your project's .editorconfig file, you may use the following workflow:

workflow "PR Audit" {
  on = "pull_request"
  resolves = ["EC Audit PR"]
}

action "EC Audit PR" {
  uses = "zbeekman/[email protected]"
  # secrets = ["GITHUB_TOKEN"] # Will be needed for fixing errors
  env = {
    ALWAYS_LINT_ALL_FILES = "false" # This is the default
  }
}

workflow "Push Audit" {
  on = "push"
  resolves = ["EC Audit Push"]
}

action "EC Audit Push" {
  uses = "zbeekman/[email protected]"
  # secrets = ["GITHUB_TOKEN"] # Will be needed for fixing errors
  env = {
    EC_FIX_ERROR = "false" # not yet implemented
    ALWAYS_LINT_ALL_FILES = "true" # Might be slow for large repos
  }
}

If you omit the ALWAYS_LINT_ALL_FILES variable or it is set to false then only files changed in the pushed commits will be linted. If you explicitly set this to true then every file in the repository will be checked. Depending on the size of the repository, this may be a bad idea.

For protected branches, it is best to set the required action to be the one created with the on = "pull_request", e.g., "EC Audit Push" above, since PRs from forks will not trigger a local push event.

Features and Planed Features

Features currently in development or being considered for addition include:

  • Check only files touched by commits included in the current push
  • Always check all files
  • Pull Request linting (lint all files in pull request) and provide PR status
  • Automatically apply fixes using eclint fix
  • Ability to pass search patterns to git ls-files for enumerating files to check
  • Ability to override project .editorconfig or use without an .editorconfig via eclint's property override flags
  • Pass patterns of files to ignore

EditorConfig Resources

Other GitHub Actions from @zbeekman


star badge Β  zbeekman gh profile Β  zbeekman on twitter