mirror of
https://code.forgejo.org/actions/ovh-dns-update
synced 2025-12-16 05:17:20 +01:00
No description
Reviewed-on: https://code.forgejo.org/forgejo/ovh-dns-update/pulls/29 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Co-authored-by: Renovate Bot <bot@kriese.eu> Co-committed-by: Renovate Bot <bot@kriese.eu> |
||
|---|---|---|
| .forgejo/workflows | ||
| LICENSES | ||
| action.yml | ||
| go.mod | ||
| go.sum | ||
| go.sum.license | ||
| main.go | ||
| main_test.go | ||
| README.md | ||
| renovate.json | ||
OVH DNS Update
Description
Update a given DNS record using the OVH API.
NOTE: This action is written in Go. Please setup the Go environment before running this action or use a runner with Go environment installed.
Inputs
| parameter | description | required | default |
|---|---|---|---|
| subdomain | The subdomain to update (e.g. _release) | true |
|
| domain | The domain (zoneName in the OVH API) | true |
|
| record-id | The ID of the record to update | true |
|
| value | The TXT value to set | true |
|
| ovh-endpoint | The OVH API endpoint | false |
ovh-eu |
| ovh-app-key | The OVH API Application Key | true |
|
| ovh-app-secret | The OVH API Application Secret | true |
|
| ovh-consumer-key | The OVH API Consumer Key | true |
Create the OVH credentials and information
- https://api.ovh.com/console/#/domain/zone/%7BzoneName%7D/record~GET
- Authenticate
- Set zoneName (e.g
forgejo.org) - Set fieldType to
TXT - Set subDomain (e.g.
release) - Click
EXECUTE - The content of
RESPONSEis therecord-id(e.g.5283602601) - Visit https://www.ovh.com/auth/api/createToken?PUT=/domain/zone/{domain}/record/{record-id} (e.g. https://www.ovh.com/auth/api/createToken?PUT=/domain/zone/forgejo.org/record/5283602601)
- Click create
Application keyisovh-app-keyApplication secretisovh-app-secretConsumer Keyisovh-consumer-key
Security notice
However be aware that the credentials can also update the subdmain! This means that anyone with this credentials can publish a TXT record under any subdomain of the domain (for instance to get a signed certificate by completing the DNS challenge of the ACME protocol).
To mitigate this issue, a dedicated domain can be used with only TXT records (and CNAME records on the main domain, which points to those TXT records).
Example
on: [tag]
jobs:
upload-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version: ">=1.21"
check-latest: true
- uses: https://code.forgejo.org/forgejo/ovh-dns-update@v1.0.1
with:
subdomain: _release
domain: example.org
record-id: 12345
value: v=${{ github.ref_name }}
ovh-app-key: ${{ secrets.OVH_APP_KEY }}
ovh-app-secret: ${{ secrets.OVH_APP_SECRET }}
ovh-consumer-key: ${{ secrets.OVH_CON_KEY }}
Legacy
It was originally developed for use in the Release Version Check Over DNS (RVCoDNS).