Skip to content

Commit 48cfd70

Browse files
suztomojskeet
andauthored
feat: migrate google-devtools-containeranalysis to librarian (#8534)
* chore: migrate google-devtools-containeranalysis to librarian * chore: generate Grafeas v1beta1 client in containeranalysis for backward compatibility * chore: restore Grafeas v1 path helpers in ContainerAnalysisClient * chore: remove GrafeasClient from top-level exports to match main * chore: use regex in librarian.js to clean up system-test samples --------- Co-authored-by: Jon Skeet <jonskeet@google.com>
1 parent b0c0fd7 commit 48cfd70

23 files changed

Lines changed: 49 additions & 1009 deletions

librarian.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1748,12 +1748,18 @@ libraries:
17481748
- path: google/devtools/containeranalysis/v1
17491749
- path: google/devtools/containeranalysis/v1beta1
17501750
copyright_year: "2026"
1751-
skip_generate: true
17521751
nodejs:
17531752
default_version: v1
17541753
dependencies:
17551754
'@google-cloud/grafeas': ^6.0.0
17561755
main_service: containeranalysis
1756+
nodejs_apis:
1757+
- additional_protos:
1758+
- grafeas/v1/grafeas.proto
1759+
path: google/devtools/containeranalysis/v1
1760+
- additional_protos:
1761+
- google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto
1762+
path: google/devtools/containeranalysis/v1beta1
17571763
package_name: '@google-cloud/containeranalysis'
17581764
- name: google-iam
17591765
version: 2.4.0

packages/google-devtools-containeranalysis/.OwlBot.yaml

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
{
2+
"api_description": "This API is a prerequisite for leveraging Artifact Analysis\nscanning capabilities in both Artifact Registry and with Advanced\nVulnerability Insights (runtime scanning) in GKE.\n\nIn addition, the Container Analysis API is an implementation of the\nGrafeas API, which enables storing, querying, and retrieval of critical\nmetadata\nabout all of your software artifacts.",
23
"api_id": "containeranalysis.googleapis.com",
34
"api_shortname": "containeranalysis",
45
"client_documentation": "https://cloud.google.com/nodejs/docs/reference/containeranalysis/latest",
5-
"codeowner_team": "@googleapis/aap-dpes",
66
"default_version": "v1",
77
"distribution_name": "@google-cloud/containeranalysis",
8-
"issue_tracker": "https://issuetracker.google.com/savedsearches/559742",
8+
"issue_tracker": "https://issuetracker.google.com/savedsearches/559777",
99
"language": "nodejs",
1010
"library_type": "GAPIC_AUTO",
1111
"name": "containeranalysis",
12-
"name_pretty": "Google Container Analysis",
13-
"product_documentation": "https://cloud.google.com/container-registry/docs/container-analysis",
12+
"name_pretty": "Container Analysis",
13+
"product_documentation": "https://cloud.google.com/container-registry/docs",
1414
"release_level": "stable",
15-
"repo": "googleapis/google-cloud-node",
16-
"requires_billing": true
15+
"repo": "googleapis/google-cloud-node"
1716
}

packages/google-devtools-containeranalysis/librarian.js

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,34 @@ filesToDelete.forEach(file => {
123123
}
124124
});
125125

126-
// Add beta version GrafeasClient to export
126+
const v1SamplesDir = path.resolve('packages/google-devtools-containeranalysis/samples/generated/v1');
127+
if (fs.existsSync(v1SamplesDir)) {
128+
const v1SamplesToDelete = findFilesByExtension(v1SamplesDir, '.js', /^grafeas\./);
129+
v1SamplesToDelete.forEach(file => {
130+
try {
131+
fs.unlinkSync(file);
132+
console.log(`Successfully deleted sample: ${file}`);
133+
} catch (err) {
134+
console.error(`Error deleting sample ${file}:`, err);
135+
}
136+
});
137+
}
138+
139+
// Remove GrafeasClient from top-level export
127140
const indexFile = path.resolve('packages/google-devtools-containeranalysis/src/index.ts');
128-
const searchPattern1 = /const GrafeasClient = v1\.GrafeasClient;\ntype GrafeasClient = v1\.GrafeasClient;/g;
129-
const replacement1 = '\nconst GrafeasClient = v1beta1.GrafeasV1Beta1Client;\n' +
130-
'type GrafeasClient = v1beta1.GrafeasV1Beta1Client;';
131-
replaceInFile(indexFile, searchPattern1, replacement1);
141+
replaceInFile(indexFile, /const GrafeasClient = v1\.GrafeasClient;\s*type GrafeasClient = v1\.GrafeasClient;/g, '');
142+
replaceInFile(indexFile, /,\s*GrafeasClient/g, '');
143+
144+
// Fix system-test fixture samples to remove GrafeasClient references
145+
const sampleTsFile = path.resolve('packages/google-devtools-containeranalysis/system-test/fixtures/sample/src/index.ts');
146+
replaceInFile(sampleTsFile, /\n\s*GrafeasClient,/g, '');
147+
replaceInFile(sampleTsFile, /\nfunction doStuffWithGrafeasClient\([\s\S]*?\}\n/g, '\n');
148+
replaceInFile(sampleTsFile, /\n\s*\/\/ check that the client instance can be created\n\s*const grafeasClient = new GrafeasClient\(\);\n\s*doStuffWithGrafeasClient\(grafeasClient\);/g, '');
149+
150+
const sampleJsFile = path.resolve('packages/google-devtools-containeranalysis/system-test/fixtures/sample/src/index.js');
151+
replaceInFile(sampleJsFile, /\n\s*const grafeasClient = new containeranalysis\.GrafeasClient\(\);/g, '');
132152

133153
const v1IndexFile = path.resolve('packages/google-devtools-containeranalysis/src/v1/index.ts');
134-
const searchPattern2 = /export {GrafeasClient} from '\.\/grafeas_client';/g;
154+
const searchPattern2 = /export\s+{\s*GrafeasClient\s*}\s*from\s*'\.\/grafeas_client';/g;
135155
const replacement2 = '\n';
136156
replaceInFile(v1IndexFile, searchPattern2, replacement2);

packages/google-devtools-containeranalysis/samples/generated/v1/grafeas.batch_create_notes.js

Lines changed: 0 additions & 67 deletions
This file was deleted.

packages/google-devtools-containeranalysis/samples/generated/v1/grafeas.batch_create_occurrences.js

Lines changed: 0 additions & 67 deletions
This file was deleted.

packages/google-devtools-containeranalysis/samples/generated/v1/grafeas.create_note.js

Lines changed: 0 additions & 72 deletions
This file was deleted.

packages/google-devtools-containeranalysis/samples/generated/v1/grafeas.create_occurrence.js

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)