Repeat and fullfill your GitLab Agent tasks.
Workboard or any other tools to manage your work, just use GitLab.glab CLI. This includes creating and updating issues, merge requests, branches, comments, and more.feat/*fix/*workflow::paused.blocking_discussions_resolved=true or "discussion-clean".requested changes, reviewer comments, and non-resolvable top-level notes as actionable feedback until addressed, even when blocking_discussions_resolved=true.If the labels are missing, make a merge request to add them via the label component and its default settings.
| GitLab label | Common name | Meaning |
|---|---|---|
| --- | --- | --- |
size::small | Small | Needs only minor changes and is trivial. Within a day's resolution |
size::medium | Medium | Needs moderate changes and is somewhat complex. Within a few days' resolution |
size::large | Large | Needs significant changes and is complex. Within a week or more resolution |
size::xlarge | Extra large | Needs extensive changes and is very complex. Within a month or more resolution |
size is added before workflow::in-progress.| GitLab label | Common name | Meaning |
|---|---|---|
| --- | --- | --- |
type::support | Support Request | Someone need help, but no change. Maybe it resolves in new work item after investigation. |
type::fix | Fix | Something that needs to be fixed and exists |
type::feature | Feature | Something new |
type::hotfix | Hotfix | Urgent fix for a critical issue that merges directly in main. |
type, if nothing of the above matches.type is added before workflow::in-progress.Use the labels in your merge requests to set the current status of the work. Only use one workflow status label at a time.
| GitLab label | Common name | Meaning |
|---|---|---|
| --- | --- | --- |
workflow::backlog | Backlog | Not yet started. Initial state. |
workflow::in-progress | Running | Actively worked on |
workflow::paused | Paused | Agent will continue later automatically. Temporarily paused for one hour to one day. |
workflow::need-human | Need Human | Requires human intervention to fullfill current task, also explain why. Its status is not blocked or paused. |
workflow::blocked | Blocked | Currently blocked by a dependency or issue |
workflow::review | Review | When something is done and reviewer was assigned |
workflow::done | Done | Completed and no further action is required |
workflow::stale | Stale | No activity for at least 30 days and may need attention |
graph TD
create[New Work Item / MR] --> workflow::backlog
workflow::backlog --> workflow::in-progress
workflow::in-progress --> workflow::review
workflow::review --> workflow::done
workflow::in-progress --> workflow::paused
workflow::in-progress --> workflow::blocked
workflow::in-progress --> workflow::need-human
workflow::need-human --> workflow::in-progress
workflow::need-human --> workflow::stale
workflow::blocked --> workflow::in-progress
workflow::paused --> workflow::in-progress
workflow::review --> workflow::stale
workflow::stale --> workflow::in-progress
workflow::done --> close[Close Work Item / MR]
{baseDir}/... instead of hardcoding workspace-specific skill paths.allow_failure: true, skips, or bypasses to make CI green unless the job is genuinely optional/manual, and document why.AGENTS.md file.glab CLI to interact with GitLabUse the glab CLI to interact with GitLab. Specify --repo owner/repo or --repo group/namespace/repo when not in a git directory. Also accepts full URLs.
When you are using glab you are always authenticated as a GitLab user.
glab api graphql -f query='
query {
currentUser { username }
}
'
is a reference in queries to your username.
is a refence to your username.
For issues:
glab api graphql -f query='
query($username: String) {
issues(state: opened, assigneeUsername: $username, first: 50) {
nodes {
iid
title
webUrl
description
author {
username
name
emails {
email
}
}
createdAt
updatedAt
userNotesCount
labels(first: 20) {
nodes {
title
}
}
notes(first: 100) {
pageInfo {
hasNextPage
endCursor
}
nodes {
id
system
body
updatedAt
author {
username
}
}
}
}
}
}
' -f username=<gitlab-username>
To get the team members of a project:
glab api graphql -f query='
query($fullPath: ID!) {
project(fullPath: $fullPath) {
fullPath
projectMembers(first: 100) {
pageInfo {
hasNextPage
endCursor
}
nodes {
id
accessLevel {
stringValue
}
user {
username
name
}
}
}
}
}
' -f fullPath=<group/namespace/repo>
For Merge Requests:
glab api '/merge_requests?state=opened&scope=assigned_to_me'
List all Repositories:
glab repo list --member
List open merge requests:
glab mr list --repo owner/repo
View MR details:
glab mr view 55 --repo owner/repo
Create an MR from current branch:
glab mr create --fill --target-branch main
Approve, merge, or check out:
glab mr approve 55
glab mr merge 55
glab mr checkout 55
View MR diff:
glab mr diff 55
Check pipeline status for current branch:
glab ci status
View pipeline interactively (navigate jobs, view logs):
glab ci view
List recent pipelines:
glab ci list --repo owner/repo
Trace job logs in real time:
glab ci trace
glab ci trace 224356863 # specific job ID
glab ci trace lint # by job name
Retry a failed pipeline:
glab ci retry
Validate .gitlab-ci.yml:
glab ci lint
All your current work items:
glab api graphql -f query='
query($username: String) {
issues(state: opened, assigneeUsername: $username, first: 50) {
nodes {
iid
title
webUrl
}
}
}
' -f username=<gitlab-username>
List and view issues:
glab issue list --repo owner/repo
glab issue view 42
Create an issue:
glab issue create --title "Bug report" --label bug
Add a comment:
glab issue note 42 -m "This is fixed in !55"
Use glab api for endpoints not covered by subcommands. Supports REST and GraphQL.
Get project releases:
glab api projects/:fullpath/releases
Get MR with specific fields (pipe to jq):
glab api projects/owner/repo/merge_requests/55 | jq '.title, .state, .author.username'
Paginate through all issues:
glab api issues --paginate
GraphQL query:
glab api graphql -f query='
query {
currentUser { username }
}
'
Pipe to jq for filtering:
glab mr list --repo owner/repo | jq -r '.[] | "\(.iid): \(.title)"'
Manage CI/CD variables:
glab variable list
glab variable set MY_VAR "value"
glab variable get MY_VAR
Create a release:
glab release create v1.0.0 --notes "Release notes here"
\n for newlines in messages not \\n.-C flag.Send features and bugfixes for this skill as merge requests to the skills project.
共 8 个版本