Introducing GitHub Copilot X
Your AI pair programmer is leveling up
GitHub for enterprises
Build like the best
-
Increase developer velocity.
-
Secure every step.
-
Automate entire workflows.
-
Redefine collaboration.
-
Trusted by over 100 million developers.
Secure your supply chain
Keep open source components secure and compliant.
Secure your code
Find and fix code vulnerabilities as part of your workflows.
Secure your software lifecycle
Create and enforce security and compliance policies as code.
GitHub helps us ensure that we have our security controls baked into our pipelines all the way from the first line of code we’re writing.
Chief Information Security Officer
Dow Jones
Using rake 12.3.3
Using Ascii85 1.0.3
Using RedCloth 4.3.2
Using multipart-post 2.1.1
Using faraday 0.17.3
Using acme-client 0.6.1
Using concurrent-ruby 1.0.5
Using i18n 1.7.0
Using minitest 5.13.0
Using thread_safe 0.3.5.c8158c9
Using tzinfo 1.2.6
Using zeitwerk 2.2.2
Using activesupport 6.0.2.2.5665d0867b
Using builder 3.2.3
Using erubi 1.8.0
Using mini_portile2 2.4.0
Using nokogiri 1.10.9
Using rails-dom-testing 2.0.3
Using crass 1.0.6
Using loofah 2.4.0
Using rails-html-sanitizer 1.1.0
Using actionview 6.0.2.2.5665d0867b
Using rack 2.1.2
Using rack-test 0.6.3
Using actionpack 6.0.2.2.5665d0867b
Using nio4r 2.3.1
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using actioncable 6.0.2.2.5665d0867b
Using globalid 0.4.2
Using activejob 6.0.2.2.5665d0867b
Using activemodel 6.0.2.2.5665d0867b
Using activerecord 6.0.2.2.5665d0867b
Using mimemagic 0.3.3
Using marcel 0.3.3
Using activestorage 6.0.2.2.5665d0867b
Using mini_mime 1.0.2
Using mail 2.7.1
Using actionmailbox 6.0.2.2.5665d0867b
Using actionmailer 6.0.2.2.5665d0867b
Using actiontext 6.0.2.2.5665d0867b
Using active_record_has_many_split_through 0.1.0.g561c960
Using public_suffix 4.0.3
Using addressable 2.7.0
Using afm 0.2.2
Using google-protobuf 3.9.1 (x86_64-linux)
Using twirp 1.1.0
Using aleph-client 2.1.0.gdf2a805d
Using allocation_sampler 1.0.0
Using aqueduct-client 0.1.0.g2ab5e8c
Using arca 2.1.3
Using asciidoctor 2.0.7
Using ast 2.4.0
Using metaclass 0.0.4
Using mocha 1.1.0
Using resilient 0.4.0
Using authzd-client 0.9.4.ra6f4763b
Using aws-eventstream 1.0.3
Using aws-partitions 1.284.0
Using aws-sigv4 1.1.1
Using jmespath 1.4.0
Using aws-sdk-core 3.91.1
Using aws-sdk-kms 1.30.0
Using aws-sdk-s3 1.61.1
Using badge-ruler 0.0.1
Using bcrypt 3.1.13
Using benchmark-ips 2.7.2
Using mochilo 1.3.5.g70afb07
Using bert 1.1.10.45.gf6727fc
Using bertrpc 1.3.1.pre.github9
Using html_tokenizer 0.0.7
Using parser 2.6.4.0
Using smart_properties 1.13.1
Using better_html 1.0.11
Using bindata 2.4.6
Using msgpack 1.3.0
Using bootsnap 1.4.4
Using braintree 2.95.0
Using browser 3.0.2
Using bundler 2.0.2
Using byebug 9.0.3
Using regexp_parser 1.7.0
Using xpath 3.2.0
Using capybara 3.31.0
Using cbor 0.5.9.6
Using charlock_holmes 0.7.6
Using method_source 0.9.2
Using thor 0.19.4
Using railties 6.0.2.2.5665d0867b
Using sprockets 3.7.2
Using sprockets-rails 3.2.1
Using rails 6.0.2.2.5665d0867b
error-pages
GET /
✓ should respond with page list
Accept: text/html
GET /403
✓ should respond with 403
GET /404
✓ should respond with 404
GET /500
✓ should respond with 500
Accept: application/json
GET /403
✓ should respond with 403
GET /404
✓ should respond with 404
GET /500
✓ should respond with 500
Accept: text/plain
GET /403
✓ should respond with 403
GET /404
✓ should respond with 404
GET /500
✓ should respond with 500
error
GET /
✓ should respond with 500
GET /next
✓ should respond with 500
GET /missing
✓ should respond with 404
markdown
GET /
✓ should respond with html
GET /fail
✓ should respond with an error
multi-router
GET /
✓ should respond with root handler
GET /api/v1/
✓ should respond with APIv1 root handler
GET /api/v1/users
✓ should respond with users from APIv1
GET /api/v2/
✓ should respond with APIv2 root handler
GET /api/v2/users
✓ should respond with users from APIv2
mvc
GET /
✓ should redirect to /users
GET /pet/0
✓ should get pet
GET /pet/0/edit
✓ should get pet edit page
PUT /pet/2
✓ should update the pet
GET /users
✓ should display a list of users (70ms)
GET /user/:id
when present
✓ should display the user
✓ should display the users pets
when not present
✓ should 404
GET /user/:id/edit
✓ should display the edit form
PUT /user/:id
✓ should 500 on error
✓ should update the user
POST /user/:id/pet
✓ should create a pet for user (19ms)
params
GET /
✓ should respond with instructions
GET /user/0
✓ should respond with a user
GET /user/9
✓ should fail to find user
GET /users/0-2
✓ should respond with three users
GET /users/foo-bar
✓ should fail integer parsing
resource
GET /
✓ should respond with instructions
GET /users
✓ should respond with all users
GET /users/1
✓ should respond with user 1
GET /users/9
✓ should respond with error
GET /users/1..3
✓ should respond with users 1 through 3
DELETE /users/1
✓ should delete user 1
DELETE /users/9
✓ should fail
GET /users/1..3.json
✓ should respond with users 2 and 3 as json
route-map
GET /users
✓ should respond with users
DELETE /users
✓ should delete users
GET /users/:id
✓ should get a user
GET /users/:id/pets
✓ should get a users pets
GET /users/:id/pets/:pid
✓ should get a users pet
route-separation
GET /
✓ should respond with index
GET /users
✓ should list users
GET /user/:id
✓ should get a user
✓ should 404 on missing user
GET /user/:id/view
✓ should get a user
✓ should 404 on missing user (13ms)
GET /user/:id/edit
✓ should get a user to edit
PUT /user/:id/edit
✓ should edit a user
POST /user/:id/edit?_method=PUT
✓ should edit a user
GET /posts
✓ should get a list of posts
vhost
example.com
GET /
✓ should say hello
GET /foo
✓ should say foo
foo.example.com
GET /
✓ should redirect to /foo
bar.example.com
GET /
✓ should redirect to /bar
web-service
GET /api/users
without an api key
✓ should respond with 400 bad request
with an invalid api key
✓ should respond with 401 unauthorized
with a valid api key
✓ should respond users json
GET /api/repos
without an api key
✓ should respond with 400 bad request
with an invalid api key
✓ should respond with 401 unauthorized
with a valid api key
✓ should respond repos json
GET /api/user/:name/repos
without an api key
✓ should respond with 400 bad request
with an invalid api key
✓ should respond with 401 unauthorized
with a valid api key
✓ should respond user repos json
✓ should 404 with unknown user
when requesting an invalid route
✓ should respond with 404 json
1123 passing (4s)
=============================================================================
Writing coverage object [/home/runner/build/expressjs/express/coverage/coverage.json]
Writing coverage reports at [/home/runner/build/expressjs/express/coverage]
=============================================================================
=============================== Coverage summary ===============================
Statements : 98.81% ( 1916/1939 ), 38 ignored
Branches : 94.58% ( 751/794 ), 22 ignored
Functions : 100% ( 267/267 )
Lines : 100% ( 1872/1872 )
================================================================================
The command "npm run test-ci" exited with 0.
$ npm run lint
> express@4.17.1 lint /home/runner/build/expressjs/express
> eslint .
The command "npm run lint" exited with 0.
store build cache
$ # Upload coverage to coveralls
Done. Your build exited with 0.
CI/CD with GitHub Actions allows us to build, test, and deploy right from GitHub. We’ve reduced build time from 80 to 10 minutes.