{"id":21301722,"url":"https://github.com/funbox/face_control","last_synced_at":"2026-04-04T13:40:22.264Z","repository":{"id":28578620,"uuid":"32096534","full_name":"funbox/face_control","owner":"funbox","description":"Comment on problems in added lines of pull requests in Atlassian Bitbucket Server (formerly Stash)","archived":false,"fork":false,"pushed_at":"2020-10-26T19:51:56.000Z","size":83,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":11,"default_branch":"develop","last_synced_at":"2025-07-06T10:03:04.707Z","etag":null,"topics":["bitbucket-server","coffeelint","continuous-integration","rubocop","static-analysis"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/face_control","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funbox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-12T19:08:41.000Z","updated_at":"2024-02-23T18:18:27.000Z","dependencies_parsed_at":"2022-09-17T11:20:45.917Z","dependency_job_id":null,"html_url":"https://github.com/funbox/face_control","commit_stats":null,"previous_names":["vassilevsky/face_control"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/funbox/face_control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Fface_control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Fface_control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Fface_control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Fface_control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funbox","download_url":"https://codeload.github.com/funbox/face_control/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Fface_control/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263882260,"owners_count":23524459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitbucket-server","coffeelint","continuous-integration","rubocop","static-analysis"],"created_at":"2024-11-21T15:50:32.510Z","updated_at":"2026-04-04T13:40:22.217Z","avatar_url":"https://github.com/funbox.png","language":"Ruby","readme":"# Face Control\n\n[![Gem Version](https://img.shields.io/gem/v/face_control.svg)](https://rubygems.org/gems/face_control)\n[![Travis CI](https://img.shields.io/travis/com/funbox/face_control)](https://travis-ci.com/github/funbox/face_control)\n[![Coveralls](https://img.shields.io/coveralls/funbox/face_control.svg)](https://coveralls.io/github/funbox/face_control)\n\nRun static analysis of pull requests in [Bitbucket Server][] (formerly Stash)\nand comment on problems in added lines.\n\nCurrently supports [RuboCop][] and [CoffeeLint][] and also checks for\nTODOs and FIXMEs.\n\nInspired by [Hound][].\n\n## Installation\n\n```bash\ngem install face_control\n```\n\nYou also need to have CoffeeLint installed and available in `PATH`.\n\n## Usage\n\n```bash\nface-control \u003cproject\u003e \u003crepository\u003e \u003cpull_request_id\u003e\n```\n\nIt's natural to run this on a continuous integration server (see “[Example](#example)” below).\n\nIf you don't want to receive RuboCop comments with certain severity level,\npass the severity in the `--skip-severity` option like so:\n\n```bash\nface-control --skip-severity convention \u003cproject\u003e \u003crepository\u003e \u003cpull_request_id\u003e\n```\n\nInstead of `--skip-severity` you can use just `-S`.\n\nYou can also pass multiple severity levels as a comma-separated list:\n\n```bash\nface-control -S convention,refactor \u003cproject\u003e \u003crepository\u003e \u003cpull_request_id\u003e\n```\n\n`face-control` uses the same configuration file (`~/.stashconfig.yml`)\nas the official [Bitbucket Server Command Line Tools][]\nto connect to your Stash instance.\n\n## Example\n\nHere's a [Jenkins][] project setup as an example:\n\n_Source Code Management → Git → Repositories → Refspec:_\n\n```\n+refs/pull-requests/*:refs/remotes/origin/pull-requests/*\n```\n\nIt makes Jenkins fetch otherwise ignored Stash-created branches.\n\n_Source Code Management → Git → Branches to build → Branch Specifier:_\n\n```\norigin/pull-requests/*/merge\n```\n\nMerge results of open non-conflicting pull requests.\n\n_Build → Execute shell → Command:_\n\n```bash\nexport PULL_REQUEST_ID=`echo $GIT_BRANCH | cut -d / -f 3`\n\ngem install rubocop face_control\nnpm install -g coffeelint\n\nface-control \u003cproject\u003e \u003crepository\u003e $PULL_REQUEST_ID\n```\n\n## Etymology\n\n[Face control][] in Wikipedia.\n\n[![Sponsored by FunBox](https://funbox.ru/badges/sponsored_by_funbox_centered.svg)](https://funbox.ru)\n\n[Hound]: https://houndci.com\n[Bitbucket Server]: https://www.atlassian.com/software/bitbucket/server\n[Bitbucket Server Command Line Tools]: https://bitbucket.org/atlassian/bitbucket-server-cli\n[RuboCop]: http://batsov.com/rubocop/\n[CoffeeLint]: http://www.coffeelint.org\n[Jenkins]: http://jenkins-ci.org\n[Face control]: http://en.wikipedia.org/wiki/Face_control\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunbox%2Fface_control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunbox%2Fface_control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunbox%2Fface_control/lists"}