Skip to content

Commit

Permalink
ci(dependabot): auto merge pull requests
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasbasham committed Aug 5, 2024
1 parent ae35eab commit 5c39de6
Show file tree
Hide file tree
Showing 12 changed files with 157 additions and 92 deletions.
1 change: 0 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

root = true


[*]
end_of_line = lf
charset = utf-8
Expand Down
21 changes: 12 additions & 9 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,31 @@ assignees: ''
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
Steps to reproduce the behaviour:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
**Expected behaviour**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
48 changes: 48 additions & 0 deletions .github/workflows/auto-merge.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: auto-merge
on:
pull_request:
permissions:
contents: write
pull-requests: write
jobs:
check-can-auto-merge:
if: github.triggering_actor == 'dependabot[bot]'
name: Check if PR can be auto-merged
runs-on: ubuntu-latest
outputs:
can-auto-merge: ${{ steps.can-auto-merge.outputs.approve }}
steps:
- uses: dependabot/fetch-metadata@v2.2.0
id: dependabot-metadata
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- if: |
steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' ||
steps.dependabot-metadata.outputs.package-ecosystem == 'github_actions'
id: can-auto-merge
run: echo "approve=true" >> $GITHUB_OUTPUT
auto-merge:
needs: check-can-auto-merge
if: needs.check-can-auto-merge.outputs.can-auto-merge == 'true'
name: Auto merge pull requests
runs-on: ubuntu-latest
steps:
- uses: dependabot/fetch-metadata@v2.2.0
id: dependabot-metadata
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Approve Dependabot PR
run: gh pr review --approve "${PR_URL}"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
# Because we enforce PRs be approved by a code owner, a token from the
# operations team must be used to approve the PR. This token is from the
# StatusCake machine account which has been given membership to the
# operations team.
GITHUB_TOKEN: ${{ secrets.MACHINE_TOKEN }}
- name: Enable auto-merge for Dependabot PR
run: gh pr merge --auto --merge "${PR_URL}"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20 changes: 16 additions & 4 deletions .github/workflows/policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,22 @@ jobs:
node-version: 19.x
- name: Install base config
run: npm install @commitlint/config-conventional
- name: Validate all commits
- name: Validate commit messages
run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to HEAD --verbose
yamllint:
name: Lint YAML documents
markdown-style:
name: Check markdown style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 19.x
- name: Validate markdown
run: npx markdownlint-cli2 **/*.md
yaml-style:
name: Check YAML style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -54,5 +66,5 @@ jobs:
python-version: "3.10"
- name: Install yamllint
run: pip install --user yamllint
- name: Lint
- name: Validate YAML
run: yamllint .
4 changes: 2 additions & 2 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ jobs:
strategy:
matrix:
go:
- "1.22"
- "1.21"
- "1.20"
- "1.19"
- "1.18"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
Expand Down
6 changes: 6 additions & 0 deletions .markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"default": true,
"line-length": {
"tables": false
}
}
15 changes: 15 additions & 0 deletions .yamlfmt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# vi: ft=yaml
---
formatter:
type: basic
# There is a "bug" with the behaviour of this option that will move file head
# comments below the initial document start. For example front matter is
# rearraged and therefore misplaced in the file. This behaviour prevents
# `ymalfmt` from being run in CI or automatically in code editors.
include_document_start: true
indentless_arrays: true
pad_line_comments: 2
# There is missing functionality in `yamlfmt` to remove redundantly quoted
# strings from YAML documents, and prefer the use of double quotes (or
# whatever is configured). This means further manual effort is required to
# correct files.
2 changes: 2 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
---
extends: default
rules:
document-start:
level: error
indentation:
indent-sequences: false
spaces: 2
Expand Down
49 changes: 25 additions & 24 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,30 @@
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
size, disability, ethnicity, gender identity and expression, level of
experience, nationality, personal appearance, race, religion, or sexual identity
and orientation.

## Our Standards

Examples of behaviour that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behaviour by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities
Expand All @@ -37,11 +37,11 @@ Project maintainers are responsible for clarifying the standards of acceptable
behaviour and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behaviour.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviours that they deem inappropriate,
threatening, offensive, or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, or to ban temporarily or permanently any
contributor for other behaviours that they deem inappropriate, threatening,
offensive, or harmful.

## Scope

Expand All @@ -55,20 +55,21 @@ further defined and clarified by project maintainers.
## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behaviour may be
reported by contacting the project team at support@statuscake.com. All
reported by contacting the [project team](mailto:support@statuscake.com). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
obligated to maintain confidentiality with regard to the reporter of an
incident. Further details of specific enforcement policies may be posted
separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
52 changes: 15 additions & 37 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,30 @@
# How To Contribute

Contributions are welcome as we strive to make this package as useful as
possible for everyone. However time is not always on our side, and changes may
not be reviewed or merged in a timely manner.
Contributions are welcome as we strive to make this module as useful as possible
for everyone. However time is not always on our side, and changes may not be
reviewed or merged in a timely manner.

If this package is found to be missing in functionality, please open an issue
If this module is found to be missing in functionality, please open an issue
describing the proposed change - discussing changes ahead of time reduces
friction within pull requests.

## Installation
## Prerequisites

You will need the following things properly installed on your computer:

* `git clone <repository-url>` this repository
* `cd statuscake-go`
- [Git](https://git-scm.com/)
- [Go](https://go.dev/) (1.13+)

## Linting
## Installation

* `golint ./...`
- `git clone <repository-url>` this repository
- `cd statuscake-go`

## Running tests

* `go test ./...`
- `go test ./...`

## Making Changes

Begin by creating a new branch. It is appreciated if branch names are written
using kebab-case.

```bash
git checkout master
git pull --rebase
git checkout -b my-new-feature
```

Make the desired change, and ensure both the linter and test suite continue to
pass. Once this requirement is met push the change back to a fork of this
repository.

```bash
git push -u origin my-new-feature
```

Finally open a pull request through the GitHub UI. Upon doing this the CI suite
will be run to ensure changes do not break current functionality.

Changes are more likely to be approve if they:

- Include tests for new functionality,
- Are accompanied with a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),
- Contain few commits (preferably a single commit),
- Do not contain merge commits,
- Maintain backward compatibility.
See the contributing guide at
[devhandbook.org](https://devhandbook.org/contributing)
File renamed without changes.
31 changes: 16 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ can be found [here](https://www.statuscake.com/api/v1).

## Prerequisites

You will need the following things properly installed on your computer.
You will need the following things properly installed on your computer:

* [Go](https://golang.org/): any one of the **three latest major**
- [Go](https://golang.org/): any one of the **three latest major**
[releases](https://golang.org/doc/devel/release.html)

## Installation
Expand All @@ -26,7 +26,7 @@ necessary dependencies.
Otherwise, to install the `statuscake-go` package, run the following command:

```bash
$ go get -u github.com/StatusCakeDev/statuscake-go
go get -u github.com/StatusCakeDev/statuscake-go
```

## Usage
Expand All @@ -37,25 +37,26 @@ Within any Go file instantiate an API client and execute a request:
package main

import (
"context"
"fmt"
"context"
"fmt"

"github.com/StatusCakeDev/statuscake-go"
"github.com/StatusCakeDev/statuscake-go/credentials"
"github.com/StatusCakeDev/statuscake-go"
"github.com/StatusCakeDev/statuscake-go/credentials"
)

func main() {
bearer := credentials.NewBearerWithStaticToken(apiToken)
client := statuscake.NewClient(statuscake.WithRequestCredentials(bearer))
bearer := credentials.NewBearerWithStaticToken(apiToken)
client := statuscake.NewClient(statuscake.WithRequestCredentials(bearer))

tests, err := client.ListUptimeTests(context.Background()).Execute()
if err != nil {
panic(err)
}
tests, err := client.ListUptimeTests(context.Background()).Execute()
if err != nil {
panic(err)
}

fmt.Printg("%+v\n", tests.Data)
fmt.Printf("%+v\n", tests.Data)
}
```

## License

This project is licensed under the [MIT License](LICENSE.md).
This project is licensed under the [MIT License](LICENSE).

0 comments on commit 5c39de6

Please sign in to comment.