Skip to content

InnerSource Project linter / automated project readiness checks #79

@dellagustin

Description

@dellagustin

At SAP we are working on an InnerSource project linter, the idea behind this task is to surface the concept and checks we are using that would fit InnerSource in general.

Checks

Here we collect possible checks that a linter could/should automate:

  • README.md and its structure
  • Community health files (e.g. CONTRIBUTING.md, SUPPORT.md, CODE_OF_CONDUCT.md)
  • SECURITY.md
  • CHANGLOG.md (https://changelog.md/)
  • repository topics (e.g. SAP uses innersource to indicate a repo represents and InnerSource project/component)
  • CODEOWNERS, branch protection rules
  • Repository description
  • Number of maintainers (e.g. not too many, not to few)
  • Machine readable SLAs to be enforced
    • This is an idea, it probably already exits, but if not, might be worth looking into it
    • A metadata file (e.g. sla.yml) or section into existing metadata files, that describe the project's SLA (e.g time to first reply, time to review PR), etc...

Current status at SAP

SAP has built an in-house solution (Java). It works in two ways:

  1. A GitHub App that projects can install, it will then run periodic checks on their repositories and create a "Dashboard Issue" (inspired on Renovate), to show the results of the checks and how to solve them, including the automated proposal of solutions (e.g., creating a Draft PR with contribution guidelines based on templates).
  2. Scanning all repositories that have the topics innersource or inner-source and running a "basic lint" (checks that can be done without the installation of the app), and creating an issue with the results + recommendation to install the app

Number 1 did not have a lot of adoption yet.
Number 2 is not yet used productively but it will launch soon and it consider it an "automated roll out" to leverage adoption as in 1.

The Status as of November 2024 was presented in the InnerSource Summit 2024 with the presentation Repository Linter@SAP.

Related projects and Existing solutions

Metadata

Metadata

Labels

Type

No type

Projects

Status

Internal

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions