Reduce maintainer fatigue by automating GitHub

Overview

derek

Build Status OpenFaaS License: MIT Derek App

Derek's logo

Derek reduces fatigue for maintainers by automating governance and delegating permissions to your team and community.

Follow @derekapp on Twitter.

User guide / documentation

From the team that brought you OpenFaaS - Serverless Functions Made Simple.

Core features

All features are modular and can be enabled/disabled as required:

  • Generate changelogs for releases with PRs merged and commits added
  • Let designated non-admin users manage Issues and PRs by commenting Derek <command> or /command
  • Enforce Developer Certificate of Origin (DCO) checking (optional)
  • Automatically label/flag PRs without a Description
  • Label PRs from first-time contributors
  • Detect spam PRs (from hacktoberfest)
  • Automatically close PRs during hacktoberfest from first-time contributors

For the managed service the cost is 25USD per month. You will need to become an OpenFaaS GitHub Sponsor to gain access to the managed service. The price covers hosting, management and maintenance of the service.

Built for developers by developers

Sponsor this project

User guide

Find out what Derek can do you for your project, community and team including all available commands and configuration options

Read the user guide

Start using Derek today

Get started here: Onboarding guide

How do I work?

I'm designed to be installed as a GitHub App, but don't worry - I don't need a lot of permissions. Just access to issues and Pull Requests will do.

I'm not a long-running daemon.. I'd get bored that way. I work with webhooks - so deploy me to a Serverless platform like OpenFaaS and forget about me. Just apply oil from time to time.

This is me in action with the DCO-checking feature. If I find a commit that isn't signed off then I'll let the contributor know in a comment. Normally they edit their commits and re-push within a few minutes after re-reading the message.

Inspiration for Derek

The idea for a bot that could comment on issues or respond to activity is from the docker/docker or Moby project's bot called Poule. It's a much more complex long-running daemon which uses Personal Access Tokens (so needs to run as a full GitHub login). Derek is much simpler (so hackable) and can be installed with granular permissions.

Live demo here

Our users

Some of our users include:

Backlog:

  • Derek as a managed GitHub App (SaaS)
  • Lock thread
  • Edit title of Issue/PR
  • Toggle the DCO-feature for those who don't need compliance
  • Show help messages such as how to join Slack or asking for a rebase via Derek message
  • Automate release notes based upon PRs closed
  • Add each commit to release notes

Future work:

  • Add merge feature based upon policy (in-progress)
  • Caching of customers / .DEREK.yml file
  • Observability of GitHub API Token rate limit
  • Add roles & actions
  • PR target branch checking (i.e. no PRs from master to master)

Maintainers and contributors

There are over a dozen contributors to Derek, but the following people have made the most impact.

Maintainer(s):

  • Alex Ellis - creator & lead maintainer

Hall of fame:

Alex Ellis created Derek to automate project maintainer duties around licensing and to help bring granular permissions back to GitHub. Derek has empowered contributors in the OpenFaaS community to run and maintain the project without needing full write access. OpenFaaS contributors continue to improve Derek so they can get the job done without fuss.

Contributions

Please follow the OpenFaaS contribution guide.

Issues
  • Add fail check for dco

    Add fail check for dco

    Adding check which determines whether or not there are existing commits which are unsigned. The check is determined by the no-dco label.

    Signed-off-by: Martin Dekov (VMware) [email protected]

    Adding succesful/failure check when unsigned commits are present in the PR

    Description

    Adding check which is successful by default and when no-dco label is applied the check fails, when the commits are signed the check is again successful

    I think the allow merge if all checks pass would be turned on in the GitHub UI. I have red something about required status checks or something

    Motivation and Context

    • [x] I have raised an issue to propose this change (required)

    Fixes #95

    Also suggestions on the text, the content of the titles body etc. Would be appreciated!

    How Has This Been Tested?

    Tested in repository here

    Note: I have local minikube instance exported with ngrok so ping me if the robot does not work

    Verbose diagram:

    untitled diagram

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [ ] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by martindekov 25
  • Suggestion: support manipulation of milestones

    Suggestion: support manipulation of milestones

    Derek already supports manipulation of Labels. The GitHub API for Milestones is very similar. Milestones are used to group issues that belong together as a feature or a deliverable. See here for the distinctions: https://guides.github.com/features/issues/

    Expected Behaviour

    Derek set milestone: 4.8 should add the named milestone to the current issue Derek remove milestone: 4.8 should accordingly remove the milestone

    Current Behaviour

    Milestones aren't supported at all

    Possible Solution

    Add code analogous to the Label handling.

    Context

    Subsurface is starting to use Milestones to group issues that we want to address for upcoming releases and it would be very useful if more people were able to set/remove milestones from issues, without being Collaborators on the project

    Your Environment

    • [x] You're using the hosted Derek service

    or

    • [ ] You host your own OpenFaaS cluster with Derek installed
    opened by dirkhh 19
  • Support slash as a command trigger

    Support slash as a command trigger

    me and Martin collaborated on this change over a couple of Zoom meetings. please, let me know if this needs any changes. /cc @rgee0 @alexellis

    Description

    Track the environment variable use_slash_trigger and make it possible to use / as the command trigger that the bot uses instead of "Derek ".

    • Update unit tests in commentHandler_test.go.
    • Update README.md

    Signed-off-by: Martin Dekov (VMware) [email protected] Signed-off-by: Lubomir I. Ivanov (VMware) [email protected]

    Motivation and Context

    • [x] I have raised an issue to propose this change (required) https://github.com/alexellis/derek/issues/63

    How Has This Been Tested?

    unit tests only on my side. @mrtind and @ivanayov can possibly do an e2e if they have the setup.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [x] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [x] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by neolit123 19
  • Add PR branch validation

    Add PR branch validation

    This checks if the branch a pull request is raised from is non-master. Validates, as well, if a pull request is raised against the default branch. If the validation is not successful, the pull request labels are applied: "review/target-branch" if the target branch is not the default and "review/source-branch" if the source branch is named "master". The source branch validation leaves a warning comment, suggesting to raise a new pull request from a named branch

    Signed-off-by: Ivana Yovcheva (VMware) [email protected]

    Raised in issue #17

    opened by ivanayov 18
  • Add messages option

    Add messages option

    Adding messages option to the derek bot in order to apply tempaltes or boilerplate things that we write all the time.

    Signed-off-by: Martin Dekov (VMware) [email protected]

    Description

    Extending the comments handler, by passing the derek config file (.DEREK.yml), in order to take the messages field from it and pass it to the executing function which sends the message to the Issue.

    Motivation and Context

    • [x] I have raised an issue to propose this change (required)

    Closes #109

    How Has This Been Tested?

    Manually multi line literal value of the message: image

    Note in order for this to work, the string literal should be placed just below the | like so:

    message:
      - name: slack
        value: |
                --
                Join Slack to connect with the community
                https://docs.openfaas.com
    

    If we go like this, this will lead to parsing error

    message:
      - name: slack
        value: |
             --
             Join Slack to connect with the community
             https://docs.openfaas.com
    

    Manually single line value of message: image

    Whole content of .DEREK.yml: image

    Image is here martindekov/derek:0.0.7, in order to test augment your .DEREK.yml file like pointed in the picture above and swap the images.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [x] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [x] I have added tests to cover my changes. 50%
    • [x] All new and existing tests passed.
    opened by martindekov 17
  • Tag PRs from new contributors as derek/first-time

    Tag PRs from new contributors as derek/first-time

    This is a suggestion to help with first impressions and helping new contributors to a project/repo.

    To help users identify and give help to new contributors to a repository Derek could add a label such as derek/first-time or derek/new-contributor

    This metadata may be represented in the metadata already of a GitHub push/PR - https://developer.github.com/v3/activity/events/types/#pushevent

    Alex

    enhancement help wanted skill/beginner 
    opened by alexellis 17
  • Support the loading of config files via URL redirection

    Support the loading of config files via URL redirection

    Description

    this PR adds support for the optional redirect filed in .DEREK.yaml to allow jumping away from this config and loading another. the change is non-breaking for existing users.

    Motivation and Context

    • [x] I have raised an issue to propose this change (required)

    spoke to @alexellis about this at KubeCon. :) the idea is to allow multiple repos to use the same config file.

    https://github.com/alexellis/derek/issues/58

    How Has This Been Tested?

    pushed a test config to a github fork and added a temporary test in permissionsHandler_test.go (not included) that fetches the config from a redirected URL. then did a go fmt, golint and go test -v on the changes.

    the best way to test this is to pull this branch and add this in the yaml:

    redirect: <some-config-url>
    

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [x] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [x] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by neolit123 17
  • Help topics for Derek

    Help topics for Derek

    Expected Behaviour

    There are often behaviors demonstrated by new contributors or specific questions to which we need to answer in almost the same, verbatim way:

    • Join Slack here to chat more https://...
    • Sign off your single commit using this command
    • Sign off those 5 commits using this command
    • Oh you're doing performance testing? You can't do that in a VM on your Mac, try this docs page: https://
    • CI is broken, please check the logs
    • This needs a rebase before it can be merged

    Current Behaviour

    Mixed results, repetition for maintainers and contributors.

    Possible Solution

    A command like: Derek topic: sign-off / Derek help topic: slack

    Automating the sign-off message could be spammy, especially if someone has a number of commits and the message is sent each time. So rather than automatic, hands-off - a "semi-automatic" way of expanding snippets would be ideal.

    We could keep these in .DEREK.yml such as:

    topics:
      name: slack-join
      alias:
       - slack
      message: |
      Thank for your interest in OpenFaaS. If you'd like to continue the discussion
      or join our regular Zoom meetings, then please sign-up at https:// .... 
    

    Derek topic: slack

    help wanted design/review proposal size/l good first issue 
    opened by alexellis 14
  • Use-case: support private repos

    Use-case: support private repos

    Expected Behaviour

    I visited CompareTheMarket today who have a use-case for Derek for delegation of how people label issues without admin access to inner-source repos.

    They want Derek to work on their private repos.

    Current Behaviour

    Derek reads from a CDN for all repos, but with the private ones there is no CDN.

    Possible Solution

    Find out if the event came from a private repo by using the metadata of the event. If private, grab .DEREK.yml from the GitHub API If not, then go ahead and fallback to the CDN

    Steps to Reproduce (for bugs)

    1. Create private repo (this is free on GH now)
    2. Install your dev instance of Derek
    3. Push code and see nothing happen
    opened by alexellis 13
  • Add contributing URL field to .DEREK.yml

    Add contributing URL field to .DEREK.yml

    This commit adds contributing_url field to the .DEREK.yml file to point to contribution guide.

    Signed-off-by: Vivek Singh [email protected]

    Description

    Motivation and Context

    • [x] I have raised an issue to propose this change (required) Fixes: #87

    How Has This Been Tested?

    Test result and process added in comments below.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [x] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    new-contributor 
    opened by viveksyngh 12
  • Switch to using go modules

    Switch to using go modules

    Description

    Switches from dep to use go modules.

    Motivation and Context

    By switching to go modules it would bring dependency management to align with go ecosystem. Fixes #160

    • [x] I have raised an issue to propose this change (required)

    How Has This Been Tested?

    make build test succeeded.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [ ] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    new-contributor 
    opened by techknowlogick 11
  • Remove pre-releases from release_notes

    Remove pre-releases from release_notes

    Currently in draft as need to consider the effect in generation of release notes for a pre-release. As proposed, this would be cumulative over a number of pre-releases as prerelease is only consider when finding the previous release, so each pre-release will be considered against the previous full release.

    Signed-off-by: Richard Gee [email protected]

    Description

    Initially the release notes were being generated from the current tagged release (n) and the n-1 release, irrespective of whether n-1 was a full release. This change causes getWorkingReleases() to ignore any previous releases where PreRelease is set to true. The processing beyond this determination will continue to consider all commits between the two identified points, resulting in a fuller set of changes for a full release where Pre-Releases have occurred in between.

    Motivation and Context

    • [x] I have raised an issue to propose this change (required)

    Closes #184

    How Has This Been Tested?

    TBC

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)
    • [x] Feature Enhancement

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [x] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [x] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by rgee0 0
  • Force local headings to over-ride remote

    Force local headings to over-ride remote

    Signed-off-by: Richard Gee [email protected]

    Description

    The intended mode of operation for the Issue template headings was for the local to over-ride the remote. This is different to the other fields, such as maintainers.

    This change adds the test to highlight the issue and addresses the issue in MergeDerekRepoConfigs.

    Motivation and Context

    A recent issue (https://github.com/alexellis/go-execute/issues/10) indirectly highlighted that the merging of local and remote configs was producing a superset which included duplicate headings

    How Has This Been Tested?

    Wrote the test, and ran it:

    Running tool: /usr/local/go/bin/go test -timeout 30s -run ^Test_mergeDerekRepoConfigs_UseLocalHeadings$ github.com/alexellis/derek/types
    
    --- FAIL: Test_mergeDerekRepoConfigs_UseLocalHeadings (0.00s)
        /Users/rgee0/go/src/github.com/alexellis/derek/types/merge_test.go:102: RequiredInIssues want [#2], but got [#1 #2 #2]
    FAIL
    FAIL    github.com/alexellis/derek/types    0.229s
    FAIL
    

    Note the got set is a merge of the remote and local so includes #2 twice.

    Amended MergeDerekRepoConfigs() so that if required_in_issue is set locally then those values will take precedence. Re-ran the test:

    Running tool: /usr/local/go/bin/go test -timeout 30s -run ^Test_mergeDerekRepoConfigs_UseLocalHeadings$ github.com/alexellis/derek/types
    
    ok  	github.com/alexellis/derek/types	0.233s
    

    Ran a build using the Dockerfile.

    Types of changes

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [x] I have updated the documentation accordingly.
    • [x] I've read the CONTRIBUTION guide
    • [x] I have signed-off my commits with git commit -s
    • [x] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by rgee0 0
  • Exclude pre-releases from release notes

    Exclude pre-releases from release notes

    Expected Behaviour

    Derek should compare new releases against the latest official release rather than against the latest release which can be a pre-release.

    Current Behaviour

    When Derek generates the release notes he compares the last two releases regardless of whether they are pre-releases or not. This makes hard to read the changes from two official releases if there has been some release candidates.

    Possible Solution

    Compare new releases against the latest official release.

    Steps to Reproduce (for bugs)

    1. Create an official release (1.0.0)
    2. Create a pre-release (1.1.0-rc.1)
    3. Create an official release (1.1.0)
    4. The generated notes will have no changes because its being compared against 1.1.0-rc.1 instead of 1.0.0

    Context

    I was trying to create a new release from a release candidate but now it's hard to read the release notes of the major release because if I want to read all the changes I have to go through all pre-releases to know what have change

    enhancement question support 
    opened by jLopezbarb 4
  • Crash generating release notes

    Crash generating release notes

    2020/11/01 11:25:33 Duration: 0.008617 seconds
    2020/11/01 11:25:34 stderr: 2020/11/01 11:25:34 Release [openfaas-incubator/ingress-operator:0.6.4] start: 0001-01-01 00:00:00 +0000 UTC	end: "0001-01-01 00:00:00 +0000 UTC"
    2020/11/01 11:25:34 Release notes: "Changelog for :\n\nCommits\n\nGenerated by [Derek](https://github.com/alexellis/derek/)\n"
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6d2092]
    
    goroutine 1 [running]:
    github.com/alexellis/derek/handler.updateRelease(0xc0004128c0, 0x0, 0xc0000b4f20, 0x12, 0xc00014a000, 0x10, 0x0, 0x0, 0xc00019b5c0, 0x54, ...)
    	/go/src/github.com/alexellis/derek/handler/release_handler.go:204 +0x62
    github.com/alexellis/derek/handler.updateReleaseNotes(0xc0004128c0, 0xc0000b4f20, 0x12, 0xc00014a000, 0x10, 0xc000131fb0, 0x5, 0x0, 0xc0004128c0)
    	/go/src/github.com/alexellis/derek/handler/release_handler.go:108 +0xb65
    github.com/alexellis/derek/handler.(*UpdatingReleaseHandler).Handle(0xc0000aa400, 0xc000083610, 0xc0000ace60, 0xc000148000, 0xc0000c86e0, 0xc0000ee080, 0xc0003ba4c0, 0xde70b95193631570)
    	/go/src/github.com/alexellis/derek/handler/release_handler.go:43 +0x116
    main.handleEvent(0xc0000160f4, 0x7, 0xc0000fc000, 0x24f3, 0x3e00, 0xc0000a0120, 0x28, 0xc000102000, 0x68f, 0xc00001602f, ...)
    	/go/src/github.com/alexellis/derek/main.go:103 +0x18af
    main.main()
    	/go/src/github.com/alexellis/derek/main.go:62 +0x1e4
    2020/11/01 11:25:34 Success=false, Error=exit status 2
    2020/11/01 11:25:34 Out=
    2020/11/01 11:27:56 Forking fprocess.
    2020/11/01 11:27:56 Query  
    2020/11/01 11:27:56 Path  /
    2020/11/01 11:27:58 stderr: 2020/11/01 11:27:58 Release [openfaas-incubator/ingress-operator:0.6.4] start: 2020-11-01 11:24:54 +0000 UTC	end: "2020-06-18 14:54:05 +0000 UTC"
    2020/11/01 11:27:58 Release notes: "Changelog for 0.6.4:\n* PR #35 Use the ingress domain for the tls secret by @LucasRoesler\n\nCommits\ndf2332dfa1bc46f41bfbdb6d3066d104e3f584ac Use the ingress domain for the tls secret by @LucasRoesler\nf627c24ccb91e21065c1e62ef986743a63e85426 Fix example, move REST example to docs by @alexellis\na4c4ee1ed250a1da6c613ea76f6799da2dd4d234 Update REST API mapping by @alexellis\nd93fe76e30ef1f65b94f1fa32b503f4cca8b9695 Update examples for REST by @alexellis\ne7a6aae212eb150ddc012671f25439ade274304a Add async example by @alexellis\n\nGenerated by [Derek](https://github.com/alexellis/derek/)\n"
    2020/11/01 11:27:58 Duration: 2.295807 seconds
    2020/11/01 11:27:59 Forking fprocess.
    2020/11/01 11:27:59 Query  
    2020/11/01 11:27:59 Path  /
    2020/11/01 11:27:59 Duration: 0.002734 seconds
    

    When I re-tried the web hook for the release, it worked the second time -> https://github.com/openfaas-incubator/ingress-operator/releases/tag/0.6.4

    opened by alexellis 1
  • Inconsistent fetching of commits

    Inconsistent fetching of commits

    Inconsistent error:

    exit status 1
    time="2020-07-24T10:05:39Z" level=fatal msg="Error getting commits for PR 44\nGET https://api.github.com/repos/martindekov/push2/pulls/44/commits: 401 Bad credentials []"
    

    This error is here: https://github.com/alexellis/derek/blob/16d7143de95fbc1516be7377b7388995a78b19c0/handler/pullrequest_handler.go#L242

    And the function is: https://github.com/alexellis/derek/blob/16d7143de95fbc1516be7377b7388995a78b19c0/handler/pullrequest_handler.go#L235

    Things I went through while trying to make the error consistent and it didn't:

    • [x] Using the same context across all Derek's code for the pull logic as the OAuth2 object has description that the client is valid as long as the context with which it was created is used
    • [x] Check rate limits as per description https://docs.github.com/en/rest/reference/rate-limit#understanding-your-rate-limit-status since the DCO feature increases the number of API calls.

    Expected Behaviour

    Every request for the commits has the same behavior on error or success.

    Current Behaviour

    Requesting the commits in a PR is inconsistent and might fail.

    Possible Solution

    In this case we can re-try the request. Possibly if the problem is in the access token we can revisit how we request the token, or fix the error flow of the token.

    Steps to Reproduce (for bugs)

    1. Run derek
    2. Start sending requests by opening PRs and adding commits with and without signature
    3. Check that sometimes this error is present and commits cannot be fetched leading to the dco label and checks not being applied properly

    Context

    This can potentially lead to inconsistency when checking for DCO as if the error is present and derek will fail to list the commits and recognize if there is unsigned one.

    Your Environment

    • [ ] You're using the hosted Derek service

    or

    • [x] You host your own OpenFaaS cluster with Derek installed
    • Docker version docker version (e.g. Docker 17.0.05 ): N/A
    • Are you using Docker Swarm or Kubernetes (FaaS-netes)? N/A
    • Operating System and version (e.g. Linux, Windows, MacOS): N/A
    opened by martindekov 4
  • Proposal: Label and message for PRs with Merge Commits

    Proposal: Label and message for PRs with Merge Commits

    If there's a merge commit pushed to a PR can we add a label and post a message to the PR from Derek saying that Merge Commits are not allowed, and provide info on how to remove it, and rebase.

    Can we detect easily merge commits? Is it the format of the commit message or are they different?

    Expected Behaviour

    A PR with a merge commit pushed to it should get a label from derek and a message posted about why and how to fix it. 2 scenarios

    1. A PR is raised and there is already a merge commit
    2. A Merge Commit is pushed to the PR

    Should this be optional? Configured in the yaml? What about for repos that dont have the config set? Do we enable or disable by default?

    Current Behaviour

    No feature

    Possible Solution

    Add a check into Derek that fulfils the 2x scenarios if enabled.

    opened by Waterdrips 2
Releases(0.11.4)
  • 0.11.4(Mar 8, 2022)

    Changelog for 0.11.4:

    Commits 00516ba2f49963087ef9cbeda26b55fbbd6b7dd6 Retry release notes after a few seconds by @alexellis e4330cafab00c19d996b13756554faa138b8e482 Add openfaasltd to Derek by @alexellis

    Changes: https://github.com/alexellis/derek/compare/0.11.3...0.11.4

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.11.3(Nov 4, 2021)

    Changelog for 0.11.3:

    • PR #183 Move hmac from sha1 to sha256 by @rgee0

    Commits 0240f9430de9ced956e686ac7795698ef8b7af08 Make use of v2 of the hmac module by @rgee0 e369975279e8183ae696e9019f927fdfef3475e9 Move hmac from sha1 to sha256 by @rgee0

    Changes: https://github.com/alexellis/derek/compare/0.11.2...0.11.3

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.11.2(Oct 22, 2021)

  • 0.11.1(Oct 7, 2021)

    Changelog for 0.11.1:

    • PR #179 release: add link that show the difference between releases by @cpanato

    Commits ede783456486dc43ac0de95b8407a33a78ab9966 update message for full changes when is the first release by @cpanato 3e7e02ded7258097cdb0b5feaaa87186ac91256e update based on feedback by @cpanato cf7d22ed5e78ea6071fbe8f3539747484b8fb032 release: add link that show the difference between releases by @cpanato 761a2885e818a6c1de4f6ac54b7e63865b683992 Fix bug with PWD and terraform output by @alexellis 3850c300c83ddad4e24e2e4e3fba2affa5cbdc8b Add Equinix Metal Terraform config by @alexellis 8d270dc91e8f38811c20bdef5daf3e580739ae05 Update GET.md by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Apr 22, 2021)

    Changelog for 0.11.0:

    • PR #174 Use repo default branch by @cpanato
    • PR #177 Try using Derek. by @juandisay

    Commits 16743cbd674ae8c5d1a831eab3abaa7e0090d7f0 Use repo default branch by @jolheiser ffef114f2d5f0a7e7ac2b8148727f66de173835e Try using Derek. by @cpanato

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.9(Mar 16, 2021)

    Changelog for 0.10.9:

    • PR #173 Migrate to GitHub Actions by @cpanato
    • PR #172 Update DEV.md by @jjasghar

    Commits b39be9854949d2c091e045f859b4f9ab2cc1a5df remove quay.io by @cpanato 117ee685315acda9f19f7fe5fd2df73812412a84 remove travis-ci job by @cpanato 2322cdeb40f8908daa77861cf14a3a4c86f75e2e Add GitHub actions workflows for build/test and publish image by @cpanato 5c9460f1fe1e55997cff94341808cdc15470a3ab Update DEV.md by @jjasghar

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.8(Feb 6, 2021)

    Changelog for 0.10.8:

    • PR #169 Add required issue headings by @alexellis

    Commits f6f01418f13c7a46d450bbe6eb2d5d834a2d5fa7 Disable feature for maintainers by @alexellis 53d56918fd5367ab2c3e64009451bcb1f2377a02 Add required issue headings by @alexellis d82e7ec6bf725efa0742d3922071a710caee28d8 Update GET instructions order by @alexellis 817b0d881ab420d535720956b77910d32fb2ab60 Update instructions for onboarding by @alexellis 9afdcbc5173b93497060337cba7e020a3d875d8a Update SaaS instructions and local development by @alexellis e1e9c790bfacf28761304928690cdde598732bcf Update .CUSTOMERS by @alexellis 39d4eb77f86f853b77c901e5b510f344baf1c181 Update README.md by @alexellis 1621fa23e83fb25e31ff924754e96dc529b8a295 Update paying customers by @alexellis 8421f5666a7c92e735134128e1569ffbe1168d7c Update customers with paying users by @alexellis 0fe405644cbf3d459c2fc02fc91ef53f98609233 Update cost by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.7(Jan 4, 2021)

    Changelog for 0.10.7:

    Commits 7c0c6197e1ed95702ff3d97d21f85ea3d28bd827 Update to Go 1.15 by @alexellis 0f419a78944f69cbd69ac6ff400e1dcf33d7b69d Add logging for user operations by @alexellis 52084a5968eaa0907a0b941f302132211c797d43 Update README.md by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.6(Nov 1, 2020)

    Changelog for 0.10.6:

    • PR #166 Add k8spin organization by @angelbarrera92

    Commits 57106cd1c26baf4d93d1f4be5c49b2da78fc561e Add error handling for #167 by @alexellis 90645b1c380d275795278ad525a2b74875a97417 Add k8spin organization by @angelbarrera92

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.5(Oct 25, 2020)

    Changelog for 0.10.5:

    • PR #161 Switch to using go modules by @techknowlogick

    Commits 440b7f50f0c445f30de8fcd65ddae2f872ef14de Update Dockerfile to use newer Alpine version by @alexellis b9ea939aef0a1beccb630e34cc5e7f098cd9ee3c Update vendor for Logrus v1.7.0 by @alexellis 4b9dc904234477ef4c4f6b89ca14171b5723c0a2 Fix error with Logrus and go mod tidy by @alexellis 9b0f631eb994cdcbc5356b1c498cb029cb33b9ae Switch to using go modules by @techknowlogick

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.4(Oct 2, 2020)

    Changelog for 0.10.4:

    Commits a59e05321c73ba9e86f33e43e84076402b674701 Add no-dco label before closing no_newbies PRs by @alexellis c4a6f55c0559e3c9d537905503b48e53e74fce47 Remove tinkerbell and vielmetti by @alexellis 77d1d94961514d56c5121993c681f11f45b149d3 Remove paperspace user by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.3(Oct 1, 2020)

    Changelog for 0.10.3:

    • PR #164 Add no_newbies feature and restore classic DCO checking by @alexellis
    • PR #162 Add cake-build to customer list by @pascalberger

    Commits 2455a94b4e10ef2de6d48bd193a3322878b751fb Revert DCO status checking by @alexellis 2186112b60dca765c07ec608c516d33a650f357d Add DCOStatusChecks by @alexellis 561ccb74ff3d4defab89d44efbf49c2aac847955 Add no_newbies feature by @alexellis ba1049b6722b523a685b994a358def4a19c6cb1b Update suggestions on Sponsors by @alexellis bce4abe488f888c8c150365221280062ee48750d Add cake-build to customer list by @pascalberger 490c4bfd3db64f07fc8941ec2e1837d724ec20f2 Update examples to use a slash instead of Derek's full name by @alexellis 861e2b20e6fa9295c2ae104f82c4adec3f645b79 Update on boarding instructions by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.2(Aug 24, 2020)

  • 0.10.1(Aug 24, 2020)

    Changelog for 0.10.1:

    • PR #159 Print verbose rate-limits by @alexellis

    Commits 7af428f3f643937debfeb01d92dcaf079a1d7899 Print verbose rate-limits by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Jul 23, 2020)

    Changelog for 0.10.0:

    • PR #108 Add fail check for dco by @martindekov

    Commits 16d7143de95fbc1516be7377b7388995a78b19c0 Add fail check for dco by @martindekov

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.16(Jul 23, 2020)

    Changelog for 0.9.16:

    • PR #157 Fix typo in removing deprecated api endpoint by @Waterdrips

    Commits 46edcd2bdf2d94da4af6a6290855cba9bf17ce3d Fix typo in removing deprecated api endpoint by @Waterdrips

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.15(Jul 15, 2020)

    Changelog for 0.9.15:

    • PR #155 Update to call new github API by @Waterdrips
    • PR #149 add okteto to the users list by @rberrelleza

    Commits 2941a1bd3254a34d2135b32d2b33732551fff14b Update to call new github API by @Waterdrips 9d8ccc7824737a2bc0cec2850e3a90b783348d1a Update recommendations as per lgtm.com by @alexellis 83eea02affc6b5f34c2676d9b93864f0c28e5702 Update .CUSTOMERS by @alexellis 9cf4b3ba83bde11c3c51117add027923322408d0 add okteto to users list by @rberrelleza

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.14(Mar 9, 2020)

    Changelog for 0.9.14:

    • PR #140 Add ability to override/merge items in local .DEREK.yml by @Waterdrips
    • PR #148 Add TheYkk to customers by @TheYkk

    Users can now have repo-level overrides whilst retaining an override file

    redirect: https://raw.githubusercontent.com/openfaas/faas/master/.DEREK.yml
    maintainers:
     - some-other-person-for-this-repo
    features:
     - some-other-extra-feature-for-this-repo
    

    Commits 73b0fd570ffd7ce11cdeaf1ef07651178fec700e Don't panic, return errors by @alexellis 6086fa2e0f6dcbc3b2b5eac2dce47869e6c9b9bf Add ability to overide/merge items in local .DEREK.yml by @Waterdrips c07b5538f28d3b9d12ba84424802a4265930a35b Add TheYkk to customers by @TheYkk

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.13(Mar 3, 2020)

    Changelog for 0.9.13:

    • PR #146 Add okteto tu customer list by @rberrelleza

    Commits b4a95423fa855627561857c6104b50bd5344a703 Ignore the review_requested action on PRs by @alexellis 30ecc51227c9ed9579a03ce6cc91aaf94849e005 Paperspace appears to have installed Derek by @alexellis b5b93cd9746de86c89cfe2215c3d975d287a05ce Add okteto tu customer list by @rberrelleza 5bd0e945c6b6f5375c438005941d35261025cf60 Add Derekapp twitter handle by @alexellis dd777dee761cfe329483cf0256bd0bdd6909cbd0 Update Derek's intro by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.12(Feb 26, 2020)

    Changelog for 0.9.12:

    • PR #145 Add 1 min safety window for commit listing by @nitishkumar71

    Commits 8e68a260bd077214c4c0199dc84580f6aae743ad Renamed includeCommits to includeCommit by @nitishkumar71 9779f1f50ef7fb5625fbcac87c4423f646940c8e Add 1 min safety window for commit listing by @nitishkumar71 2f1728856ddb86a98ef8e9d703322fc06556de92 Tidy up list by @alexellis 46860e7f2b497733cc3d48176a708d1e3739fd3e Remove rgee0 upon request by @alexellis b30606c1d2761ba04cb076c98177ed0b1c6dd5a9 Update handling for when username not configured by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.11(Feb 6, 2020)

    Changelog for 0.9.11:

    Commits b30606c1d2761ba04cb076c98177ed0b1c6dd5a9 Update handling for when username not configured by @alexellis 3ac2ddac2561037384a4872639f80e18f9900fb5 Add handling for empty login by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.10(Feb 6, 2020)

    Changelog for 0.9.10:

    Commits 3ac2ddac2561037384a4872639f80e18f9900fb5 Add handling for empty login by @alexellis 39cb8eb3dad46b65e81c1634c887365b8ed29074 Update README.md by @alexellis 7d64f719ebe2495a412d49d6defd880f83623004 Add commits to release_notes feature by @alexellis

    Generated by Derek

    Source code(tar.gz)
    Source code(zip)
  • 0.9.9(Feb 6, 2020)

  • 0.9.8(Nov 4, 2019)

  • 0.9.7(Nov 1, 2019)

  • 0.9.3(Oct 17, 2019)

  • 0.9.2(Oct 9, 2019)

  • 0.9.1(Jul 22, 2019)

Owner
Alex Ellis
Founder @OpenFaaS @inlets #k3sup CNCF Ambassador
Alex Ellis
Github-trending-bot - Go app to archive daily github trending repos.

GITHUB-TRENDING-BOT Simple application to archive daily github trending repos, written in Go. Project Description Uses Go to parse raw html from the g

Dustin Christianson 0 Jan 7, 2022
GitHub Actions for Feishu

actions-feishu 通过 GitHub Actions 来发送消息到飞书 Quick start Actions 配置样例: - name: feishu notify uses: xiachufang/[email protected] with:

xiachufang 11 Jun 11, 2022
Bot that polls activity API for Github organisation and pushes updates to Telegram.

git-telegram-bot Telegram bot for notifying org events Requirements (for building) Go version 1.16.x Setup If you don't have a telegram bot token yet,

Skycoin 4 Apr 8, 2022
send current weather updates from openweathermap api to your slack profile status using github action

go-slack-weather Send current weather updates from OpenWeatherMap API to your Slack profile status using GitHub Action Contents Setup Change Update Pe

Muhammad Thomas Fadhila Yahya 4 Dec 6, 2021
Check for new github releases of your Golang application 🎊

whatsnew Check for new github releases of your Golang application ?? whatsnew provides a simple way to check GitHub for new releases of your Go applic

James Bowes 8 Dec 1, 2021
网易云歌词自动生成《捧读》用的 epub, 帮助学习。(GitHub Actions + shortcuts + telegram)

pengdu_helper 网易云歌词自动生成《捧读》用的 epub, 帮助学习。(GitHub Actions + shortcuts + telegram) 如何使用 前提 有访问自由互联网的环境,有 telegram 请自行查询如何写 telegram bot 有《捧读》app fork 或者

yihong 25 Apr 11, 2022
Wrapper library for github.com/tucnak/telebot to create simple text-based Telegram bots

tbwrap Wrapper library for github.com/tucnak/telebot to create simple text-based Telegram bots Installation go get github.com/enrico5b1b4/tbwrap Exam

null 0 Dec 7, 2021
The original Slack library for Go created by Norberto Lopes, transferred to a Github organization

Slack API in Go This is the original Slack library for Go created by Norberto Lopes, transferred to a Github organization. This library supports most

Tanglijing 0 Dec 8, 2021
Observer-pattern is broken at GitHub, too many mails

Informer What Returns information at your will. Should enable you to turn off all notifications, without loosing important notices. Format should be y

Krzysztof Ostrowski 0 Jan 21, 2022
Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.

#1 Golang live reload and task runner Content - ⭐️ Top Features - ???? Get started - ?? Config sample - ?? Commands List - ?? Support and Suggestions

Oxequa 4.2k Jun 19, 2022
vault-init is a small utility for automating the initialization and unsealing of HashiCorp Vault.

vault-init vault-init is a small utility for automating the initialization and unsealing of HashiCorp Vault. It draws inspiration from kelseyhightower

Jace Tan 26 May 24, 2022
Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.

#1 Golang live reload and task runner Content - ⭐️ Top Features - ???? Get started - ?? Config sample - ?? Commands List - ?? Support and Suggestions

Oxequa 4.2k Jun 24, 2022
Automating Kubernetes Rollouts with Argo and Prometheus. Checkout the demo URL below

observe-argo-rollout Demo for Automating and Monitoring Kubernetes Rollouts with Argo and Prometheus Performing Demo The demo can be found on Katacoda

null 32 Jun 15, 2022
Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration, and automating updates to configuration when there is new code to deploy.

Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories), and automating updates to configuration when there is new code to deploy.

Flux project 3.5k Jun 27, 2022
xyz, is a tool for automating actions based on events from various sources used by streamers.

Streaming Automation Software Support · Download · Report Bug · Request Feature What is xyz? xyz, is a tool for automating actions based on events fro

null 3 Jun 9, 2022
Nap is a file-based framework for automating the execution of config-driven HTTP requests and scripts.

Nap Nap is a file-based framework for automating the execution of config-driven HTTP requests and scripts. Installation Options Using go get $ go inst

Dave Sheldon 6 Feb 1, 2022
Genpc - Discord bot for automating Numenera (and eventually other system) tables

GenPC Discord bot for automating Numenera (and eventually other system) tables.

Maxwell Banks 0 Feb 16, 2022
Harbormaster - Toolkit for automating the creation & mgmt of Docker components and tools

My development environment is MacOS with an M1 chip and I mostly develop for lin

Gabe Susman 0 Feb 17, 2022
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

Gleam Gleam is a high performance and efficient distributed execution system, and also simple, generic, flexible and easy to customize. Gleam is built

Chris Lu 3.1k Jun 22, 2022
Reduce debugging time while programming Go. Use static and stack-trace analysis to determine which func call causes the error.

Errlog: reduce debugging time while programming Introduction Use errlog to improve error logging and speed up debugging while you create amazing code

Martin Joly 406 Jun 15, 2022
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

Gleam Gleam is a high performance and efficient distributed execution system, and also simple, generic, flexible and easy to customize. Gleam is built

Chris Lu 3.1k Jun 24, 2022
Map, Reduce, Filter, De/Multiplex, etc. for the Go language.

proto proto gives Go operations like Map, Reduce, Filter, De/Multiplex, etc. without sacrificing idiomatic harmony or speed. It also introduces a conv

Erich Blume 60 Feb 20, 2022
Go library for writing standalone Map/Reduce jobs or for use with Hadoop's streaming protocol

dmrgo is a Go library for writing map/reduce jobs. It can be used with Hadoop's streaming protocol, but also includes a standalone map/reduce impleme

Damian Gryski 105 Nov 26, 2021
Reduce Chaos in MemPool 😌

harmony Reduce Chaos in MemPool ?? Table of Contents Why did you write harmony ? What do I need to have for installing harmony ? How do I get harmony

Anjan Roy 78 Jun 4, 2022
"there" also called "GoThere" aims to be a simple Go Library to reduce redundant code for REST APIs.

there "there" also called "GoThere" aims to be a simple Go Library to reduce redundant code for REST APIs. Despite the existence of the other librarie

Christoph Krassnigg 27 Jun 15, 2022
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases

The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.

Oracle 65 Jun 2, 2022
An easy-to-use Map Reduce Go parallel-computing framework inspired by 2021 6.824 lab1. It supports multiple workers on a single machine right now.

MapReduce This is an easy-to-use Map Reduce Go framework inspired by 2021 6.824 lab1. Feature Multiple workers on single machine right now. Easy to pa

Bo-Wei Chen 193 Jun 9, 2022