ai-cr 3.2.1__py3-none-any.whl → 3.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ai_cr-3.2.1.dist-info → ai_cr-3.3.0.dist-info}/LICENSE +21 -21
- {ai_cr-3.2.1.dist-info → ai_cr-3.3.0.dist-info}/METADATA +1 -1
- ai_cr-3.3.0.dist-info/RECORD +41 -0
- {ai_cr-3.2.1.dist-info → ai_cr-3.3.0.dist-info}/WHEEL +1 -1
- gito/__main__.py +4 -4
- gito/bootstrap.py +90 -90
- gito/cli.py +255 -244
- gito/cli_base.py +104 -94
- gito/commands/__init__.py +1 -1
- gito/commands/deploy.py +138 -138
- gito/commands/fix.py +160 -160
- gito/commands/gh_post_review_comment.py +111 -111
- gito/commands/gh_react_to_comment.py +217 -217
- gito/commands/linear_comment.py +53 -53
- gito/commands/repl.py +30 -30
- gito/commands/version.py +8 -8
- gito/config.toml +450 -448
- gito/constants.py +15 -14
- gito/context.py +19 -19
- gito/core.py +520 -508
- gito/env.py +8 -7
- gito/gh_api.py +116 -116
- gito/issue_trackers.py +50 -50
- gito/pipeline.py +83 -83
- gito/pipeline_steps/jira.py +62 -62
- gito/pipeline_steps/linear.py +85 -85
- gito/project_config.py +85 -85
- gito/report_struct.py +136 -136
- gito/tpl/answer.j2 +25 -25
- gito/tpl/github_workflows/components/env-vars.j2 +11 -11
- gito/tpl/github_workflows/components/installs.j2 +23 -23
- gito/tpl/github_workflows/gito-code-review.yml.j2 +32 -32
- gito/tpl/github_workflows/gito-react-to-comments.yml.j2 +70 -70
- gito/tpl/partial/aux_files.j2 +8 -8
- gito/tpl/questions/changes_summary.j2 +55 -55
- gito/tpl/questions/release_notes.j2 +26 -26
- gito/tpl/questions/test_cases.j2 +37 -37
- gito/utils.py +267 -242
- ai_cr-3.2.1.dist-info/RECORD +0 -41
- {ai_cr-3.2.1.dist-info → ai_cr-3.3.0.dist-info}/entry_points.txt +0 -0
@@ -1,11 +1,11 @@
|
|
1
|
-
|
2
|
-
LLM_API_TYPE: {{ api_type }}
|
3
|
-
LLM_API_KEY: {{ "${{ secrets." + secret_name + " }}" }}
|
4
|
-
MODEL: {{ model }}
|
5
|
-
{% raw -%}
|
6
|
-
JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }}
|
7
|
-
JIRA_URL: ${{ secrets.JIRA_URL }}
|
8
|
-
JIRA_USER: ${{ secrets.JIRA_USER }}
|
9
|
-
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|
10
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
11
|
-
{%- endraw %}
|
1
|
+
|
2
|
+
LLM_API_TYPE: {{ api_type }}
|
3
|
+
LLM_API_KEY: {{ "${{ secrets." + secret_name + " }}" }}
|
4
|
+
MODEL: {{ model }}
|
5
|
+
{% raw -%}
|
6
|
+
JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }}
|
7
|
+
JIRA_URL: ${{ secrets.JIRA_URL }}
|
8
|
+
JIRA_USER: ${{ secrets.JIRA_USER }}
|
9
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|
10
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
11
|
+
{%- endraw %}
|
@@ -1,23 +1,23 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
- name: Set up Python
|
4
|
-
uses: actions/setup-python@v5
|
5
|
-
with: { python-version: "3.13" }
|
6
|
-
|
7
|
-
- name: Fetch Latest Gito Version
|
8
|
-
id: gito-version
|
9
|
-
run: pip index versions gito.bot 2>/dev/null | head -1 | sed -n 's/.* (\([^)]*\)).*/version=\1/p' >> $GITHUB_OUTPUT
|
10
|
-
|
11
|
-
{% raw -%}
|
12
|
-
- uses: actions/cache@v4
|
13
|
-
id: cache
|
14
|
-
with:
|
15
|
-
path: |
|
16
|
-
${{ env.pythonLocation }}/lib/python3.13/site-packages
|
17
|
-
${{ env.pythonLocation }}/bin
|
18
|
-
key: gito_v${{ steps.gito-version.outputs.version }}
|
19
|
-
{%- endraw %}
|
20
|
-
|
21
|
-
- name: Install Gito
|
22
|
-
if: steps.cache.outputs.cache-hit != 'true'
|
23
|
-
run: pip install gito.bot~={{ major }}.{{ minor }}
|
1
|
+
|
2
|
+
|
3
|
+
- name: Set up Python
|
4
|
+
uses: actions/setup-python@v5
|
5
|
+
with: { python-version: "3.13" }
|
6
|
+
|
7
|
+
- name: Fetch Latest Gito Version
|
8
|
+
id: gito-version
|
9
|
+
run: pip index versions gito.bot 2>/dev/null | head -1 | sed -n 's/.* (\([^)]*\)).*/version=\1/p' >> $GITHUB_OUTPUT
|
10
|
+
|
11
|
+
{% raw -%}
|
12
|
+
- uses: actions/cache@v4
|
13
|
+
id: cache
|
14
|
+
with:
|
15
|
+
path: |
|
16
|
+
${{ env.pythonLocation }}/lib/python3.13/site-packages
|
17
|
+
${{ env.pythonLocation }}/bin
|
18
|
+
key: gito_v${{ steps.gito-version.outputs.version }}
|
19
|
+
{%- endraw %}
|
20
|
+
|
21
|
+
- name: Install Gito
|
22
|
+
if: steps.cache.outputs.cache-hit != 'true'
|
23
|
+
run: pip install gito.bot~={{ major }}.{{ minor }}
|
@@ -1,33 +1,33 @@
|
|
1
|
-
name: "Gito: AI Code Reviewer"
|
2
|
-
on:
|
3
|
-
pull_request:
|
4
|
-
types: [opened, synchronize, reopened]
|
5
|
-
workflow_dispatch:
|
6
|
-
inputs:
|
7
|
-
pr_number:
|
8
|
-
description: "Pull Request number"
|
9
|
-
required: true
|
10
|
-
jobs:
|
11
|
-
review:
|
12
|
-
runs-on: ubuntu-latest
|
13
|
-
permissions: { contents: read, pull-requests: write } # 'write' for leaving the summary comment
|
14
|
-
steps:
|
15
|
-
- uses: actions/checkout@v4
|
16
|
-
with: { fetch-depth: 0 }
|
17
|
-
|
18
|
-
{%- include("github_workflows/components/installs.j2") %}
|
19
|
-
|
20
|
-
- name: Run AI code review
|
21
|
-
env:
|
22
|
-
{%- include("github_workflows/components/env-vars.j2") %}
|
23
|
-
PR_NUMBER_FROM_WORKFLOW_DISPATCH: {% raw %}${{ github.event.inputs.pr_number }}{% endraw %}
|
24
|
-
run: |{% raw %}
|
25
|
-
gito --verbose review
|
26
|
-
gito github-comment{% endraw %}
|
27
|
-
|
28
|
-
- uses: actions/upload-artifact@v4
|
29
|
-
with:
|
30
|
-
name: gito-code-review-results
|
31
|
-
path: |
|
32
|
-
code-review-report.md
|
1
|
+
name: "Gito: AI Code Reviewer"
|
2
|
+
on:
|
3
|
+
pull_request:
|
4
|
+
types: [opened, synchronize, reopened]
|
5
|
+
workflow_dispatch:
|
6
|
+
inputs:
|
7
|
+
pr_number:
|
8
|
+
description: "Pull Request number"
|
9
|
+
required: true
|
10
|
+
jobs:
|
11
|
+
review:
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
permissions: { contents: read, pull-requests: write } # 'write' for leaving the summary comment
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v4
|
16
|
+
with: { fetch-depth: 0 }
|
17
|
+
|
18
|
+
{%- include("github_workflows/components/installs.j2") %}
|
19
|
+
|
20
|
+
- name: Run AI code review
|
21
|
+
env:
|
22
|
+
{%- include("github_workflows/components/env-vars.j2") %}
|
23
|
+
PR_NUMBER_FROM_WORKFLOW_DISPATCH: {% raw %}${{ github.event.inputs.pr_number }}{% endraw %}
|
24
|
+
run: |{% raw %}
|
25
|
+
gito --verbose review
|
26
|
+
gito github-comment{% endraw %}
|
27
|
+
|
28
|
+
- uses: actions/upload-artifact@v4
|
29
|
+
with:
|
30
|
+
name: gito-code-review-results
|
31
|
+
path: |
|
32
|
+
code-review-report.md
|
33
33
|
code-review-report.json
|
@@ -1,70 +1,70 @@
|
|
1
|
-
name: "Gito: React to GitHub comment"
|
2
|
-
|
3
|
-
on:
|
4
|
-
issue_comment:
|
5
|
-
types: [created]
|
6
|
-
|
7
|
-
permissions:
|
8
|
-
contents: write # to make PR
|
9
|
-
issues: write
|
10
|
-
pull-requests: write
|
11
|
-
# read: to download the code review artifact
|
12
|
-
# write: to trigger other actions
|
13
|
-
actions: write
|
14
|
-
|
15
|
-
jobs:
|
16
|
-
process-comment:
|
17
|
-
if: |
|
18
|
-
github.event.issue.pull_request &&
|
19
|
-
(
|
20
|
-
github.event.comment.author_association == 'OWNER' ||
|
21
|
-
github.event.comment.author_association == 'MEMBER' ||
|
22
|
-
github.event.comment.author_association == 'COLLABORATOR'
|
23
|
-
) &&
|
24
|
-
(
|
25
|
-
startsWith(github.event.comment.body, '/') ||
|
26
|
-
startsWith(github.event.comment.body, 'gito') ||
|
27
|
-
startsWith(github.event.comment.body, 'ai') ||
|
28
|
-
startsWith(github.event.comment.body, 'bot') ||
|
29
|
-
contains(github.event.comment.body, '@gito') ||
|
30
|
-
contains(github.event.comment.body, '@ai') ||
|
31
|
-
contains(github.event.comment.body, '@bot')
|
32
|
-
)
|
33
|
-
runs-on: ubuntu-latest
|
34
|
-
|
35
|
-
steps:
|
36
|
-
- name: Get PR details
|
37
|
-
id: pr
|
38
|
-
uses: actions/github-script@v7
|
39
|
-
with:
|
40
|
-
script: |
|
41
|
-
const pr = await github.rest.pulls.get({
|
42
|
-
owner: context.repo.owner,
|
43
|
-
repo: context.repo.repo,
|
44
|
-
pull_number: context.issue.number
|
45
|
-
});
|
46
|
-
return {
|
47
|
-
head_ref: pr.data.head.ref,
|
48
|
-
head_sha: pr.data.head.sha,
|
49
|
-
base_ref: pr.data.base.ref
|
50
|
-
};
|
51
|
-
|
52
|
-
- name: Checkout repository
|
53
|
-
uses: actions/checkout@v4
|
54
|
-
with:
|
55
|
-
{% raw -%}
|
56
|
-
repository: ${{ github.repository }}
|
57
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
58
|
-
ref: ${{ fromJson(steps.pr.outputs.result).head_ref }}
|
59
|
-
fetch-depth: 0
|
60
|
-
{%- endraw %}
|
61
|
-
|
62
|
-
{%- include("github_workflows/components/installs.j2") %}
|
63
|
-
|
64
|
-
- name: Run Gito react
|
65
|
-
env:
|
66
|
-
# LLM config is needed only if answer_github_comments = true in .gito/config.toml
|
67
|
-
# Otherwise, use LLM_API_TYPE: none
|
68
|
-
{%- include("github_workflows/components/env-vars.j2") %}
|
69
|
-
run: |
|
70
|
-
{% raw %}gito react-to-comment ${{ github.event.comment.id }}{%- endraw %}
|
1
|
+
name: "Gito: React to GitHub comment"
|
2
|
+
|
3
|
+
on:
|
4
|
+
issue_comment:
|
5
|
+
types: [created]
|
6
|
+
|
7
|
+
permissions:
|
8
|
+
contents: write # to make PR
|
9
|
+
issues: write
|
10
|
+
pull-requests: write
|
11
|
+
# read: to download the code review artifact
|
12
|
+
# write: to trigger other actions
|
13
|
+
actions: write
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
process-comment:
|
17
|
+
if: |
|
18
|
+
github.event.issue.pull_request &&
|
19
|
+
(
|
20
|
+
github.event.comment.author_association == 'OWNER' ||
|
21
|
+
github.event.comment.author_association == 'MEMBER' ||
|
22
|
+
github.event.comment.author_association == 'COLLABORATOR'
|
23
|
+
) &&
|
24
|
+
(
|
25
|
+
startsWith(github.event.comment.body, '/') ||
|
26
|
+
startsWith(github.event.comment.body, 'gito') ||
|
27
|
+
startsWith(github.event.comment.body, 'ai') ||
|
28
|
+
startsWith(github.event.comment.body, 'bot') ||
|
29
|
+
contains(github.event.comment.body, '@gito') ||
|
30
|
+
contains(github.event.comment.body, '@ai') ||
|
31
|
+
contains(github.event.comment.body, '@bot')
|
32
|
+
)
|
33
|
+
runs-on: ubuntu-latest
|
34
|
+
|
35
|
+
steps:
|
36
|
+
- name: Get PR details
|
37
|
+
id: pr
|
38
|
+
uses: actions/github-script@v7
|
39
|
+
with:
|
40
|
+
script: |
|
41
|
+
const pr = await github.rest.pulls.get({
|
42
|
+
owner: context.repo.owner,
|
43
|
+
repo: context.repo.repo,
|
44
|
+
pull_number: context.issue.number
|
45
|
+
});
|
46
|
+
return {
|
47
|
+
head_ref: pr.data.head.ref,
|
48
|
+
head_sha: pr.data.head.sha,
|
49
|
+
base_ref: pr.data.base.ref
|
50
|
+
};
|
51
|
+
|
52
|
+
- name: Checkout repository
|
53
|
+
uses: actions/checkout@v4
|
54
|
+
with:
|
55
|
+
{% raw -%}
|
56
|
+
repository: ${{ github.repository }}
|
57
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
58
|
+
ref: ${{ fromJson(steps.pr.outputs.result).head_ref }}
|
59
|
+
fetch-depth: 0
|
60
|
+
{%- endraw %}
|
61
|
+
|
62
|
+
{%- include("github_workflows/components/installs.j2") %}
|
63
|
+
|
64
|
+
- name: Run Gito react
|
65
|
+
env:
|
66
|
+
# LLM config is needed only if answer_github_comments = true in .gito/config.toml
|
67
|
+
# Otherwise, use LLM_API_TYPE: none
|
68
|
+
{%- include("github_workflows/components/env-vars.j2") %}
|
69
|
+
run: |
|
70
|
+
{% raw %}gito react-to-comment ${{ github.event.comment.id }}{%- endraw %}
|
gito/tpl/partial/aux_files.j2
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
{% if aux_files %}
|
2
|
-
----AUXILIARY INFORMATION----
|
3
|
-
* Use if helpful for the task.
|
4
|
-
{% for file, text in aux_files.items() %}
|
5
|
-
--FILE: {{ file }}--
|
6
|
-
{{ text.strip() }}
|
7
|
-
{%- endfor -%}
|
8
|
-
{%- endif -%}
|
1
|
+
{% if aux_files %}
|
2
|
+
----AUXILIARY INFORMATION----
|
3
|
+
* Use if helpful for the task.
|
4
|
+
{% for file, text in aux_files.items() %}
|
5
|
+
--FILE: {{ file }}--
|
6
|
+
{{ text.strip() }}
|
7
|
+
{%- endfor -%}
|
8
|
+
{%- endif -%}
|
@@ -1,55 +1,55 @@
|
|
1
|
-
{{ self_id }}
|
2
|
-
----TASK----
|
3
|
-
|
4
|
-
## Subtask 1:
|
5
|
-
Write a codebase changes summary clearly describing and explaining it for the engineering managers.
|
6
|
-
- It is intended to be posted into bug tracker for estimating work done in the pull request.
|
7
|
-
- Summary should be in a form of compact changelist where each change is described by one sentence.
|
8
|
-
- Caption should be: ## PR Summary: <3-10 words>
|
9
|
-
- Each change summary BP list item should start from effort estimation icon:
|
10
|
-
- - ◆◇◇ (up to 2 hours)
|
11
|
-
- - ◆◆◇ (half day)
|
12
|
-
- - ◆◆◆ (1-2 days and more)
|
13
|
-
|
14
|
-
Also include this estimation legend below as "Pure Codebase Work Estimation Legend".
|
15
|
-
|
16
|
-
|
17
|
-
## Subtask 1 (Issue alignment sentence)
|
18
|
-
Include one sentence about how the code changes address the requirements of the associated issue listed below.
|
19
|
-
- Use ✅ or ⚠️ to indicate whether the implementation fully satisfies the issue requirements.
|
20
|
-
- Put this sentence immediately below the PR Summary title
|
21
|
-
Examples:
|
22
|
-
|
23
|
-
If the implementation fully delivers the requested functionality:
|
24
|
-
```
|
25
|
-
✅ Implementation Satisfies [<ISSUE_KEY>](<ISSUE_URL>).
|
26
|
-
```
|
27
|
-
If there are concerns about how thoroughly the code covers the requirements and technical description from the associated issue:
|
28
|
-
```
|
29
|
-
⚠️ <Describe specific gap or concern>.
|
30
|
-
⚠️ <Describe additional limitation or missing feature>.
|
31
|
-
```
|
32
|
-
|
33
|
-
## Subtask 3:
|
34
|
-
Write release notes for public documentation.
|
35
|
-
- Caption should be: ## Release Notes Proposal
|
36
|
-
Summarize the following changes, focusing on what is new, improved, or fixed for the end user.
|
37
|
-
Do not include internal or technical details.
|
38
|
-
Structure release notes using clear sections: Added, Changed, Fixed.
|
39
|
-
Avoid internal technical jargon or developer-specific details.
|
40
|
-
|
41
|
-
----RELATED CODEBASE CHANGES----
|
42
|
-
{% for part in diff %}{{ part }}\n{% endfor %}
|
43
|
-
|
44
|
-
----FULL FILE CONTENT AFTER APPLYING CHANGES----
|
45
|
-
{% for file, file_lines in all_file_lines.items() %}
|
46
|
-
--FILE: {{ file }}--
|
47
|
-
{{ file_lines }}
|
48
|
-
{% endfor %}
|
49
|
-
|
50
|
-
{%- if pipeline_out.associated_issue and pipeline_out.associated_issue.title %}
|
51
|
-
----ASSOCIATED ISSUE----
|
52
|
-
# {{ pipeline_out.associated_issue.title }}
|
53
|
-
{{ pipeline_out.associated_issue.description }}
|
54
|
-
URL: {{ pipeline_out.associated_issue.url }}
|
55
|
-
{%- endif -%}{{ '\n' }}
|
1
|
+
{{ self_id }}
|
2
|
+
----TASK----
|
3
|
+
|
4
|
+
## Subtask 1:
|
5
|
+
Write a codebase changes summary clearly describing and explaining it for the engineering managers.
|
6
|
+
- It is intended to be posted into bug tracker for estimating work done in the pull request.
|
7
|
+
- Summary should be in a form of compact changelist where each change is described by one sentence.
|
8
|
+
- Caption should be: ## PR Summary: <3-10 words>
|
9
|
+
- Each change summary BP list item should start from effort estimation icon:
|
10
|
+
- - ◆◇◇ (up to 2 hours)
|
11
|
+
- - ◆◆◇ (half day)
|
12
|
+
- - ◆◆◆ (1-2 days and more)
|
13
|
+
|
14
|
+
Also include this estimation legend below as "Pure Codebase Work Estimation Legend".
|
15
|
+
|
16
|
+
|
17
|
+
## Subtask 1 (Issue alignment sentence)
|
18
|
+
Include one sentence about how the code changes address the requirements of the associated issue listed below.
|
19
|
+
- Use ✅ or ⚠️ to indicate whether the implementation fully satisfies the issue requirements.
|
20
|
+
- Put this sentence immediately below the PR Summary title
|
21
|
+
Examples:
|
22
|
+
|
23
|
+
If the implementation fully delivers the requested functionality:
|
24
|
+
```
|
25
|
+
✅ Implementation Satisfies [<ISSUE_KEY>](<ISSUE_URL>).
|
26
|
+
```
|
27
|
+
If there are concerns about how thoroughly the code covers the requirements and technical description from the associated issue:
|
28
|
+
```
|
29
|
+
⚠️ <Describe specific gap or concern>.
|
30
|
+
⚠️ <Describe additional limitation or missing feature>.
|
31
|
+
```
|
32
|
+
|
33
|
+
## Subtask 3:
|
34
|
+
Write release notes for public documentation.
|
35
|
+
- Caption should be: ## Release Notes Proposal
|
36
|
+
Summarize the following changes, focusing on what is new, improved, or fixed for the end user.
|
37
|
+
Do not include internal or technical details.
|
38
|
+
Structure release notes using clear sections: Added, Changed, Fixed.
|
39
|
+
Avoid internal technical jargon or developer-specific details.
|
40
|
+
|
41
|
+
----RELATED CODEBASE CHANGES----
|
42
|
+
{% for part in diff %}{{ part }}\n{% endfor %}
|
43
|
+
|
44
|
+
----FULL FILE CONTENT AFTER APPLYING CHANGES----
|
45
|
+
{% for file, file_lines in all_file_lines.items() %}
|
46
|
+
--FILE: {{ file }}--
|
47
|
+
{{ file_lines }}
|
48
|
+
{% endfor %}
|
49
|
+
|
50
|
+
{%- if pipeline_out.associated_issue and pipeline_out.associated_issue.title %}
|
51
|
+
----ASSOCIATED ISSUE----
|
52
|
+
# {{ pipeline_out.associated_issue.title }}
|
53
|
+
{{ pipeline_out.associated_issue.description }}
|
54
|
+
URL: {{ pipeline_out.associated_issue.url }}
|
55
|
+
{%- endif -%}{{ '\n' }}
|
@@ -1,26 +1,26 @@
|
|
1
|
-
{{ self_id }}
|
2
|
-
----TASK----
|
3
|
-
Write release notes for public documentation.
|
4
|
-
Summarize the following changes, focusing on what is new, improved, or fixed for the end user.
|
5
|
-
Do not include internal or technical details.
|
6
|
-
Structure release notes using clear sections: Added, Changed, Fixed.
|
7
|
-
Avoid internal technical jargon or developer-specific details.
|
8
|
-
|
9
|
-
|
10
|
-
----RELATED CODEBASE CHANGES----
|
11
|
-
{% for part in diff %}{{ part }}\n{% endfor %}
|
12
|
-
|
13
|
-
----FULL FILE CONTENT AFTER APPLYING CHANGES----
|
14
|
-
{% for file, file_lines in all_file_lines.items() %}
|
15
|
-
--FILE: {{ file }}--
|
16
|
-
{{ file_lines }}
|
17
|
-
{% endfor %}
|
18
|
-
|
19
|
-
{%- include "partial/aux_files.j2" -%}
|
20
|
-
|
21
|
-
{%- if pipeline_out.associated_issue and pipeline_out.associated_issue.title %}
|
22
|
-
----ASSOCIATED ISSUE----
|
23
|
-
# {{ pipeline_out.associated_issue.title }}
|
24
|
-
{{ pipeline_out.associated_issue.description }}
|
25
|
-
URL: {{ pipeline_out.associated_issue.url }}
|
26
|
-
{%- endif -%}{{ '\n' }}
|
1
|
+
{{ self_id }}
|
2
|
+
----TASK----
|
3
|
+
Write release notes for public documentation.
|
4
|
+
Summarize the following changes, focusing on what is new, improved, or fixed for the end user.
|
5
|
+
Do not include internal or technical details.
|
6
|
+
Structure release notes using clear sections: Added, Changed, Fixed.
|
7
|
+
Avoid internal technical jargon or developer-specific details.
|
8
|
+
|
9
|
+
|
10
|
+
----RELATED CODEBASE CHANGES----
|
11
|
+
{% for part in diff %}{{ part }}\n{% endfor %}
|
12
|
+
|
13
|
+
----FULL FILE CONTENT AFTER APPLYING CHANGES----
|
14
|
+
{% for file, file_lines in all_file_lines.items() %}
|
15
|
+
--FILE: {{ file }}--
|
16
|
+
{{ file_lines }}
|
17
|
+
{% endfor %}
|
18
|
+
|
19
|
+
{%- include "partial/aux_files.j2" -%}
|
20
|
+
|
21
|
+
{%- if pipeline_out.associated_issue and pipeline_out.associated_issue.title %}
|
22
|
+
----ASSOCIATED ISSUE----
|
23
|
+
# {{ pipeline_out.associated_issue.title }}
|
24
|
+
{{ pipeline_out.associated_issue.description }}
|
25
|
+
URL: {{ pipeline_out.associated_issue.url }}
|
26
|
+
{%- endif -%}{{ '\n' }}
|
gito/tpl/questions/test_cases.j2
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
{{ self_id }}
|
2
|
-
----TASK----
|
3
|
-
Create a concise list of manual QA test cases for the newly introduced codebase changes.
|
4
|
-
The purpose of this document is to identify user journeys that could be disrupted by failures,
|
5
|
-
cover security scenarios and edge cases, highlight potential risk areas introduced by the changes,
|
6
|
-
and suggest focused testing to mitigate them.
|
7
|
-
|
8
|
-
- Split the test cases into two categories:
|
9
|
-
- Critical
|
10
|
-
- Extended Coverage
|
11
|
-
|
12
|
-
- Structure test cases using Markdown headers or bullet-point lists.
|
13
|
-
|
14
|
-
- If the context includes the necessary details, describe the steps as thoroughly as possible—like for a junior QA
|
15
|
-
seeing this project for the first time.
|
16
|
-
If there are no details on how to perform a specific action, keep it abstract.
|
17
|
-
It is extremely important not to invent information.
|
18
|
-
|
19
|
-
- Number test cases sequentially (C-01, C-02, E-01, E-02, etc.).
|
20
|
-
|
21
|
-
----RELATED CODEBASE CHANGES----
|
22
|
-
{% for part in diff %}{{ part }}\n{% endfor %}
|
23
|
-
|
24
|
-
----FULL FILE CONTENT AFTER APPLYING CHANGES----
|
25
|
-
{% for file, file_lines in all_file_lines.items() %}
|
26
|
-
--FILE: {{ file }}--
|
27
|
-
{{ file_lines }}
|
28
|
-
{% endfor %}
|
29
|
-
|
30
|
-
{%- include "partial/aux_files.j2" -%}
|
31
|
-
|
32
|
-
{%- if pipeline_out.associated_issue and pipeline_out.associated_issue.title %}
|
33
|
-
----ASSOCIATED ISSUE----
|
34
|
-
# {{ pipeline_out.associated_issue.title }}
|
35
|
-
{{ pipeline_out.associated_issue.description }}
|
36
|
-
URL: {{ pipeline_out.associated_issue.url }}
|
37
|
-
{%- endif -%}{{ '\n' }}
|
1
|
+
{{ self_id }}
|
2
|
+
----TASK----
|
3
|
+
Create a concise list of manual QA test cases for the newly introduced codebase changes.
|
4
|
+
The purpose of this document is to identify user journeys that could be disrupted by failures,
|
5
|
+
cover security scenarios and edge cases, highlight potential risk areas introduced by the changes,
|
6
|
+
and suggest focused testing to mitigate them.
|
7
|
+
|
8
|
+
- Split the test cases into two categories:
|
9
|
+
- Critical
|
10
|
+
- Extended Coverage
|
11
|
+
|
12
|
+
- Structure test cases using Markdown headers or bullet-point lists.
|
13
|
+
|
14
|
+
- If the context includes the necessary details, describe the steps as thoroughly as possible—like for a junior QA
|
15
|
+
seeing this project for the first time.
|
16
|
+
If there are no details on how to perform a specific action, keep it abstract.
|
17
|
+
It is extremely important not to invent information.
|
18
|
+
|
19
|
+
- Number test cases sequentially (C-01, C-02, E-01, E-02, etc.).
|
20
|
+
|
21
|
+
----RELATED CODEBASE CHANGES----
|
22
|
+
{% for part in diff %}{{ part }}\n{% endfor %}
|
23
|
+
|
24
|
+
----FULL FILE CONTENT AFTER APPLYING CHANGES----
|
25
|
+
{% for file, file_lines in all_file_lines.items() %}
|
26
|
+
--FILE: {{ file }}--
|
27
|
+
{{ file_lines }}
|
28
|
+
{% endfor %}
|
29
|
+
|
30
|
+
{%- include "partial/aux_files.j2" -%}
|
31
|
+
|
32
|
+
{%- if pipeline_out.associated_issue and pipeline_out.associated_issue.title %}
|
33
|
+
----ASSOCIATED ISSUE----
|
34
|
+
# {{ pipeline_out.associated_issue.title }}
|
35
|
+
{{ pipeline_out.associated_issue.description }}
|
36
|
+
URL: {{ pipeline_out.associated_issue.url }}
|
37
|
+
{%- endif -%}{{ '\n' }}
|