Jay V 6 месяцев назад
Родитель
Сommit
256d074411
2 измененных файлов с 102 добавлено и 76 удалено
  1. 8 1
      packages/web/astro.config.mjs
  2. 94 75
      packages/web/src/content/docs/docs/gitlab.mdx

+ 8 - 1
packages/web/astro.config.mjs

@@ -67,7 +67,14 @@ export default defineConfig({
 
         {
           label: "Usage",
-          items: ["docs/tui", "docs/cli", "docs/ide", "docs/share", "docs/github"],
+          items: [
+            "docs/tui",
+            "docs/cli",
+            "docs/ide",
+            "docs/share",
+            "docs/github",
+            "docs/gitlab"
+          ],
         },
 
         {

+ 94 - 75
packages/web/src/content/docs/docs/gitlab.mdx

@@ -19,81 +19,96 @@ Mention `@opencode` in a comment, and opencode will execute tasks within your Gi
 
 ## Setup
 
-Refer to the [GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)
-for detailed setup instructions.
-
-Here is an example of the agent configuration:
-
-```yaml
-image: node:22-slim
-commands:
-  - echo "Installing opencode"
-  - npm install --global opencode-ai
-  - echo "Installing glab"
-  - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE
-  - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
-  - curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
-  - apt-get install --yes glab
-  - echo "Configuring glab"
-  - echo $GITLAB_HOST
-  - echo "Creating opencode auth configuration"
-  - mkdir --parents ~/.local/share/opencode
-  - |
-    cat > ~/.local/share/opencode/auth.json << EOF
-    {
-      "anthropic": {
-        "type": "api",
-        "key": "$ANTHROPIC_API_KEY"
-      }
-    }
-    EOF
-  - echo "Configuring git"
-  - git config --global user.email "[email protected]"
-  - git config --global user.name "Opencode"
-  - echo "Testing glab"
-  - glab issue list
-  - echo "Running Opencode"
-  - |
-    opencode run "
-    You are an AI assistant helping with GitLab operations.
-
-    Context: $AI_FLOW_CONTEXT
-    Task: $AI_FLOW_INPUT
-    Event: $AI_FLOW_EVENT
-
-    Please execute the requested task using the available GitLab tools.
-    Be thorough in your analysis and provide clear explanations.
-
-    <important>
-    Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
-
-    If you are asked to summarise an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
-    You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
-    </important>
-    "
-  - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
-  - echo "Checking for git changes and pushing if any exist"
-  - |
-    if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
-      echo "Git changes detected, adding and pushing..."
-      git add .
-      if git diff --cached --quiet; then
-        echo "No staged changes to commit"
-      else
-        echo "Committing changes to branch: $CI_WORKLOAD_REF"
-        git commit --message "Codex changes"
-        echo "Pushing changes up to $CI_WORKLOAD_REF"
-        git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
-        echo "Changes successfully pushed"
-      fi
-    else
-      echo "No git changes detected, skipping push"
-    fi
-variables:
-  - ANTHROPIC_API_KEY
-  - GITLAB_TOKEN_OPENCODE
-  - GITLAB_HOST
-```
+opencode runs in your GitLab CI/CD pipeline, here's what you'll need to set it up:
+
+:::tip
+Check out the [**GitLab docs**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) for up to date instructions.
+:::
+
+1. Configure your GitLab environment
+2. Set up CI/CD
+3. Get an AI model provider API key
+4. Create a service account
+5. Configure CI/CD variables
+6. Create a flow config file, here's an example:
+
+   <details>
+     <summary>Flow configuration</summary>
+
+   ```yaml
+   image: node:22-slim
+   commands:
+     - echo "Installing opencode"
+     - npm install --global opencode-ai
+     - echo "Installing glab"
+     - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE
+     - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
+     - curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
+     - apt-get install --yes glab
+     - echo "Configuring glab"
+     - echo $GITLAB_HOST
+     - echo "Creating opencode auth configuration"
+     - mkdir --parents ~/.local/share/opencode
+     - |
+       cat > ~/.local/share/opencode/auth.json << EOF
+       {
+         "anthropic": {
+           "type": "api",
+           "key": "$ANTHROPIC_API_KEY"
+         }
+       }
+       EOF
+     - echo "Configuring git"
+     - git config --global user.email "[email protected]"
+     - git config --global user.name "Opencode"
+     - echo "Testing glab"
+     - glab issue list
+     - echo "Running Opencode"
+     - |
+       opencode run "
+       You are an AI assistant helping with GitLab operations.
+   
+       Context: $AI_FLOW_CONTEXT
+       Task: $AI_FLOW_INPUT
+       Event: $AI_FLOW_EVENT
+   
+       Please execute the requested task using the available GitLab tools.
+       Be thorough in your analysis and provide clear explanations.
+   
+       <important>
+       Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
+   
+       If you are asked to summarise an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
+       You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
+       </important>
+       "
+     - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
+     - echo "Checking for git changes and pushing if any exist"
+     - |
+       if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
+         echo "Git changes detected, adding and pushing..."
+         git add .
+         if git diff --cached --quiet; then
+           echo "No staged changes to commit"
+         else
+           echo "Committing changes to branch: $CI_WORKLOAD_REF"
+           git commit --message "Codex changes"
+           echo "Pushing changes up to $CI_WORKLOAD_REF"
+           git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
+           echo "Changes successfully pushed"
+         fi
+       else
+         echo "No git changes detected, skipping push"
+       fi
+   variables:
+     - ANTHROPIC_API_KEY
+     - GITLAB_TOKEN_OPENCODE
+     - GITLAB_HOST
+   ```
+
+   </details>
+
+You can refer to the [GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) for detailed instructions.
 
 ---
 
@@ -101,6 +116,10 @@ variables:
 
 Here are some examples of how you can use opencode in GitLab.
 
+:::tip
+You can configure to use a different trigger phrase than `@opencode`.
+:::
+
 - **Explain an issue**
 
   Add this comment in a GitLab issue.