refactor(app): split the main command file into multiples
Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
103
internal/renovate/client.go
Normal file
103
internal/renovate/client.go
Normal file
@@ -0,0 +1,103 @@
|
||||
package renovate
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"dagger.io/dagger"
|
||||
)
|
||||
|
||||
type RenovateClient struct {
|
||||
config string
|
||||
}
|
||||
|
||||
func NewRenovateClient(config string) *RenovateClient {
|
||||
return &RenovateClient{config: config}
|
||||
}
|
||||
|
||||
func (rc *RenovateClient) RefreshRepository(ctx context.Context, owner, repository string) error {
|
||||
client, err := dagger.Connect(ctx, dagger.WithLogOutput(os.Stdout))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
envRenovateToken := os.Getenv("GITEA_RENOVATE_TOKEN")
|
||||
log.Println(envRenovateToken)
|
||||
|
||||
renovateToken := client.SetSecret("RENOVATE_TOKEN", envRenovateToken)
|
||||
githubComToken := client.SetSecret("GITHUB_COM_TOKEN", os.Getenv("GITHUB_COM_TOKEN"))
|
||||
renovateSecret := client.SetSecret("RENOVATE_SECRETS", os.Getenv("RENOVATE_SECRETS"))
|
||||
|
||||
output, err := client.Container().
|
||||
From("renovate/renovate:latest").
|
||||
WithNewFile("/opts/renovate/config.json", dagger.ContainerWithNewFileOpts{
|
||||
Contents: `{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"platform": "gitea",
|
||||
"endpoint": "https://git.front.kjuulh.io/api/v1/",
|
||||
"automerge": true,
|
||||
"automergeType": "pr",
|
||||
"extends": [
|
||||
"config:base"
|
||||
],
|
||||
"hostRules": [
|
||||
{
|
||||
"hostType": "docker",
|
||||
"matchHost": "harbor.front.kjuulh.io",
|
||||
"username": "service",
|
||||
"password": "{{ secrets.HARBOR_SERVER_PASSWORD }}"
|
||||
}
|
||||
],
|
||||
"packageRules": [
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"registryUrls": ["https://harbor.front.kjuulh.io/docker-proxy/library/"]
|
||||
},
|
||||
{
|
||||
"groupName": "all dependencies",
|
||||
"separateMajorMinor": false,
|
||||
"groupSlug": "all",
|
||||
"packageRules": [
|
||||
{
|
||||
"matchPackagePatterns": [
|
||||
"*"
|
||||
],
|
||||
"groupName": "all dependencies",
|
||||
"groupSlug": "all"
|
||||
}
|
||||
],
|
||||
"lockFileMaintenance": {
|
||||
"enabled": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}`,
|
||||
Permissions: 755,
|
||||
Owner: "root",
|
||||
}).
|
||||
WithSecretVariable("RENOVATE_TOKEN", renovateToken).
|
||||
WithSecretVariable("GITHUB_COM_TOKEN", githubComToken).
|
||||
WithSecretVariable("RENOVATE_SECRETS", renovateSecret).
|
||||
WithEnvVariable("LOG_LEVEL", "warn").
|
||||
WithEnvVariable("RENOVATE_CONFIG_FILE", "/opts/renovate/config.json").
|
||||
WithExec([]string{
|
||||
fmt.Sprintf("%s/%s", owner, repository),
|
||||
}).
|
||||
Sync(ctx)
|
||||
|
||||
stdout, outerr := output.Stdout(ctx)
|
||||
if outerr == nil {
|
||||
log.Printf("stdout: %s", stdout)
|
||||
}
|
||||
stderr, outerr := output.Stderr(ctx)
|
||||
if outerr == nil {
|
||||
log.Printf("stderr: %s", stderr)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("error: %w, \nstderr: %s\nstdout: %s", err, stderr, stdout)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user