diff --git a/pkg/provider/gitlab.go b/pkg/provider/gitlab.go
index 75487da93a7994d890ed11973338d688555cf96a..10520486a7369b7f658cd4cf492555e791414fa8 100644
--- a/pkg/provider/gitlab.go
+++ b/pkg/provider/gitlab.go
@@ -30,10 +30,15 @@ func (repo *GitLabRepository) Init(config map[string]string) error {
 		gitlabBaseURL = os.Getenv("CI_SERVER_URL")
 	}
 
+	useJobToken := false
 	token := config["token"]
 	if token == "" {
 		token = os.Getenv("GITLAB_TOKEN")
 	}
+	if token == "" {
+		token = os.Getenv("CI_JOB_TOKEN")
+		useJobToken = true
+	}
 	if token == "" {
 		return errors.New("gitlab token missing")
 	}
@@ -62,11 +67,16 @@ func (repo *GitLabRepository) Init(config map[string]string) error {
 	repo.projectID = projectID
 	repo.branch = branch
 
-	var client *gitlab.Client
+	gitlabClientOpts := []gitlab.ClientOptionFunc{}
 	if gitlabBaseURL != "" {
-		client, err = gitlab.NewClient(token, gitlab.WithBaseURL(gitlabBaseURL))
+		gitlabClientOpts = append(gitlabClientOpts, gitlab.WithBaseURL(gitlabBaseURL))
+	}
+
+	var client *gitlab.Client
+	if useJobToken {
+		client, err = gitlab.NewJobClient(token, gitlabClientOpts...)
 	} else {
-		client, err = gitlab.NewClient(token)
+		client, err = gitlab.NewClient(token, gitlabClientOpts...)
 	}
 
 	if err != nil {