소스 통제 통합

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기4분
  • 애플리케이션 개발자가 Git 소스 통제 리포지토리와 통합할 수 있도록 합니다. 비프로덕션 인스턴스에서 여러 버전의 애플리케이션을 저장하고 관리합니다.

    애플리케이션을 소스 통제에 연결하면 비프로덕션 인스턴스의 모든 애플리케이션 개발자가 다음 작업을 수행할 수 있습니다.
    • Git 리포지토리에서 애플리케이션을 가져옵니다.
    • Git 리포지토리에서 원격 변경 내용을 끌어와 적용합니다.
    • 인스턴스의 모든 로컬 변경 사항을 Git 리포지토리에 커밋합니다.
    • 지정된 애플리케이션 버전에 영구적으로 연결하는 태그를 생성합니다.
    • 분기를 생성하여 여러 버전의 애플리케이션을 동시에 유지 관리합니다.

    통합 요구 사항

    애플리케이션을 소스 통제에 연결하려면:
    • 사용자에게 관리자 역할이 있어야 합니다.
    • 비프로덕션 인스턴스에는 Git 리포지토리에 대한 네트워크 액세스 권한이 있어야 합니다.
    • 각 애플리케이션은 자체 Git 리포지토리 내에 있어야 합니다.
    • 리포지토리 사용자 자격 증명은 읽기 및 쓰기 접근 권한을 부여해야 합니다.
    주:
    인스턴스의 모든 애플리케이션 개발자는 리포지토리당 단일 자격 증명 세트를 공유합니다.

    다음에서 사용 가능한 옵션 ServiceNow 스튜디오

    애플리케이션을 소스 통제에 연결한 후에는 애플리케이션 개발자가 리포지토리를 관리하는 데 사용할 ServiceNow 스튜디오 수 있습니다. 에서 스튜디오개발자는 다음을 수행할 수 있습니다.
    • 애플리케이션 리포지토리 자격 증명을 편집합니다.
    • 인스턴스의 모든 로컬 변경 내용을 커밋합니다.
    • 리포지토리에서 원격 변경 내용을 적용합니다.
    • 분기를 생성합니다.
    • 분기를 전환합니다.
    • 원격 리포지토리에서 애플리케이션을 임포트합니다.

    프로덕션 인스턴스에서 애플리케이션을 관리하기 위해 소스 통제를 사용하는 것은 권장되지 않습니다. 프로덕션에 배포하면 의도하지 않은 결과가 발생할 수 있습니다.프로덕션 배포 팁 대신 애플리케이션 리포지토리, 업데이트 세트 또는 ServiceNow Store. 프로덕션 인스턴스에서 애플리케이션을 관리하는 방법에 대한 자세한 내용은 을 참조하십시오 애플리케이션 공유.

    Git 리포지토리에서 사용할 수 있는 옵션

    플랫폼은 ServiceNow 인스턴스 외부에서 연결된 애플리케이션 파일을 수정하기 위한 제한된 지원을 제공합니다. Git에서 개발자는 다음을 수행할 수 있습니다.
    • 애플리케이션 파일을 다른 Git 디렉터리 구조로 이동합니다.
    • 에서 애플리케이션 파일을 편집합니다 ServiceNow 스튜디오.

    시스템은 저장소의 루트 수준에 sn_source_control.properties 라는 등록 정보 텍스트 파일을 생성합니다. 애플리케이션 파일을 다른 Git 디렉터리 구조로 이동하기 위해 애플리케이션 개발자는 매개 변수를 설정하여 path 애플리케이션 파일이 포함된 하위 폴더 경로를 지정할 수 있습니다. 예를 들어 애플리케이션을 src/app 하위 폴더로 이동한 경우 path=src/app으로 설정합니다path.

    시스템은 Git 리포지토리에 checksum.txt 파일을 생성하여 애플리케이션 파일이 외부 스튜디오에서 변경되었는지 확인합니다. 파일의 체크섬 값이 현재 체크섬 값과 일치하면 통합은 확인 및 삭제 프로세스를 건너뜁니다. 체크섬 값이 일치하지 않으면 통합은 소스 통제 작업의 일부로 애플리케이션 파일을 확인하고 삭제합니다. 위생 처리 과정:
    • 수행된 각 위생 작업에 대한 업그레이드 로그 항목을 생성합니다.
    • 저장소에서 지원되지 않는 폴더와 파일을 제거합니다.
    • 시스템 애플리케이션 파일이 XML 스키마 확인에 실패하면 모든 소스 통제 운영을 중단합니다. 예를 들어, 데이터베이스 딕셔너리 레코드가 XML 스키마 유효성 검증에 실패하면 시스템은 모든 조작을 중단합니다.
    • 비시스템 애플리케이션 파일이 XML 스키마 확인에 실패하면 현재 소스 통제 작업을 건너뜁니다.

    소스 통제 통합은 sn_source_control.properties 파일에 나열된 애플리케이션 경로 내의 컨텐츠만 삭제합니다. 애플리케이션 경로 외부에 있는 리포지토리 컨텐츠는 무시됩니다.

    MID Server 지원

    기존 MID 서버를 사용하여 소스 통제 리포지토리에 연결합니다. MID 서버를 통해 애플리케이션을 연결하거나 가져오면 방화벽 뒤의 리포지토리에 액세스할 수 있습니다.

    소스 통제 통합을 위한 MID 서버 구성

    소스 통제 통합을 위한 MID 서버를 구성하여 인스턴스와 외부 애플리케이션, 데이터 소스 및 서비스 간의 ServiceNow 데이터 이동 및 통신을 활성화합니다.

    • glide.attachment.extensions 속성에 "번들" 확장을 추가합니다.
    • MID 서버가 프록시를 통과하여 원격 Git 리포지토리에 액세스해야 하는 경우 다음과 같이 하십시오.
      • agent\conf\wrapper-override.conf 파일에 다음 줄을 추가합니다.
      • wrapper.java.additionial.3=-dhttps.proxyHost=<proxyHost>
      • wrapper.java.additionial.4=-dhttps.proxyPort=<proxyPort>
      • MID 재시작
      • "MID 보안 정책"에 새 항목을 추가합니다.
      • 이름: <proxy host name>
      • "활성"만 확인

    노이즈 제거 소스 통제 커밋

    소스 통제에서 메타데이터 기록에 대한 필드를 시끄럽게 업데이트하는 XML 파일로 언로드를 건너뜁니다.