diff --git a/internal/pkg/image_repositories/dependabot.go b/internal/pkg/image_repositories/dependabot.go
deleted file mode 100644
index b430146..0000000
--- a/internal/pkg/image_repositories/dependabot.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package image_repositories
-
-import (
-	"io"
-
-	"github.com/go-git/go-billy/v5"
-	"github.com/goccy/go-yaml"
-)
-
-type DependabotConfig struct {
-	Version int                `yaml:"version"`
-	Updates []DependabotUpdate `yaml:"updates"`
-}
-
-type DependabotUpdate struct {
-	PackageEcosystem string             `yaml:"package-ecosystem"`
-	Directory        string             `yaml:"directory"`
-	Schedule         DependabotSchedule `yaml:"schedule"`
-}
-
-type DependabotSchedule struct {
-	Interval string `yaml:"interval"`
-}
-
-func NewDependabotConfig() *DependabotConfig {
-	return &DependabotConfig{
-		Version: 2,
-		Updates: []DependabotUpdate{},
-	}
-}
-
-func (d *DependabotConfig) Write(wr io.Writer) error {
-	bytes, err := yaml.Marshal(d)
-	if err != nil {
-		return err
-	}
-
-	_, err = wr.Write(bytes)
-	return err
-}
-
-func (d *DependabotConfig) WriteFile(fs billy.Filesystem) error {
-	f, err := fs.Create(".github/dependabot.yml")
-	if err != nil {
-		return err
-	}
-	defer f.Close()
-
-	return d.Write(f)
-}
diff --git a/internal/pkg/image_repositories/image_repository.go b/internal/pkg/image_repositories/image_repository.go
index 94a8093..cb2d81d 100644
--- a/internal/pkg/image_repositories/image_repository.go
+++ b/internal/pkg/image_repositories/image_repository.go
@@ -62,13 +62,6 @@
 		return err
 	}
 
-	// .github/dependabot.yml
-	dab := NewDependabotConfig()
-	err = dab.WriteFile(fs)
-	if err != nil {
-		return err
-	}
-
 	// .dockerignore
 	di := NewDockerIgnore()
 	err = di.WriteFile(fs)
@@ -116,6 +109,20 @@
 	return nil
 }
 
+func (i *ImageRepository) CreateGithubRepository(ctx context.Context) error {
+	repo := &github.Repository{
+		Name:     github.String(i.githubProjectName),
+		AutoInit: github.Bool(true),
+	}
+
+	_, _, err := i.githubClient.Repositories.Create(ctx, "vexxhost", repo)
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
 func (i *ImageRepository) GetGitHubRepository(ctx context.Context) (*github.Repository, error) {
 	repo, _, err := i.githubClient.Repositories.Get(ctx, "vexxhost", i.githubProjectName)
 	if err != nil {
@@ -176,7 +183,7 @@
 		},
 		RequiredConversationResolution: github.Bool(true),
 		RequireLinearHistory:           github.Bool(true),
-		EnforceAdmins:                  true,
+		EnforceAdmins:                  false,
 		AllowForcePushes:               github.Bool(false),
 		AllowDeletions:                 github.Bool(false),
 	}
