GitHub for enterprises
Build like the best
- 
            Increase developer velocity.
- 
            Secure every step.
- 
            Automate entire workflows.
- 
            Redefine collaboration.
- 
            Trusted by over 94 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.
 
Engineering Architect
 
Build as one team
Work seamlessly across your organization on a platform designed for collaboration.
 
Transform your culture
Embrace innersource, iterate faster, and ship more frequently using best practices from open source teams.
 
Learn as you build
Get insight into how your team builds today with community-backed KPIs.
 
With GitHub, we can scale and build projects on a new level now. It’s not about how good you are alone. It’s about the greatness we can achieve through sharing and collaboration.
 
Head of Digital Communities
Engie
Talent
Tap into the largest developer community
Get connected
Find the experts you need, then make them feel at home with the platform and processes they know and love.
Meet our communityStay connected
Raise your profile as an open source leader—and help your team to work on the open source code they care about.
Check out GitHub Connect 
GitHub keeps us up to speed with the industry’s best tools. We want new hires to know GitHub is in our toolchain—it makes them excited to join us.
 
Head of Emerging Tech
American Airlines
Services
Work with a 
trusted partner
        From creating a tailored transformation plan to streamlining your DevOps pipeline, we’ll work together to build solutions as unique as your team.
Meet the expertsStress-free migration
Work with our experts to bring your code and work history to GitHub.
Learn how we can helpDeveloper-led learning
Help your team level up their skills in the same place they code.
Explore SkillsTransformation
Transformation by the numbers
 
            22%
Improvement in developer productivity*
433%
ROI over three years *
80%
Time saved In developer onboarding *
* Results based on a composite organization of 120,000 employees and 7,000 developers using GitHub Enterprise Cloud, GitHub Advanced Security, Actions, Codespaces, Discussions, Pages, and testing GitHub Copilot.
 
       
       
      94M+
Developers
330M+
Private and public repositories
1000s
Open source communities
1B+
Annual contributions
4M+
Organizations
90%
Fortune 100 companies
 
 
 
 
 
 
 
 
 
