• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

screwdriver-cd / screwdriver / #3202

25 Jul 2025 04:52PM UTC coverage: 67.669% (-27.3%) from 94.935%
#3202

push

screwdriver

web-flow
feat(3363): Update the existing endpoint to get admin for a pipeline from the specified SCM context (#3370)

1284 of 2114 branches covered (60.74%)

Branch coverage included in aggregate %.

1 of 11 new or added lines in 1 file covered. (9.09%)

1235 existing lines in 49 files now uncovered.

3417 of 4833 relevant lines covered (70.7%)

50.53 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

24.0
/plugins/pipelines/listSecrets.js
1
'use strict';
2

3
const boom = require('@hapi/boom');
1✔
4
const joi = require('joi');
1✔
5
const schema = require('screwdriver-data-schema');
1✔
6
const secretListSchema = joi.array().items(schema.models.secret.get).label('List of secrets');
1✔
7
const pipelineIdSchema = schema.models.pipeline.base.extract('id');
1✔
8

9
module.exports = () => ({
434✔
10
    method: 'GET',
11
    path: '/pipelines/{id}/secrets',
12
    options: {
13
        description: 'Get all secrets secrets for a given pipelines',
14
        notes: 'Returns all secrets for a given pipeline',
15
        tags: ['api', 'pipelines', 'secrets'],
16
        auth: {
17
            strategies: ['token'],
18
            scope: ['user', 'pipeline', '!guest']
19
        },
20

21
        handler: async (request, h) => {
UNCOV
22
            const { pipelineFactory } = request.server.app;
×
UNCOV
23
            const { credentials } = request.auth;
×
UNCOV
24
            const { canAccess } = request.server.plugins.secrets;
×
25

UNCOV
26
            return pipelineFactory
×
27
                .get(request.params.id)
28
                .then(pipeline => {
UNCOV
29
                    if (!pipeline) {
×
UNCOV
30
                        throw boom.notFound('Pipeline does not exist');
×
31
                    }
32

UNCOV
33
                    return pipeline.secrets;
×
34
                })
35
                .then(secrets => {
UNCOV
36
                    if (secrets.length === 0) {
×
UNCOV
37
                        return h.response([]);
×
38
                    }
39

UNCOV
40
                    return canAccess(credentials, secrets[0], 'push', request.server.app).then(() =>
×
UNCOV
41
                        h.response(
×
42
                            secrets.map(s => {
UNCOV
43
                                const output = s.toJson();
×
44

UNCOV
45
                                delete output.value;
×
46

UNCOV
47
                                return output;
×
48
                            })
49
                        )
50
                    );
51
                })
52
                .catch(err => {
UNCOV
53
                    throw err;
×
54
                });
55
        },
56
        response: {
57
            schema: secretListSchema
58
        },
59
        validate: {
60
            params: joi.object({
61
                id: pipelineIdSchema
62
            })
63
        }
64
    }
65
});
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc