https://github.com/weavedev/terraform-provider-adyen
https://github.com/weavedev/terraform-provider-adyen
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/weavedev/terraform-provider-adyen
- Owner: weavedev
- License: mpl-2.0
- Created: 2024-04-23T07:26:13.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-11T10:01:47.000Z (about 2 years ago)
- Last Synced: 2024-08-29T17:10:12.074Z (almost 2 years ago)
- Language: Go
- Size: 165 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Terraform Provider Adyen
This repository is built on the template provided by: [Terraform Plugin Framework](https://github.com/hashicorp/terraform-plugin-framework). The template repository built on the [Terraform Plugin SDK](https://github.com/hashicorp/terraform-plugin-sdk) can be found at [terraform-provider-scaffolding](https://github.com/hashicorp/terraform-provider-scaffolding).
This repository is a terraform provider for **Adyen**, containing:
- A resources and a data sources can be found in (`internal/provider/`),
- Examples can be found in (`examples/`) and generated documentation in (`docs/`),
- To generate or update documentation from root, run `go generate ./...`.
## Adyen Resources Implementation Roadmap
### Management API
- Webhooks:
- [x] Webhook Merchant
- [x] Webhook Company
####
- Users
- [ ] Users Merchant
- [ ] Users Company
####
- API Credentials
- [ ] My API Credentials
- [ ] Company API Credentials
- [ ] Merchant API Credentials
####
- Terminal
- [ ] Actions
- [ ] Settings
- [ ] Orders
####
- Account:
- [ ] Account Merchant
- [ ] Account Company
- [ ] Account Store
####
- [ ] Payment Methods
- [ ] Payout Settings
- [ ] Allowed Origins
## Provider Setup and Usage
### Clone the repository
First, clone the `terraform-provider-adyen` repository:
1. Open your terminal or command prompt.
2. Run the following command to clone the repository:
```sh
git clone https://github.com/weavedev/terraform-provider-adyen.git
```
3. Navigate to the cloned directory:
```sh
cd terraform-provider-adyen
```
### Setup Credentials
#### Adyen Test Customer Area
1. Go to [Adyen](https://docs.adyen.com/get-started-with-adyen/) and follow the instructions there to create a "test account" so you can get granted access to the "Test Customer Area".
2. Go to your [Test Customer Area](https://ca-test.adyen.com/) and login with your credentials.
3. Go to "**Developers**" -> "**API credentials**" -> "**Create new credential**".
4. Create API Credential as a "**Web service user**".
5. (Optional) Add a description to your API Credential.
6. Note/Copy your API key under "**Authentication**" and optionally edit scopes under "**Permissions**" --> "**Roles**".
7. Note your **"Merchant" & "Company" accounts** at the top left of your Dashboard.
#### Add the provider to your terraform project:
```hcl
terraform {
required_providers {
adyen = {
version = ">= 0.0.1"
source = "weavedev/adyen"
}
}
}
provider "adyen" {
api_key = "" // From Step 6
environment = "" // Or "live"
merchant_account = "" // From Step 7
company_account = "" // From Step 7
}
# Example resource
resource "adyen_webhooks_merchant" "example_webhook" {
webhooks_merchant = {
type = "standard"
url = "https://webhook.site/etc-etc-etc"
username = "YOUR_USER"
password = "YOUR_PASSWORD"
active = false
communication_format = "json"
accepts_expired_certificate = false
accepts_self_signed_certificate = true
accepts_untrusted_root_certificate = true
populate_soap_action_header = false
}
}
```
Development
===========
## Requirements
- [Terraform](https://developer.hashicorp.com/terraform/downloads) >= 1.8
- [Go](https://golang.org/doc/install) >= 1.21
## Developing the Provider
### Prepare Terraform for Local Provider Install
1. Find `GOBIN` path. Your path may vary depending on how your Go environment variables are configured:
```bash
go env GOBIN
```
If your `GOBIN` go environment variable is not set use the default path: `/Users//go/bin`
2. Create a `.terraformrc` file in your home directory (`~`), **if necessary**, then add the `dev_overrides` block below. Change the `` to the value returned from the previous command: `go env GOBIN`. **Note: This override ensures that while developing you are using your locally compiled provider**.
```ini
provider_installation {
dev_overrides {
"registry.terraform.io/weavedev/adyen" = ""
}
direct {}
}
```
3. You should be getting this "Warning" from Terraform after adding your `dev_overrides` to the `.terraformrc` file:
```
Warning: Provider development overrides are in effect
The following provider development overrides are set in the CLI configuration:
- weavedev/adyen in /Users/tolgaakyazi/go/bin
The behavior may therefore not match any released version of the provider and applying changes may cause the state to become
incompatible with published releases.
```
4. Now you are ready to locally develop and test new data-sources, resources or functions for this provider!
## Contributing to the Provider
After setting up your local provider install, you can start contributing to the provider.
1. You should, at this point, have a folder called `terraform-provider-adyen`, `cd` into that folder and create a new branch
```bash
cd terraform-provider-adyen
git checkout -b feat/
```
2. Make the necessary changes to the codebase. Be sure to follow the project's coding standards and best practices.
3. Add your changes to a new commit
```bash
git add .
```
4. Commit the staged changes with a descriptive message
```bash
git commit -m 'Clear description of your changes/additions'
```
5. Push your changes to the repository
```bash
git push origin feat/
```
6. Finally, navigate to the repository on GitHub and open a pull request from your new branch. Provide a clear description of your changes and any relevant context.
## PR Reviewing Process
- Your pull request will be reviewed by one of the maintainers.
- You might be asked to make additional changes.
- Once the changes are approved, the build & tests pass, your pull request will be merged.
## Additional Tips
- Keep your changes focused and concise.
- Ensure your code follows the project's style guidelines.
- Generate documentation as needed (`go generate ./...`).
- Write acceptance tests for any new functionality (see: `webhook_merchant_resource_test.go`). Without tests, your PR will not be approved.
# Creating a Provider Release
To create a release for your provider, follow these steps. The GitHub Action will trigger and create a release whenever a new valid version tag is pushed to the repository. Ensure your Terraform provider versions follow the Semantic Versioning standard (vMAJOR.MINOR.PATCH).
1. **Stage your changes**
Add your changes to a new commit:
```bash
git add .
```
2. **Commit your changes**
Commit the staged changes with a descriptive message:
```bash
git commit -m 'Add docs, goreleaser, and GH actions'
```
3. **Create a new tag**
Create a new tag following the Semantic Versioning standard (e.g. `v0.0.1`):
```bash
git tag v0.0.1
```
4. **Push the tag to GitHub**
Push the new tag to GitHub to trigger the release action:
```bash
git push origin v0.0.1
```
Once the tag is pushed, GitHub Actions will automatically trigger the workflow to create a new release for your provider.
#### Thank you for contributing! We appreciate your help in improving our provider.