Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
43feb20dca
commit
bd06d7cd6c
|
@ -9,6 +9,7 @@ import EditedAt from '~/issues/show/components/edited.vue';
|
|||
import Tracking from '~/tracking';
|
||||
import MarkdownField from '~/vue_shared/components/markdown/field.vue';
|
||||
import { getWorkItemQuery } from '../utils';
|
||||
import workItemDescriptionSubscription from '../graphql/work_item_description.subscription.graphql';
|
||||
import updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';
|
||||
import { i18n, TRACKING_CATEGORY_SHOW, WIDGET_TYPE_DESCRIPTION } from '../constants';
|
||||
import WorkItemDescriptionRendered from './work_item_description_rendered.vue';
|
||||
|
@ -71,7 +72,15 @@ export default {
|
|||
this.descriptionHtml = this.workItemDescription?.descriptionHtml;
|
||||
},
|
||||
error() {
|
||||
this.error = i18n.fetchError;
|
||||
this.$emit('error', i18n.fetchError);
|
||||
},
|
||||
subscribeToMore: {
|
||||
document: workItemDescriptionSubscription,
|
||||
variables() {
|
||||
return {
|
||||
issuableId: this.workItemId,
|
||||
};
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -233,7 +242,6 @@ export default {
|
|||
></textarea>
|
||||
</template>
|
||||
</markdown-field>
|
||||
|
||||
<div class="gl-display-flex">
|
||||
<gl-button
|
||||
category="primary"
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
subscription issuableDescription($issuableId: IssuableID!) {
|
||||
issuableDescriptionUpdated(issuableId: $issuableId) {
|
||||
... on WorkItem {
|
||||
id
|
||||
widgets {
|
||||
... on WorkItemWidgetDescription {
|
||||
type
|
||||
description
|
||||
descriptionHtml
|
||||
lastEditedAt
|
||||
lastEditedBy {
|
||||
id
|
||||
name
|
||||
webPath
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -123,7 +123,87 @@ To enable IaC Scanning in a project, you can create a merge request:
|
|||
1. In the **Infrastructure as Code (IaC) Scanning** row, select **Configure with a merge request**.
|
||||
1. Review and merge the merge request to enable IaC Scanning.
|
||||
|
||||
Pipelines now include an IaC job.
|
||||
Pipelines now include an IaC Scanning job.
|
||||
|
||||
## Customize rulesets **(ULTIMATE)**
|
||||
|
||||
> [Added](https://gitlab.com/gitlab-org/gitlab/-/issues/235359) support for overriding rules in GitLab 14.8.
|
||||
|
||||
You can customize the default IaC Scanning rules provided with GitLab.
|
||||
|
||||
The following customization options can be used separately, or together:
|
||||
|
||||
- [Disable predefined rules](#disable-predefined-analyzer-rules).
|
||||
- [Override predefined rules](#override-predefined-analyzer-rules).
|
||||
|
||||
### Disable predefined analyzer rules
|
||||
|
||||
If there are specific IaC Scanning rules that you don't want active, you can disable them.
|
||||
|
||||
To disable analyzer rules:
|
||||
|
||||
1. Create a `.gitlab` directory at the root of your project, if one doesn't already exist.
|
||||
1. Create a custom ruleset file named `sast-ruleset.toml` in the `.gitlab` directory, if
|
||||
one doesn't already exist.
|
||||
1. Set the `disabled` flag to `true` in the context of a `ruleset` section.
|
||||
1. In one or more `ruleset.identifier` subsections, list the rules to disable. Every
|
||||
`ruleset.identifier` section has:
|
||||
- A `type` field for the rule. For IaC Scanning, the identifier type is `kics_id`.
|
||||
- A `value` field for the rule identifier. KICS rule identifiers are alphanumeric strings. To find the rule identifier, you can:
|
||||
- Find it in the [JSON report artifact](#reports-json-format).
|
||||
- Search for the rule name in the [list of KICS queries](https://docs.kics.io/latest/queries/all-queries/) and copy the alphanumeric identifier that's shown. The rule name is shown on the [Vulnerability Page](../vulnerabilities/index.md) when a rule violation is detected.
|
||||
|
||||
In the following example `sast-ruleset.toml` file, the disabled rules are assigned to
|
||||
the `kics` analyzer by matching the `type` and `value` of identifiers:
|
||||
|
||||
```toml
|
||||
[kics]
|
||||
[[kics.ruleset]]
|
||||
disable = true
|
||||
[kics.ruleset.identifier]
|
||||
type = "kics_id"
|
||||
value = "8212e2d7-e683-49bc-bf78-d6799075c5a7"
|
||||
```
|
||||
|
||||
### Override predefined analyzer rules
|
||||
|
||||
If there are specific IaC Scanning rules you want to customize, you can override them. For
|
||||
example, you might lower the severity of a rule or link to your own documentation about how to fix a finding.
|
||||
|
||||
To override rules:
|
||||
|
||||
1. Create a `.gitlab` directory at the root of your project, if one doesn't already exist.
|
||||
1. Create a custom ruleset file named `sast-ruleset.toml` in the `.gitlab` directory, if
|
||||
one doesn't already exist.
|
||||
1. In one or more `ruleset.identifier` subsections, list the rules to override. Every
|
||||
`ruleset.identifier` section has:
|
||||
- A `type` field for the rule. For IaC Scanning, the identifier type is `kics_id`.
|
||||
- A `value` field for the rule identifier. KICS rule identifiers are alphanumeric strings. To find the rule identifier, you can:
|
||||
- Find it in the [JSON report artifact](#reports-json-format).
|
||||
- Search for the rule name in the [list of KICS queries](https://docs.kics.io/latest/queries/all-queries/) and copy the alphanumeric identifier that's shown. The rule name is shown on the [Vulnerability Page](../vulnerabilities/index.md) when a rule violation is detected.
|
||||
1. In the `ruleset.override` context of a `ruleset` section,
|
||||
provide the keys to override. Any combination of keys can be
|
||||
overridden. Valid keys are:
|
||||
- description
|
||||
- message
|
||||
- name
|
||||
- severity (valid options are: Critical, High, Medium, Low, Unknown, Info)
|
||||
|
||||
In the following example `sast-ruleset.toml` file, rules are matched by the `type` and
|
||||
`value` of identifiers and then overridden:
|
||||
|
||||
```toml
|
||||
[kics]
|
||||
[[kics.ruleset]]
|
||||
[kics.ruleset.identifier]
|
||||
type = "kics_id"
|
||||
value = "8212e2d7-e683-49bc-bf78-d6799075c5a7"
|
||||
[kics.ruleset.override]
|
||||
description = "OVERRIDDEN description"
|
||||
message = "OVERRIDDEN message"
|
||||
name = "OVERRIDDEN name"
|
||||
severity = "Info"
|
||||
```
|
||||
|
||||
## Pinning to specific analyzer version
|
||||
|
||||
|
|
|
@ -12,11 +12,9 @@ module QA
|
|||
end
|
||||
|
||||
let!(:group) do
|
||||
group = QA::Resource::Group.fabricate_via_api! do |group|
|
||||
QA::Resource::Group.fabricate_via_api! do |group|
|
||||
group.path = "group-to-test-access-termination-#{SecureRandom.hex(8)}"
|
||||
end
|
||||
group.sandbox.add_member(user)
|
||||
group
|
||||
end
|
||||
|
||||
let!(:project) do
|
||||
|
@ -27,24 +25,20 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
context 'for after parent group membership termination' do
|
||||
context 'when parent group membership is terminated' do
|
||||
before do
|
||||
Flow::Login.while_signed_in_as_admin do
|
||||
group.sandbox.visit!
|
||||
group.add_member(user)
|
||||
|
||||
Page::Group::Menu.perform(&:click_group_members_item)
|
||||
Flow::Login.while_signed_in_as_admin do
|
||||
group.visit!
|
||||
|
||||
Page::Group::Menu.perform(&:click_subgroup_members_item)
|
||||
Page::Group::Members.perform do |members_page|
|
||||
members_page.remove_member(user.username)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
after do
|
||||
user.remove_via_api!
|
||||
project.remove_via_api!
|
||||
group.remove_via_api!
|
||||
end
|
||||
|
||||
it 'is not allowed to edit the project files',
|
||||
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347866' do
|
||||
Flow::Login.sign_in(as: user)
|
||||
|
|
|
@ -12,10 +12,12 @@ import WorkItemDescription from '~/work_items/components/work_item_description.v
|
|||
import WorkItemDescriptionRendered from '~/work_items/components/work_item_description_rendered.vue';
|
||||
import { TRACKING_CATEGORY_SHOW } from '~/work_items/constants';
|
||||
import workItemQuery from '~/work_items/graphql/work_item.query.graphql';
|
||||
import workItemDescriptionSubscription from '~/work_items/graphql/work_item_description.subscription.graphql';
|
||||
import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';
|
||||
import workItemByIidQuery from '~/work_items/graphql/work_item_by_iid.query.graphql';
|
||||
import {
|
||||
updateWorkItemMutationResponse,
|
||||
workItemDescriptionSubscriptionResponse,
|
||||
workItemResponseFactory,
|
||||
workItemQueryResponse,
|
||||
projectWorkItemResponse,
|
||||
|
@ -32,6 +34,7 @@ describe('WorkItemDescription', () => {
|
|||
Vue.use(VueApollo);
|
||||
|
||||
const mutationSuccessHandler = jest.fn().mockResolvedValue(updateWorkItemMutationResponse);
|
||||
const subscriptionHandler = jest.fn().mockResolvedValue(workItemDescriptionSubscriptionResponse);
|
||||
const workItemByIidResponseHandler = jest.fn().mockResolvedValue(projectWorkItemResponse);
|
||||
let workItemResponseHandler;
|
||||
|
||||
|
@ -58,6 +61,7 @@ describe('WorkItemDescription', () => {
|
|||
apolloProvider: createMockApollo([
|
||||
[workItemQuery, workItemResponseHandler],
|
||||
[updateWorkItemMutation, mutationHandler],
|
||||
[workItemDescriptionSubscription, subscriptionHandler],
|
||||
[workItemByIidQuery, workItemByIidResponseHandler],
|
||||
]),
|
||||
propsData: {
|
||||
|
@ -86,6 +90,16 @@ describe('WorkItemDescription', () => {
|
|||
wrapper.destroy();
|
||||
});
|
||||
|
||||
it('has a subscription', async () => {
|
||||
createComponent();
|
||||
|
||||
await waitForPromises();
|
||||
|
||||
expect(subscriptionHandler).toHaveBeenCalledWith({
|
||||
issuableId: workItemQueryResponse.data.workItem.id,
|
||||
});
|
||||
});
|
||||
|
||||
describe('editing description', () => {
|
||||
it('shows edited by text', async () => {
|
||||
const lastEditedAt = '2022-09-21T06:18:42Z';
|
||||
|
|
|
@ -519,6 +519,28 @@ export const workItemTitleSubscriptionResponse = {
|
|||
},
|
||||
};
|
||||
|
||||
export const workItemDescriptionSubscriptionResponse = {
|
||||
data: {
|
||||
issuableDescriptionUpdated: {
|
||||
id: 'gid://gitlab/WorkItem/1',
|
||||
widgets: [
|
||||
{
|
||||
__typename: 'WorkItemWidgetDescription',
|
||||
type: 'DESCRIPTION',
|
||||
description: 'New description',
|
||||
descriptionHtml: '<p>New description</p>',
|
||||
lastEditedAt: '2022-09-21T06:18:42Z',
|
||||
lastEditedBy: {
|
||||
id: 'gid://gitlab/User/2',
|
||||
name: 'Someone else',
|
||||
webPath: '/not-you',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export const workItemWeightSubscriptionResponse = {
|
||||
data: {
|
||||
issuableWeightUpdated: {
|
||||
|
|
|
@ -7,7 +7,7 @@ require (
|
|||
github.com/BurntSushi/toml v1.2.1
|
||||
github.com/FZambia/sentinel v1.1.1
|
||||
github.com/alecthomas/chroma/v2 v2.3.0
|
||||
github.com/aws/aws-sdk-go v1.44.126
|
||||
github.com/aws/aws-sdk-go v1.44.131
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
github.com/getsentry/raven-go v0.2.0
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2
|
||||
|
@ -32,7 +32,7 @@ require (
|
|||
gocloud.dev v0.27.0
|
||||
golang.org/x/image v0.0.0-20220722155232-062f8c9fd539
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
|
||||
golang.org/x/net v0.0.0-20220802222814-0bcc04d9c69b
|
||||
golang.org/x/net v0.1.0
|
||||
golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c
|
||||
golang.org/x/tools v0.1.12
|
||||
google.golang.org/grpc v1.50.1
|
||||
|
@ -111,8 +111,8 @@ require (
|
|||
golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
|
||||
golang.org/x/sys v0.0.0-20220731174439-a90be440212d // indirect
|
||||
golang.org/x/text v0.3.8 // indirect
|
||||
golang.org/x/sys v0.1.0 // indirect
|
||||
golang.org/x/text v0.4.0 // indirect
|
||||
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
|
||||
google.golang.org/api v0.91.0 // indirect
|
||||
|
|
|
@ -227,8 +227,8 @@ github.com/aws/aws-sdk-go v1.43.11/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4
|
|||
github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
|
||||
github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
|
||||
github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
|
||||
github.com/aws/aws-sdk-go v1.44.126 h1:7HQJw2DNiwpxqMe2H7odGNT2rhO4SRrUe5/8dYXl0Jk=
|
||||
github.com/aws/aws-sdk-go v1.44.126/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
|
||||
github.com/aws/aws-sdk-go v1.44.131 h1:kd61x79ax0vyiC/SZ9X1hKh8E0pt1BUOOcVBJEFhxkg=
|
||||
github.com/aws/aws-sdk-go v1.44.131/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
|
||||
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
||||
github.com/aws/aws-sdk-go-v2 v1.16.8 h1:gOe9UPR98XSf7oEJCcojYg+N2/jCRm4DdeIsP85pIyQ=
|
||||
github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw=
|
||||
|
@ -1476,6 +1476,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
|||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
|
||||
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
|
||||
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
|
||||
|
@ -1738,8 +1739,10 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su
|
|||
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220802222814-0bcc04d9c69b h1:3ogNYyK4oIQdIKzTu68hQrr4iuVxF3AxKl9Aj/eDrw0=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220802222814-0bcc04d9c69b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
|
||||
golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0=
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/oauth2 v0.0.0-20170912212905-13449ad91cb2/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
|
@ -1922,14 +1925,17 @@ golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220731174439-a90be440212d h1:Sv5ogFZatcgIMMtBSTTAgMYsicp25MXBubjXNDKwm80=
|
||||
golang.org/x/sys v0.0.0-20220731174439-a90be440212d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
|
@ -1939,8 +1945,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/time v0.0.0-20170424234030-8be79e1e0910/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
|
|
Loading…
Reference in New Issue