All Projects → greenkeeperio → Greenkeeper

greenkeeperio / Greenkeeper

Licence: apache-2.0
🤖 🌴 Real-time automated dependency updates for npm and GitHub

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Greenkeeper

Renovate
Universal dependency update tool that fits into your workflows.
Stars: ✭ 6,700 (+328.39%)
Mutual labels:  dependencies, npm, dependency-manager
merge-confidence
The home of WhiteSource's Merge Confidence feature, for Renovate and WhiteSource Remediate
Stars: ✭ 41 (-97.38%)
Mutual labels:  dependency-manager, dependencies
sbt-hackling
Prototype of the Libling concept. Libling is a way to add source dependencies to your sbt project.
Stars: ✭ 13 (-99.17%)
Mutual labels:  dependency-manager, dependencies
Npm Consider
Check package dependencies before installing it
Stars: ✭ 386 (-75.32%)
Mutual labels:  dependencies, npm
Protodep
Collect necessary .proto files (Protocol Buffers IDL) and manage dependencies
Stars: ✭ 167 (-89.32%)
Mutual labels:  dependencies, dependency-manager
Yalc
Work with yarn/npm packages locally like a boss.
Stars: ✭ 3,155 (+101.73%)
Mutual labels:  dependencies, npm
Syncpack
Manage multiple package.json files, such as in Lerna Monorepos and Yarn/Pnpm Workspaces
Stars: ✭ 356 (-77.24%)
Mutual labels:  dependencies, npm
Athens
A Go module datastore and proxy
Stars: ✭ 3,736 (+138.87%)
Mutual labels:  dependencies, dependency-manager
Npm Gui
Graphic tool for managing javascript project dependencies - in a friendly way.
Stars: ✭ 454 (-70.97%)
Mutual labels:  dependencies, npm
Patch Package
Fix broken node modules instantly 🏃🏽‍♀️💨
Stars: ✭ 6,062 (+287.6%)
Mutual labels:  dependencies, dependency-manager
Foxy
A fast, reliable, and secure NPM/Yarn bridge for Composer
Stars: ✭ 137 (-91.24%)
Mutual labels:  npm, dependency-manager
Dependency Land
Find the npm modules that depend on a specific module and semver range.
Stars: ✭ 34 (-97.83%)
Mutual labels:  dependencies, npm
Pnpm
Fast, disk space efficient package manager -- 快速的,节省磁盘空间的包管理工具
Stars: ✭ 14,219 (+809.14%)
Mutual labels:  npm, dependency-manager
upgreat
CLI for a painless way to upgrade your package.json dependencies!
Stars: ✭ 47 (-96.99%)
Mutual labels:  dependency-manager, dependencies
Dependency Check
checks which modules you have used in your code and then makes sure they are listed as dependencies in your package.json
Stars: ✭ 435 (-72.19%)
Mutual labels:  dependencies, npm
Cpm.cmake
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
Stars: ✭ 560 (-64.19%)
Mutual labels:  dependencies, dependency-manager
Dependency spy
Find known vulnerabilities in your dependencies
Stars: ✭ 87 (-94.44%)
Mutual labels:  dependencies, npm
Discord.js Musicbot Addon
This DOES NOT WORK any more. This repo only serves as an archive for is anyone wants to pickup my work. You may still join the discord however.
Stars: ✭ 109 (-93.03%)
Mutual labels:  npm
Sdk Js
Directus JS SDK — JavaScript Software Development Kit for Node and Browser
Stars: ✭ 117 (-92.52%)
Mutual labels:  npm
Cheatsheets
A curated list of everything I look up more than twice
Stars: ✭ 109 (-93.03%)
Mutual labels:  npm

☝️ Important announcement: Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! New installations are no longer possible. Find out how to migrate to Snyk and more at greenkeeper.io


Greenkeeper
Greenkeeper brings you safety & consistency with automatic updates and **real-time monitoring for npm dependencies**. Let a bot send you informative and actionable issues so you can easily keep your software up to date and in working condition.
Join over **10000 projects on GitHub that trust Greenkeeper** to warn them before dependency updates break their builds.
Who else is using it? Anyone I know?

Well, we’re helping out these fine folks, for example:

And many thousands more!

Tell me more about how Greenkeeper works, please!

No problem! Greenkeeper sits between npm and GitHub, observing all of the modules you depend on. When they get updated, your project gets a new branch with that update. Your CI tests kick in, and we watch them to see whether they pass.

Based on the test results and your current version definitions we will open up clear, actionable issues for you. If there’s nothing for you to do, we won’t nag you, but if a dependency does break your software, you’ll know immediately, and can get started on fixing the problem.

And if a you’ve got stuff to do, we understand. Sometimes you simply have to make a pragmatic trade-off between fixing your build for the breaking update or just pinning the working version so you can get back to it later. Our bot can respect that, and will let you pin the last working version of the dependency in the issue thread:

Screenshot - Pinning dependencies
Choosing repositories
I found a critical bug, who do I talk to?

If you’ve discovered a security-related bug in Greenkeeper or related services, please disclose it to us confidentially by emailing us at [email protected]

If you find any, don’t share security vulnerabilities publicly (in a GitHub issue for example), always keep these conversations with us confidential so we have a chance to get things fixed before anyone exploits the bug.


Jobs Service Documentation

This is the core service of Greenkeeper. It takes care of the dependency update logic and the related pull request/issue creation.

Job Types

🚨🚧 The following documentation might be outdated. We are currently working on improving this section.

github-event

The github-event job gets created by our hooks service. It's answering all incoming webhooks from GitHub and creates this job with the full payload from github as job.data. It only adds one additional type property to it with the name of the webhook event.

github-event:integration_installation

Depending on action a new entry is added/removed to/from the installations database. All repositories are requested from GitHub to sync them with our database. All repositories with a package.json receive their initial pull request (create-initial-branch).

github-event:integration_installation_repositories

Depending on action entries are added/removed to/from the repositories database. Added repositories with a package.json receive their initial pull request (create-initial-branch).

github-event:push

The package.json contents are retrieved, parsed and synced to our database.

github-event:status

If the status affects a Greenkeeper pull_request the results are recorded in our repositories database with all metadata.

If the status of a branch is failing, it will create a new branch to pin to the last working version create-pin-branch. When the status for that pin branch is coming, an issue is created with create-issue. If that issue already exists and it's still failing it will comment comment-issue, but if it's succeeding it will close that issue with close-issue.

github-event:pull_request

When an initial Greenkeeper pull request is merged the repository gets enabled (enable-repository).

When a Greenkeeper pull request is merged older/included pull requests for the same dependency are closed (delete-older-branches). Unmergeable Greenkeeper pull requests get "rebased" (rebase-unmergeable-branches).

registry-change

The registry-change job gets created by our changes service. It's listening for changes from npm and creates this job with the full payload from npm as job.data.

It figures out whether the change actually contains a new version, and on which dist-tag. It stores the versions in our npm database.

It figures out who is depending on the dependency that changed and schedules branch creation jobs for enabled ones. (create-version-branch)

create-pin-branch

Creates a branch for a dependency, pinning to the version before.

create-issue

Creates an issue with the information that a dependency is failing.

comment-issue

Comments to an issue that a dependency is still failing.

close-issue

Closes an issue because the dependency is no longer failing.

create-version-branch

Used to be package-bump with our oAuth App.

If there are no tests detected, or the update is outside of the version range triggers create-version-pr right away.

create-version-pr

Used to be package-send-pr with our oAuth App.

delete-branches

Deletes all branches related to a dependency which version is less or equal to the specified one.

create-initial-branch

Used to be package-pin with our oAuth App.

enable-repository

Used to happen inside webservice with our oAuth App.

delete-older-branches

Used to happen inside pull-request-close with our oAuth App.

rebase-unmergeable-branches

Used to happen inside pull-request-close with our oAuth App.

documents

installations

{
  _id: '8422',  // github account id
  installation: 10, // installation id,
  plan: 'free', // plan
  login: 'finnp', // github name
  type: 'User' // 'User' or 'Organization'
}

repositories

type: repository

{
    _id: '111', // String(repo.id),
    type: 'repository',
    enabled: false,
    accountId: '8422', // account id (key for installations)
    fullName: 'greenkeeperio/jobs',
    private: true,
    fork: false,
    hasIssues: true,
    packages: {
          'package.json': {}
    }
}

type:branch

{
  _id: '111:branch:deadbeefdeadbeef', // repositoryId + sha
  type: 'branch',
  purpose: undefined, // can be 'pin', otherwise not defined
  sha: 'deadbeefdeadbeef',
  base: 'master', // base branch
  head: 'greenkeeper-lodash-8.0.0', // branch name
  dependency: 'lodash',
  version: '8.0.0',
  oldVersion: '~7.0.0',
  oldVersionResolved: '7.0.0',
  dependencyType: 'devDependencies',
  repositoryId: '111',
  accountId: '8422',
  processed: true, // the branch was processed
  referenceDeleted: true, // the branch reference was deleted
  state: 'failure', // ci status
  updated_at: '2016-09-28T15:07:03.022Z'
}

type:pr

{
  _id: '111:pr:6', // repositoryId, PrId
  type: 'pr',
  repositoryId: 11,
  accountId: 42
  initial: true, // is this an initial pull request?
  number: 6,
  head: 'greenkeeper-lodash-8.0.0', // branch name
  state: 'open', // 'closed'
  merged: true,
  updated_at, '2016-09-28T15:07:03.022Z'
}

type:issue

{
  _id: '111:issue:6',
  type: 'issue',
  repositoryId: '111',
  dependency: 'lodash',
  version: '1.0.0',
  number: 6,
  state: 'open',
  updated_at
}
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].