GitHub Enterprise Server 3.9 release candidate (#36631)

Co-authored-by: Rachael Sewell <rachmari@github.com>
Co-authored-by: Rachael Rose Renk <91027132+rachaelrenk@users.noreply.github.com>
Co-authored-by: David Jarzebowski <davidjarzebowski@github.com>
Co-authored-by: Anne-Marie <102995847+am-stead@users.noreply.github.com>
Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com>
Co-authored-by: Steve Guntrip <stevecat@github.com>
Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com>
Co-authored-by: Sam Browning <106113886+sabrowning1@users.noreply.github.com>
Co-authored-by: Torsten Walter <torstenwalter@github.com>
Co-authored-by: Henry Mercer <henrymercer@github.com>
Co-authored-by: Sarah Edwards <skedwards88@github.com>
This commit is contained in:
Laura Coursen 2023-06-08 12:40:16 -05:00 коммит произвёл GitHub
Родитель 4ab430da63
Коммит 52937ae5ca
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
116 изменённых файлов: 846956 добавлений и 335 удалений

Просмотреть файл

@ -0,0 +1,497 @@
Category,Old Attribute,New Attribute
All Services,now,Timestamp
All Services,msg or message,Body
All Services,All Services,SeverityText
Discussions,action_name,code.function
Discussions,actor_id,actor_id
Discussions,old_org,gh.org.old_name
Discussions,new_org,gh.org.login
Discussions,new_path,gh.controller.new_path
Discussions,issue_id,gh.issue.id
Discussions,issue_number,gh.issue.number
Discussions,issue_comments_count,gh.issue.comments.count
Discussions,discussion,gh.discussion.id
Discussions,discussion_number,gh.discussion.number
Discussions,discussion_cached_comments_count,gh.discussion.cached_comments.count
Discussions,discussion_live_comments_count,gh.discussion.live_comments.count
Discussions,discussion_converted_at,gh.discussion.converted_at
Discussions,discussion_state,gh.discussion.state
Discussions,discussion_error_reason,gh.discussion.error_reason
Discussions,discussion_reaction_count,gh.discussion.reaction.count
Discussions,team_id,gh.team_post.team_id
Discussions,team_post_id,gh.team_post.id
Discussions,team_post_number,gh.team_post.number
Stratocaster,stratocaster_name,gh.stratocaster.adapter_name
Stratocaster,stratocaster_event_type,gh.stratocaster.event_type
Stratocaster,stratocaster_event_id,gh.stratocaster.event.id
Stratocaster,stratocaster_event_action,gh.stratocaster.event.action
Stratocaster,stratocaster_event_actor_id,gh.stratocaster.event.actor_id
Stratocaster,stratocaster_event_sender_id,gh.stratocaster.event.sender_id
Stratocaster,stratocaster_event_repo_id,gh.stratocaster.event.repo_id
Stratocaster,stratocaster_processor_indexes_count,gh.stratocaster.processor.indexes.count
Stratocaster,stratocaster_processor_received_batch_size,gh.stratocaster.processor.received_batch_size
Stratocaster,stratocaster_processor_index,gh.stratocaster.processor.index
Stratocaster,stratocaster_processor_index_updates,gh.stratocaster.processor.index_updates
Stratocaster,stratocaster_processor_updates,gh.stratocaster.processor.updates
Stratocaster,stratocaster_processor_update_differences,gh.stratocaster.processor.update_differences
Stratocaster,stratocaster_keys,gh.stratocaster.keys
Stratocaster,stratocaster_event_time,gh.stratocaster.event_time
Stratocaster,stratocaster_timeline_processor_group_id,gh.stratocaster.timeline_processor.group.id
Stratocaster,stratocaster_timeline_processor_subscribe_to,gh.stratocaster.timeline_processor.subscribe_to
Audit Log,org_id,gh.org.id
Audit Log,org_name,gh.org.name
Audit Log,busines_id,gh.business.id
Audit Log,busines_name,gh.business.name
Profile,actor,gh.actor.login
Profile,notes,gh.rename.notes
Profile,reason,gh.rename.reason
Profile,dormant,gh.rename.dormant
Profile,active_keys,gh.rename.active_keys
Profile,team_id,gh.team.id
Profile,context,gh.context
Profile,processor,gh.processor.name
Profile,topic,gh.processor.message.topic
Profile,partition,gh.processor.message.partition
Profile,offset,gh.processor.message.offset
Profile,replication_wait,gh.processor.replication_wait
Profile,event,gh.user_metadata.event.name
Profile,skip,gh.user_metadata.event.skip
Profile,skip_reason,gh.user_metadata.event.skip_reason
Profile,updates,gh.user_metadata.updates
Profile,affected_rows,gh.user_metadata.affected_rows
Profile,user_id,gh.user.id
Profile,internal_view,gh.internal_view
Profile,viewer,gh.viewer.login
Profile,current_user,gh.actor.login
Profile,items_to_unpin_ids,gh.items_to_unpin_ids
Profile,items_to_pin_ids,gh.items_to_pin_ids
feature_management,execution_id,gh.feature_management.execution_id
feature_management,all_features_id,gh.feature_management.all_features_id
feature_management,reload_task_id,gh.feature_management.reload_task_id
feature_management,rollout_last_updated_at,gh.feature_management.rollout_last_updated_at
feature_management,feature,gh.feature_management.feature
feature_management,after_fork,gh.feature_management.after_fork
devtools,notifyd_science_experiment,gh.devtools.notifyd_science_experiment
devtools,notification_source,gh.devtools.notification_source
devtools,experiment_id,gh.devtools.experiment_id
devtools,recipient_id,gh.devtools.recipient_id
devtools,candidate_type,gh.devtools.candidate_type
devtools,notification_id,gh.devtools.notification_id
script/enterprise-stream-processor,n/a,n/a
insights,org_id,gh.org.id
insights,tenant_id,gh.insights.tenant.id
insights,entity_name,gh.insights.entity.name
insights,entity_id,gh.insights.entity.id
insights,parent_entity,gh.insights.entity.parent_entity
insights,insights_domain_event,gh.hydro.topic
insights,source_time,gh.insights.source.time
insights,attempt_number,gh.insights.attempt.number
insights,topic,gh.hydro.topic
insights,rails_timestamp,gh.insights.rails.timestamp
insights,rails_offset,gh.insights.rails.offset
insights,mysql_timestamp,gh.insights.mysql.timestamp
insights,mysql_offset,gh.insights.mysql.offset
insights,mysql_timestamp_before_type_cast,gh.insights.mysql.timestamp_before_type_cast
insights,mysql_timestamp_before_type_cast_offset,gh.insights.mysql.timestamp_before_type_cast_offset
insights,request_id,gh.request.id
insights,current_repo_id,gh.insights.event.current_repo_id
insights,target_repo_id,gh.insights.event.target_repo_id
LDAP authentication,op,code.function or code.op
LDAP authentication,group,ldap.dn
LDAP authentication,timeout_sec,ldap.timeout_sec
LDAP authentication,remote_address,net.peer.name
LDAP authentication,error_message,exception.message
LDAP authentication,transaction_id,ldap.transaction_id
LDAP authentication,result,ldap.bind.result
LDAP authentication,"duration for log field with `at: ""Bind result""`","replaced with the new ""ldap.bind"" timing metric"
LDAP authentication,capabilities,ldap.search.capabilities
LDAP authentication,filter,ldap.search.filter
LDAP authentication,attributes,ldap.search.attributes
LDAP authentication,base,ldap.search.base
LDAP authentication,result_code,ldap.search.result.code
LDAP authentication,matched_dn,ldap.search.matched_dn
LDAP authentication,result_count,ldap.search.result.count
LDAP authentication,page_count,ldap.search.page.count
LDAP authentication,scope,gh.ldap.search.scope
LDAP authentication,limit,ldap.search.limit
LDAP authentication,"duration for log field with `at: ""Search""`","n/a, captured by the new ""ldap.search"" timing metric"
LDAP authentication,"runtime for log field with `at: ""New user sync""`","n/a, captured by the ldap.sync.new_members.runtime metric "
LDAP authentication,"runtime for log field with `at: ""Team member search""`","n/a, captured by the ""ldap.sync.team_member_search.runtime"" metric"
LDAP authentication,"runtime for log field with `at: ""Team sync error""`","n/a, captured by the ldap.team_sync_error metric"
LDAP authentication,at,Body
LDAP authentication,"runtime for log field with `at: Bulk team sync""`","n/a, captured by the ldap.sync.teams.runtime metric"
LDAP authentication,count for log field with `at: Bulk team sync`,gh.ldap.bulk_team_sync.count
LDAP authentication,"runtime for log field with `at: ""User sync""`",ldap.sync.user.runtime
LDAP authentication,count for log field with `at: User sync`,gh.ldap.user_sync_event.count
LDAP authentication,"runtime for log field with `at: Bulk user sync""","n/a, captured by the ""ldap.sync.users.runtime"" metric"
LDAP authentication,runtime for log field with `at: Team sync`,"n/a, captured by the ""ldap.sync.team.runtime"" timing metric"
LDAP authentication,"unidentfied top level keys for log field with `at: Team sync""",top level keys from that log field are now nested under gh.ldap.team_sync.event_payload
LDAP authentication,error for log field with `at: Team sync error`,exception.message
LDAP authentication,user,gh.user.login
LDAP authentication,result_code,ldap.operation.result.code
LDAP authentication,message,ldap.operation.result.message
Auth,hashed_token,gh.auth.hashed_token
Auth,token_type,gh.auth.token_type
Auth,programmatic_access_type,gh.auth.programmatic_access_type
Auth,,gh.auth.result.message
Auth,,gh.auth.token_attempt
Auth,gh.billing.result.success,nested under gh.auth.auth_attempt_data
Auth,message,gh.auth.result
Auth,from,gh.auth.origin
Auth,login,gh.auth.login
Auth,raw_login,gh.auth.raw_login
Auth,user_id,gh.enduser.id
Auth,failure_type,gh.auth.failure.type
Auth,failure_reason,gh.auth.failure.reason
Auth,two_factor_type,gh.auth.result.two_factor_type
Auth,sign_in_verification_method,gh.auth.result.sign_in_verification_method
Auth,user,gh.enduser.login
Auth,error,exception.message
Auth,options,oauth.strategy.options
Auth,configuration,strategy.configuration
Auth,dn,ldap.dn
Auth,base_name,ldap.base
Auth,"login, for log message with body ""Invalid ldap credentials""",ldap.dn
Auth,groups,ldap.auth_groups
Auth,collision,gh.auth.login
Auth,ip,http.client_ip
Auth,"login, for log message with body ""omniauth success"" or ""omniauth failure""",omniauth.uid
Auth,"raw, for log message with body ""starting SAML auth""",gh.saml.raw_request
Auth,"message, for log message with body ""SAML success""",gh.saml.result.message
Auth,login,gh.saml.login
Auth,errors,gh.saml.errors
Auth,params,gh.saml.params
Auth,uid,gh.auth.login
Auth,authentication_success,gh.auth.result
Auth,configuration,omniauth.cas.configuration
Auth,return_to_url,omniauth.cas.return_to_url
Auth,ticket,omniauth.cas.ticket
Auth,authentication_success,omniauth.cas.result
Auth,authentication_success,gh.authentication.cas.result
Auth,user_info,omniauth.user_info
Auth,options,gh.auth.cas.options
Auth,configuration,gh.auth.cas.configuration
Auth,callback_url,gh.auth.cas.callback_url
Auth,login_url,gh.auth.cas.login_url
Auth,code,ldap.search.result.code
Auth,message,ldap.search.result
Auth,user_id,gh.enduser.id
Auth,login,gh.enduser.login
Auth,expires,saml.session.expires_at
gh-migrator Script,n/a,n/a
gh-migrator Script,at ,n/a
gh-migrator Script,migration_path,gh.gh_migrator.migration_path
gh-migrator Script,cli_args,gh.gh_migrator.cli_args
gh-migrator Script,command ,process.command
gh-migrator Script,guid,gh.gh_migrator.guid
Marketplace,metric_types,gh.marketplace.metric.types
Marketplace,marketplace_listing_id,gh.marketplace.listing.id
Marketplace,installs,gh.marketplace.listing.install.count
Marketplace,recorded_on,gh.marketplace.listing.recorded_on
Marketplace,new_purchases,gh.marketplace.new_purchases
Marketplace,pageviews,gh.marketplace.pageviews
Marketplace,visitors,gh.marketplace.visitors
Marketplace,organization email id,gh.organization.profile_email_id
Apps,catalog_service,gh.catalog_serivce
Background Jobs,job_id,gh.job.active_job_id / gh.job.aqueduct_job_id
Background Jobs,,gh.job.aqueduct_job_id
Background Jobs,job,gh.job.name
Background Jobs,correlation_id,gh.correlation_id
Background Jobs,queue,gh.job.queue
Background Jobs,fn,code.namespace + code.function
Background Jobs,,messaging.source.name
Background Jobs,partition,messaging.kafka.source.partition
Background Jobs,offset,messaging.kafka.message.offset
Background Jobs,error + backtrace,exception
Background Jobs,sleep_secs,gh.hydro_processor.dead_letter_retrying.sleep_secs
Background Jobs,retries,gh.hydro_processor.dead_letter_retrying.retries
Background Jobs,error_class,gh.hydro_processor.dead_letter_retrying.original_error_class
Background Jobs,ns,code.namespace / code.filepath
Background Jobs,signal,process.signal
Background Jobs,,process.status
Background Jobs,now,Timestamp
Background Jobs,class,gh.timerd.timer.class
Background Jobs,timer,gh.timerd.timer.name
Background Jobs,interval,gh.timerd.timer.interval_seconds
Background Jobs,at,code.function / Body
Background Jobs,test,Body
Background Jobs,duration,gh.test_job.duration
Background Jobs,alloc,gh.test_job.alloc
Background Jobs,should_raise,gh.test_job.should_raise
Background Jobs,should_write,gh.test_job.should_write
Background Jobs,catalog_service,gh.catalog_serivce
Hydro,"old log line: Processing messages in consumer #{client_id} with options #{options}""","New log line with tags:
""hydro.kafka_source.batch_processed""
"
Hydro,,messaging.consumer.id
Hydro,,messaging.consumer.group_id
Hydro,,messaging.consumer.max_bytes_per_partition
Hydro,,messaging.consumer.start_from_beginning
Hydro,"old log line: Processing messages in consumer #{client_id} with options #{options}""","New log line with tags:
""hydro.kafka_source.processing_message""
"
Hydro,old log line: Starting consumer '#{@group_id}' with options #{consumer_options},New log line with tags: hydro.kafka_source.consumer_initialize
Hydro,,messaging.consumer.id
Hydro,,messaging.consumer.group_id
Hydro,,messaging.consumer.options
Hydro,old log line: Subscribing consumer '#{@group_id}' to topic #{topic} with options #{subscribe_options},new log line with tags: hydro.kafka_source.consumer_subscribed
Hydro,,messaging.consumer.id
Hydro,,messaging.consumer.group_id
Hydro,,messaging.consumer.max_bytes_per_partition
Hydro,,messaging.consumer.start_from_beginning
Hydro,,messaging.destination.name
Hydro,"old log line: Failed to deliver all messages while closing, retrying",new log line with tags: hydro.kafka_sink.close.message_flush_retry
Hydro,,exception.type
Hydro,,exception.message
Hydro,,exception.backtrace
Hydro,,hydro.kafka_sink.close.message_flush_retry
Hydro,old log line: Failed to deliver all messages while closing,new log line with tags: hydro.kafka_sink.close.message_flush_failure
Hydro,,exception.type
Hydro,,exception.message
Hydro,,exception.backtrace
Billing/Gitcoin,job,gh.job
Billing/Gitcoin,subscription_item,gh.billing.subscription_item.id
Billing/Gitcoin,plan_subscription_id,gh.billing.plan_subscription.id
Billing/Gitcoin,organization_id,gh.org.id
Billing/Gitcoin,at,code.namespace + code.function
Billing/Gitcoin,catalog_service,gh.catalog_service
Billing/Gitcoin,refund_success,gh.billing.refund_success
Billing/Gitcoin,cancel_success,gh.billing.subscription_item.cancelled
Billing/Gitcoin,refund_result,gh.billing.refund_result
Billing/Gitcoin,billing_transaction,gh.billing.billing_transaction
Billing/Gitcoin,refund_amount,gh.billing.refund_amount
Billing/Gitcoin,update_result,gh.billing.update_result
Billing/Gitcoin,preview_result,gh.billing.preview_result
Billing/Gitcoin,product_key,gh.billing.product_uuid.product_key
Billing/Gitcoin,product_type,gh.billing.product_uuid.product_type
Billing/Gitcoin,free_trial,gh.billing.free_trial
Billing/Gitcoin,payment_collected,gh.billing.payment_collected
Billing/Gitcoin,plan_subscription,gh.billing.plan_subscription
Billing/Gitcoin,customer_id,gh.billing.customer.id
Billing/Gitcoin,plan_subscription_active,gh.billing.plan_subscription.active
Billing/Gitcoin,fn,code.namespace + code.function
Billing/Gitcoin,vss_subscription_event_id,gh.billing.vss_subscription_event.id
Billing/Gitcoin,subscription_id,gh.billing.vss_subscription_event.subscription_id
Billing/Gitcoin,invoice_amount,gh.billing.zuora.invoice.amount
Billing/Gitcoin,invoice_balance,gh.billing.zuora.invoice.balance
Billing/Gitcoin,invoice_id,gh.billing.zuora.invoice.id
Billing/Gitcoin,invoice_number,gh.billing.zuora.invoice.number
Billing/Gitcoin,sponsors_invoice_item_adjustments,gh.billing.sponsors_invoice_item_adjustments
Billing/Gitcoin,copilot_invoice_item_adjustments,gh.billing.copilot_invoice_item_adjustments
Billing/Gitcoin,zuora_response_results,gh.billing.zuora.response_results
Billing/Gitcoin,slug + business_id with conditional statement of login + user_id,gh.billing.billable_entity.id + gh.billing.billable_entity.type
Billing/Gitcoin,billable_entity,gh.billing.billable_entity.id + gh.billing.billable_entity.type
Billing/Gitcoin,error,exception.type + exception.message
Billing/Gitcoin,login,gh.user.login
Billing/Gitcoin,plan,gh.billing.billable_entity.plan_name
Billing/Gitcoin,billed_on,gh.billing.billable_entity.billed_on
Billing/Gitcoin,billing_attempts,gh.billing.billable_entity.billing_attempts
Billing/Gitcoin,payment_amount,gh.billing.billable_entity.payment_amount
Billing/Gitcoin,active_subscription_items,gh.billing.billable_entity.has_active_subscription_items
Billing/Gitcoin,has_valid_payment_method,gh.billing.billable_entity.has_valid_payment_method
Billing/Gitcoin,discount,gh.billing.coupon.discount
Billing/Gitcoin,expires_at,gh.billing.coupon_redemption.expires_at
Billing/Gitcoin,expired,gh.billing.coupon_redemption.expired
Billing/Gitcoin,stale,gh.billing.coupon_redemption.stale
Billing/Gitcoin,account_update_response,gh.billing.zuora.update_account.response
Billing/Gitcoin,zuora_account_id,gh.billing.zuora.account.id
Billing/Gitcoin,rate_limit_reset,gh.billing.zuora.rate_limit_reset
Billing/Gitcoin,headers,gh.billing.zuora.http.headers
Billing/Gitcoin,attempts,gh.job.attempts
Billing/Gitcoin,account_id,gh.billing.zuora.account.id
Billing/Gitcoin,credit_balance_adjustment_id,gh.billing.zuora.credit_balance_adjustment.id
Billing/Gitcoin,credit_balance_adjustment_amount,gh.billing.zuora.credit_balance_adjustment.amount
Billing/Gitcoin,log_message,Body
Billing/Gitcoin,payment_id,gh.billing.zuora.payment.id
Billing/Gitcoin,refund_id,gh.billing.zuora.refund.id
Billing/Gitcoin,business_id,gh.business.id
Billing/Gitcoin,message_id,gh.processor.message.id
Billing/Gitcoin,message_owner_id,gh.billing.artifact.repository_owner.id
Billing/Gitcoin,message_repository_id,gh.billing.artifact.repository.id
Billing/Gitcoin,artifact_event_id,gh.billing.artifact.event.id
Billing/Gitcoin,artifact_event_owner_id,gh.billing.artifact.event.owner.id
Billing/Gitcoin,artifact_event_repository_id,gh.billing.artifact.event.repository.id
Billing/Gitcoin,package_type,gh.registry.package.type
Billing/Gitcoin,repository_name,gh.registry.package.repository_name
Billing/Gitcoin,package_name,gh.registry.package.name
Billing/Gitcoin,package_id,gh.registry.package.id
Billing/Gitcoin,namespace,gh.registry.package.namespace
Billing/Gitcoin,owner_id,gh.registry.package.owner_id
Billing/Gitcoin,user,gh.user.login
Billing/Gitcoin,version_count,gh.registry.package.version_count
Billing/Gitcoin,versions_migrated_count,gh.registry.package.versions_migrated_count
Billing/Gitcoin,original_error,gh.billing.client.original_error
Billing/Gitcoin,"{ fn: ""billing.client.#{method}"", original_error: error.to_s }.merge!(request_params)",gh.billing.client.request_params
Billing/Gitcoin,collect,gh.billing.collect_payment_for_upgrade.collect
Billing/Gitcoin,success,gh.billing.collect_payment_for_upgrade.success
Billing/Gitcoin,elapsed_ms,gh.billing.collect_payment_for_upgrade.elapsed_ms
Billing/Gitcoin,from_plan,gh.billing.collect_payment_for_upgrade.from_plan
Billing/Gitcoin,to_plan,gh.billing.collect_payment_for_upgrade.to_plan
Billing/Gitcoin,from_seats,gh.billing.collect_payment_for_upgrade.from_seats
Billing/Gitcoin,to_seats,gh.billing.collect_payment_for_upgrade.to_seats
Billing/Gitcoin,from_subscription_item_quantity,gh.billing.collect_payment_for_upgrade.from_subscription_item_quantity
Billing/Gitcoin,to_subscription_item_quantity,gh.billing.collect_payment_for_upgrade.to_subscription_item_quantity
Billing/Gitcoin,subscription_item_name,gh.billing.subscription_item.name
Billing/Gitcoin,business_slug,gh.business.slug
Billing/Gitcoin,business_name,gh.business.name
Billing/Gitcoin,success,gh.billing.create_customer.success
Billing/Gitcoin,error,gh.billing.create_customer.error
Billing/Gitcoin,error_class,exception.type
Billing/Gitcoin,owner,gh.billing.billable_entity.name
Billing/Gitcoin,dunning,gh.billing.billable_entity.dunning
Billing/Gitcoin,zuora_response_success,gh.billing.zuora.success
Billing/Gitcoin,zuora_response,gh.billing.zuora.response
Billing/Gitcoin,synchronization_id,gh.billing.synchronization_id
Billing/Gitcoin,event,gh.billing.synchronization_event
Billing/Gitcoin,success,gh.billing.result.success
Billing/Gitcoin,billing_type,gh.billing.billable_entity.billing_type
Billing/Gitcoin,plan_duration,gh.billing.billable_entity.plan_duration
Billing/Gitcoin,zuora_subscription_number,gh.billing.plan_subscription.zuora_subscription_number
Billing/Gitcoin,params,gh.billing.zuora.params
Billing/Gitcoin,number_of_retries_remaining,gh.billing.synchronization.number_of_retries_remaining
Billing/Gitcoin,on_last_retry,gh.billing.synchronization.on_last_retry
Billing/Gitcoin,external_sync_status,gh.billing.synchronization.external_sync_status
Billing/Gitcoin,owner_id,gh.billing.current_usage.owner.id
Billing/Gitcoin,repository_id,gh.repo.id
Billing/Gitcoin,id,gh.billing.current_usage.id
Billing/Gitcoin,class,code.namespace
Billing/Gitcoin,old_size,gh.billing.current_usage.old_size
Billing/Gitcoin,new_size,gh.billing.current_usage.new_size
Billing/Gitcoin,invoice_item_adjustments,gh.billing.zuora.invoice_item_adjustments
Billing/Gitcoin,slug,gh.business.slug
Billing/Gitcoin,ns,code.namespace
Billing/Gitcoin,result,gh.early_access_subscribers.get_subscriber_ids.result
Billing/Gitcoin,member_id,gh.early_access_subscribers.get_subscriber_ids.member_id
Billing/Gitcoin,value,gh.early_access_subscribers.get_subscriber_ids.value
Billing/Gitcoin,"log_message: ""Aleph index request failed with reason: #{index_response.error}"",",exception.message
Billing/Gitcoin,organization_name,gh.org.name
Billing/Gitcoin,network_id,gh.repository.network_id
Billing/Gitcoin,method,gh.dormant.method
Billing/Gitcoin,"""Activity #{activity.inspect}""",gh.dormant.activity
Dependabot Alerts (security_alerts),severity,gh.security_alerts.severity
Dependabot Alerts (security_alerts),cvss_severity,gh.security_alerts.cvss_severity
Dependabot Alerts (security_alerts),cvss_vector,gh.security_alerts.cvss_vector
Dependabot Alerts (security_alerts),"""Index request failed for repository with id #{repository_id} with reason: #{index_response.error}""",gh.security_alerts.vulnerability_exposure.index_error
Dependabot Alerts (security_alerts),content_analysis_enabled,gh.ghes.content_analysis.enabled
Dependabot Alerts (security_alerts),github_connect_enabled,gh.ghes.github_connect.enabled
Dependabot Alerts (security_alerts),,gh.security_alerts.vulnerable_version_range_alerting_process.id
Dependabot Alerts (security_alerts),,gh.security_alerts.vulnerable_version_range.id
Dependabot Alerts (security_alerts),,gh.security_alerts.vulnerability.id
Dependabot Alerts (security_alerts),,gh.security_alerts.vulnerability.ghsa_id
Dependabot Alerts (security_alerts),,gh.security_alerts.create_vulnerability_alerts_job.cursor
Dependabot Alerts (security_alerts),"""Setting GitHub.dotcom_api_host_name to #{gh_connect_dotcom_hostname}""",gh.security_alerts.sync.connect_dotcom_hostname
Dependabot Alerts (security_alerts),"""Setting GitHub.dotcom_host_protocol to #{gh_connect_dotcom_protocol}""",gh.security_alerts.sync.gh_connect_dotcom_protocol
Dependabot Alerts (security_alerts),"category: ""newsletter"", at: :invalid",gh.security_alerts.newsletter.stage
Dependabot Alerts (security_alerts),name,gh.security_alerts.newsletter.subscription_name
Dependabot Alerts (security_alerts),period,gh.security_alerts.newsletter.subscription_period
Pull Requests,base_owner_id,gh.pull_request.base_repository.owner_id
Pull Requests,base_ref,gh.pull_request.base_ref
Pull Requests,base_repo_id,gh.pull_request.base_repository.id
Pull Requests,base_sha,gh.pull_request.base_sha
Pull Requests,cmd,code.function
Pull Requests,codeowners_file_size,gh.pull_request.codeowners.file_size
Pull Requests,current_base_sha,gh.pull_request.current_base_sha
Pull Requests,cv_comment_id,gh.pull_request.convod.comment.id
Pull Requests,cv_conversation_id,gh.pull_request.convod.conversation.id
Pull Requests,details,exception.message
Pull Requests,equivalent_pr_ids,gh.pull_request.equivalent_pr_ids
Pull Requests,error,exception.message
Pull Requests,error_class,exception.type
Pull Requests,error_message,exception.message
Pull Requests,ex_type,exception.type
Pull Requests,fn,code.namespace + code.function
Pull Requests,gh_parent_comment_id,gh.pull_request.convod.parent_comment.id
Pull Requests,head_owner_id,gh.pull_request.head_repository.owner_id
Pull Requests,head_ref,gh.pull_request.head_ref
Pull Requests,head_repo_id,gh.pull_request.head_repository.id
Pull Requests,head_sha,gh.pull_request.head_sha
Pull Requests,hidden_files,gh.pull_request.hidden_files_count
Pull Requests,integration_id,gh.integration.id
Pull Requests,integration_name,deleted it
Pull Requests,issues_closed,gh.pull_request.issues_closed
Pull Requests,issues_closed_count,gh.pull_request.issues_closed_count
Pull Requests,issues_failed_to_close,gh.pull_request.issues_failed_to_close
Pull Requests,issues_failed_to_close_count,gh.pull_request.issues_failed_to_close_count
Pull Requests,job,gh.job.name
Pull Requests,line,gh.pull_request.review_comments.line
Pull Requests,merge_commit_sha,gh.pull_request.merge_commit_sha
Pull Requests,method,code.function
Pull Requests,num_paths,gh.pull_request.codeowners.num_paths
Pull Requests,num_rules,gh.pull_request.codeowners.num_rules
Pull Requests,number_of_equivalent_prs,gh.pull_request.number_of_equivalent_prs
Pull Requests,owner_id,gh.repo.owner_id
Pull Requests,position,gh.pull_request.review_comments.position
Pull Requests,pr_author_id,gh.actor.id
Pull Requests,pr_id,gh.pull_request.id
Pull Requests,pr_repo_id,gh.repo.id
Pull Requests,pull_request_id,gh.pull_request.id
Pull Requests,pull_request_number,gh.pull_request.id
Pull Requests,ref,gh.pull_request.codeowners.ref
Pull Requests,repository_id,gh.repo.id
Pull Requests,request_id,gh.request_id
Pull Requests,result,code.function
Pull Requests,start_line,gh.pull_request.review_comments.start_line
Pull Requests,start_side,gh.pull_request.review_comments.start_side
Pull Requests,total_duraction,metric
Pull Requests,user_login,gh.actor.login
Branch Protection,rename_id,gh.branch_protection_rule.repository_branch_renamer.id
Branch Protection,human_error,gh.branch_protection_rule.repository_branch_renamer.human_error
Branch Protection,protected_branch_id,gh.branch_protection_rule.id
Branch Protection,actor,gh.actor.id / gh.actor.name / gh.actor.slug
Branch Protection,actor_type,gh.actor.type
Branch Protection,actor_class_name,gh.actor.class_name
Branch Protection,result,gh.branch_protection_rule.result
Branch Protection,enforcement_level,gh.branch_protection_rule.enforcement_level
Branch Protection,type,gh.branch_protection_rule.type
Branch Protection,details,gh.branch_protection_rule.rule.details
Branch Protection,commit,gh.commit.oid
Branch Protection,ref,gh.branch_protection_rule.rule.ref
Branch Protection,aggregation_status,gh.branch_protection_rule.rule.aggregation_status
Branch Protection,head_sha,gh.commit.oid
Branch Protection,user_merged_pr_id,gh.pull_request.id
Branch Protection,user_merged_pr_number,gh.pull_request.number
Branch Protection,user_merged_pr_approvals,gh.branch_protection_rule.rule.user_merged_pr_approvals
Branch Protection,approved_pr_ids,gh.branch_protection_rule.rule.approved_pr_ids
Branch Protection,total_approvals,gh.branch_protection_rule.rule.total_approvals
Branch Protection,max_single_pr_approvals,gh.branch_protection_rule.rule.max_single_pr_approvals
Branch Protection,required_approvals,gh.branch_protection_rule.rule.required_approvals
Branch Protection,pr_id,gh.pull_request.id
Branch Protection,pr_number,gh.pull_request.number
Branch Protection,direct_approvals,gh.branch_protection_rule.rule.direct_approvals
Branch Protection,other_approvals,gh.branch_protection_rule.rule.other_approvals
Branch Protection,number_of_other_prs,gh.branch_protection_rule.rule.number_of_other_prs
Branch Protection,required_approvals,gh.branch_protection_rule.rule.required_approvals
Branch Protection,approval_requirement_fulfilled_directly,gh.branch_protection_rule.rule.approval_requirement_fulfilled_directly
Branch Protection,approval_requirement_fulfilled_aggregated,gh.branch_protection_rule.rule.approval_requirement_fulfilled_aggregated
Branch Protection,related_known_pr_ids,gh.branch_protection_rule.rule.related_known_pr_ids
Branch Protection,related_number_of_known_prs,gh.branch_protection_rule.rule.related_number_of_known_prs
Branch Protection,branch,gh.branch_protection_rule.rule.branch
Branch Protection,before,gh.branch_protection_rule.rule.before
Branch Protection,after,gh.branch_protection_rule.rule.after
Branch Protection,rules_fulfilled,gh.branch_protection_rule.rule.rules_fulfilled
Branch Protection,available_bypasses,gh.branch_protection_rule.rule.available_bypasses
Branch Protection,overridable_codes,gh.branch_protection_rule.rule.overridable_codes
Branch Protection,overridden_codes,gh.branch_protection_rule.rule.overridden_codes
Branch Protection,can_override_status_checks,gh.branch_protection_rule.rule.override_status_checks
Branch Protection,can_override_review_policy,gh.branch_protection_rule.rule.override_review_policy
Branch Protection,can_override_required_signatures,gh.branch_protection_rule.rule.override_required_signatures
Branch Protection,can_override_required_linear_history,gh.branch_protection_rule.rule.override_required_linear_history
Branch Protection,can_override_required_deployments,gh.branch_protection_rule.rule.override_required_deployments
Branch Protection,can_override_merge_queue,gh.branch_protection_rule.rule.override_merge_queue
Branch Protection,reasons,gh.branch_protection_rule.rule.reasons
Branch Protection,effected_pr_ids,gh.branch_protection_rule.rule.effected_pr_ids
Branch Protection,effected_pr_numbers,gh.branch_protection_rule.rule.effected_pr_numbers
Branch Protection,number_of_prs,gh.branch_protection_rule.rule.number_of_prs
Branch Protection,number_of_uniq_head_refs,gh.branch_protection_rule.rule.number_of_uniq_head_refs
Branch Protection,number_of_uniq_base_refs,gh.branch_protection_rule.rule.number_of_uniq_base_refs
Branch Protection,pull_status,gh.pull_request.status
Branch Protection,pull_mergeable,gh.pull_request.mergeable
Repos,state,gh.commit_verification.state
Repos,at,code.namespace
Repos,line,gh.diff.line
Repos,status,gh.spokes.maintenance.status
Repos,linked_filter,gh.search.error.linked_filter
Repos,repository.name_with_owner,gh.repo.name_with_owner
Repos,code_path,gh.gitauth.code_path
Repos,msg,used as logger.info message
Repos,index,elasticsearch.index.name
1 Category Old Attribute New Attribute
2 All Services now Timestamp
3 All Services msg or message Body
4 All Services All Services SeverityText
5 Discussions action_name code.function
6 Discussions actor_id actor_id
7 Discussions old_org gh.org.old_name
8 Discussions new_org gh.org.login
9 Discussions new_path gh.controller.new_path
10 Discussions issue_id gh.issue.id
11 Discussions issue_number gh.issue.number
12 Discussions issue_comments_count gh.issue.comments.count
13 Discussions discussion gh.discussion.id
14 Discussions discussion_number gh.discussion.number
15 Discussions discussion_cached_comments_count gh.discussion.cached_comments.count
16 Discussions discussion_live_comments_count gh.discussion.live_comments.count
17 Discussions discussion_converted_at gh.discussion.converted_at
18 Discussions discussion_state gh.discussion.state
19 Discussions discussion_error_reason gh.discussion.error_reason
20 Discussions discussion_reaction_count gh.discussion.reaction.count
21 Discussions team_id gh.team_post.team_id
22 Discussions team_post_id gh.team_post.id
23 Discussions team_post_number gh.team_post.number
24 Stratocaster stratocaster_name gh.stratocaster.adapter_name
25 Stratocaster stratocaster_event_type gh.stratocaster.event_type
26 Stratocaster stratocaster_event_id gh.stratocaster.event.id
27 Stratocaster stratocaster_event_action gh.stratocaster.event.action
28 Stratocaster stratocaster_event_actor_id gh.stratocaster.event.actor_id
29 Stratocaster stratocaster_event_sender_id gh.stratocaster.event.sender_id
30 Stratocaster stratocaster_event_repo_id gh.stratocaster.event.repo_id
31 Stratocaster stratocaster_processor_indexes_count gh.stratocaster.processor.indexes.count
32 Stratocaster stratocaster_processor_received_batch_size gh.stratocaster.processor.received_batch_size
33 Stratocaster stratocaster_processor_index gh.stratocaster.processor.index
34 Stratocaster stratocaster_processor_index_updates gh.stratocaster.processor.index_updates
35 Stratocaster stratocaster_processor_updates gh.stratocaster.processor.updates
36 Stratocaster stratocaster_processor_update_differences gh.stratocaster.processor.update_differences
37 Stratocaster stratocaster_keys gh.stratocaster.keys
38 Stratocaster stratocaster_event_time gh.stratocaster.event_time
39 Stratocaster stratocaster_timeline_processor_group_id gh.stratocaster.timeline_processor.group.id
40 Stratocaster stratocaster_timeline_processor_subscribe_to gh.stratocaster.timeline_processor.subscribe_to
41 Audit Log org_id gh.org.id
42 Audit Log org_name gh.org.name
43 Audit Log busines_id gh.business.id
44 Audit Log busines_name gh.business.name
45 Profile actor gh.actor.login
46 Profile notes gh.rename.notes
47 Profile reason gh.rename.reason
48 Profile dormant gh.rename.dormant
49 Profile active_keys gh.rename.active_keys
50 Profile team_id gh.team.id
51 Profile context gh.context
52 Profile processor gh.processor.name
53 Profile topic gh.processor.message.topic
54 Profile partition gh.processor.message.partition
55 Profile offset gh.processor.message.offset
56 Profile replication_wait gh.processor.replication_wait
57 Profile event gh.user_metadata.event.name
58 Profile skip gh.user_metadata.event.skip
59 Profile skip_reason gh.user_metadata.event.skip_reason
60 Profile updates gh.user_metadata.updates
61 Profile affected_rows gh.user_metadata.affected_rows
62 Profile user_id gh.user.id
63 Profile internal_view gh.internal_view
64 Profile viewer gh.viewer.login
65 Profile current_user gh.actor.login
66 Profile items_to_unpin_ids gh.items_to_unpin_ids
67 Profile items_to_pin_ids gh.items_to_pin_ids
68 feature_management execution_id gh.feature_management.execution_id
69 feature_management all_features_id gh.feature_management.all_features_id
70 feature_management reload_task_id gh.feature_management.reload_task_id
71 feature_management rollout_last_updated_at gh.feature_management.rollout_last_updated_at
72 feature_management feature gh.feature_management.feature
73 feature_management after_fork gh.feature_management.after_fork
74 devtools notifyd_science_experiment gh.devtools.notifyd_science_experiment
75 devtools notification_source gh.devtools.notification_source
76 devtools experiment_id gh.devtools.experiment_id
77 devtools recipient_id gh.devtools.recipient_id
78 devtools candidate_type gh.devtools.candidate_type
79 devtools notification_id gh.devtools.notification_id
80 script/enterprise-stream-processor n/a n/a
81 insights org_id gh.org.id
82 insights tenant_id gh.insights.tenant.id
83 insights entity_name gh.insights.entity.name
84 insights entity_id gh.insights.entity.id
85 insights parent_entity gh.insights.entity.parent_entity
86 insights insights_domain_event gh.hydro.topic
87 insights source_time gh.insights.source.time
88 insights attempt_number gh.insights.attempt.number
89 insights topic gh.hydro.topic
90 insights rails_timestamp gh.insights.rails.timestamp
91 insights rails_offset gh.insights.rails.offset
92 insights mysql_timestamp gh.insights.mysql.timestamp
93 insights mysql_offset gh.insights.mysql.offset
94 insights mysql_timestamp_before_type_cast gh.insights.mysql.timestamp_before_type_cast
95 insights mysql_timestamp_before_type_cast_offset gh.insights.mysql.timestamp_before_type_cast_offset
96 insights request_id gh.request.id
97 insights current_repo_id gh.insights.event.current_repo_id
98 insights target_repo_id gh.insights.event.target_repo_id
99 LDAP authentication op code.function or code.op
100 LDAP authentication group ldap.dn
101 LDAP authentication timeout_sec ldap.timeout_sec
102 LDAP authentication remote_address net.peer.name
103 LDAP authentication error_message exception.message
104 LDAP authentication transaction_id ldap.transaction_id
105 LDAP authentication result ldap.bind.result
106 LDAP authentication duration for log field with `at: "Bind result"` replaced with the new "ldap.bind" timing metric
107 LDAP authentication capabilities ldap.search.capabilities
108 LDAP authentication filter ldap.search.filter
109 LDAP authentication attributes ldap.search.attributes
110 LDAP authentication base ldap.search.base
111 LDAP authentication result_code ldap.search.result.code
112 LDAP authentication matched_dn ldap.search.matched_dn
113 LDAP authentication result_count ldap.search.result.count
114 LDAP authentication page_count ldap.search.page.count
115 LDAP authentication scope gh.ldap.search.scope
116 LDAP authentication limit ldap.search.limit
117 LDAP authentication duration for log field with `at: "Search"` n/a, captured by the new "ldap.search" timing metric
118 LDAP authentication runtime for log field with `at: "New user sync"` n/a, captured by the ldap.sync.new_members.runtime metric
119 LDAP authentication runtime for log field with `at: "Team member search"` n/a, captured by the "ldap.sync.team_member_search.runtime" metric
120 LDAP authentication runtime for log field with `at: "Team sync error"` n/a, captured by the ldap.team_sync_error metric
121 LDAP authentication at Body
122 LDAP authentication runtime for log field with `at: Bulk team sync"` n/a, captured by the ldap.sync.teams.runtime metric
123 LDAP authentication count for log field with `at: Bulk team sync` gh.ldap.bulk_team_sync.count
124 LDAP authentication runtime for log field with `at: "User sync"` ldap.sync.user.runtime
125 LDAP authentication count for log field with `at: User sync` gh.ldap.user_sync_event.count
126 LDAP authentication runtime for log field with `at: Bulk user sync" n/a, captured by the "ldap.sync.users.runtime" metric
127 LDAP authentication runtime for log field with `at: Team sync` n/a, captured by the "ldap.sync.team.runtime" timing metric
128 LDAP authentication unidentfied top level keys for log field with `at: Team sync" top level keys from that log field are now nested under gh.ldap.team_sync.event_payload
129 LDAP authentication error for log field with `at: Team sync error` exception.message
130 LDAP authentication user gh.user.login
131 LDAP authentication result_code ldap.operation.result.code
132 LDAP authentication message ldap.operation.result.message
133 Auth hashed_token gh.auth.hashed_token
134 Auth token_type gh.auth.token_type
135 Auth programmatic_access_type gh.auth.programmatic_access_type
136 Auth gh.auth.result.message
137 Auth gh.auth.token_attempt
138 Auth gh.billing.result.success nested under gh.auth.auth_attempt_data
139 Auth message gh.auth.result
140 Auth from gh.auth.origin
141 Auth login gh.auth.login
142 Auth raw_login gh.auth.raw_login
143 Auth user_id gh.enduser.id
144 Auth failure_type gh.auth.failure.type
145 Auth failure_reason gh.auth.failure.reason
146 Auth two_factor_type gh.auth.result.two_factor_type
147 Auth sign_in_verification_method gh.auth.result.sign_in_verification_method
148 Auth user gh.enduser.login
149 Auth error exception.message
150 Auth options oauth.strategy.options
151 Auth configuration strategy.configuration
152 Auth dn ldap.dn
153 Auth base_name ldap.base
154 Auth login, for log message with body "Invalid ldap credentials" ldap.dn
155 Auth groups ldap.auth_groups
156 Auth collision gh.auth.login
157 Auth ip http.client_ip
158 Auth login, for log message with body "omniauth success" or "omniauth failure" omniauth.uid
159 Auth raw, for log message with body "starting SAML auth" gh.saml.raw_request
160 Auth message, for log message with body "SAML success" gh.saml.result.message
161 Auth login gh.saml.login
162 Auth errors gh.saml.errors
163 Auth params gh.saml.params
164 Auth uid gh.auth.login
165 Auth authentication_success gh.auth.result
166 Auth configuration omniauth.cas.configuration
167 Auth return_to_url omniauth.cas.return_to_url
168 Auth ticket omniauth.cas.ticket
169 Auth authentication_success omniauth.cas.result
170 Auth authentication_success gh.authentication.cas.result
171 Auth user_info omniauth.user_info
172 Auth options gh.auth.cas.options
173 Auth configuration gh.auth.cas.configuration
174 Auth callback_url gh.auth.cas.callback_url
175 Auth login_url gh.auth.cas.login_url
176 Auth code ldap.search.result.code
177 Auth message ldap.search.result
178 Auth user_id gh.enduser.id
179 Auth login gh.enduser.login
180 Auth expires saml.session.expires_at
181 gh-migrator Script n/a n/a
182 gh-migrator Script at n/a
183 gh-migrator Script migration_path gh.gh_migrator.migration_path
184 gh-migrator Script cli_args gh.gh_migrator.cli_args
185 gh-migrator Script command process.command
186 gh-migrator Script guid gh.gh_migrator.guid
187 Marketplace metric_types gh.marketplace.metric.types
188 Marketplace marketplace_listing_id gh.marketplace.listing.id
189 Marketplace installs gh.marketplace.listing.install.count
190 Marketplace recorded_on gh.marketplace.listing.recorded_on
191 Marketplace new_purchases gh.marketplace.new_purchases
192 Marketplace pageviews gh.marketplace.pageviews
193 Marketplace visitors gh.marketplace.visitors
194 Marketplace organization email id gh.organization.profile_email_id
195 Apps catalog_service gh.catalog_serivce
196 Background Jobs job_id gh.job.active_job_id / gh.job.aqueduct_job_id
197 Background Jobs gh.job.aqueduct_job_id
198 Background Jobs job gh.job.name
199 Background Jobs correlation_id gh.correlation_id
200 Background Jobs queue gh.job.queue
201 Background Jobs fn code.namespace + code.function
202 Background Jobs messaging.source.name
203 Background Jobs partition messaging.kafka.source.partition
204 Background Jobs offset messaging.kafka.message.offset
205 Background Jobs error + backtrace exception
206 Background Jobs sleep_secs gh.hydro_processor.dead_letter_retrying.sleep_secs
207 Background Jobs retries gh.hydro_processor.dead_letter_retrying.retries
208 Background Jobs error_class gh.hydro_processor.dead_letter_retrying.original_error_class
209 Background Jobs ns code.namespace / code.filepath
210 Background Jobs signal process.signal
211 Background Jobs process.status
212 Background Jobs now Timestamp
213 Background Jobs class gh.timerd.timer.class
214 Background Jobs timer gh.timerd.timer.name
215 Background Jobs interval gh.timerd.timer.interval_seconds
216 Background Jobs at code.function / Body
217 Background Jobs test Body
218 Background Jobs duration gh.test_job.duration
219 Background Jobs alloc gh.test_job.alloc
220 Background Jobs should_raise gh.test_job.should_raise
221 Background Jobs should_write gh.test_job.should_write
222 Background Jobs catalog_service gh.catalog_serivce
223 Hydro old log line: Processing messages in consumer #{client_id} with options #{options}" New log line with tags: "hydro.kafka_source.batch_processed"
224 Hydro messaging.consumer.id
225 Hydro messaging.consumer.group_id
226 Hydro messaging.consumer.max_bytes_per_partition
227 Hydro messaging.consumer.start_from_beginning
228 Hydro old log line: Processing messages in consumer #{client_id} with options #{options}" New log line with tags: "hydro.kafka_source.processing_message"
229 Hydro old log line: Starting consumer '#{@group_id}' with options #{consumer_options} New log line with tags: hydro.kafka_source.consumer_initialize
230 Hydro messaging.consumer.id
231 Hydro messaging.consumer.group_id
232 Hydro messaging.consumer.options
233 Hydro old log line: Subscribing consumer '#{@group_id}' to topic #{topic} with options #{subscribe_options} new log line with tags: hydro.kafka_source.consumer_subscribed
234 Hydro messaging.consumer.id
235 Hydro messaging.consumer.group_id
236 Hydro messaging.consumer.max_bytes_per_partition
237 Hydro messaging.consumer.start_from_beginning
238 Hydro messaging.destination.name
239 Hydro old log line: Failed to deliver all messages while closing, retrying new log line with tags: hydro.kafka_sink.close.message_flush_retry
240 Hydro exception.type
241 Hydro exception.message
242 Hydro exception.backtrace
243 Hydro hydro.kafka_sink.close.message_flush_retry
244 Hydro old log line: Failed to deliver all messages while closing new log line with tags: hydro.kafka_sink.close.message_flush_failure
245 Hydro exception.type
246 Hydro exception.message
247 Hydro exception.backtrace
248 Billing/Gitcoin job gh.job
249 Billing/Gitcoin subscription_item gh.billing.subscription_item.id
250 Billing/Gitcoin plan_subscription_id gh.billing.plan_subscription.id
251 Billing/Gitcoin organization_id gh.org.id
252 Billing/Gitcoin at code.namespace + code.function
253 Billing/Gitcoin catalog_service gh.catalog_service
254 Billing/Gitcoin refund_success gh.billing.refund_success
255 Billing/Gitcoin cancel_success gh.billing.subscription_item.cancelled
256 Billing/Gitcoin refund_result gh.billing.refund_result
257 Billing/Gitcoin billing_transaction gh.billing.billing_transaction
258 Billing/Gitcoin refund_amount gh.billing.refund_amount
259 Billing/Gitcoin update_result gh.billing.update_result
260 Billing/Gitcoin preview_result gh.billing.preview_result
261 Billing/Gitcoin product_key gh.billing.product_uuid.product_key
262 Billing/Gitcoin product_type gh.billing.product_uuid.product_type
263 Billing/Gitcoin free_trial gh.billing.free_trial
264 Billing/Gitcoin payment_collected gh.billing.payment_collected
265 Billing/Gitcoin plan_subscription gh.billing.plan_subscription
266 Billing/Gitcoin customer_id gh.billing.customer.id
267 Billing/Gitcoin plan_subscription_active gh.billing.plan_subscription.active
268 Billing/Gitcoin fn code.namespace + code.function
269 Billing/Gitcoin vss_subscription_event_id gh.billing.vss_subscription_event.id
270 Billing/Gitcoin subscription_id gh.billing.vss_subscription_event.subscription_id
271 Billing/Gitcoin invoice_amount gh.billing.zuora.invoice.amount
272 Billing/Gitcoin invoice_balance gh.billing.zuora.invoice.balance
273 Billing/Gitcoin invoice_id gh.billing.zuora.invoice.id
274 Billing/Gitcoin invoice_number gh.billing.zuora.invoice.number
275 Billing/Gitcoin sponsors_invoice_item_adjustments gh.billing.sponsors_invoice_item_adjustments
276 Billing/Gitcoin copilot_invoice_item_adjustments gh.billing.copilot_invoice_item_adjustments
277 Billing/Gitcoin zuora_response_results gh.billing.zuora.response_results
278 Billing/Gitcoin slug + business_id with conditional statement of login + user_id gh.billing.billable_entity.id + gh.billing.billable_entity.type
279 Billing/Gitcoin billable_entity gh.billing.billable_entity.id + gh.billing.billable_entity.type
280 Billing/Gitcoin error exception.type + exception.message
281 Billing/Gitcoin login gh.user.login
282 Billing/Gitcoin plan gh.billing.billable_entity.plan_name
283 Billing/Gitcoin billed_on gh.billing.billable_entity.billed_on
284 Billing/Gitcoin billing_attempts gh.billing.billable_entity.billing_attempts
285 Billing/Gitcoin payment_amount gh.billing.billable_entity.payment_amount
286 Billing/Gitcoin active_subscription_items gh.billing.billable_entity.has_active_subscription_items
287 Billing/Gitcoin has_valid_payment_method gh.billing.billable_entity.has_valid_payment_method
288 Billing/Gitcoin discount gh.billing.coupon.discount
289 Billing/Gitcoin expires_at gh.billing.coupon_redemption.expires_at
290 Billing/Gitcoin expired gh.billing.coupon_redemption.expired
291 Billing/Gitcoin stale gh.billing.coupon_redemption.stale
292 Billing/Gitcoin account_update_response gh.billing.zuora.update_account.response
293 Billing/Gitcoin zuora_account_id gh.billing.zuora.account.id
294 Billing/Gitcoin rate_limit_reset gh.billing.zuora.rate_limit_reset
295 Billing/Gitcoin headers gh.billing.zuora.http.headers
296 Billing/Gitcoin attempts gh.job.attempts
297 Billing/Gitcoin account_id gh.billing.zuora.account.id
298 Billing/Gitcoin credit_balance_adjustment_id gh.billing.zuora.credit_balance_adjustment.id
299 Billing/Gitcoin credit_balance_adjustment_amount gh.billing.zuora.credit_balance_adjustment.amount
300 Billing/Gitcoin log_message Body
301 Billing/Gitcoin payment_id gh.billing.zuora.payment.id
302 Billing/Gitcoin refund_id gh.billing.zuora.refund.id
303 Billing/Gitcoin business_id gh.business.id
304 Billing/Gitcoin message_id gh.processor.message.id
305 Billing/Gitcoin message_owner_id gh.billing.artifact.repository_owner.id
306 Billing/Gitcoin message_repository_id gh.billing.artifact.repository.id
307 Billing/Gitcoin artifact_event_id gh.billing.artifact.event.id
308 Billing/Gitcoin artifact_event_owner_id gh.billing.artifact.event.owner.id
309 Billing/Gitcoin artifact_event_repository_id gh.billing.artifact.event.repository.id
310 Billing/Gitcoin package_type gh.registry.package.type
311 Billing/Gitcoin repository_name gh.registry.package.repository_name
312 Billing/Gitcoin package_name gh.registry.package.name
313 Billing/Gitcoin package_id gh.registry.package.id
314 Billing/Gitcoin namespace gh.registry.package.namespace
315 Billing/Gitcoin owner_id gh.registry.package.owner_id
316 Billing/Gitcoin user gh.user.login
317 Billing/Gitcoin version_count gh.registry.package.version_count
318 Billing/Gitcoin versions_migrated_count gh.registry.package.versions_migrated_count
319 Billing/Gitcoin original_error gh.billing.client.original_error
320 Billing/Gitcoin { fn: "billing.client.#{method}", original_error: error.to_s }.merge!(request_params) gh.billing.client.request_params
321 Billing/Gitcoin collect gh.billing.collect_payment_for_upgrade.collect
322 Billing/Gitcoin success gh.billing.collect_payment_for_upgrade.success
323 Billing/Gitcoin elapsed_ms gh.billing.collect_payment_for_upgrade.elapsed_ms
324 Billing/Gitcoin from_plan gh.billing.collect_payment_for_upgrade.from_plan
325 Billing/Gitcoin to_plan gh.billing.collect_payment_for_upgrade.to_plan
326 Billing/Gitcoin from_seats gh.billing.collect_payment_for_upgrade.from_seats
327 Billing/Gitcoin to_seats gh.billing.collect_payment_for_upgrade.to_seats
328 Billing/Gitcoin from_subscription_item_quantity gh.billing.collect_payment_for_upgrade.from_subscription_item_quantity
329 Billing/Gitcoin to_subscription_item_quantity gh.billing.collect_payment_for_upgrade.to_subscription_item_quantity
330 Billing/Gitcoin subscription_item_name gh.billing.subscription_item.name
331 Billing/Gitcoin business_slug gh.business.slug
332 Billing/Gitcoin business_name gh.business.name
333 Billing/Gitcoin success gh.billing.create_customer.success
334 Billing/Gitcoin error gh.billing.create_customer.error
335 Billing/Gitcoin error_class exception.type
336 Billing/Gitcoin owner gh.billing.billable_entity.name
337 Billing/Gitcoin dunning gh.billing.billable_entity.dunning
338 Billing/Gitcoin zuora_response_success gh.billing.zuora.success
339 Billing/Gitcoin zuora_response gh.billing.zuora.response
340 Billing/Gitcoin synchronization_id gh.billing.synchronization_id
341 Billing/Gitcoin event gh.billing.synchronization_event
342 Billing/Gitcoin success gh.billing.result.success
343 Billing/Gitcoin billing_type gh.billing.billable_entity.billing_type
344 Billing/Gitcoin plan_duration gh.billing.billable_entity.plan_duration
345 Billing/Gitcoin zuora_subscription_number gh.billing.plan_subscription.zuora_subscription_number
346 Billing/Gitcoin params gh.billing.zuora.params
347 Billing/Gitcoin number_of_retries_remaining gh.billing.synchronization.number_of_retries_remaining
348 Billing/Gitcoin on_last_retry gh.billing.synchronization.on_last_retry
349 Billing/Gitcoin external_sync_status gh.billing.synchronization.external_sync_status
350 Billing/Gitcoin owner_id gh.billing.current_usage.owner.id
351 Billing/Gitcoin repository_id gh.repo.id
352 Billing/Gitcoin id gh.billing.current_usage.id
353 Billing/Gitcoin class code.namespace
354 Billing/Gitcoin old_size gh.billing.current_usage.old_size
355 Billing/Gitcoin new_size gh.billing.current_usage.new_size
356 Billing/Gitcoin invoice_item_adjustments gh.billing.zuora.invoice_item_adjustments
357 Billing/Gitcoin slug gh.business.slug
358 Billing/Gitcoin ns code.namespace
359 Billing/Gitcoin result gh.early_access_subscribers.get_subscriber_ids.result
360 Billing/Gitcoin member_id gh.early_access_subscribers.get_subscriber_ids.member_id
361 Billing/Gitcoin value gh.early_access_subscribers.get_subscriber_ids.value
362 Billing/Gitcoin log_message: "Aleph index request failed with reason: #{index_response.error}", exception.message
363 Billing/Gitcoin organization_name gh.org.name
364 Billing/Gitcoin network_id gh.repository.network_id
365 Billing/Gitcoin method gh.dormant.method
366 Billing/Gitcoin "Activity #{activity.inspect}" gh.dormant.activity
367 Dependabot Alerts (security_alerts) severity gh.security_alerts.severity
368 Dependabot Alerts (security_alerts) cvss_severity gh.security_alerts.cvss_severity
369 Dependabot Alerts (security_alerts) cvss_vector gh.security_alerts.cvss_vector
370 Dependabot Alerts (security_alerts) "Index request failed for repository with id #{repository_id} with reason: #{index_response.error}" gh.security_alerts.vulnerability_exposure.index_error
371 Dependabot Alerts (security_alerts) content_analysis_enabled gh.ghes.content_analysis.enabled
372 Dependabot Alerts (security_alerts) github_connect_enabled gh.ghes.github_connect.enabled
373 Dependabot Alerts (security_alerts) gh.security_alerts.vulnerable_version_range_alerting_process.id
374 Dependabot Alerts (security_alerts) gh.security_alerts.vulnerable_version_range.id
375 Dependabot Alerts (security_alerts) gh.security_alerts.vulnerability.id
376 Dependabot Alerts (security_alerts) gh.security_alerts.vulnerability.ghsa_id
377 Dependabot Alerts (security_alerts) gh.security_alerts.create_vulnerability_alerts_job.cursor
378 Dependabot Alerts (security_alerts) "Setting GitHub.dotcom_api_host_name to #{gh_connect_dotcom_hostname}" gh.security_alerts.sync.connect_dotcom_hostname
379 Dependabot Alerts (security_alerts) "Setting GitHub.dotcom_host_protocol to #{gh_connect_dotcom_protocol}" gh.security_alerts.sync.gh_connect_dotcom_protocol
380 Dependabot Alerts (security_alerts) category: "newsletter", at: :invalid gh.security_alerts.newsletter.stage
381 Dependabot Alerts (security_alerts) name gh.security_alerts.newsletter.subscription_name
382 Dependabot Alerts (security_alerts) period gh.security_alerts.newsletter.subscription_period
383 Pull Requests base_owner_id gh.pull_request.base_repository.owner_id
384 Pull Requests base_ref gh.pull_request.base_ref
385 Pull Requests base_repo_id gh.pull_request.base_repository.id
386 Pull Requests base_sha gh.pull_request.base_sha
387 Pull Requests cmd code.function
388 Pull Requests codeowners_file_size gh.pull_request.codeowners.file_size
389 Pull Requests current_base_sha gh.pull_request.current_base_sha
390 Pull Requests cv_comment_id gh.pull_request.convod.comment.id
391 Pull Requests cv_conversation_id gh.pull_request.convod.conversation.id
392 Pull Requests details exception.message
393 Pull Requests equivalent_pr_ids gh.pull_request.equivalent_pr_ids
394 Pull Requests error exception.message
395 Pull Requests error_class exception.type
396 Pull Requests error_message exception.message
397 Pull Requests ex_type exception.type
398 Pull Requests fn code.namespace + code.function
399 Pull Requests gh_parent_comment_id gh.pull_request.convod.parent_comment.id
400 Pull Requests head_owner_id gh.pull_request.head_repository.owner_id
401 Pull Requests head_ref gh.pull_request.head_ref
402 Pull Requests head_repo_id gh.pull_request.head_repository.id
403 Pull Requests head_sha gh.pull_request.head_sha
404 Pull Requests hidden_files gh.pull_request.hidden_files_count
405 Pull Requests integration_id gh.integration.id
406 Pull Requests integration_name deleted it
407 Pull Requests issues_closed gh.pull_request.issues_closed
408 Pull Requests issues_closed_count gh.pull_request.issues_closed_count
409 Pull Requests issues_failed_to_close gh.pull_request.issues_failed_to_close
410 Pull Requests issues_failed_to_close_count gh.pull_request.issues_failed_to_close_count
411 Pull Requests job gh.job.name
412 Pull Requests line gh.pull_request.review_comments.line
413 Pull Requests merge_commit_sha gh.pull_request.merge_commit_sha
414 Pull Requests method code.function
415 Pull Requests num_paths gh.pull_request.codeowners.num_paths
416 Pull Requests num_rules gh.pull_request.codeowners.num_rules
417 Pull Requests number_of_equivalent_prs gh.pull_request.number_of_equivalent_prs
418 Pull Requests owner_id gh.repo.owner_id
419 Pull Requests position gh.pull_request.review_comments.position
420 Pull Requests pr_author_id gh.actor.id
421 Pull Requests pr_id gh.pull_request.id
422 Pull Requests pr_repo_id gh.repo.id
423 Pull Requests pull_request_id gh.pull_request.id
424 Pull Requests pull_request_number gh.pull_request.id
425 Pull Requests ref gh.pull_request.codeowners.ref
426 Pull Requests repository_id gh.repo.id
427 Pull Requests request_id gh.request_id
428 Pull Requests result code.function
429 Pull Requests start_line gh.pull_request.review_comments.start_line
430 Pull Requests start_side gh.pull_request.review_comments.start_side
431 Pull Requests total_duraction metric
432 Pull Requests user_login gh.actor.login
433 Branch Protection rename_id gh.branch_protection_rule.repository_branch_renamer.id
434 Branch Protection human_error gh.branch_protection_rule.repository_branch_renamer.human_error
435 Branch Protection protected_branch_id gh.branch_protection_rule.id
436 Branch Protection actor gh.actor.id / gh.actor.name / gh.actor.slug
437 Branch Protection actor_type gh.actor.type
438 Branch Protection actor_class_name gh.actor.class_name
439 Branch Protection result gh.branch_protection_rule.result
440 Branch Protection enforcement_level gh.branch_protection_rule.enforcement_level
441 Branch Protection type gh.branch_protection_rule.type
442 Branch Protection details gh.branch_protection_rule.rule.details
443 Branch Protection commit gh.commit.oid
444 Branch Protection ref gh.branch_protection_rule.rule.ref
445 Branch Protection aggregation_status gh.branch_protection_rule.rule.aggregation_status
446 Branch Protection head_sha gh.commit.oid
447 Branch Protection user_merged_pr_id gh.pull_request.id
448 Branch Protection user_merged_pr_number gh.pull_request.number
449 Branch Protection user_merged_pr_approvals gh.branch_protection_rule.rule.user_merged_pr_approvals
450 Branch Protection approved_pr_ids gh.branch_protection_rule.rule.approved_pr_ids
451 Branch Protection total_approvals gh.branch_protection_rule.rule.total_approvals
452 Branch Protection max_single_pr_approvals gh.branch_protection_rule.rule.max_single_pr_approvals
453 Branch Protection required_approvals gh.branch_protection_rule.rule.required_approvals
454 Branch Protection pr_id gh.pull_request.id
455 Branch Protection pr_number gh.pull_request.number
456 Branch Protection direct_approvals gh.branch_protection_rule.rule.direct_approvals
457 Branch Protection other_approvals gh.branch_protection_rule.rule.other_approvals
458 Branch Protection number_of_other_prs gh.branch_protection_rule.rule.number_of_other_prs
459 Branch Protection required_approvals gh.branch_protection_rule.rule.required_approvals
460 Branch Protection approval_requirement_fulfilled_directly gh.branch_protection_rule.rule.approval_requirement_fulfilled_directly
461 Branch Protection approval_requirement_fulfilled_aggregated gh.branch_protection_rule.rule.approval_requirement_fulfilled_aggregated
462 Branch Protection related_known_pr_ids gh.branch_protection_rule.rule.related_known_pr_ids
463 Branch Protection related_number_of_known_prs gh.branch_protection_rule.rule.related_number_of_known_prs
464 Branch Protection branch gh.branch_protection_rule.rule.branch
465 Branch Protection before gh.branch_protection_rule.rule.before
466 Branch Protection after gh.branch_protection_rule.rule.after
467 Branch Protection rules_fulfilled gh.branch_protection_rule.rule.rules_fulfilled
468 Branch Protection available_bypasses gh.branch_protection_rule.rule.available_bypasses
469 Branch Protection overridable_codes gh.branch_protection_rule.rule.overridable_codes
470 Branch Protection overridden_codes gh.branch_protection_rule.rule.overridden_codes
471 Branch Protection can_override_status_checks gh.branch_protection_rule.rule.override_status_checks
472 Branch Protection can_override_review_policy gh.branch_protection_rule.rule.override_review_policy
473 Branch Protection can_override_required_signatures gh.branch_protection_rule.rule.override_required_signatures
474 Branch Protection can_override_required_linear_history gh.branch_protection_rule.rule.override_required_linear_history
475 Branch Protection can_override_required_deployments gh.branch_protection_rule.rule.override_required_deployments
476 Branch Protection can_override_merge_queue gh.branch_protection_rule.rule.override_merge_queue
477 Branch Protection reasons gh.branch_protection_rule.rule.reasons
478 Branch Protection effected_pr_ids gh.branch_protection_rule.rule.effected_pr_ids
479 Branch Protection effected_pr_numbers gh.branch_protection_rule.rule.effected_pr_numbers
480 Branch Protection number_of_prs gh.branch_protection_rule.rule.number_of_prs
481 Branch Protection number_of_uniq_head_refs gh.branch_protection_rule.rule.number_of_uniq_head_refs
482 Branch Protection number_of_uniq_base_refs gh.branch_protection_rule.rule.number_of_uniq_base_refs
483 Branch Protection pull_status gh.pull_request.status
484 Branch Protection pull_mergeable gh.pull_request.mergeable
485 Repos state gh.commit_verification.state
486 Repos at code.namespace
487 Repos line gh.diff.line
488 Repos status gh.spokes.maintenance.status
489 Repos linked_filter gh.search.error.linked_filter
490 Repos repository.name_with_owner gh.repo.name_with_owner
491 Repos code_path gh.gitauth.code_path
492 Repos msg used as logger.info message
493 Repos index elasticsearch.index.name

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 113 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -33,8 +33,12 @@ People who visit your profile can also see the following information.
- Repositories you've starred{% ifversion fpt or ghec %} and organized into lists{% endif %}. For more information, see "[AUTOTITLE](/get-started/exploring-projects-on-github/saving-repositories-with-stars)."
- An overview of your activity in organizations, repositories, and teams you're most active in. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-an-overview-of-your-activity-on-your-profile)."{% ifversion fpt or ghec %}
- Badges and Achievements that highlight your activity and show if you use {% data variables.product.prodname_pro %} or participate in programs like the {% data variables.product.prodname_arctic_vault %}, {% data variables.product.prodname_sponsors %}, or the {% data variables.product.company_short %} Developer Program. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#displaying-badges-on-your-profile)."{% endif %}
- Your pronouns if you've set them. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#adding-pronouns-to-your-profile)." {% ifversion fpt or ghec %}
- Mutual connections you share with someone who is viewing your profile. The person viewing your profile can see which of the people they follow are also followed by you.{% endif %}
{%- ifversion profile-pronouns %}
- Your pronouns if you've set them. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#adding-pronouns-to-your-profile).
{%- endif %}
{%- ifversion fpt or ghec %}
- Mutual connections you share with someone who is viewing your profile. The person viewing your profile can see which of the people they follow are also followed by you.
{%- endif %}
You can also set a status on your profile to provide information about your availability. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#setting-a-status)."

Просмотреть файл

@ -104,6 +104,8 @@ For a longer-form and more prominent way of displaying customized information ab
{% data reusables.profile.update-profile %}
{% ifversion profile-pronouns %}
## Adding pronouns to your profile
Add pronouns to your public user profile to share information about yourself with other {% data variables.product.product_name %} users. Your pronouns will only be visible to users that are signed in to {% data variables.product.product_name %}.
@ -113,6 +115,8 @@ Add pronouns to your public user profile to share information about yourself wit
{% data reusables.profile.update-profile %}
{% endif %}
{% ifversion profile-time-zone %}
## Setting your location and time zone

Просмотреть файл

@ -23,6 +23,12 @@ To access the {% data variables.enterprise.management_console %}, {% ifversion e
The {% data variables.enterprise.management_console %} password hash is stored in `/data/user/common/secrets.conf`. If high availability or clustering is configured, the file is automatically synced from the primary node to any additional nodes. Any change to the primary's password will automatically be replicated to all of the instance's nodes. For more information about high availability, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration)."
{% ifversion management-console-events-audit-log %}
When someone performs an action in the {% data variables.enterprise.management_console %} via the web interface or REST API, an event appears in the audit log. For more information, see "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise)."
{% endif %}
## Examples of activities in the {% data variables.enterprise.management_console %}
In the {% data variables.enterprise.management_console %}, you can perform administrative tasks for {% data variables.location.product_location %}, including:

Просмотреть файл

@ -38,7 +38,7 @@ The root site administrator can provision one of two roles for {% data variables
- **Editor**: A {% data variables.enterprise.management_console %} user with the editor role can perform basic administrative tasks for {% data variables.location.product_location %} in the {% data variables.enterprise.management_console %}. Editors cannot add public SSH keys to the {% data variables.enterprise.management_console %} to grant administrative SSH access to the instance.
- **Operator**: A {% data variables.enterprise.management_console %} user with the operator role can perform basic administrative tasks for {% data variables.location.product_location %} in the {% data variables.enterprise.management_console %}. Users with the operator role can add SSH keys to the {% data variables.enterprise.management_console %} to grant administrative access to the instance via SSH.
### Creating or deleting a user account for the {% data variables.enterprise.management_console %}
## Creating or deleting a user account for the {% data variables.enterprise.management_console %}
While signed into the {% data variables.enterprise.management_console %} as the root site administrator, you can create new {% data variables.enterprise.management_console %} user accounts.

Просмотреть файл

@ -1,6 +1,6 @@
---
title: Enabling Dependabot for your enterprise
intro: 'You can allow users of {% data variables.location.product_location %} to find and fix vulnerabilities in code dependencies by enabling {% data variables.product.prodname_dependabot_alerts %}{% ifversion ghes %} and {% data variables.product.prodname_dependabot_updates %}{% endif %}.'
intro: 'You can allow users of {% data variables.location.product_location %} to find and fix vulnerabilities in code dependencies by {% ifversion dependabot-alerts-ghes-enablement %} setting up {% else %}enabling{% endif %} {% data variables.product.prodname_dependabot_alerts %}{% ifversion ghes %} and {% data variables.product.prodname_dependabot_updates %}{% endif %}.'
shortTitle: Dependabot
redirect_from:
- /enterprise/admin/installation/enabling-security-alerts-for-vulnerable-dependencies-on-github-enterprise-server
@ -11,7 +11,7 @@ redirect_from:
- /admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server
- /admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account
- /admin/configuration/configuring-github-connect/enabling-the-dependency-graph-and-dependabot-alerts-for-your-enterprise
permissions: 'Enterprise owners can enable {% data variables.product.prodname_dependabot %}.'
permissions: 'Enterprise owners can{% ifversion dependabot-alerts-ghes-enablement %} set up{% else %} enable{% endif %} {% data variables.product.prodname_dependabot %}.'
versions:
ghes: '*'
ghae: '*'
@ -25,7 +25,7 @@ topics:
## About {% data variables.product.prodname_dependabot %} for {% data variables.product.product_name %}
{% data variables.product.prodname_dependabot %} helps users of {% data variables.location.product_location %} find and fix vulnerabilities in their dependencies.{% ifversion ghes %} You can enable {% data variables.product.prodname_dependabot_alerts %} to notify users about vulnerable dependencies and {% data variables.product.prodname_dependabot_updates %} to fix the vulnerabilities and keep dependencies updated to the latest version.
{% data variables.product.prodname_dependabot %} helps users of {% data variables.location.product_location %} find and fix vulnerabilities in their dependencies.{% ifversion ghes %} You {% ifversion dependabot-alerts-ghes-enablement %} must first set up {% data variables.product.prodname_dependabot %} for your enterprise, and then you {% endif %} can enable {% data variables.product.prodname_dependabot_alerts %} to notify users about vulnerable dependencies and {% data variables.product.prodname_dependabot_updates %} to fix the vulnerabilities and keep dependencies updated to the latest version.
{% data variables.product.prodname_dependabot %} is just one of many features available to harden supply chain security for {% data variables.location.product_location %}. For more information about the other features, see "[AUTOTITLE](/admin/code-security/managing-supply-chain-security-for-your-enterprise/about-supply-chain-security-for-your-enterprise)."
@ -38,7 +38,7 @@ With {% data variables.product.prodname_dependabot_alerts %}, {% data variables.
{% data reusables.repositories.tracks-vulnerabilities %}
After you enable {% data variables.product.prodname_dependabot_alerts %} for your enterprise, vulnerability data is synced from the {% data variables.product.prodname_advisory_database %} to your instance once every hour. Only {% data variables.product.company_short %}-reviewed advisories are synchronized. {% data reusables.security-advisory.link-browsing-advisory-db %}
After you {% ifversion dependabot-alerts-ghes-enablement %} set up {% data variables.product.prodname_dependabot %}{% else %} enable {% data variables.product.prodname_dependabot_alerts %}{% endif %} for your enterprise, vulnerability data is synced from the {% data variables.product.prodname_advisory_database %} to your instance once every hour. Only {% data variables.product.company_short %}-reviewed advisories are synchronized. {% data reusables.security-advisory.link-browsing-advisory-db %}
You can also choose to manually sync vulnerability data at any time. For more information, see "[AUTOTITLE](/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise)."
@ -79,17 +79,21 @@ With {% data variables.product.prodname_dependabot_updates %}, {% data variables
## Enabling {% data variables.product.prodname_dependabot_alerts %}
Before you can enable {% data variables.product.prodname_dependabot_alerts %}:
{% ifversion dependabot-alerts-ghes-enablement %}
Before you can enable {% data variables.product.prodname_dependabot_alerts %}, you must first set up {% data variables.product.prodname_dependabot %} for your enterprise{% else %}Before you can enable {% data variables.product.prodname_dependabot_alerts %}{% endif %}:
- You must enable {% data variables.product.prodname_github_connect %}. For more information, see "[AUTOTITLE](/admin/configuration/configuring-github-connect/managing-github-connect)."{% ifversion ghes %}
- You must enable the dependency graph. For more information, see "[AUTOTITLE](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)."{% endif %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.github-connect-tab %}
{%- ifversion dependabot-updates-github-connect %}
1. Under "{% data variables.product.prodname_dependabot %}", to the right of "Users can receive vulnerability alerts for open source code dependencies", select the dropdown menu and click **Enabled without notifications**. Optionally, to enable alerts with notifications, click **Enabled with notifications**.
1. Under "{% data variables.product.prodname_dependabot %}", to the right of {% ifversion dependabot-alerts-ghes-enablement %}"Periodically download the {% data variables.product.prodname_advisory_database %} so that users can receive vulnerability alerts for open source code dependencies"{% else %}"Users can receive vulnerability alerts for open source code dependencies"{% endif %}, select the dropdown menu and click **Enabled without notifications**. Optionally, to enable alerts with notifications, click **Enabled with notifications**.
{% ifversion dependabot-alerts-ghes-enablement %}
![Screenshot of the "Enable" dropdown menu for {% data variables.product.prodname_dependabot_alerts %}, showing the available options.](/assets/images/enterprise/site-admin-settings/dependabot-alerts-setup-dropdown.png)
{% else %}
![Screenshot of the "Enable" dropdown menu for {% data variables.product.prodname_dependabot_alerts %}, showing the available options.](/assets/images/enterprise/site-admin-settings/dependabot-alerts-dropdown.png)
{% endif %}
{%- else %}
1. Under "Repositories can be scanned for vulnerabilities", select the drop-down menu and click **Enabled without notifications**. Optionally, to enable alerts with notifications, click **Enabled with notifications**.
{%- endif %}
@ -99,6 +103,9 @@ Before you can enable {% data variables.product.prodname_dependabot_alerts %}:
{% endtip %}
{% ifversion dependabot-alerts-ghes-enablement %}
You can now enable {% data variables.product.prodname_dependabot_alerts %} for all existing or new private and internal repositories in the enterprise settings page for "Code security and analysis." Alternatively, repository administrators and organization owners can enable {% data variables.product.prodname_dependabot_alerts %} for each repository and organization. Public repositories are always enabled by default. For more information, see "[AUTOTITLE](/enterprise-server@latest/code-security/dependabot/dependabot-alerts/configuring-dependabot-alerts)."{% endif %}
{% ifversion dependabot-updates-github-connect %}
## Enabling {% data variables.product.prodname_dependabot_updates %}

Просмотреть файл

@ -574,6 +574,54 @@ ghe-webhook-logs -g DELIVERY_GUID
## Clustering
{% ifversion cluster-rebalancing %}
### ghe-cluster-balance
This utility allows you to enforce an even distribution of allocations across your cluster nodes by checking the status of your cluster's allocations, then rebalancing problematic allocations. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/rebalancing-cluster-workloads)."
To output a list of balanceable jobs and their associated allocation spread:
```shell
$ ghe-cluster-balance status
```
To output allocation counts for a given job or comma-delimited list of jobs:
```shell
$ ghe-cluster-balance -j JOB
```
To rebalance problematic allocations for a given job or comma-delimited list of jobs:
```shell
$ ghe-cluster-balance rebalance -j JOB
```
You can use the following flags with `ghe-cluster-balance rebalance`.
Flag | Description
---- | ----------
`-j/--job-names` | Specify the jobs to rebalance. Accepts a job name or comma-delimited list of names.
`-n/--dry-run` | Output the Nomad operations that the utility will run, without actually running them. Can be used in tandem with `-j/--job-name`.
`-y/--yes` | Skip the user prompt.
`w/--workers` | Specify the maximum number of simultaneous jobs to stop and wait for reallocation to complete on. Defaults to 4.
`-t/--timeout` | Specify how many seconds to wait for a stopped allocation for a job to be replaced. Defaults to 300 seconds.
To output completion scripts for the given shell:
```shell
$ ghe-cluster-balance completion
```
To display a short description of the utility and any valid subcommands:
```shell
$ ghe-cluster-balance help
```
{% endif %}
### ghe-cluster-status
Check the health of your nodes and services in a cluster deployment of {% data variables.product.prodname_ghe_server %}.
@ -597,17 +645,17 @@ $ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -o' > cluster-support
To create a standard bundle including data from the last 3 hours:
```shell
$ ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p '3 hours' -o" > support-bundle.tgz
$ ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p {% ifversion bundle-cli-syntax-no-quotes %}3hours {% elsif ghes < 3.9 %}'3 hours' {% endif %} -o" > support-bundle.tgz
```
To create a standard bundle including data from the last 2 days:
```shell
$ ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p '2 days' -o" > support-bundle.tgz
$ ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p {% ifversion bundle-cli-syntax-no-quotes %}2days {% elsif ghes < 3.9 %}'2 days' {% endif %} -o" > support-bundle.tgz
```
To create a standard bundle including data from the last 4 days and 8 hours:
```shell
$ ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p '4 days 8 hours' -o" > support-bundle.tgz
$ ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p {% ifversion bundle-cli-syntax-no-quotes %}4days8hours {% elsif ghes < 3.9 %}'4 days 8 hours' {% endif %} -o" > support-bundle.tgz
```
To create an extended bundle including data from the last 8 days:
@ -644,9 +692,32 @@ To evacuate a {% data variables.product.prodname_pages %} storage service before
ghe-dpages evacuate pages-server-UUID
```
{% ifversion ghe-spokes-deprecation-phase-1 %}
### ghe-spokesctl
This utility allows you to manage replication of repositories on the distributed Git servers.
```shell
ghe-spokesctl
```
To show the servers where the repository is stored:
```shell
ghe-spokesctl routes
```
To evacuate storage services on a cluster node:
```shell
ghe-spokesctl server set evacuating git-server-UUID
```
{% else %}
### ghe-spokes
This utility allows you to manage the three copies of each repository on the distributed git servers.
This utility allows you to manage the three copies of each repository on the distributed Git servers.
```shell
ghe-spokes
@ -670,6 +741,8 @@ To evacuate storage services on a cluster node:
ghe-spokes server evacuate git-server-UUID
```
{% endif %}
### ghe-storage
This utility allows you to evacuate all storage services before evacuating a cluster node.
@ -678,6 +751,64 @@ This utility allows you to evacuate all storage services before evacuating a clu
ghe-storage evacuate storage-server-UUID
```
{% ifversion node-eligibility-service %}
### nes
This utility allows you to monitor the health of cluster nodes using {% data variables.product.prodname_nes %}. By default, {% data variables.product.prodname_nes %} is disabled. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/monitoring-the-health-of-your-cluster-nodes-with-node-eligibility-service)."
To view the health of the cluster's nodes:
```shell
nes get-cluster-health
```
To verify TTL settings:
```shell
nes get-node-ttl all
```
To set the TTL for the `fail` state in minutes:
```shell
nes set-node-ttl fail MINUTES
```
The TTL for the `fail` state must be higher than the TTL for the `warn` state.
To set the TTL for the `warn` state in minutes:
```shell
nes set-node-ttl warn TIME
```
To review whether {% data variables.product.prodname_nes %} can take administrative action when a node with the hostname HOSTNAME goes offline:
```shell
nes get-node-adminaction HOSTNAME
```
To allow {% data variables.product.prodname_nes %} to automatically take administrative action when a node with the hostname HOSTNAME goes offline:
```shell
nes set-node-adminaction approved HOSTNAME
```
To revoke {% data variables.product.prodname_nes %}'s ability to take the node with hostname HOSTNAME offline:
```shell
nes set-node-adminaction approved HOSTNAME
```
To manually update a node's eligibility for re-addition to the cluster:
```shell
nes set-node-eligibility eligible HOSTNAME
```
{% endif %}
## Git
### ghe-btop
@ -771,6 +902,77 @@ If your storage system is configured correctly, you'll see the following output.
All Storage tests passed
```
## High availability
### ghe-repl-promote
This command disables replication on an existing replica node and converts the replica node to a primary node using the same settings as the original primary node. All replication services are enabled. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance)."
{% data reusables.enterprise_installation.promoting-a-replica %}
```shell
ghe-repl-promote
```
### ghe-repl-setup
Run this utility on an existing node to begin enabling a high availability configuration. The utility puts the node in standby mode before you begin replication with [`ghe-repl-start`](#ghe-repl-start). For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica)."
After running the utility, the following configuration occurs on the node.
- An encrypted WireGuard VPN tunnel is established for communication between the nodes.
- Database services are configured for replication and started.
- Application services are disabled. Attempts to access the replica node over HTTP or HTTPS, Git, or other supported protocols will display "Server in replication mode" message, a maintenance page, or an error message.
When running this utility, replace PRIMARY-NODE-IP with the IP address of your instance's primary node.
```shell
ghe-repl-setup PRIMARY-NODE-IP
```
### ghe-repl-start
This utility begins replication of all datastores on a node. Run this utility after running [`ghe-repl-setup`](#ghe-repl-setup). For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica)."
```shell
ghe-repl-start
```
### ghe-repl-status
This utility displays the status of replication on a node, returning an `OK`, `WARNING` or `CRITICAL` status for each datastore's replication stream. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/monitoring-a-high-availability-configuration)."
- If any of the replication channels are in a `WARNING` state, the command will exit with code `1`.
- If any of the channels are in a `CRITICAL` state, the command will exit with code `2`.
- The output conforms to the expectations of Nagios' check_by_ssh plugin. For more information, see the [check_by_ssh plugin](https://nagios-plugins.org/doc/man/check_by_ssh.html) on the official Nagios plugins page.
```shell
ghe-repl-status
```
The `-v` and `-vv` options provide additional details about each datastore's replication state.
```shell
ghe-repl-status -v
```
### ghe-repl-stop
This command temporarily disables replication for all datastores on an existing replica node. All replication services are stopped. To resume replication, use [`ghe-repl-start`](#ghe-repl-start).
```shell
ghe-repl-stop
```
### ghe-repl-teardown
This utility completely disables replication on an existing replica node, removing the replica configuration. You can run the following command from a replica node, but if the replica node is unreachable, you can also run the command from the primary node.
```
ghe-repl-teardown
```
## Import and export
### ghe-migrator
@ -856,17 +1058,17 @@ $ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -o' > support-bundle.tgz
To create a standard bundle including data from the last 3 hours:
```shell
$ ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p '3 hours' -o" > support-bundle.tgz
$ ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p {% ifversion bundle-cli-syntax-no-quotes %}3hours {% elsif ghes < 3.9 %}'3 hours' {% endif %} -o" > support-bundle.tgz
```
To create a standard bundle including data from the last 2 days:
```shell
$ ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p '2 days' -o" > support-bundle.tgz
$ ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p {% ifversion bundle-cli-syntax-no-quotes %}2days {% elsif ghes < 3.9 %}'2 days' {% endif %} -o" > support-bundle.tgz
```
To create a standard bundle including data from the last 4 days and 8 hours:
```shell
$ ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p '4 days 8 hours' -o" > support-bundle.tgz
$ ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p {% ifversion bundle-cli-syntax-no-quotes %}4days8hours {% elsif ghes < 3.9 %}'4 days 8 hours' {% endif %} -o" > support-bundle.tgz
```
To create an extended bundle including data from the last 8 days:
@ -903,6 +1105,44 @@ In this example, `ghe-repl-status -vv` sends verbose status information from a r
## Upgrading {% data variables.product.prodname_ghe_server %}
{% ifversion ghe-migrations-cli-utility %}
### ghe-migrations
During an upgrade to a feature release, this utility displays the status of active database migrations on {% data variables.location.product_location %}. The output includes a version identifier for the migration, the migration's name, the migration's status, and the current duration of the migration.
To display the list of migrations:
```shell
ghe-migrations
```
By default, the utility outputs a table with 10 lines. To adjust the height of the table in lines:
```shell
ghe-migrations -height LINES
```
By default, the visualizer refreshes every second. To specify the duration in seconds to refresh the visualizer:
```shell
ghe-migrations -refresh_rate SECONDS
```
{% endif %}
### ghe-update-check
This utility will check to see if a new patch release of {% data variables.product.prodname_enterprise %} is available. If it is, and if space is available on your instance, it will download the package. By default, it's saved to */var/lib/ghe-updates*. An administrator can then [perform the upgrade](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources).
A file containing the status of the download is available at */var/lib/ghe-updates/ghe-update-check.status*.
To check for the latest {% data variables.product.prodname_enterprise %} release, use the `-i` switch.
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-update-check'
```
### ghe-upgrade
This utility installs or verifies an upgrade package. You can also use this utility to roll back a patch release if an upgrade fails or is interrupted. For more information, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)."
@ -941,18 +1181,6 @@ To remove scheduled installations for a package:
$ ghe-upgrade-scheduler -r UPGRADE PACKAGE FILENAME
```
### ghe-update-check
This utility will check to see if a new patch release of {% data variables.product.prodname_enterprise %} is available. If it is, and if space is available on your instance, it will download the package. By default, it's saved to */var/lib/ghe-updates*. An administrator can then [perform the upgrade](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources).
A file containing the status of the download is available at */var/lib/ghe-updates/ghe-update-check.status*.
To check for the latest {% data variables.product.prodname_enterprise %} release, use the `-i` switch.
```shell
$ ssh -p 122 admin@HOSTNAME -- 'ghe-update-check'
```
## User management
### ghe-license-usage
@ -1011,4 +1239,4 @@ This utility unsuspends the specified user, granting them access to login, push,
```shell
ghe-user-unsuspend USERNAME
```
```

Просмотреть файл

@ -1,6 +1,7 @@
---
title: About cluster nodes
intro: '*Nodes* are {% data variables.product.prodname_ghe_server %} instances that operate in a cluster. Each node runs a set of services that are provided to the cluster, and ultimately to the users.'
product: '{% data reusables.gated-features.cluster %}'
intro: 'In a {% data variables.product.product_name %} cluster, nodes are individual virtual machines (VMs) running the {% data variables.product.prodname_ghe_server %} software that comprise the instance. Each node runs a set of services.'
redirect_from:
- /enterprise/admin/clustering/about-cluster-nodes
- /enterprise/admin/enterprise-management/about-cluster-nodes
@ -12,35 +13,36 @@ topics:
- Clustering
- Enterprise
---
## About cluster nodes
## About {% data variables.product.product_name %} cluster nodes
{% data reusables.enterprise_clustering.clustering-scale-recommendation %}
Each node in your cluster is a virtual machine that runs the {% data variables.location.product_location %} software. Before you deploy a cluster, you can review hardware requirements, required services, and design recommendations.
Each node in a {% data variables.product.product_name %} cluster is a virtual machine (VM) that runs the {% data variables.product.product_name %} software. Before you deploy a cluster, you can review hardware requirements, required services, and design recommendations.
{% data reusables.enterprise_clustering.clustering-requires-https %}
## Minimum hardware recommendations
## Hardware requirements
Each node must have a root volume, as well as a separate data volume. These are minimum recommendations. More resources may be required depending on your usage, such as user activity and selected integrations.
| Services | Minimum Memory Required | Minimum Data Volume Free Space Required |
| :-: | :-: | :-: |
| Services | Minimum memory required | Minimum data volume free space Required |
| :- | :- | :- |
| `job-server`,<br/>`memcache-server`,<br/>`web-server` | 14 GB | 1 GB |
| `consul-server`,<br/>`mysql-server`,<br/>`redis-server` | 14 GB | 10 GB |
| `git-server`,<br/>`metrics-server`,<br/>`pages-server`,<br/>`storage-server` | 14 GB | 10 GB |
| `elasticsearch-server` | 14 GB | 10 GB |
## Services required for clustering
{% data variables.product.prodname_ghe_server %} comprises a set of services. In a cluster, these services run across multiple nodes, and the instance balances requests between the nodes. The instance automatically stores redundant copies of data on separate nodes. Most services are equal peers with other instances of the same service. The exceptions to this distribution are the `mysql-server` and `redis-server` services, which operate with a single primary node with one or more replica nodes.
For adequate redundancy, use these minimum nodes operating each service.
{% tip %}
**Note:** Your organization's needs for scalability will depend on many factors including the size and number of repositories, number of users, and overall utilization.
**Note:** Your environment's scaling requirements depend on many factors, including the size and number of repositories, number of users, and overall utilization.
{% endtip %}
| Services | Minimum Nodes Required |
| :-: | :-: |
| Services | Minimum nodes required |
| :- | :- |
| `job-server`,<br/>`memcache-server`,<br/>`metrics-server`,<br/>`web-server` | 2 |
| `mysql-server`,<br/>`redis-server` | 2 |
| `consul-server` | 3 |

Просмотреть файл

@ -1,6 +1,7 @@
---
title: About clustering
intro: '{% data variables.product.prodname_ghe_server %} clustering allows services that make up {% data variables.product.prodname_ghe_server %} to be scaled out across multiple nodes.'
intro: "The cluster topology for {% data variables.product.prodname_ghe_server %} is designed to support tens of thousands of users where other topologies would experience resource exhaustion. In a cluster, the instance's services scale horizontally across multiple nodes."
product: "{% data variables.product.company_short %} determines eligibility for clustering, and must enable the configuration for your instance's license. Clustering requires careful planning and additional administrative overhead."
redirect_from:
- /enterprise/admin/clustering/overview
- /enterprise/admin/clustering/about-clustering
@ -20,22 +21,24 @@ topics:
- Clustering
- Enterprise
---
## Clustering architecture
{% data variables.product.prodname_ghe_server %} is comprised of a set of services. In a cluster, these services run across multiple nodes and requests are load balanced between them. Changes are automatically stored with redundant copies on separate nodes. Most of the services are equal peers with other instances of the same service. The exceptions to this are the `mysql-server` and `redis-server` services. These operate with a single _primary_ node with one or more _replica_ nodes.
## About clustering for {% data variables.product.product_name %}
Learn more about [services required for clustering](/admin/enterprise-management/configuring-clustering/about-cluster-nodes#services-required-for-clustering).
The cluster topology for {% data variables.product.prodname_ghe_server %} provides horizontal scaling for companies with tens of thousands of developers. {% data variables.product.company_short %} recommends clustering if a single primary node would routinely experience resource exhaustion.
## Is clustering right for my organization?
In a cluster, the instance provides services and distributes data across multiple virtual machines (VMs) that run the {% data variables.product.product_name %} software. Each VM is called a node. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/about-cluster-nodes)."
{% data reusables.enterprise_clustering.clustering-scalability %} However, setting up a redundant and scalable cluster can be complex and requires careful planning. This additional complexity will need to be planned for during installation, disaster recovery scenarios, and upgrades.
<a name="is-clustering-right-for-my-organization"></a>
## Is clustering right for my environment?
{% data variables.product.prodname_ghe_server %} requires low latency between nodes and is not intended for redundancy across geographic locations.
{% data reusables.enterprise_clustering.clustering-scalability %} However, setting up a redundant and scalable cluster requires careful planning. Compared to other topologies like high availability (HA), additional complexity affects installation, configuration, disaster recovery, and upgrades.
Clustering provides redundancy, but it is not intended to replace a High Availability configuration. For more information, see [High Availability configuration](/admin/enterprise-management/configuring-high-availability). A primary/secondary failover configuration is far simpler than clustering and will serve the needs of many organizations. For more information, see [Differences between Clustering and High Availability](/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha).
{% data variables.product.product_name %} requires low latency between nodes and is not intended for redundancy across geographic locations.
Clustering provides redundancy, but it is not intended to replace a high-availability configuration. Configuration and maintenance of a high-availability configuration is far simpler than clustering and will accommodate most environments. For more information, see [AUTOTITLE](/admin/enterprise-management/configuring-high-availability) and [AUTOTITLE](/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha).
{% data reusables.package_registry.packages-cluster-support %}
## How do I get access to clustering?
Clustering is designed for specific scaling situations and is not intended for every organization. If clustering is something you'd like to consider, please contact your dedicated representative or {% data variables.contact.contact_enterprise_sales %}.
{% data variables.product.company_short %} designed the cluster topology for specific scaling situations. Clustering is not intended for every company or environment. If you're interested in clustering for your environment, contact your dedicated account manager or {% data variables.contact.contact_enterprise_sales %}.

Просмотреть файл

@ -1,6 +1,7 @@
---
title: Cluster network configuration
intro: '{% data variables.product.prodname_ghe_server %} clustering relies on proper DNS name resolution, load balancing, and communication between nodes to operate properly.'
intro: 'A {% data variables.product.prodname_ghe_server %} cluster requires proper DNS name resolution, load balancing, and communication between nodes.'
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/cluster-network-configuration
- /enterprise/admin/enterprise-management/cluster-network-configuration
@ -16,11 +17,9 @@ topics:
shortTitle: Configure a cluster network
---
## About cluster networking
## About networking for a {% data variables.product.product_name %} cluster
{% data reusables.enterprise_clustering.clustering-scale-recommendation %}
Each node in your cluster must be able to communicate with all of the other nodes in the cluster over the network. You can review the required ports and protocols for end users, administration, and communication between nodes. To distribute traffic among front-end nodes, {% data variables.product.company_short %} recommends that you configure an external load balancer.
Each node in your {% data variables.product.product_name %} cluster must be able to communicate with all of the other nodes in the cluster over the network. You can review the required ports and protocols for end users, administration, and communication between nodes. To distribute traffic among front-end nodes, {% data variables.product.company_short %} recommends that you configure an external load balancer.
## Network considerations
@ -28,6 +27,10 @@ The simplest network design for clustering is to place the nodes on a single LAN
{% data reusables.enterprise_clustering.network-latency %}
- [Application ports for end users](#application-ports-for-end-users)
- [Administrative ports](#administrative-ports)
- [Cluster communication ports](#cluster-communication-ports)
### Application ports for end users
Application ports provide web application and Git access for end users.
@ -128,12 +131,12 @@ $ ghe-config 'loadbalancer.http-forward' 'true' && ghe-cluster-config-apply
{% data reusables.enterprise_clustering.without_proxy_protocol_ports %}
### Configuring Health Checks
### Configuring health checks
Health checks allow a load balancer to stop sending traffic to a node that is not responding if a pre-configured check fails on that node. If a cluster node fails, health checks paired with redundant nodes provides high availability.
{% data reusables.enterprise_clustering.health_checks %}
{% data reusables.enterprise_site_admin_settings.maintenance-mode-status %}
## DNS Requirements
## DNS requirements
{% data reusables.enterprise_clustering.load_balancer_dns %}

Просмотреть файл

@ -1,6 +1,7 @@
---
title: Differences between clustering and high availability (HA)
intro: '{% data variables.product.prodname_ghe_server %} High Availability Configuration (HA) is a primary/secondary failover configuration that provides redundancy while Clustering provides redundancy and scalability by distributing read and write load across multiple nodes.'
intro: 'Learn about the differences between deployment topologies for the virtual machines (VMs) that comprise a {% data variables.product.product_name %} instance.'
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/differences-between-clustering-and-high-availability-ha
- /enterprise/admin/enterprise-management/differences-between-clustering-and-high-availability-ha
@ -20,9 +21,9 @@ shortTitle: Choosing cluster or HA
You can deploy the virtual machines for a {% data variables.product.prodname_ghe_server %} instance in different topologies depending on your environment and user needs.
- To support a plan for disaster recovery and supplement backups, or to improve network and write performance for geographically distributed users, you can configure high availability. In a high-availability configuration, one node acts as a primary, while others act as replicas.
- To support a plan for disaster recovery and supplement backups, or to improve network and write performance for geographically distributed users, you can configure high availability. In a high-availability configuration, one node acts as a primary, while others act as replicas. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration)."
- To provide horizontal scaling for environments with tens of thousands of developers, a cluster topology is available. Clustering addresses situations where a single primary node would routinely experience resource exhaustion. This configuration requires careful planning and additional administrative overhead. {% data variables.product.company_short %} will work with you to determine your eligibility for clustering.
- To provide horizontal scaling for environments with tens of thousands of developers, a cluster topology is available. Clustering addresses situations where a single primary node would routinely experience resource exhaustion. This configuration requires careful planning and additional administrative overhead. {% data variables.product.company_short %} will work with you to determine your eligibility for clustering. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/about-clustering)."
## Failure scenarios
@ -47,8 +48,4 @@ Neither HA nor clustering should be considered a replacement for regular backups
## Monitoring
Availability features, especially ones with automatic failover such as clustering, can mask a failure since service is usually not disrupted when something fails. Whether you are using HA or clustering, monitoring the health of each instance is important so that you are aware when a failure occurs. For more information on monitoring, see "[AUTOTITLE](/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds)" and "[Monitoring cluster nodes](/enterprise/{{ currentVersion}}/admin/guides/clustering/monitoring-cluster-nodes/)."
## Further reading
- For more information about {% data variables.product.prodname_ghe_server %} clustering, see "[About clustering](/enterprise/{{ currentVersion}}/admin/guides/clustering/about-clustering/)."
- For more information about HA, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability)."
Availability features, especially ones with automatic failover such as clustering, can mask a failure since service is usually not disrupted when something fails. Whether you are using HA or clustering, monitoring the health of each instance is important so that you are aware when a failure occurs. For more information about monitoring, see "[AUTOTITLE](/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds)" and "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/monitoring-the-health-of-your-cluster)."

Просмотреть файл

@ -1,7 +1,8 @@
---
title: Evacuating a cluster node running data services
shortTitle: Evacuating a data node
intro: If a node in your cluster runs services that store distributed data, you can ensure redundancy as you prepare to replace the node by evacuating the node's data.
intro: If a node in your {% data variables.product.product_name %} cluster runs services that store distributed data, you can ensure redundancy as you prepare to replace the node by evacuating the node's data.
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/evacuating-a-cluster-node
- /enterprise/admin/enterprise-management/evacuating-a-cluster-node
@ -17,9 +18,7 @@ topics:
## About evacuation of cluster nodes running data services
{% data reusables.enterprise_clustering.clustering-scale-recommendation %}
In a cluster configuration for {% data variables.product.product_name %}, you may need to take an individual node offline. For example, you may need to replace the node's virtual machine. If the node you want to replace operates in the storage tier, {% data variables.product.company_short %} recommends that you first evacuate the node's data services. Evacuation ensures that the remaining nodes contain the minimum expected copies of the data.
In a cluster configuration for {% data variables.product.product_name %}, you may need to take an individual node offline. For example, you may need to replace the node's virtual machine (VM). If the node you want to replace operates in the storage tier, {% data variables.product.company_short %} recommends that you first evacuate the node's data services. Evacuation ensures that the remaining nodes contain the minimum expected copies of the data.
For more information about nodes and service tiers for {% data variables.product.prodname_ghe_server %}, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/about-cluster-nodes)."
@ -54,12 +53,23 @@ If you plan to take a node offline and the node runs any of the following roles,
- `git-server`:
{% ifversion ghe-spokes-deprecation-phase-1 %}
- Command:
```shell
ghe-spokesctl server status git-server-UUID
```
- Relevant output: `NETWORKS`, `GISTS`
{% else %}
- Command:
```shell
ghe-spokes evac-status git-server-UUID
```
- Relevant output: `Networks`, `Gists`
{% endif %}
- `pages-server`:
- Command:
@ -67,6 +77,7 @@ If you plan to take a node offline and the node runs any of the following roles,
```shell
echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y
```
- `storage-server`:
- Command:
@ -74,6 +85,7 @@ If you plan to take a node offline and the node runs any of the following roles,
```shell
ghe-storage evacuation-status storage-server-UUID
```
- Relevant output: `Remaining item(s)`
1. To evacuate an applicable service on the node, run the following commands. For each command, replace UUID with the UUID from the earlier step.
@ -82,17 +94,23 @@ If you plan to take a node offline and the node runs any of the following roles,
- Command (replace REASON FOR EVACUATION with the reason for evacuation):
{% ifversion ghe-spokes-deprecation-phase-1 %}
```shell
ghe-spokes server evacuate git-server-UUID \'REASON FOR EVACUATION\'
ghe-spokesctl server set evacuating git-server-UUID 'REASON FOR EVACUATION'
```
{% else %}
```shell
ghe-spokes server evacuate git-server-UUID 'REASON FOR EVACUATION'
```
{% endif %}
- `pages-server`:
- Command:
```shell
ghe-dpages evacuate pages-server-UUID
ghe-dpages evacuate pages-server-UUID
```
- `storage-server`:
1. Take the node's service offline by running the following command.
@ -100,6 +118,7 @@ If you plan to take a node offline and the node runs any of the following roles,
```shell
ghe-storage offline storage-server-UUID
```
1. Evacuate the node by running the following command.
```shell
@ -116,14 +135,21 @@ If you plan to take a node offline and the node runs any of the following roles,
- `git-server`:
{% ifversion ghe-spokes-deprecation-phase-1 %}
```shell
ghe-spokesctl server evac-status git-server-UUID
```
{% else %}
```shell
ghe-spokes evac-status git-server-UUID
```
{% endif %}
- `pages-server`:
```shell
echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y
```
```
- `storage-server`:
```shell

Просмотреть файл

@ -1,6 +1,7 @@
---
title: Configuring clustering
intro: Learn about clustering and differences with high availability.
intro: The cluster topology for {% data variables.product.product_name %} provides horizontal scaling for environments with tens of thousands of developers.
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/setting-up-the-cluster-instances
- /enterprise/admin/clustering/managing-a-github-enterprise-server-cluster
@ -17,8 +18,9 @@ children:
- /cluster-network-configuration
- /initializing-the-cluster
- /upgrading-a-cluster
- /monitoring-cluster-nodes
- /replacing-a-cluster-node
- /monitoring-the-health-of-your-cluster
- /monitoring-the-health-of-your-cluster-nodes-with-node-eligibility-service
- /rebalancing-cluster-workloads
- /evacuating-a-cluster-node-running-data-services
- /replacing-a-cluster-node
---

Просмотреть файл

@ -1,6 +1,7 @@
---
title: Initializing the cluster
intro: 'A {% data variables.product.prodname_ghe_server %} cluster must be set up with a license and initialized using the administrative shell (SSH).'
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/initializing-the-cluster
- /enterprise/admin/enterprise-management/initializing-the-cluster
@ -13,21 +14,23 @@ topics:
- Enterprise
---
## About initialization of a cluster
## About initialization of a {% data variables.product.product_name %} cluster
{% data reusables.enterprise_clustering.clustering-scale-recommendation %}
To deploy a cluster in your environment, you must install {% data variables.product.prodname_ghe_server %}, upload a cluster-enabled license, configure the first node, and initialize the node with a configuration file.
To deploy a {% data variables.product.product_name %} cluster in your environment, you must install {% data variables.product.prodname_ghe_server %}, upload a cluster-enabled license, configure the first node, and initialize the node with a configuration file.
{% data reusables.enterprise_clustering.clustering-requires-https %}
## Installing {% data variables.product.prodname_ghe_server %}
To start setting up the cluster, install the {% data variables.product.prodname_ghe_server %} appliance on each node's virtual machine (VM), then configure an IP address.
1. On each cluster node, provision and install {% data variables.product.prodname_ghe_server %}. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance)."
2. Using the administrative shell or DHCP, **only** configure the IP address of each node. Don't configure any other settings.
## Configuring the first node
On the node that will function as your primary MySQL node, install your {% data variables.product.product_name %} license.
1. Connect to the node that will be designated as MySQL primary in `cluster.conf`. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/initializing-the-cluster#about-the-cluster-configuration-file)."
2. In your web browser, visit `https://<ip address>:8443/setup/`.
{% data reusables.enterprise_installation.upload-a-license-file %}

Просмотреть файл

@ -0,0 +1,182 @@
---
title: Monitoring the health of your cluster nodes with Node Eligibility Service
shortTitle: Node Eligibility Service
intro: "You can monitor when nodes in a {% data variables.product.product_name %} cluster have been offline long enough to cause issues by using {% data variables.product.prodname_nes %}."
permissions: People with administrative SSH access to a {% data variables.product.product_name %} instance can monitor cluster nodes.
product: '{% data reusables.gated-features.cluster %}'
versions:
feature: 'node-eligibility-service'
type: how_to
topics:
- Clustering
- Enterprise
- Fundamentals
- Infrastructure
- Monitoring
- Performance
---
## About {% data variables.product.prodname_nes %}
In a {% data variables.product.product_name %} cluster, an individual node may become unreachable by other nodes due to a hardware or software failure. After time, even if you restore the node's health, the subsequent synchronization of data can negatively impact your instance's performance.
You can proactively mitigate the impact of reduced node availability by using {% data variables.product.prodname_nes %}. This service monitors the state of your cluster's nodes and emits a warning if a node has been offline for too long. You can also prevent an offline node from rejoining the cluster. Optionally, you can allow {% data variables.product.prodname_nes %} to take ineligible nodes offline.
By default, {% data variables.product.prodname_nes %} is disabled. If you enable {% data variables.product.prodname_nes %}, your instance will alert you of unhealthy nodes by displaying a banner in the administrative web UI for {% data variables.product.product_name %}, and in CLI output for some cluster-related utilities, such as `ghe-config-apply` and `ghe-cluster-diagnostics`.
{% data variables.product.prodname_nes %} allows you to monitor the health of individual nodes. You can also monitor the overall health of your cluster. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/monitoring-the-health-of-your-cluster)."
## About health and eligibility of cluster nodes
To determine whether to emit a warning or automatically adjust the configuration of your cluster, {% data variables.product.prodname_nes %} continuously monitors the health of each node. Each node regularly reports a timestamped health state, which {% data variables.product.prodname_nes %} compares to a Time To Live (TTL) duration.
Each node has a health state and an eligibility state.
- Health refers to the accessibility of the node within the cluster and has three possible states: `healthy`, `warning`, or `critical`.
- Eligibility refers to the ability of the node to work in the cluster and has two possible states: `eligible` or `ineligible`.
{% data variables.product.prodname_nes %} provides a configurable TTL setting for two states, `warn` and `fail`.
- `warn`: The node has been offline for a short period of time. This may indicate something is wrong with the node and that administrators should investigate. The default setting is 15 minutes.
- `fail`: The node has been offline for a long period of time, and reintroduction into the cluster could cause performance issues due to resynchronization. The default setting is 60 minutes.
For each node, {% data variables.product.prodname_nes %} determines health and eligibility for participation in the cluster in the following ways.
- If a node has been observed to be healthy, the health state is `healthy` and the eligibility state is `eligible`.
- If a node hasn't been observed to be healthy for longer than the `warn` TTL, the health state is `warning` and the eligibility state is `eligible`.
- If a node hasn't been observed to be healthy for longer than the `fail` TTL, the health state is `critical` and its eligibility state is `ineligible`.
## Enabling {% data variables.product.prodname_nes %} for your cluster
By default, {% data variables.product.prodname_nes %} is disabled. You can enable {% data variables.product.prodname_nes %} by setting the value for `app.nes.enabled` using `ghe-config`.
{% data reusables.enterprise_installation.ssh-into-cluster-node %}
1. To verify whether {% data variables.product.prodname_nes %} is currently enabled, run the following command.
```shell{:copy}
ghe-config app.nes.enabled
```
1. To enable {% data variables.product.prodname_nes %}, run the following command.
```shell{:copy}
ghe-config app.nes.enabled true
```
{% data reusables.enterprise.apply-configuration %}
1. To verify that {% data variables.product.prodname_nes %} is running, from any node, run the following command.
```shell{:copy}
nomad status nes
```
## Configuring TTL settings for {% data variables.product.prodname_nes %}
To determine how {% data variables.product.prodname_nes %} notifies you, you can configure TTL settings for `fail` and `warn` states. The TTL for the `fail` state must be higher than the TTL for the `warn` state.
{% data reusables.enterprise_installation.ssh-into-cluster-node %}
1. To verify the current TTL settings, run the following command.
```shell{:copy}
nes get-node-ttl all
```
1. To set the TTL for the `fail` state, run the following command. Replace MINUTES with the number of minutes to use for failures.
```shell{:copy}
nes set-node-ttl fail MINUTES
```
1. To set the TTL for the `warn` state, run the following command. Replace MINUTES with the number of minutes to use for warnings.
```shell{:copy}
nes set-node-ttl warn MINUTES
```
## Managing whether {% data variables.product.prodname_nes %} can take a node offline
By default, {% data variables.product.prodname_nes %} provides alerts to notify you about changes to the health of cluster nodes. Optionally, if the service determines that an unhealthy node is ineligible to rejoin the cluster, you can allow the service to take the node offline.
When a node is taken offline, the instance removes job allocations from the node. If the node runs data storage services, {% data variables.product.prodname_nes %} updates the configuration to reflect the node's ineligibility to rejoin the cluster.
To manage whether {% data variables.product.prodname_nes %} can take a node and its services offline, you can configure `adminaction` states for the node. If a node is in the `approved` state, {% data variables.product.prodname_nes %} can take the node offline. If a node is in the `none` state, {% data variables.product.prodname_nes %} cannot take the node offline.
{% data reusables.enterprise_installation.ssh-into-cluster-node %}
1. To configure whether {% data variables.product.prodname_nes %} can take a node offline, run one of the following commands.
- To allow the service to automatically take administrative action when a node goes offline, run the following command. Replace HOSTNAME with the node's hostname.
```shell{:copy}
nes set-node-adminaction approved HOSTNAME
```
- To revoke {% data variables.product.prodname_nes %}'s ability to take a node offline, run the following command. Replace HOSTNAME with the node's hostname.
```shell{:copy}
nes set-node-adminaction none HOSTNAME
```
## Viewing an overview of node health
To view an overview of your nodes' health using {% data variables.product.prodname_nes %}, use one of the following methods.
- SSH into any node in the cluster, then run `nes get-cluster-health`.
- Navigate to the {% data variables.enterprise.management_console %}'s "Status" page. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/accessing-the-management-console)."
## Re-enabling an ineligible node to join the cluster
After {% data variables.product.prodname_nes %} detects that a node has exceeded the TTL for the `fail` state, and after the service marks the node as `ineligible`, the service will no longer update the health status for the node. To re-enable a node to join the cluster, you can remove the `ineligible` status from the node.
{% data reusables.enterprise_installation.ssh-into-cluster-node %}
1. To check the current `adminaction` state for the node, run the following command. Replace HOSTNAME with the hostname of the ineligible node.
```shell{:copy}
nes get-node-adminaction HOSTNAME
```
1. If the `adminaction` state is currently set to `approved`, change the state to `none` by running the following command. Replace HOSTNAME with the hostname of the ineligible node.
```shell{:copy}
nes set-node-adminaction none HOSTNAME
```
1. To ensure the node is in a healthy state, run the following command and confirm that the node's status is `ready`.
```shell{:copy}
nomad node status
```
- If the node's status is `ineligible`, make the node eligible by connecting to the node via SSH and running the following command.
```shell{:copy}
nomad node eligibility -enable -self
```
1. To update the node's eligibility in {% data variables.product.prodname_nes %}, run the following command. Replace HOSTNAME with the node's hostname.
```shell{:copy}
nes set-node-eligibility eligible HOSTNAME
```
1. Wait 30 seconds, then check the cluster's health to confirm the target node is eligible by running the following command.
```shell{:copy}
nes get-cluster-health
```
## Viewing logs for {% data variables.product.prodname_nes %}
You can view logs for {% data variables.product.prodname_nes %} from any node in the cluster, or from the node that runs the service. If you generate a support bundle, the logs are included. For more information, see "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support)."
{% data reusables.enterprise_installation.ssh-into-cluster-node %}
1. To view logs for {% data variables.product.prodname_nes %} from any node in the cluster, run the following command.
```shell{:copy}
nomad alloc logs -job nes
```
1. Alternatively, you can view logs for {% data variables.product.prodname_nes %} on the node that runs the service. The service writes logs to the systemd journal.
- To determine which node runs {% data variables.product.prodname_nes %}, run the following command.
```shell{:copy}
nomad job status "nes" | grep running | grep "${nomad_node_id}" | awk 'NR==2{ print $1 }' | xargs nomad alloc status | grep "Node Name"
```
- To view logs on the node, connect to the node via SSH, then run the following command.
```shell{:copy}
journalctl -t nes
```
## Further reading
- "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#nes)"

Просмотреть файл

@ -1,10 +1,13 @@
---
title: Monitoring cluster nodes
intro: 'A {% data variables.product.prodname_ghe_server %} cluster is comprised of redundant services that are distributed across two or more nodes. If an individual service or an entire node were to fail, it should not be immediately apparent to users of the cluster. However since performance and redundancy are affected, it is important to monitor the health of a {% data variables.product.prodname_ghe_server %} cluster.'
title: Monitoring the health of your cluster
shortTitle: Monitor cluster health
intro: "To ensure the performance and redundancy of a {% data variables.product.product_name %} cluster, you can monitor the cluster's health."
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/monitoring-cluster-nodes
- /enterprise/admin/enterprise-management/monitoring-cluster-nodes
- /admin/enterprise-management/monitoring-cluster-nodes
- /admin/enterprise-management/configuring-clustering/monitoring-cluster-nodes
versions:
ghes: '*'
type: how_to
@ -17,11 +20,15 @@ topics:
- Performance
---
## About monitoring the health of your cluster
## About {% data variables.product.product_name %} cluster health
{% data reusables.enterprise_clustering.clustering-scale-recommendation %}
A {% data variables.product.product_name %} cluster comprises multiple nodes, with redundant services distributed across two or more nodes. If an individual service or an entire node fails, users should not notice. Failures affect performance and redundancy, so it's important to monitor the health of your cluster. You can monitor the health of your cluster using a command-line utility or an external monitoring tool like Nagios.
You can monitor the health of your entire {% data variables.product.prodname_ghe_server %} cluster using a command-line utility or an external monitoring tool like Nagios.
{% ifversion node-eligibility-service %}
You can also monitor the health of individual nodes using {% data variables.product.prodname_nes %}. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/monitoring-the-health-of-your-cluster-nodes-with-node-eligibility-service)."
{% endif %}
## Manually checking cluster status
@ -123,4 +130,4 @@ You can configure [Nagios](https://www.nagios.org/) to monitor {% data variables
}
```
After you add the definition to Nagios, the service check executes according to your configuration. You should be able to see the newly configured service in the Nagios web interface.
After you add the definition to Nagios, the service check executes according to your configuration. You should be able to see the newly configured service in the Nagios web interface.

Просмотреть файл

@ -0,0 +1,83 @@
---
title: Rebalancing cluster workloads
shortTitle: Rebalance workloads
intro: "You can force your {% data variables.product.product_name %} cluster to evenly distribute job allocations for workloads on the cluster's nodes."
product: '{% data reusables.gated-features.cluster %}'
permissions: People with administrative SSH access to a {% data variables.product.product_name %} instance can rebalance cluster workloads on the instance.
versions:
feature: 'cluster-rebalancing'
type: how_to
topics:
- Clustering
- Enterprise
---
## About workload balance for a {% data variables.product.product_name %} cluster
A {% data variables.product.product_name %} instance in a cluster configuration assigns each task to a node according to the node's role. This assignment is called an allocation.
If a cluster node is unreachable by other nodes due to a hardware or software failure, your instance creates a new allocation to distribute jobs from the unhealthy node to another node that can handle the workload. In some situations, this distribution does not occur automatically, and a single node may run more jobs than expected.
You can manage allocations using the `ghe-cluster-balance` utility, which can display the status of existing allocations or force your instance to balance allocations. For example, you should balance allocations after you add a new node to the cluster. Optionally, you can schedule regular balancing.
You can run the following commands from any node in your cluster using the administrative shell. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
## Checking the distribution of cluster jobs
In some cases, such as hardware failure, the underlying software that that manages allocations will migrate tasks from the unhealthy node to a healthy node. If the unhealthy node recovers, the task may remain assigned to the recovered node, which can result in unbalanced load. The risk of job failure may increase if allocations are unbalanced and additional nodes fail. You can check the distribution of allocations using the `ghe-cluster-balance status` utility.
1. To see a list of allocations, run the following command. The utility displays healthy allocations in green. If any jobs are not properly distributed, the utility displays the allocation's count in red.
```shell{:copy}
ghe-cluster-balance status
```
1. If a job is not properly distributed, inspect the allocations by running the following command. Replace JOB with a single job or comma-delimited list of jobs.
```shell{:copy}
ghe-cluster-balance status -j JOB
```
For example, to see the status of allocations for your instance's HTTP server and authorization service, you can run `ghe-cluster-balance status -j github-unicorn,authzd`.
## Rebalancing allocations
After you determine which jobs are unbalanced across your cluster's nodes, you can rebalance allocations using the `ghe-cluster-balance rebalance` utility. The utility checks the distribution of existing jobs. If any jobs are unbalanced, the utility displays the jobs and prompts you to continue. If you continue, the utility creates new allocations to redistribute the jobs.
1. To perform a dry run and see the result of rebalancing without making changes, run the following command. Replace JOB with a single job or comma-delimited list of jobs.
```shell{:copy}
ghe-cluster-balance rebalance --dry-run -j JOB
```
For example, to perform a dry run of rebalancing jobs for your instance's HTTP server and authorization service, you can run `ghe-cluster-balance rebalance --dry-run -j github-unicorn,authzd`.
1. To rebalance, run the following command. Replace JOB with a single job or comma-delimited list of jobs.
```shell{:copy}
ghe-cluster-balance rebalance -j JOB
```
## Scheduling allocation rebalancing
You can schedule rebalancing of jobs on your cluster by setting and applying configuration values for {% data variables.location.product_location %}.
{% note %}
**Note:** Currently, you can only schedule reallocation of jobs for the HTTP server, `github-unicorn`.
{% endnote %}
1. To configure automatic, hourly balancing of jobs, run the following command.
```shell{:copy}
ghe-config app.cluster-rebalance.enabled true
```
1. Optionally, you can override the default schedule by defining a cron expression. For example, run the following command to balance jobs every three hours.
```shell{:copy}
ghe-config app.cluster-rebalance.schedule '0 */3 * * *'
```
{% data reusables.enterprise.apply-configuration %}
## Further reading
- "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-cluster-balance)"

Просмотреть файл

@ -1,6 +1,7 @@
---
title: Replacing a cluster node
intro: 'To replace a {% data variables.product.prodname_ghe_server %} node, you must mark the affected nodes offline in the cluster configuration file (`cluster.conf`) and add the replacement nodes. This might be necessary if a node were to fail, or to add a node with more resources to increase performance.'
intro: 'If a node fails in a {% data variables.product.product_name %} cluster, or if you want to add a new node with more resources, mark any nodes to replace as offline, then add the new node.'
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/replacing-a-cluster-node
- /enterprise/admin/enterprise-management/replacing-a-cluster-node
@ -14,19 +15,26 @@ topics:
- Infrastructure
---
## About replacement of cluster nodes
## About replacement of {% data variables.product.product_name %} cluster nodes
{% data reusables.enterprise_clustering.clustering-scale-recommendation %}
You can replace a functional node in a {% data variables.product.product_name %} cluster, or you can replace a node that has failed unexpectedly.
You can replace a functional node in a cluster, or you can replace a node that has failed unexpectedly.
{% ifversion cluster-rebalancing %}
After you replace a node, {% data variables.location.product_location %} does not automatically distribute jobs to the new node. You can force your instance to balance jobs across nodes. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/rebalancing-cluster-workloads)."
{% endif %}
{% warning %}
**Warning:** To avoid conflicts, the replacement node must use a new hostname that has not been previously used in the cluster.
**Warning:** To avoid conflicts, do not reuse a hostname that was previously assigned to a node in the cluster.
{% endwarning %}
## Replacing a functional node
You can replace an existing, functional node in your cluster. For example, you may want to provide a virtual machine (VM) with additional CPU, memory, or storage resources.
To replace a functional node, install the {% data variables.product.product_name %} appliance on a new VM, configure an IP address, add the new node to the cluster configuration file, initialize the cluster and apply the configuration, then take the node you replaced offline.
{% data reusables.enterprise_clustering.replacing-a-cluster-node-provision %}
{% data reusables.enterprise_clustering.replacing-a-cluster-node-admin-configure-ip %}
{% data reusables.enterprise_clustering.replacing-a-cluster-node-modify-cluster-conf %}
@ -38,6 +46,11 @@ You can replace a functional node in a cluster, or you can replace a node that h
{% data reusables.enterprise_clustering.replacing-a-cluster-node-replacement-name %}
## Replacing a node in an emergency
You can replace a failed node in your cluster. For example, a software or hardware issue may affect a node's availability.
To replace a node in an emergency, install the {% data variables.product.product_name %} appliance on a new VM, configure an IP address, take the failed node offline, apply the configuration, add the new node to the cluster configuration file, initialize the cluster and apply the configuration, and optionally, evacuate the failed node.
{% data reusables.enterprise_clustering.replacing-a-cluster-node-provision %}
{% data reusables.enterprise_clustering.replacing-a-cluster-node-admin-configure-ip %}
{% data reusables.enterprise_clustering.replacing-a-cluster-node-mark-offline %}

Просмотреть файл

@ -1,6 +1,7 @@
---
title: Upgrading a cluster
intro: 'Use the administrative shell (SSH) to upgrade a {% data variables.product.prodname_ghe_server %} cluster to the latest release.'
intro: "To upgrade a {% data variables.product.prodname_ghe_server %} cluster to the latest release, use the administrative shell (SSH)."
product: '{% data reusables.gated-features.cluster %}'
redirect_from:
- /enterprise/admin/clustering/upgrading-a-cluster
- /enterprise/admin/enterprise-management/upgrading-a-cluster
@ -13,7 +14,13 @@ topics:
- Enterprise
- Upgrades
---
## About upgrades to a {% data variables.product.product_name %} cluster
{% data reusables.enterprise.about-upgrades %}
## Upgrading with a hotpatch
{% data reusables.enterprise_installation.hotpatching-explanation %} The hotpatch installation script installs the hotpatch on every node in the cluster and restarts the services in their proper sequence to avoid downtime.
1. Back up your data with [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#readme).

Просмотреть файл

@ -56,135 +56,9 @@ During failover, you must place the primary appliance into maintenance mode. You
## Utilities for replication management
To manage replication on {% data variables.product.prodname_ghe_server %}, use these command line utilities by connecting to the replica appliance using SSH.
### ghe-repl-setup
The `ghe-repl-setup` command puts a {% data variables.product.prodname_ghe_server %} appliance in replica standby mode.
- An encrypted WireGuard VPN tunnel is configured for communication between the two appliances.
- Database services are configured for replication and started.
- Application services are disabled. Attempts to access the replica appliance over HTTP, Git, or other supported protocols will result in an "appliance in replica mode" maintenance page or error message.
```shell
admin@169-254-1-2:~$ ghe-repl-setup 169.254.1.1
Verifying ssh connectivity with 169.254.1.1 ...
Connection check succeeded.
Configuring database replication against primary ...
Success: Replica mode is configured against 169.254.1.1.
To disable replica mode and undo these changes, run `ghe-repl-teardown'.
Run `ghe-repl-start' to start replicating against the newly configured primary.
```
### ghe-repl-start
The `ghe-repl-start` command turns on active replication of all datastores.
```shell
admin@169-254-1-2:~$ ghe-repl-start
Starting MySQL replication ...
Starting Redis replication ...
Starting Elasticsearch replication ...
Starting Pages replication ...
Starting Git replication ...
Success: replication is running for all services.
Use `ghe-repl-status' to monitor replication health and progress.
```
### ghe-repl-status
The `ghe-repl-status` command returns an `OK`, `WARNING` or `CRITICAL` status for each datastore replication stream. When any of the replication channels are in a `WARNING` state, the command will exit with the code `1`. Similarly, when any of the channels are in a `CRITICAL` state, the command will exit with the code `2`.
```shell
admin@169-254-1-2:~$ ghe-repl-status
OK: mysql replication in sync
OK: redis replication is in sync
OK: elasticsearch cluster is in sync
OK: git data is in sync (10 repos, 2 wikis, 5 gists)
OK: pages data is in sync
```
The `-v` and `-vv` options give details about each datastore's replication state:
```shell
$ ghe-repl-status -v
OK: mysql replication in sync
| IO running: Yes, SQL running: Yes, Delay: 0
OK: redis replication is in sync
| master_host:169.254.1.1
| master_port:6379
| master_link_status:up
| master_last_io_seconds_ago:3
| master_sync_in_progress:0
OK: elasticsearch cluster is in sync
| {
| "cluster_name" : "github-enterprise",
| "status" : "green",
| "timed_out" : false,
| "number_of_nodes" : 2,
| "number_of_data_nodes" : 2,
| "active_primary_shards" : 12,
| "active_shards" : 24,
| "relocating_shards" : 0,
| "initializing_shards" : 0,
| "unassigned_shards" : 0
| }
OK: git data is in sync (366 repos, 31 wikis, 851 gists)
| TOTAL OK FAULT PENDING DELAY
| repositories 366 366 0 0 0.0
| wikis 31 31 0 0 0.0
| gists 851 851 0 0 0.0
| total 1248 1248 0 0 0.0
OK: pages data is in sync
| Pages are in sync
```
### ghe-repl-stop
The `ghe-repl-stop` command temporarily disables replication for all datastores and stops the replication services. To resume replication, use the [ghe-repl-start](#ghe-repl-start) command.
```shell
admin@168-254-1-2:~$ ghe-repl-stop
Stopping Pages replication ...
Stopping Git replication ...
Stopping MySQL replication ...
Stopping Redis replication ...
Stopping Elasticsearch replication ...
Success: replication was stopped for all services.
```
### ghe-repl-promote
The `ghe-repl-promote` command disables replication and converts the replica appliance to a primary. The appliance is configured with the same settings as the original primary and all services are enabled.
{% data reusables.enterprise_installation.promoting-a-replica %}
```shell
admin@168-254-1-2:~$ ghe-repl-promote
Enabling maintenance mode on the primary to prevent writes ...
Stopping replication ...
| Stopping Pages replication ...
| Stopping Git replication ...
| Stopping MySQL replication ...
| Stopping Redis replication ...
| Stopping Elasticsearch replication ...
| Success: replication was stopped for all services.
Switching out of replica mode ...
| Success: Replication configuration has been removed.
| Run `ghe-repl-setup' to re-enable replica mode.
Applying configuration and starting services ...
Success: Replica has been promoted to primary and is now accepting requests.
```
### ghe-repl-teardown
The `ghe-repl-teardown` command disables replication mode completely, removing the replica configuration.
People with administrative SSH access to an instance in a high-availability configuration can use command-line utilities to manage replication. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#high-availability)."
## Further reading
- "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica)"
- "[AUTOTITLE](/admin/configuration/configuring-network-settings/network-ports)"
- "[AUTOTITLE](/admin/configuration/configuring-network-settings/network-ports)"

Просмотреть файл

@ -14,6 +14,7 @@ topics:
children:
- /about-high-availability-configuration
- /creating-a-high-availability-replica
- /monitoring-a-high-availability-configuration
- /initiating-a-failover-to-your-replica-appliance
- /recovering-a-high-availability-configuration
- /removing-a-high-availability-replica

Просмотреть файл

@ -0,0 +1,120 @@
---
title: Monitoring a high-availability configuration
intro: "After configuration of high availability for {% data variables.location.product_location %}, you can monitor the status of data replication among to your instance's replica nodes."
versions:
ghes: '*'
permissions: Site administrators can monitor a high-availablity configuration for a {% data variables.product.product_name %} instance.
type: how_to
topics:
- Enterprise
- High availability
- Infrastructure
- Monitoring
shortTitle: Monitor HA configuration
---
## About observability for high availability
{% data reusables.enterprise.about-ha %} For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration)."
After you configure high availability, you can proactively ensure redundancy by monitoring the overall health of replication and the status of each of your instance's replica nodes. You can use command-line utilities on the instance, an overview dashboard, {% ifversion replication-management-api %}the instance's REST API, {%endif %}or a remote monitoring system such as Nagios.
With high availability, your instance uses several approaches to replicate data between primary and replica nodes. Database services that support a native replication mechanism, such as MySQL, replicate using the service's native mechanism. Other services, such as Git repositories, replicate using a custom mechanism developed for {% data variables.product.product_name %}, or using platform tools like rsync.
## Monitoring replication from your instance
To monitor the replication status of an existing replica node for {% data variables.location.product_location %}, connect to the node's administrative console (SSH) and run the `ghe-repl-status` command-line utility. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repl-status)."
You can also monitor replication status from the overview dashboard on your instance. In a browser, navigate to the following URL, replacing HOSTNAME with your instance's hostname.
`http(s)://HOSTNAME/setup/replication`
{% ifversion replication-management-api %}
## Monitoring replication using the REST API
You can monitor replication status on your instance using the REST API. For more information, see "[Manage {% data variables.product.product_name %}](/rest/enterprise-admin/manage-ghes#list-the-status-of-services-running-on-all-replica-nodes)" in the REST API documentation.
{% endif %}
## Monitoring replication from a remote system
Output from the `ghe-repl-status` command-line utility conforms to the expectations of Nagios' check_by_ssh plugin. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repl-status)."
Additionally, you can monitor the availability of your instance by parsing the status code returned by a request to the following URL. For example, if you deploy a load balancer as part of your failover strategy, you can configure health checks that parse this output. For more information, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer#configuring-health-checks)."
Depending on where and how you configure monitoring, replace HOST with either your instance's hostname or an individual node's IP address.
`http(s)://HOST/status`
An active node for geo-replication, which can respond to user requests, will return status code `200` (OK). Requests to individual nodes or the instance's hostname may return a `503` (Service Unavailable) error for the following reasons.
- The individual node is a passive replica node, such as the replica node in a two-node high-availability configuration.
- The individual node is part of a geo-replication configuration, but is a passive replica node.
- The instance is in maintenance mode. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)."
For more information about geo-replication, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/about-geo-replication)."
## Troubleshooting replication issues
To troubleshoot replication issues on your instance, ensure replication is running and that nodes can communicate with each other over the network. You can also use command-line utilities to investigate under-replication.
### Replication is not running
You must start replication on each node using the `ghe-repl-start` command-line utility. If replication is not running, connect to the affected node using SSH, then run `ghe-repl-start`. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repl-start)."
### Communication issues between nodes
Replication requires that the primary node and all replica nodes can communicate with each other over the network. At minimum, ensure that ports 122/TCP and 1194/UDP are open for bidirectional communication between all of your instance's nodes. For more information, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/network-ports#administrative-ports)."
### Under-replication
If you run the `ghe-repl-status` command-line utility on a replica node and Git repositories, repository networks, or storage objects are under-replicated, one or more replica nodes are not fully synchronized with the primary node. Under-replication may occur if the primary node is unable to communicate with the replica nodes, or if the replica nodes are unable to communicate with the primary node.
If you've recently configured high availability or geo-replication, the initial sync will take some time. The duration of the initial sync depends on how much data exists and network conditions.
- [Under-replicated repositories or repository networks](#under-replicated-repositories-or-repository-networks)
- [Under-replicated storage objects](#under-replicated-storage-objects)
#### Under-replicated repositories or repository networks
You can view a specific repository's replication status by connecting to a node and running the following {% ifversion ghe-spokes-deprecation-phase-1 %}commands{% else %}command{% endif %}, replacing OWNER with the repository's owner and REPOSITORY with the repository's name.
```
{%- ifversion ghe-spokes-deprecation-phase-1 %}
ghe-spokesctl check OWNER/REPOSITORY
ghe-spokesctl info OWNER/REPOSITORY
{%- else %}
ghe-spokes diagnose OWNER/REPOSITORY
{%- endif %}
```
Alternatively, if you want to view a repository network's replication status, replace NETWORK-ID/REPOSITORY-ID with the network ID and repository ID number.
```
{%- ifversion ghe-spokes-deprecation-phase-1 %}
ghe-spokesctl check NETWORK-ID/REPOSITORY-ID
ghe-spokesctl info NETWORK-ID/REPOSITORY-ID
{%- else %}
ghe-spokes diagnose NETWORK-ID/REPOSITORY-ID
{%- endif %}
```
#### Under-replicated storage objects
You can view a specific storage object's status by connecting to a node and running the following command, replacing OID with the object's ID.
```
ghe-storage info OID
```
### Getting support from {% data variables.product.company_short %}
If you review the troubleshooting advice for replication and continue to experience issues on your instance, collect the following information, then contact {% data variables.contact.contact_ent_support %}.
- On each affected node, run `ghe-repl-status -vv`, then copy the output to your ticket. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-repl-status)."
- On each affected node, create a support bundle to attach to your ticket. For more information, see "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support#creating-and-sharing-support-bundles)."

Просмотреть файл

@ -26,11 +26,14 @@ Listed below are the main logs used by the {% data variables.product.product_nam
| Path | Description |
|------|-------------|
| `/var/log/github/audit.log` | Audited user, repository and system events.
| `/var/log/github/unicorn.log` | API and web interface traffic.
| `/var/log/github/resqued.log` | Details about background jobs{% ifversion opentelemetry-and-otel-log-migration-phase-1 %}, including jobs that involve authentication{% endif %}.
| `/var/log/github/unicorn.log` | API and web interface traffic{% ifversion opentelemetry-and-otel-log-migration-phase-1 %}, including authentication attempts{% endif %}.
| `/var/log/github/exceptions.log` | Application-level errors.
| `/var/log/haproxy.log` | All IP traffic reaching the appliance.
| `/var/log/hookshot/resqued.log` | Webhook delivery and failures.
{%- ifversion ghes < 3.9 %}
| `/var/log/github/auth.log` | Authentication requests, whether through built in, LDAP, CAS or SAML methods.
{%- endif %}
| `/var/log/github/gitauth.log` | All Git authentication requests.
Git activity and authentication requests are processed by the `babeld` service.

Просмотреть файл

@ -17,6 +17,7 @@ children:
- /increasing-storage-capacity
- /increasing-cpu-or-memory-resources
- /migrating-from-github-enterprise-1110x-to-2123
- /known-issues-with-upgrades-to-your-instance
shortTitle: Update VM & resources
---

Просмотреть файл

@ -0,0 +1,110 @@
---
title: Known issues with upgrades to your instance
intro: '{% data variables.product.company_short %} is aware of issues that impact the upgrade process for {% data variables.product.prodname_ghe_server %}, or impact your instance after you complete an upgrade.'
versions:
ghes: '>=3.7'
type: overview
topics:
- Enterprise
- Troubleshooting
- Upgrades
shortTitle: Known issues with upgrades
---
## About known issues with {% data variables.product.prodname_ghe_server %} upgrades
{% data variables.product.company_short %} is aware of the following issues that could impact upgrades to new releases of {% data variables.product.prodname_ghe_server %}. For more information, see "Known issues" in the [{% data variables.product.prodname_ghe_server %} release notes](/admin/release-notes).
{% data variables.product.company_short %} strongly recommends regular backups of your instance's configuration and data. Before you proceed with any upgrade, back up your instance, then validate the backup in a staging environment. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)" and "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)."
{% ifversion mysql-8-upgrade %}
## Known issue: increased I/O utilization from MySQL 8 upgrade
If you upgrade from {% data variables.product.prodname_ghe_server %} 3.7 or 3.8 to 3.9 or later, an upgrade to the database software on your instance will increase I/O utilization. In some cases, this may affect your instance's performance.
{% data variables.product.prodname_ghe_server %} includes a MySQL database server supported by the InnoDB storage engine. {% data variables.product.prodname_ghe_server %} 3.8 and earlier use MySQL 5.7. In October 2023, Oracle will end extended support for MySQL 5.7. For more information, see [Oracle Lifetime Support Policy](https://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf) on the Oracle Support website.
To future-proof {% data variables.product.prodname_ghe_server %} and provide the latest security updates, bug fixes, and performance improvements, {% data variables.product.prodname_ghe_server %} 3.9 and later use MySQL 8.0. MySQL 8.0 achieves a higher number of queries per second (QPS) due to a redesigned REDO log. For more information, see [MySQL Performance: 8.0 re-designed REDO log & ReadWrite Workloads Scalability](http://dimitrik.free.fr/blog/archives/2017/10/mysql-performance-80-redesigned-redo-log-readwrite-workloads-scalability.html) on DimitriK's (dim) Weblog.
After the upgrade to {% data variables.product.prodname_ghe_server %} 3.9, if you experience unacceptable degradation in the performance of your instance, you can collect data from your instance's monitor dashboard to confirm the impact. You can attempt to mitigate the issue, and you can provide the data to {% data variables.contact.github_support %} to help profile and communicate the real-world impact of this change.
{% warning %}
**Warning**: Due to the nature of this upgrade, back up your instance's configuration and data before proceeding. Validate the backup in a staging environment. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)" and "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)."
{% endwarning %}
### Collecting baseline I/O utilization data before the MySQL upgrade
Collect the baseline data before upgrading to {% data variables.product.prodname_ghe_server %} 3.9 or later. To collect baseline data, {% data variables.product.company_short %} recommends that you set up a staging instance of {% data variables.product.prodname_ghe_server %} running 3.7 or 3.8 and restore data from your production instance using {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)" and "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)."
You may not be able to simulate the load that your instance experiences in a production environment. However, it's useful if you can collect baseline data while simulating patterns of usage from your production environment on the staging instance.
1. Browse to your instance's monitor dashboard. For more information, see "[AUTOTITLE](/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard)."
1. From the monitor dashboard, monitor relevant graphs.
- Under "Processes", monitor the graphs for "I/O operations (Read IOPS)" and "I/O operations (Write IOPS)", filtering for `mysqld`. These graphs display I/O operations for all of the node's services.
- Under "Storage", monitor the graph for "Disk utilization (Data Device DEVICE-ID)". This graph displays the amount of time spent on all of the node's I/O operations.
### Reviewing I/O utilization data after the MySQL upgrade
After the upgrade to {% data variables.product.prodname_ghe_server %} 3.9, review the instance's I/O utilization. {% data variables.product.company_short %} recommends that you upgrade a staging instance of {% data variables.product.prodname_ghe_server %} running 3.7 or 3.8 that includes restored data from your production instance, or that you restore data from your production instance to a new staging instance running 3.9. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)" and "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)."
1. Browse to your instance's monitor dashboard. For more information, see "[AUTOTITLE](/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard)."
1. From the monitor dashboard, monitor relevant graphs.
- Under "Processes", monitor the graphs for "I/O operations (Read IOPS)" and "I/O operations (Write IOPS)", filtering for `mysqld`. These graphs display I/O operations for all of the node's services.
- Under "Storage", monitor the graphs for "Disk utilization (Data Device DEVICE ID)" and "Disk Latency (Data Device DEVICE-ID)". These graph display the amount of time spent on all of the node's I/O operations, as well as overall disk latency.
- Significant increases to disk latency could indicate that your instance is forcing disk IOPS to wait to complete.
- You can corroborate an observation of increased latency by reviewing the graph for "Disk pending operations (Data Device DEVICE-ID)", which could indicate that the disk cannot sufficiently address all operations.
### Mitigating impact of the MySQL upgrade
To address unacceptable degradation of performance, {% data variables.product.company_short %} recommends the following solutions.
Before you test any mitigation procedure in a production environment, back up your instance, validate the backup, then test the procedure in a staging environment. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)" and "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)."
- [Adjust InnoDB's flushing method](#adjust-innodbs-flushing-method)
- [Upgrade your instance's storage](#upgrade-your-instances-storage)
#### Adjust InnoDB's flushing method
To attempt to mitigate the performance impact, you can adjust InnoDB's flushing method to skip the `fsync()` system call after each write operation. For more information, see [`innodb_flush_method`](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method) in the MySQL 8.0 Reference Manual.
The following instructions are only intended for {% data variables.product.product_name %} 3.9 and later.
{% warning %}
**Warning**: Adjustment of the flushing method requires that your instance's storage device has a battery-backed cache. If the device's cache is not battery-backed, you risk data loss.
- If you host your instance using a virtualization hypervisor within an on-premises datacenter, review your storage specifications to confirm.
- If you host your instance in a public cloud service, consult your provider's documentation or support team to confirm.
{% endwarning %}
{% data reusables.enterprise_installation.ssh-into-instance %}
1. To validate the current flushing method for InnoDB, run the following command.
```shell{:copy}
ghe-config mysql.innodb-flush-no-fsync
```
By default, the command returns `false`, indicating that your instance performs an `fsync()` system call after each write operation.
1. To configure InnoDB to skip the `fsync()` system call after each write operation, run the following command.
```shell{:copy}
ghe-config mysql.innodb-flush-no-fsync true
```
{% data reusables.enterprise.apply-configuration %}
#### Upgrade your instance's storage
You can reduce pending operations, increase IOPS, and improve performance by provisioning faster storage for your instance's nodes. To upgrade your instance's storage, back up your instance and restore the backup to a new replacement instance. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)."
### Sharing data with {% data variables.product.company_short %}
Finally, if you're willing to help {% data variables.product.company_short %} understand the real-world impact of the upgrade to MySQL 8, you can provide the data you've collected to {% data variables.contact.github_support %}. Provide the baseline and post-upgrade observations from the monitor dashboard, along with a support bundle that covers the period when you collected data. For more information, see "[AUTOTITLE](/support/learning-about-github-support/about-github-support)" and "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support)."
The data you submit helps {% data variables.product.company_short %} continue to provide a performant product, but {% data variables.product.company_short %} does not guarantee any additional mitigation steps or changes to the product as a result of the data you provide.
{% endif %}

Просмотреть файл

@ -47,6 +47,14 @@ curl -s http://localhost:9201/audit_log/_stats/store | jq ._all.primaries.store.
```
Use the number to estimate the amount of disk space the MySQL audit logs will need. The script also monitors your free disk space while the import is in progress. Monitoring this number is especially useful if your free disk space is close to the amount of disk space necessary for migration.
{% ifversion mysql-8-upgrade %}
## Known issues
Review known issues that may apply to your upgrade. For more information, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/known-issues-with-upgrades-to-your-instance)."
{% endif %}
## Next steps
After reviewing these recommendations and requirements, you can upgrade {% data variables.product.prodname_ghe_server %}. For more information, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)."

Просмотреть файл

@ -199,20 +199,23 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea
*** verifying upgrade package signature...
```
1. Confirm that you'd like to continue with the upgrade and restart after the package signature verifies. The new root filesystem writes to the secondary partition and the instance automatically restarts in maintenance mode:
```shell
*** applying update...
This package will upgrade your installation to version VERSION-NUMBER
Current root partition: /dev/xvda1 [VERSION-NUMBER]
Target root partition: /dev/xvda2
Proceed with installation? [y/N]
```
```shell
*** applying update...
This package will upgrade your installation to version VERSION-NUMBER
Current root partition: /dev/xvda1 [VERSION-NUMBER]
Target root partition: /dev/xvda2
Proceed with installation? [y/N]
```
{%- ifversion ghe-migrations-cli-utility %}
1. Optionally, during an upgrade to a feature release, you can monitor the status of database migrations using the `ghe-migrations` utility. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-migrations)."
{%- endif %}
1. After the instance restarts, the upgrade will continue in the background. You cannot unset maintenance mode until the process completes. To monitor progress, read the output in `/data/user/common/ghe-config.log`. For example, you can tail the log by running the following command:
```shell
tail -f /data/user/common/ghe-config.log
```
{% ifversion ip-exception-list %}
1. Optionally, to validate the upgrade, configure an IP exception list to allow access to a specified list of IP addresses. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode#validating-changes-in-maintenance-mode-using-the-ip-exception-list)."
1. Optionally, after the upgrade, validate the upgrade by configuring an IP exception list to allow access to a specified list of IP addresses. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode#validating-changes-in-maintenance-mode-using-the-ip-exception-list)."
{% endif %}
1. For single node upgrades, disable maintenance mode so users can use {% data variables.location.product_location %}.

Просмотреть файл

@ -19,19 +19,19 @@ topics:
{% ifversion ghes %}
## About problems with SAML authentication
{% data variables.product.product_name %} logs error messages for failed SAML authentication in the authentication log at _/var/log/github/auth.log_. You can review responses in this log file, and you can also configure more verbose logging.
{% data variables.product.product_name %} logs error messages for failed SAML authentication in the {% ifversion opentelemetry-and-otel-log-migration-phase-1 %}logs{% elsif ghes < 3.9 %}authentication log{% endif %} at {% ifversion opentelemetry-and-otel-log-migration-phase-1 %}_/var/log/github/unicorn.log_ or _/var/log/github/resqued.log_{% elsif ghes < 3.9 %}_/var/log/github/auth.log_{% endif %}. You can review responses in {% ifversion opentelemetry-and-otel-log-migration-phase-1 %}these log files{% elsif ghes < 3.9 %}this log file{% endif %}, and you can also configure more verbose logging.
For more information about SAML response requirements, see "[AUTOTITLE](/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference#saml-response-requirements)."
## Configuring SAML debugging
You can configure {% data variables.product.product_name %} to write verbose debug logs to _/var/log/github/auth.log_ for every SAML authentication attempt. You may be able to troubleshoot failed authentication attempts with this extra output.
You can configure {% data variables.product.product_name %} to write verbose debug logs for every SAML authentication attempt. You may be able to troubleshoot failed authentication attempts with this extra output.
{% warning %}
**Warnings**:
- Only enable SAML debugging temporarily, and disable debugging immediately after you finish troubleshooting. If you leave debugging enabled, the size of your log may increase much faster than usual, which can negatively impact the performance of {% data variables.product.product_name %}.
- Only enable SAML debugging temporarily, and disable debugging immediately after you finish troubleshooting. If you leave debugging enabled, the size of the log {% ifversion opentelemetry-and-otel-log-migration-phase-1 %}files increase{% elsif ghes < 3.9 %}file increase{% endif %} much faster than usual, which can negatively impact the performance of {% data variables.product.product_name %}.
- Test new authentication settings for {% data variables.location.product_location %} in a staging environment before you apply the settings in your production environment. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)."
{% endwarning %}
@ -41,12 +41,12 @@ You can configure {% data variables.product.product_name %} to write verbose deb
{% data reusables.enterprise-accounts.options-tab %}
1. Under "SAML debugging", select the drop-down and click **Enabled**.
1. Attempt to sign into {% data variables.location.product_location %} through your SAML IdP.
1. Review the debug output in _/var/log/github/auth.log_ on {% data variables.location.product_location %}.
1. Review the debug output in {% ifversion opentelemetry-and-otel-log-migration-phase-1 %}_/var/log/github/unicorn.log_ or _/var/log/github/resqued.log_{% elsif ghes < 3.9 %}_/var/log/github/auth.log_{% endif %} on {% data variables.location.product_location %}.
1. When you're done troubleshooting, select the drop-down and click **Disabled**.
## Decoding responses in _auth.log_
## Decoding responses
Some output in _auth.log_ may be Base64-encoded. You can access the administrative shell and use the `base64` utility on {% data variables.location.product_location %} to decode these responses. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
Some output in {% ifversion opentelemetry-and-otel-log-migration-phase-1 %}_/var/log/github/unicorn.log_ or _/var/log/github/resqued.log_{% elsif ghes < 3.9 %}_/var/log/github/auth.log_{% endif %} may be Base64-encoded. You can access the administrative shell and use the `base64` utility on {% data variables.location.product_location %} to decode these responses. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
```shell
$ base64 --decode ENCODED_OUTPUT

Просмотреть файл

@ -26,7 +26,7 @@ We collect no personal data. We also don't collect any {% data variables.product
Only owners of the connected enterprise account or organization on {% data variables.product.prodname_ghe_cloud %} can access the data.
Only certain aggregate metrics are collected on repositories, issues, pull requests, and other features. To see the list of aggregate metrics collected, see "[{% data variables.product.prodname_server_statistics %} data collected](#server-statistics-data-collected)."
Only certain aggregate metrics are collected on repositories, issues, pull requests, and other features. To see the list of aggregate metrics collected, see "[{% data variables.product.prodname_server_statistics %} data collected](#server-statistics-data-collected)."
Any updates to the collected metrics will happen in future feature releases of {% data variables.product.prodname_ghe_server %} and will be described in the [{% data variables.product.prodname_ghe_server %} release notes](/admin/release-notes). In addition, we will update this article with all metric updates.
@ -64,7 +64,7 @@ G | `collection_date` | The date the metrics were collected |
H | `schema_version` | The version of the database schema used to store this data |
I | `ghe_stats.comments.total_commit_comments` | Number of comments on commits |
J | `ghe_stats.comments.total_gist_comments` | Number of comments on gists |
K | `ghe_stats.comments.total_issue_comments` | Number of comments on issues |
K | `ghe_stats.comments.total_issue_comments` | Number of comments on issues |
L | `ghe_stats.comments.total_pull_request_comments` | Number of comments on pull requests |
M | `ghe_stats.gists.total_gists` | Number of gists (both secret and public) |
N | `ghe_stats.gists.private_gists` | Number of secret gists |
@ -95,7 +95,77 @@ AL | `ghe_stats.repos.total_pushes` | Number of pushes to repositories |
AM | `ghe_stats.repos.total_wikis` | Number of wikis |
AN | `ghe_stats.users.total_users` | Number of user accounts |
AO | `ghe_stats.users.admin_users` | Number of user accounts that are site administrators |
AP | `ghe_stats.users.suspended_users` | Number of user accounts that are suspended |
AP | `ghe_stats.users.suspended_users` | Number of user accounts that are suspended |{% ifversion actions-server-statistics %}
AQ | `actions_stats.number_of_repos_using_actions` | Number of repositories using {% data variables.product.prodname_actions %}
AR | `actions_stats.percentage_of_repos_using_actions` | Percentage of repositories using {% data variables.product.prodname_actions %}
AS | `packages_stats.registry_enabled` | Whether {% data variables.product.prodname_registry %} with repository-scoped packages is enabled for {% data variables.location.product_location %}
AT | `packages_stats.registry_v2_enabled` | Whether {% data variables.product.prodname_registry %} with granular permissions is enabled for {% data variables.location.product_location %}
AU | `packages_stats.ecosystems.docker.registry_enabled` | Whether Docker is enabled for {% data variables.product.prodname_registry %}
AV | `packages_stats.ecosystems.docker.published_packages_count` | Number of published Docker images (private, public, and internal)
AW | `packages_stats.ecosystems.docker.private_packages_count`| Number of private Docker images
AX | `packages_stats.ecosystems.docker.public_packages_count` | Number of public Docker images
AY | `packages_stats.ecosystems.docker.internal_packages_count` | Number of internal Docker images
AZ | `packages_stats.ecosystems.docker.user_packages_count` | Number of Docker images owned by users
BA | `packages_stats.ecosystems.docker.organization_packages_count` | Number of Docker images owned by organizations
BB | `packages_stats.ecosystems.docker.daily_download_count` | Number of downloads of Docker images
BC | `packages_stats.ecosystems.docker.daily_update_count` | Number of Docker images updated
BD | `packages_stats.ecosystems.docker.daily_delete_count` | Number of Docker images deleted
BE | `packages_stats.ecosystems.docker.daily_create_count` | Number of Docker images created
BF | `packages_stats.ecosystems.maven.registry_enabled` | Whether Maven is enabled for {% data variables.product.prodname_registry %}
BG | `packages_stats.ecosystems.maven.published_packages_count` | Number of published Maven packages (private, public, and internal)
BH | `packages_stats.ecosystems.maven.private_packages_count` | Number of private Maven packages
BI | `packages_stats.ecosystems.maven.public_packages_count` | Number of public Maven packages
BJ | `packages_stats.ecosystems.maven.internal_packages_count` | Number of internal Maven packages
BK | `packages_stats.ecosystems.maven.user_packages_count` | Number of Maven packages owned by user accounts
BL | `packages_stats.ecosystems.maven.organization_packages_count` | Number of Maven packages owned by organizations
BM | `packages_stats.ecosystems.maven.daily_download_count` | Number of downloads of Maven packages
BN | `packages_stats.ecosystems.maven.daily_update_count` | Number of Maven packages updated
BO | `packages_stats.ecosystems.maven.daily_delete_count` | Number of Maven packages deleted
BP | `packages_stats.ecosystems.maven.daily_create_count` | Number of Maven packages created
BQ | `packages_stats.ecosystems.npm.registry_enabled` | Whether npm is enabled for {% data variables.product.prodname_registry %}
BR | `packages_stats.ecosystems.npm.published_packages_count` | Number of published npm packages (private, public, and internal)
BS | `packages_stats.ecosystems.npm.private_packages_count` | Number of private npm packages
BT | `packages_stats.ecosystems.npm.public_packages_count` | Number of public npm packages
BU | `packages_stats.ecosystems.npm.internal_packages_count` | Number of internal npm packages
BV | `packages_stats.ecosystems.npm.user_packages_count` | Number of npm packages owned by user accounts
BW | `packages_stats.ecosystems.npm.organization_packages_count` | Number of npm packages owned by organizations
BX | `packages_stats.ecosystems.npm.daily_download_count` | Number of downloads of npm packages
BY | `packages_stats.ecosystems.npm.daily_update_count` | Number of npm packages updated
BZ | `packages_stats.ecosystems.npm.daily_delete_count` | Number of npm packages deleted
CA | `packages_stats.ecosystems.npm.daily_create_count` | Number of npm packages created
CB | `packages_stats.ecosystems.nuget.registry_enabled` | Whether NuGet is enabled for {% data variables.product.prodname_registry %}
CC | `packages_stats.ecosystems.nuget.published_packages_count` | Number of published NuGet packages (private, public, and internal)
CD | `packages_stats.ecosystems.nuget.private_packages_count` | Number of private NuGet packages
CE | `packages_stats.ecosystems.nuget.public_packages_count` | Number of public NuGet packages
CF | `packages_stats.ecosystems.nuget.internal_packages_count` | Number of internal NuGet packages
CG | `packages_stats.ecosystems.nuget.user_packages_count` | Number of NuGet packages owned by user accounts
CH | `packages_stats.ecosystems.nuget.organization_packages_count` | Number of NuGet packages owned by organizations
CI | `packages_stats.ecosystems.nuget.daily_download_count` | Number of downloads of Nuget packages
CJ | `packages_stats.ecosystems.nuget.daily_update_count` | Number of NuGet packages updated
CK | `packages_stats.ecosystems.nuget.daily_delete_count` | Number of NuGet packages deleted
CL | `packages_stats.ecosystems.nuget.daily_create_count` | Number of NuGet packages created
CM | `packages_stats.ecosystems.ruby_gems.registry_enabled` | Whether Rubygems is enabled for {% data variables.product.prodname_registry %}
CN | `packages_stats.ecosystems.ruby_gems.published_packages_count` | Number of published Rubygems packages (private, public, and internal)
CO | `packages_stats.ecosystems.ruby_gems.private_packages_count` | Number of private Rubygems packages
CP | `packages_stats.ecosystems.ruby_gems.public_packages_count` | Number of public Rubygems packages
CQ | `packages_stats.ecosystems.ruby_gems.internal_packages_count` | Number of internal Rubygems packaes
CR | `packages_stats.ecosystems.ruby_gems.user_packages_count` | Number of Rubygems packages owned by user accounts
CS | `packages_stats.ecosystems.ruby_gems.organization_packages_count` | Number of Rubygems packages owned by organizations
CT | `packages_stats.ecosystems.ruby_gems.daily_download_count` | Number of downloads of Rubygems packages
CU | `packages_stats.ecosystems.ruby_gems.daily_update_count` | Number of Rubygems packages updated
CV | `packages_stats.ecosystems.ruby_gems.daily_delete_count` | Number of Rubygems packages deleted
CW | `packages_stats.ecosystems.ruby_gems.daily_create_count` | Number of Rubygems packages created
CX | `packages_stats.ecosystems.containers.registry_enabled` | Whether {% data variables.product.prodname_container_registry %} is enabled for {% data variables.product.prodname_registry %}
CY | `packages_stats.ecosystems.containers.published_packages_count` | Number of published container images (private, public, and internal)
CZ | `packages_stats.ecosystems.containers.private_packages_count` | Number of private container images
DA | `packages_stats.ecosystems.containers.public_packages_count` | Number of public container images
DB | `packages_stats.ecosystems.containers.internal_packages_count` | Number of internal container images
DC | `packages_stats.ecosystems.containers.user_packages_count` | Number of container images owned by user accounts
DD | `packages_stats.ecosystems.containers.organization_packages_count` | Number of container images owned by organizations
DE |`packages_stats.ecosystems.containers.daily_download_count` | Number of downloads of container images
DF |`packages_stats.ecosystems.containers.daily_update_count` | Number of container images updated
DG |`packages_stats.ecosystems.containers.daily_delete_count` | Number of container images deleted
DH | `packages_stats.ecosystems.containers.daily_create_count` | Number of container images created | {% endif %}
## {% data variables.product.prodname_server_statistics %} data examples

Просмотреть файл

@ -540,6 +540,51 @@ Before you'll see `git` category actions, you must enable Git events in the audi
| `issues.deletes_enabled` | The ability for enterprise members to delete issues was enabled. Members can delete issues in any organizations in an enterprise. For more information, see "[AUTOTITLE](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-deleting-issues)."
| `issues.deletes_policy_cleared` | An enterprise owner{% ifversion ghes %} or site administrator{% endif %} cleared the policy setting for allowing members to delete issues in an enterprise. For more information, see "[AUTOTITLE](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-deleting-issues)."
{% ifversion management-console-events-audit-log %}
## `management_console` category actions
| Action | Description
|--------|-------------
| `management_console.add_authorized_ssh_key` | Access to the administrative shell (SSH) was granted by adding a public key. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." |
| `management_console.change_password` | The password for the root site administrator was changed. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console)." |
| `management_console.chatops_remove` | A configuration for the Microsoft Teams or Slack integration was removed. For more information, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." |
| `management_console.configure_github_enterprise` | A configuration run was started on the instance. |
| `management_console.create_user` | A new {% data variables.enterprise.management_console %} user was created. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console#creating-or-deleting-a-user-account-for-the-management-console)." |
| `management_console.delete_authorized_ssh_key` | Access to the administrative shell (SSH) was revoked due to the removal of a public key. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." |
| `management_console.delete_user` | A {% data variables.enterprise.management_console %} user was deleted. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console#creating-or-deleting-a-user-account-for-the-management-console)." |
| `management_console.diagnostics_file_download` | A diagnostic file for the instance was generated. For more information, see "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support#creating-a-diagnostic-file-from-the-management-console)." |
| `management_console.dns_test` | Domain settings were validated. For more information, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/validating-your-domain-settings)." |
| `management_console.edit_user` | A {% data variables.enterprise.management_console %} user's name or role was edited. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console)." |
| `management_console.email_test` | A test email was sent while enabling email notifications for the instance. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications#testing-email-delivery)." |
| `management_console.initialize_cluster` | The instance was initialized as a cluster. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/initializing-the-cluster)." |
| `management_console.initialize_management_console` | During initial configuration of the instance, a license was uploaded and the root site administrator password was set. |
| `management_console.ldap_test` | LDAP connectivity was tested during configuration of LDAP for authentication. For more information, see "[AUTOTITLE](/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap#configuring-ldap-with-your-github-enterprise-server-instance)." |
| `management_console.manage_maintenance_ip_exception_list` | The IP exception list to validate changes in maintenance mode was configured. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode#validating-changes-in-maintenance-mode-using-the-ip-exception-list)." |
| `management_console.manage_maintenance_mode` | Maintenance mode was enabled, disabled, or scheduled for the instance. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)." |
| `management_console.modify_automatic_updates` | Automatic update checks were enabled or disabled for the instance. For more information, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks)." |
| `management_console.msteams_app_manifest` | A manifest file was generated for the Microsoft Teams integration. For more information, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." |
| `management_console.msteams_app_update` | The configuration for the Microsoft Teams integration was updated. For more information, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." |
| `management_console.new_user_setup` | An invitation invitation was sent to a new {% data variables.enterprise.management_console %} user. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console#inviting-new-management-console-users)." |
| `management_console.request_tls_certificate` | A TLS certificate for the instance was requested from Let's Encrypt. For more information, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/configuring-tls#about-lets-encrypt-support)." |
| `management_console.resend_user_invitation` | An invitation to a new {% data variables.enterprise.management_console %} user was re-sent. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console#inviting-new-management-console-users)." |
| `management_console.save_first_run_settings` | Settings were saved during the initial configuration of the instance. |
| `management_console.save_settings` | Settings were saved. |
| `management_console.select_installation_type` | An installation type was selected during initialization of the instance. |
| `management_console.slack_app_generate` | An app for the Slack integration was generated. For more information, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." |
| `management_console.slack_app_update` | The app-level token for the Slack integration was updated. For more information, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." |
| `management_console.smtp_test` | An SMTP configuration was tested while enabling email notifications for the instance. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications#testing-email-delivery)." |
| `management_console.ssh_command` | A command was run using the administrative shell (SSH). For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
| `management_console.storage_actions_test` | A storage configuration for {% data variables.product.prodname_actions %} was tested. For more information, see "[AUTOTITLE](/admin/github-actions/enabling-github-actions-for-github-enterprise-server)." |
| `management_console.storage_migrations_test` | A storage configuration for {% data variables.product.prodname_importer_proper_name %} was tested. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud)." |
| `management_console.storage_packages_test` | A storage configuration for {% data variables.product.prodname_registry %} was tested. For more information, see "[AUTOTITLE](/admin/packages)." |
| `management_console.support_bundle_download` | A support bundle for the instance was generated. For more information, see "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support#creating-a-support-bundle-from-the-management-console)." |
| `management_console.unblock_user` | A {% data variables.enterprise.management_console %} user account was unlocked after the account was blocked for multiple failed sign-in attempts. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/troubleshooting-access-to-the-management-console#unlocking-a-management-console-user-account)." |
| `management_console.update_user_password` | The password for a {% data variables.enterprise.management_console %} user was updated. |
| `management_console.upgrade_license` | A new license for the instance was uploaded. For more information, see "[AUTOTITLE](/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)." |
| `management_console.user_sign_in` | Someone signed into the {% data variables.enterprise.management_console %}. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/accessing-the-management-console)." |
| `management_console.user_sign_out` | Someone signed out of the {% data variables.enterprise.management_console %}. |
{% endif %}
{%- ifversion fpt or ghec %}
## `marketplace_agreement_signature` category actions

Просмотреть файл

@ -70,7 +70,7 @@ A time-based one-time password (TOTP) application automatically generates an aut
{% data reusables.user-settings.access_settings %}
{% data reusables.user-settings.security %}
{% data reusables.two_fa.enable-two-factor-authentication %}
{%- ifversion fpt or ghec or ghes > 3.7 %}
{%- ifversion fpt or ghec or ghes > 3.8 %}
1. Under "Setup authenticator app", do one of the following:
- Scan the QR code with your mobile device's app. After scanning, the app displays a six-digit code that you can enter on {% data variables.product.product_name %}.
- If you can't scan the QR code, click **enter this text code** to see a code that you can manually enter in your TOTP app instead.

Просмотреть файл

@ -74,10 +74,14 @@ You can use the "Security coverage" view in security overview to show repositori
{%- endif %}
- `code-scanning-default-setup:not-eligible` shows repositories that either have advanced setup configured already, or where the languages not are suitable for default setup.
{% ifversion code-security-multi-repo-enablement %}
You can select all of the displayed repositories, or a subset of them, and enable or disable default setup for {% data variables.product.prodname_code_scanning %} for them all at the same time. For more information, see "[AUTOTITLE](/code-security/security-overview/enabling-security-features-for-multiple-repositories)."
{% endif %}
{% endif %}
## Using a script to configure advanced setup
For repositories that are not eligible for default setup, you can use a bulk configuration script to configure advanced setup across multiple repositories.

Просмотреть файл

@ -26,7 +26,7 @@ topics:
You can enable or disable {% data variables.product.prodname_dependabot_alerts %} for:
* Your personal account
* Your repository
* Your organization{% ifversion dependabot-alerts-enterprise-enablement %}
* Your organization{% ifversion dependabot-alerts-enterprise-enablement or ghes > 3.8 %}
* Your enterprise{% endif %}
## Managing {% data variables.product.prodname_dependabot_alerts %} for your personal account
@ -58,12 +58,16 @@ When you enable {% data variables.product.prodname_dependabot_alerts %} for exis
## Managing {% data variables.product.prodname_dependabot_alerts %} for your repository
{% ifversion fpt or ghec %}You can manage {% data variables.product.prodname_dependabot_alerts %} for your public, private or internal repository.
{% ifversion fpt or ghec or ghes > 3.8 %}You can manage {% data variables.product.prodname_dependabot_alerts %} for your public, private or internal repository.{% endif %}
By default, we notify people with {% ifversion dependabot-alerts-permissions-write-maintain %}write, maintain, or {% endif %}admin permissions in the affected repositories about new {% data variables.product.prodname_dependabot_alerts %}. {% data variables.product.product_name %} never publicly discloses insecure dependencies for any repository. You can also make {% data variables.product.prodname_dependabot_alerts %} visible to additional people or teams working on repositories that you own or have admin permissions for.
{% data reusables.security.security-and-analysis-features-enable-read-only %}
{% ifversion dependabot-alerts-ghes-enablement %}
An enterprise owner must first set up {% data variables.product.prodname_dependabot %} for your enterprise before you can manage {% data variables.product.prodname_dependabot_alerts %} for your repository. For more information, see "[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."{% endif %}
{% ifversion fpt or ghec or ghes > 3.8 %}
### Enabling or disabling {% data variables.product.prodname_dependabot_alerts %} for a repository
{% data reusables.repositories.navigate-to-repo %}
@ -72,14 +76,17 @@ By default, we notify people with {% ifversion dependabot-alerts-permissions-wri
1. Under "Code security and analysis", to the right of {% data variables.product.prodname_dependabot_alerts %}, click **Enable** to enable alerts or **Disable** to disable alerts.
{% endif %}
{% ifversion ghes or ghae %}
{% ifversion ghes < 3.9 or ghae %}
{% data variables.product.prodname_dependabot_alerts %} for your repository can be enabled or disabled by your enterprise owner. For more information, see "[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
{% endif %}
## Managing {% data variables.product.prodname_dependabot_alerts %} for your organization
{% ifversion fpt or ghec %}You can enable or disable {% data variables.product.prodname_dependabot_alerts %} for all repositories owned by your organization. Your changes affect all repositories.
{% ifversion fpt or ghec or ghes > 3.8 %}You can enable or disable {% data variables.product.prodname_dependabot_alerts %} for all repositories owned by your organization. Your changes affect all repositories.
{% ifversion dependabot-alerts-ghes-enablement %}
An enterprise owner must first set up {% data variables.product.prodname_dependabot %} for your enterprise before you can manage {% data variables.product.prodname_dependabot_alerts %} for your repository. For more information, see "[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."{% endif %}
### Enabling or disabling {% data variables.product.prodname_dependabot_alerts %} for all existing repositories
@ -98,22 +105,28 @@ You can use the organization settings page for "Code security and analysis" to e
1. Optionally, to enable {% data variables.product.prodname_dependabot_alerts %} by default for new repositories in your organization, in the dialog box, select "Enable by default for new repositories".
1. Click **Disable {% data variables.product.prodname_dependabot_alerts %}** or **Enable {% data variables.product.prodname_dependabot_alerts %}** to disable or enable {% data variables.product.prodname_dependabot_alerts %} for all the repositories in your organization.
{% endif %}
{% ifversion ghes or ghae %}
{% ifversion ghes < 3.9 or ghae %}
{% data variables.product.prodname_dependabot_alerts %} for your organization can be enabled or disabled by your enterprise owner. For more information, see "[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
{% endif %}
{% ifversion dependabot-alerts-enterprise-enablement %}
{% ifversion dependabot-alerts-enterprise-enablement or ghes > 3.8 %}
## Managing {% data variables.product.prodname_dependabot_alerts %} for your enterprise
You can enable or disable {% data variables.product.prodname_dependabot_alerts %} for all current and future repositories owned by organizations in your enterprise. Your changes affect all repositories.
{% endif %}
{% ifversion dependabot-alerts-enterprise-enablement %}
{% note %}
**Note:** When {% data variables.product.prodname_dependabot_alerts %} are enabled or disabled at the enterprise level, it overrides the organization and repository level settings for {% data variables.product.prodname_dependabot_alerts %}.
{% endnote%}
{% endif %}
{% ifversion dependabot-alerts-enterprise-enablement or ghes > 3.8 %}
{% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.settings-tab %}
1. In the left sidebar, click **Code security and analysis**.

Просмотреть файл

@ -45,7 +45,12 @@ You can create a default security policy that will display in any of your organi
{% endif %}
{% data reusables.dependabot.dependabot-alerts-beta %}
{% ifversion dependabot-alerts-ghes-enablement %}
{% data reusables.dependabot.dependabot-alerts-enterprise-server-repo-org-enablement %}
{% else %}
{% data reusables.dependabot.dependabot-alerts-dependency-graph-enterprise %}
{% endif %}
For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)," "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository#enabling-and-disabling-the-dependency-graph-for-a-private-repository)," and "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)."

Просмотреть файл

@ -60,7 +60,11 @@ For more information, see "[AUTOTITLE](/code-security/supply-chain-security/unde
{% endif %}
{% data reusables.dependabot.dependabot-alerts-beta %}
{% ifversion dependabot-alerts-ghes-enablement %}
{% data reusables.dependabot.dependabot-alerts-enterprise-server-repo-org-enablement %}
{% else %}
{% data reusables.dependabot.dependabot-alerts-dependency-graph-enterprise %}
{% endif %}
For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts){% ifversion fpt or ghec %}" and "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-security-and-analysis-settings-for-your-personal-account){% endif %}."

Просмотреть файл

@ -24,23 +24,23 @@ You can create default issue and pull request templates for your organization or
## Issue templates
When you create issue templates for your repository using the issue template builder{% ifversion fpt or ghec %} or with issue forms{% endif %}, contributors can select the appropriate template when they open new issues in the repository.
When you create issue templates for your repository using the issue template builder{% ifversion issue-forms %} or with issue forms{% endif %}, contributors can select the appropriate template when they open new issues in the repository.
![Screenshot of the new issue page, with multiple templates to choose from.](/assets/images/help/issues/new-issue-page-with-multiple-templates.png)
Issue templates are helpful when you want to provide guidance for opening issues while allowing contributors to specify the content of their issues. {% ifversion fpt or ghec %} If you want contributors to provide specific, structured information when they open issues, issue forms help ensure that you receive your desired information.{% endif %}
Issue templates are helpful when you want to provide guidance for opening issues while allowing contributors to specify the content of their issues. {% ifversion issue-forms %} If you want contributors to provide specific, structured information when they open issues, issue forms help ensure that you receive your desired information.{% endif %}
Using the template builder, you can specify a title and description for each template, add the template content, and either commit the template to the default branch or open a pull request in the repository. The template builder automatically adds the YAML front matter markup that is required for the template to show on the new issue page. For more information, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)."
{% ifversion fpt or ghec %}
{% ifversion issue-forms %}
With issue forms, you can create templates that have web form fields using the {% data variables.product.prodname_dotcom %} form schema. When a contributor opens an issue using an issue form, the form inputs are converted to a standard markdown issue comment. You can specify different input types and set inputs as required to help contributors open actionable issues in your repository. For more information, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#creating-issue-forms)" and "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms)."
{% endif %}
{% data reusables.repositories.issue-template-config %} For more information, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser)."
Issue templates are stored on the repository's default branch, in a hidden `.github/ISSUE_TEMPLATE` directory. If you create a template in another branch, it will not be available for collaborators to use. Issue template filenames are not case sensitive, and need a *.md* extension.{% ifversion fpt or ghec %} Issue templates created with issue forms need a *.yml* extension.{% endif %} {% data reusables.repositories.valid-community-issues %}
Issue templates are stored on the repository's default branch, in a hidden `.github/ISSUE_TEMPLATE` directory. If you create a template in another branch, it will not be available for collaborators to use. Issue template filenames are not case sensitive, and need a *.md* extension.{% ifversion issue-forms %} Issue templates created with issue forms need a *.yml* extension.{% endif %} {% data reusables.repositories.valid-community-issues %}
It is possible to manually create a single issue template in Markdown using the legacy issue template workflow, and project contributors will automatically see the template's contents in the issue body. However, we recommend using the upgraded multiple issue template builder{% ifversion fpt or ghec %} or issue forms{% endif %} to create issue templates. For more information about the legacy workflow, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository)."
It is possible to manually create a single issue template in Markdown using the legacy issue template workflow, and project contributors will automatically see the template's contents in the issue body. However, we recommend using the upgraded multiple issue template builder{% ifversion issue-forms %} or issue forms{% endif %} to create issue templates. For more information about the legacy workflow, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository)."
{% data reusables.repositories.security-guidelines %}

Просмотреть файл

@ -2,8 +2,7 @@
title: Common validation errors when creating issue forms
intro: 'You may see some of these common validation errors when creating, saving, or viewing issue forms.'
versions:
fpt: '*'
ghec: '*'
feature: issue-forms
topics:
- Community
---

Просмотреть файл

@ -7,9 +7,9 @@ redirect_from:
- /github/building-a-strong-community/configuring-issue-templates-for-your-repository
versions:
fpt: '*'
ghec: '*'
ghes: '*'
ghae: '*'
ghec: '*'
topics:
- Community
shortTitle: Configure
@ -39,7 +39,7 @@ shortTitle: Configure
1. Below the commit message fields, select whether to commit your template directly to the default branch, or to create a new branch and open a pull request. For more information about pull requests, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."
1. Click **Commit changes**. Once these changes are merged into the default branch, the template will be available for contributors to use when they open new issues in the repository.
{% ifversion fpt or ghec %}
{% ifversion issue-forms %}
## Creating issue forms

Просмотреть файл

@ -4,7 +4,7 @@ intro: 'You can use {% data variables.product.company_short %}''s form schema to
versions:
fpt: '*'
ghec: '*'
ghes: '> 3.7'
ghes: '> 3.8'
topics:
- Community
---

Просмотреть файл

@ -2,8 +2,7 @@
title: Syntax for issue forms
intro: 'You can define different input types, validations, default assignees, and default labels for your issue forms.'
versions:
fpt: '*'
ghec: '*'
feature: issue-forms
topics:
- Community
---

Просмотреть файл

@ -6,8 +6,6 @@ versions:
feature: discussion-category-forms
---
{% data reusables.discussions.discussion-category-forms-beta %}
## About discussion category forms
You can encourage community members to include specific, structured information in their discussions by using discussion forms in your repository. With discussion category forms, you can create discussion templates that have customizable web form fields. Discussion forms are written in YAML using the {% data variables.product.prodname_dotcom %} form schema. For more information, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema)."

Просмотреть файл

@ -6,8 +6,6 @@ versions:
feature: discussion-category-forms
---
{% data reusables.discussions.discussion-category-forms-beta %}
## About YAML syntax for discussion category forms
You can create custom discussion category forms by adding a YAML form definition file to the `/.github/DISCUSSION_TEMPLATE/` folder in your repository. {% data reusables.actions.learn-more-about-yaml %}

Просмотреть файл

@ -75,4 +75,6 @@ Once you have duplicated a workflow, you can click **Edit** to start making chan
## Further reading
* "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project)"
{%- ifversion projects-v2-workflows %}
* "[AUTOTITLE](/issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in-automations)"
{%- endif %}

Просмотреть файл

@ -42,4 +42,6 @@ Projects also have a limit on the number of archived items they can contain. You
## Further reading
* "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project)"
{%- ifversion projects-v2-workflows %}
* "[AUTOTITLE](/issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in-automations)"
{%- endif %}

Просмотреть файл

@ -14,7 +14,7 @@ topics:
## Introduction
You can use {% data variables.product.prodname_dotcom %} repositories, issues, project boards, and other tools to plan and track your work, whether working on an individual project or cross-functional team.
In this guide, you will learn how to create and set up a repository for collaborating with a group of people, create issue templates{% ifversion fpt or ghec %} and forms{% endif %}, open issues and use task lists to break down work, and establish a project board for organizing and tracking issues.
In this guide, you will learn how to create and set up a repository for collaborating with a group of people, create issue templates{% ifversion issue-forms %} and forms{% endif %}, open issues and use task lists to break down work, and establish a project board for organizing and tracking issues.
## Creating a repository
When starting a new project, initiative, or feature, the first step is to create a repository. Repositories contain all of your project's files and give you a place to collaborate with others and manage your work. For more information, see "[AUTOTITLE](/repositories/creating-and-managing-repositories/creating-a-new-repository)."
@ -47,7 +47,7 @@ You can use issues to track the different types of work that your cross-function
- Feature requests: Your team or users can create issues to request an improvement to your product or project.
- Bugs: Your team or users can create issues to report a bug.
Depending on the type of repository and project you are working on, you may prioritize certain types of issues over others. Once you have identified the most common issue types for your team, you can create issue templates {% ifversion fpt or ghec %}and forms{% endif %} for your repository. Issue templates {% ifversion fpt or ghec %}and forms{% endif %} allow you to create a standardized list of templates that a contributor can choose from when they open an issue in your repository. For more information, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)."
Depending on the type of repository and project you are working on, you may prioritize certain types of issues over others. Once you have identified the most common issue types for your team, you can create issue templates {% ifversion issue-forms %}and forms{% endif %} for your repository. Issue templates {% ifversion issue-forms %}and forms{% endif %} allow you to create a standardized list of templates that a contributor can choose from when they open an issue in your repository. For more information, see "[AUTOTITLE](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)."
### Issue template example
Below we are creating an issue template for reporting a bug in Project Octocat.

Просмотреть файл

@ -25,8 +25,12 @@ By default, {% data variables.product.product_name %} does not display the sourc
You are responsible for meeting any legal obligations that accompany the viewing or storage of IP addresses displayed within your organization's audit log.
{% ifversion enterprise-audit-log-ip-addresses %}
Alternatively, you can configure IP addresses at the enterprise level. For more information, see "[Displaying IP addresses in the audit log for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise)."
{% endif %}
{% data reusables.audit_log.users-agree-to-ip-collection %}
After you enable the feature, you can access the audit log to view events that include IP addresses. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization)."

Просмотреть файл

@ -41,7 +41,7 @@ On {% data variables.product.prodname_dotcom %}, you can also restore an entire
{% data reusables.package_registry.packages-classic-pat-only %}
{% ifversion fpt or ghec %}
{% ifversion packages-rest-api %}
You can use the REST API to manage your packages. For more information, see the "[AUTOTITLE](/rest/packages)."
@ -88,7 +88,7 @@ To delete a version of a {% ifversion packages-registries-v2 %}repository-scoped
{% ifversion fpt or ghec or ghes %}
### Deleting a version of a {% ifversion packages-registries-v2 %}repository-scoped{% endif %} package with GraphQL
{% data reusables.package_registry.about-graphql-support %}{% ifversion fpt or ghec %} For information on using the REST API instead, see the "[AUTOTITLE](/rest/packages)."{% endif %}
{% data reusables.package_registry.about-graphql-support %}{% ifversion packages-rest-api %} For information on using the REST API instead, see the "[AUTOTITLE](/rest/packages)."{% endif %}
Use the `deletePackageVersion` mutation in the GraphQL API. You must use a {% data variables.product.pat_v1 %} with the `read:packages`, `delete:packages`, and `repo` scopes. For more information about {% data variables.product.pat_v1_plural %}, see "[AUTOTITLE](/packages/learn-github-packages/introduction-to-github-packages#authenticating-to-github-packages)."

Просмотреть файл

@ -99,7 +99,7 @@ For more information about Docker and the {% data variables.product.prodname_con
## Managing packages
You can delete a package in the {% data variables.product.product_name %} user interface{% ifversion fpt or ghec %} or using the REST API. For more information, see "[AUTOTITLE](/packages/learn-github-packages/deleting-and-restoring-a-package)" and the "[AUTOTITLE](/rest/packages)."{% else %}.{% endif %} {% data reusables.package_registry.about-graphql-support %}
You can delete a package in the {% data variables.product.product_name %} user interface{% ifversion packages-rest-api %} or using the REST API. For more information, see "[AUTOTITLE](/packages/learn-github-packages/deleting-and-restoring-a-package)" and the "[AUTOTITLE](/rest/packages)."{% else %}.{% endif %} {% data reusables.package_registry.about-graphql-support %}
When you use the GraphQL API to query and delete private packages, you must use the same {% data variables.product.pat_v1 %} you use to authenticate to {% data variables.product.prodname_registry %}.

Просмотреть файл

@ -44,10 +44,14 @@ After a Docker image has been migrated to the {% data variables.product.prodname
{% data reusables.package_registry.container-registry-migration-namespaces %}
{% ifversion fpt or ghec %}
{% ifversion packages-rest-api %}
After migration, you'll no longer be able to use the GraphQL API to query for packages with a `PackageType` of "DOCKER". Instead, you can use the REST API to query for packages with a `package_type` of "container". For more information, see "[AUTOTITLE](/rest/packages)" in the REST API documentation.
{% endif %}
{% ifversion fpt or ghec %}
## About billing for {% data variables.product.prodname_container_registry %}
For more information about billing for the {% data variables.product.prodname_container_registry %}, see "[AUTOTITLE](/billing/managing-billing-for-github-packages/about-billing-for-github-packages)."

Просмотреть файл

@ -1,10 +1,13 @@
---
title: Software bill of materials (SBOM)
shortTitle: Software bill of materials (SBOM)
intro: 'Use the REST API to export the software bill of materials (SBOM) for a repository.'
intro: >-
Use the REST API to export the software bill of materials (SBOM) for a
repository.
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'
topics:
- API
autogenerated: rest

Просмотреть файл

@ -22,14 +22,15 @@ children:
- /global-webhooks
- /ldap
- /license
- /manage-ghes
- /management-console
- /org-pre-receive-hooks
- /orgs
- /pre-receive-environments
- /pre-receive-hooks
- /repo-pre-receive-hooks
- /users
- /scim
- /users
autogenerated: rest
---

Просмотреть файл

@ -0,0 +1,29 @@
---
title: Manage GitHub Enterprise Server
allowTitleToDifferFromFilename: true
shortTitle: Manage GHES
intro: >-
Use the REST API to manage your {% data variables.product.product_name %}
instance.
versions:
ghes: '>=3.9'
topics:
- API
autogenerated: rest
---
## About the Manage {% data variables.product.prodname_ghe_server %} API
You can manage {% data variables.location.product_location %} using the Manage {% data variables.product.prodname_ghe_server %} API. For example, you can retrieve information about the version of the {% data variables.product.prodname_ghe_server %} software running on the instance, or on instances with multiple nodes, view the status of replication.
Specify the port number when making API calls to endpoints for the Manage {% data variables.product.prodname_ghe_server %} API. If your instance uses TLS, the port number is 8443. Otherwise, the port number is 8080. If you cannot provide a port number, you'll need to configure your client to automatically follow redirects. For more information, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/configuring-tls)."
### Authentication
To authenticate requests to endpoints for the Manage {% data variables.product.prodname_ghe_server %} API, specify the password for the instance's root site administrator account as an authentication token. Use standard HTTP authentication to send the password. The `api_key` user identifies the root site administrator. The following example demonstrates authentication for this API. Replace ROOT-SITE-ADMINISTRATOR-PASSWORD with the password, and ADMINISTRATION-PORT with either 8442 or 8080.
```shell
curl -L -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" 'http(s)://HOSTNAME:ADMINISTRATION-PORT/manage'
```
<!-- Content after this section is automatically generated -->

Просмотреть файл

@ -628,24 +628,24 @@ shortTitle: 'Endpoints for fine-grained PATs'
{% ifversion fpt or ghec %}- [`DELETE /orgs/{org}/invitations/{invitation_id}`](/rest/orgs#cancel-an-organization-invitation){% endif %}
{% ifversion fpt or ghec %}- [`GET /orgs/{org}/invitations/{invitation_id}/teams`](/rest/orgs#list-organization-invitation-teams){% endif %}
{% ifversion fpt or ghec %}
{% ifversion packages-rest-api %}
## packages
{% ifversion fpt or ghec %}- [`GET /orgs/{org}/packages`](/rest/packages#list-packages-for-an-organization){% endif %}
{% ifversion fpt or ghec %}- [`GET /orgs/{org}/packages/{package_type}/{package_name}`](/rest/packages#get-a-package-for-an-organization){% endif %}
{% ifversion fpt or ghec %}- [`DELETE /orgs/{org}/packages/{package_type}/{package_name}`](/rest/packages#delete-a-package-for-an-organization){% endif %}
{% ifversion fpt or ghec %}- [`GET /orgs/{org}/packages/{package_type}/{package_name}/versions`](/rest/packages#get-all-package-versions-for-a-package-owned-by-an-organization){% endif %}
{% ifversion fpt or ghec %}- [`GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}`](/rest/packages#get-a-package-version-for-an-organization){% endif %}
{% ifversion fpt or ghec %}- [`GET /user/packages`](/rest/packages#list-packages-for-the-authenticated-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /user/packages/{package_type}/{package_name}`](/rest/packages#get-a-package-for-the-authenticated-user){% endif %}
{% ifversion fpt or ghec %}- [`DELETE /user/packages/{package_type}/{package_name}`](/rest/packages#delete-a-package-for-the-authenticated-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /user/packages/{package_type}/{package_name}/versions`](/rest/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}`](/rest/packages#get-a-package-version-for-the-authenticated-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /users/{username}/packages`](/rest/packages#list-packages-for-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /users/{username}/packages/{package_type}/{package_name}`](/rest/packages#get-a-package-for-a-user){% endif %}
{% ifversion fpt or ghec %}- [`DELETE /users/{username}/packages/{package_type}/{package_name}`](/rest/packages#delete-a-package-for-a-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /users/{username}/packages/{package_type}/{package_name}/versions`](/rest/packages#get-all-package-versions-for-a-package-owned-by-a-user){% endif %}
{% ifversion fpt or ghec %}- [`GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}`](/rest/packages#get-a-package-version-for-a-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /orgs/{org}/packages`](/rest/packages#list-packages-for-an-organization){% endif %}
{% ifversion packages-rest-api %}- [`GET /orgs/{org}/packages/{package_type}/{package_name}`](/rest/packages#get-a-package-for-an-organization){% endif %}
{% ifversion packages-rest-api %}- [`DELETE /orgs/{org}/packages/{package_type}/{package_name}`](/rest/packages#delete-a-package-for-an-organization){% endif %}
{% ifversion packages-rest-api %}- [`GET /orgs/{org}/packages/{package_type}/{package_name}/versions`](/rest/packages#get-all-package-versions-for-a-package-owned-by-an-organization){% endif %}
{% ifversion packages-rest-api %}- [`GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}`](/rest/packages#get-a-package-version-for-an-organization){% endif %}
{% ifversion packages-rest-api %}- [`GET /user/packages`](/rest/packages#list-packages-for-the-authenticated-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /user/packages/{package_type}/{package_name}`](/rest/packages#get-a-package-for-the-authenticated-user){% endif %}
{% ifversion packages-rest-api %}- [`DELETE /user/packages/{package_type}/{package_name}`](/rest/packages#delete-a-package-for-the-authenticated-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /user/packages/{package_type}/{package_name}/versions`](/rest/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}`](/rest/packages#get-a-package-version-for-the-authenticated-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /users/{username}/packages`](/rest/packages#list-packages-for-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /users/{username}/packages/{package_type}/{package_name}`](/rest/packages#get-a-package-for-a-user){% endif %}
{% ifversion packages-rest-api %}- [`DELETE /users/{username}/packages/{package_type}/{package_name}`](/rest/packages#delete-a-package-for-a-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /users/{username}/packages/{package_type}/{package_name}/versions`](/rest/packages#get-all-package-versions-for-a-package-owned-by-a-user){% endif %}
{% ifversion packages-rest-api %}- [`GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}`](/rest/packages#get-a-package-version-for-a-user){% endif %}
{% endif %}

Просмотреть файл

@ -4,8 +4,7 @@ intro: >-
Use the REST API to interact with {% data variables.product.prodname_registry
%}.
versions:
fpt: '*'
ghec: '*'
feature: packages-rest-api
topics:
- API
redirect_from:
@ -24,7 +23,8 @@ To use the REST API to manage {% data variables.product.prodname_registry %}, yo
If your package is in a registry that supports granular permissions, then your token does not need the `repo` scope to access or manage this package. If your package is in a registry that only supports repository-scoped permissions, then your token must also include the `repo` scope since your package inherits permissions from a {% data variables.product.prodname_dotcom %} repository. For a list of registries that only support repository-scoped permissions, see "[AUTOTITLE](/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)."
To access resources in an organization with SSO enabled, you must enable SSO for your {% data variables.product.pat_v1 %}. For more information, see "[AUTOTITLE](/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
{% ifversion ghec %}
To access resources in an organization with SSO enabled, you must enable SSO for your {% data variables.product.pat_v1 %}. For more information, see "[AUTOTITLE](/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)."
{% endif %}
<!-- Content after this section is automatically generated -->

Просмотреть файл

@ -4,6 +4,7 @@ intro: Use the REST API to manage social accounts of authenticated users.
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'
topics:
- API
autogenerated: rest

Просмотреть файл

@ -0,0 +1,2 @@
versions:
ghes: '>=3.9'

Просмотреть файл

@ -0,0 +1,5 @@
# Reference: #10290
# Improved syntax for specifying log intervals for collection when using the ghe-support-bundle and ghe-cluster-support-bundle CLI utilities
versions:
ghes: '>=3.9'

Просмотреть файл

@ -0,0 +1,2 @@
versions:
ghes: '>3.8'

Просмотреть файл

@ -0,0 +1,4 @@
# Reference: issue #8959
# Dependabot Alerts enablement at the repo, org and enterprise level for GHES
versions:
ghes: '>= 3.9'

Просмотреть файл

@ -3,5 +3,5 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.8'
ghae: '>=3.8'
ghes: '>=3.9'
ghae: '>=3.9'

Просмотреть файл

@ -1,3 +1,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -2,5 +2,3 @@
# Documentation for organization invitation enhancements
versions:
ghec: '*'
ghes: '>=3.9'
ghae: '>=3.9'

Просмотреть файл

@ -1,4 +1,2 @@
versions:
ghec: '*'
ghes: '>3.8'
ghae: '>3.8'

Просмотреть файл

@ -0,0 +1,5 @@
# Reference: #9926
# ghe-migrations CLI utility
versions:
ghes: '>=3.9'

Просмотреть файл

@ -0,0 +1,4 @@
# Reference: releases#3055
# Description: First batch of subcommands of ghe-spokes which have been replaced by ghe-spokesctl
versions:
ghes: '>=3.9'

Просмотреть файл

@ -0,0 +1,6 @@
# Issue forms
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'
ghae: '>=3.9'

Просмотреть файл

@ -0,0 +1,5 @@
# Reference: #9846
# Management Console events in the enterprise audit log
versions:
ghes: '>=3.9'

Просмотреть файл

@ -0,0 +1,5 @@
# Reference: #10286
# MySQL 8 upgrade for GHES
versions:
ghes: '>=3.7 <=3.10'

Просмотреть файл

@ -0,0 +1,2 @@
versions:
ghes: '>3.8'

Просмотреть файл

@ -0,0 +1,5 @@
# Reference: #9558
# First batch of migrations to semantic log emission for monolith
versions:
ghes: '>=3.9'

Просмотреть файл

@ -3,5 +3,3 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'
ghae: '>=3.9'

Просмотреть файл

@ -0,0 +1,6 @@
# Feature flag for versions that include the Packages REST API
# Content issue: 9325
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -3,5 +3,5 @@
# PAT v2
versions:
ghec: '*'
ghes: '>=3.9'
ghae: '>=3.9'
ghes: '>=3.10'
ghae: '>=3.10'

Просмотреть файл

@ -3,5 +3,5 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'
ghae: '>=3.9'
ghes: '>=3.10'
ghae: '>=3.10'

Просмотреть файл

@ -0,0 +1,6 @@
# Reference: #9659
# Pronouns in user profiles
versions:
fpt: '*'
ghec: '*'

Просмотреть файл

@ -3,3 +3,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -2,3 +2,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -2,3 +2,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -2,3 +2,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -2,3 +2,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -2,4 +2,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.10'
ghes: '>=3.9'

Просмотреть файл

@ -2,3 +2,4 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -0,0 +1,5 @@
# Replication management API for GHES.
# Reference: #9931
versions:
ghes: '> 3.8'

Просмотреть файл

@ -3,4 +3,3 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>=3.9'

Просмотреть файл

@ -1,4 +1,4 @@
# Reference: #8869
# Team Discussions migration and eventual deprecation announcement (for GHES - already deprecated for Dotcom and GHEC)
versions:
ghes: '>3.8'
ghes: '>3.9'

Просмотреть файл

@ -0,0 +1,138 @@
- title: Access to package version deletion
description: >-
This preview adds support for the DeletePackageVersion mutation which
enables deletion of private package versions.
toggled_by: ':package-deletes-preview'
announcement: null
updates: null
toggled_on:
- Mutation.deletePackageVersion
owning_teams:
- '@github/pe-package-registry'
- title: Deployments
description: >-
This preview adds support for deployments mutations and new deployments
features.
toggled_by: ':flash-preview'
announcement: null
updates: null
toggled_on:
- DeploymentStatus.environment
- Mutation.createDeploymentStatus
- CreateDeploymentStatusInput
- CreateDeploymentStatusPayload
- Mutation.createDeployment
- CreateDeploymentInput
- CreateDeploymentPayload
owning_teams:
- '@github/c2c-actions-service'
- title: >-
MergeInfoPreview - More detailed information about a pull request's merge
state.
description: >-
This preview adds support for accessing fields that provide more detailed
information about a pull request's merge state.
toggled_by: ':merge-info-preview'
announcement: null
updates: null
toggled_on:
- PullRequest.canBeRebased
- PullRequest.mergeStateStatus
owning_teams:
- '@github/pe-pull-requests'
- title: UpdateRefsPreview - Update multiple refs in a single operation.
description: This preview adds support for updating multiple refs in a single operation.
toggled_by: ':update-refs-preview'
announcement: null
updates: null
toggled_on:
- Mutation.updateRefs
- GitRefname
- RefUpdate
- UpdateRefsInput
- UpdateRefsPayload
owning_teams:
- '@github/reponauts'
- title: Access to a Repository's Dependency Graph
description: This preview adds support for reading a dependency graph for a repository.
toggled_by: ':hawkgirl-preview'
announcement: null
updates: null
toggled_on:
- DependencyGraphManifest
- Repository.dependencyGraphManifests
- DependencyGraphManifestEdge
- DependencyGraphManifestConnection
- DependencyGraphDependency
- DependencyGraphDependencyEdge
- DependencyGraphDependencyConnection
- DependencyGraphPackageRelease.dependencies
owning_teams:
- '@github/dependency-graph'
- title: Project Event Details
description: >-
This preview adds project, project card, and project column details to
project-related issue events.
toggled_by: ':starfox-preview'
announcement: null
updates: null
toggled_on:
- AddedToProjectEvent.project
- AddedToProjectEvent.projectCard
- AddedToProjectEvent.projectColumnName
- ConvertedNoteToIssueEvent.project
- ConvertedNoteToIssueEvent.projectCard
- ConvertedNoteToIssueEvent.projectColumnName
- MovedColumnsInProjectEvent.project
- MovedColumnsInProjectEvent.projectCard
- MovedColumnsInProjectEvent.projectColumnName
- MovedColumnsInProjectEvent.previousProjectColumnName
- RemovedFromProjectEvent.project
- RemovedFromProjectEvent.projectColumnName
owning_teams:
- '@github/github-projects'
- title: Labels Preview
description: >-
This preview adds support for adding, updating, creating and deleting
labels.
toggled_by: ':bane-preview'
announcement: null
updates: null
toggled_on:
- Mutation.createLabel
- CreateLabelPayload
- CreateLabelInput
- Mutation.deleteLabel
- DeleteLabelPayload
- DeleteLabelInput
- Mutation.updateLabel
- UpdateLabelPayload
- UpdateLabelInput
owning_teams:
- '@github/pe-pull-requests'
- title: Import Project
description: This preview adds support for importing projects.
toggled_by: ':slothette-preview'
announcement: null
updates: null
toggled_on:
- Mutation.importProject
owning_teams:
- '@github/pe-issues-projects'
- title: Team Review Assignments Preview
description: >-
This preview adds support for updating the settings for team review
assignment.
toggled_by: ':stone-crop-preview'
announcement: null
updates: null
toggled_on:
- Mutation.updateTeamReviewAssignment
- UpdateTeamReviewAssignmentInput
- TeamReviewAssignmentAlgorithm
- Team.reviewRequestDelegationEnabled
- Team.reviewRequestDelegationAlgorithm
- Team.reviewRequestDelegationMemberCount
- Team.reviewRequestDelegationNotifyTeam
owning_teams:
- '@github/pe-pull-requests'

Просмотреть файл

@ -0,0 +1,283 @@
---
upcoming_changes:
- location: LegacyMigration.uploadUrlTemplate
description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason:
'`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step.'
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: UnassignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Issue.timeline
description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: MergeStateStatus.DRAFT
description: '`DRAFT` will be removed. Use PullRequest.isDraft instead.'
reason:
DRAFT state will be removed from this enum and `isDraft` should be used
instead
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: nplasterer
- location: PackageType.DOCKER
description: '`DOCKER` will be removed.'
reason:
DOCKER will be removed from this enum as this type will be migrated to only
be used by the Packages REST API.
date: '2021-06-21'
criticality: breaking
owner: reybard
- location: ReactionGroup.users
description: '`users` will be removed. Use the `reactors` field instead.'
reason: Reactors can now be mannequins, bots, and organizations.
date: '2021-10-01T00:00:00+00:00'
criticality: breaking
owner: synthead
- location: AddPullRequestToMergeQueueInput.branch
description: '`branch` will be removed.'
reason:
PRs are added to the merge queue for the base branch, the `branch` argument
is now a no-op
date: '2022-07-01T00:00:00+00:00'
criticality: breaking
owner: jhunschejones
- location: DependencyGraphDependency.packageLabel
description:
'`packageLabel` will be removed. Use normalized `packageName` field
instead.'
reason: '`packageLabel` will be removed.'
date: '2022-10-01T00:00:00+00:00'
criticality: breaking
owner: github/dependency_graph
- location: RemovePullRequestFromMergeQueueInput.branch
description: '`branch` will be removed.'
reason:
PRs are removed from the merge queue for the base branch, the `branch` argument
is now a no-op
date: '2022-10-01T00:00:00+00:00'
criticality: breaking
owner: jhunschejones
- location: RepositoryVulnerabilityAlert.fixReason
description: '`fixReason` will be removed.'
reason:
The `fixReason` field is being removed. You can still use `fixedAt` and
`dismissReason`.
date: '2022-10-01T00:00:00+00:00'
criticality: breaking
owner: jamestran201
- location: Commit.changedFiles
description: '`changedFiles` will be removed. Use `changedFilesIfAvailable` instead.'
reason: '`changedFiles` will be removed.'
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: adamshwert
- location: ProjectNextFieldType.ASSIGNEES
description:
'`ASSIGNEES` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.DATE
description:
'`DATE` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.ITERATION
description:
'`ITERATION` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.LABELS
description:
'`LABELS` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.LINKED_PULL_REQUESTS
description:
'`LINKED_PULL_REQUESTS` will be removed. Follow the ProjectV2 guide
at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.MILESTONE
description:
'`MILESTONE` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.NUMBER
description:
'`NUMBER` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.REPOSITORY
description:
'`REPOSITORY` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.REVIEWERS
description:
'`REVIEWERS` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.SINGLE_SELECT
description:
'`SINGLE_SELECT` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.TEXT
description:
'`TEXT` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.TITLE
description:
'`TITLE` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.TRACKED_BY
description:
'`TRACKED_BY` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectNextFieldType.TRACKS
description:
'`TRACKS` will be removed. Follow the ProjectV2 guide at https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/,
to find a suitable replacement.'
reason:
The `ProjectNext` API is deprecated in favour of the more capable `ProjectV2`
API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: lukewar
- location: ProjectV2View.visibleFields
description:
'`visibleFields` will be removed. Check out the `ProjectV2View#fields`
API as an example for the more capable alternative.'
reason:
The `ProjectV2View#visibleFields` API is deprecated in favour of the more
capable `ProjectV2View#fields` API.
date: '2023-01-01T00:00:00+00:00'
criticality: breaking
owner: mattruggio
- location: ProjectV2View.groupBy
description:
'`groupBy` will be removed. Check out the `ProjectV2View#group_by_fields`
API as an example for the more capable alternative.'
reason:
The `ProjectV2View#order_by` API is deprecated in favour of the more capable
`ProjectV2View#group_by_field` API.
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: alcere
- location: ProjectV2View.sortBy
description:
'`sortBy` will be removed. Check out the `ProjectV2View#sort_by_fields`
API as an example for the more capable alternative.'
reason:
The `ProjectV2View#sort_by` API is deprecated in favour of the more capable
`ProjectV2View#sort_by_fields` API.
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: traumverloren
- location: ProjectV2View.verticalGroupBy
description:
'`verticalGroupBy` will be removed. Check out the `ProjectV2View#vertical_group_by_fields`
API as an example for the more capable alternative.'
reason:
The `ProjectV2View#vertical_group_by` API is deprecated in favour of the
more capable `ProjectV2View#vertical_group_by_fields` API.
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: traumverloren
- location: Repository.squashPrTitleUsedAsDefault
description:
'`squashPrTitleUsedAsDefault` will be removed. Use `Repository.squashMergeCommitTitle`
instead.'
reason: '`squashPrTitleUsedAsDefault` will be removed.'
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: github/pull_requests

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,429 @@
date: '2023-06-08'
release_candidate: true
deprecated: false
intro: |
{% note %}
**Note:** Release candidate (RC) builds are intended solely for use in a test environment. If {% data variables.location.product_location %} is running an RC, you cannot upgrade to the general availability (GA) release. You also cannot upgrade with a hotpatch.
{% endnote %}
For upgrade instructions, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)."
sections:
features:
- heading: Instance administration
notes:
# https://github.com/github/releases/issues/3019
- |
To improve security posture and protect data from threats, enterprise owners can see user activity from the Management Console within the enterprise audit log, including events from the UI, API, and administrative SSH access. For more information, see "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise#management_console-category-actions)."
# https://github.com/github/releases/issues/3053
- |
During an upgrade of an instance to a new release, people with administrative SSH access to the instance can monitor the progress of routine migrations using the `ghe-migrations` utility. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-migrations)."
# https://github.com/github/releases/issues/3054
- |
On an instance with multiple nodes, site administrators can use the Manage GitHub Enterprise Server API to monitor the health of replication. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/monitoring-a-high-availability-configuration)."
# https://github.com/github/releases/issues/3097
- |
On an instance in a cluster configuration, administrators can ensure a balanced distribution of jobs across nodes by using the `ghe-cluster-rebalance` utility. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/rebalancing-cluster-workloads)."
# https://github.com/github/releases/issues/3096
- |
On an instance in a cluster configuration, administrators can proactively monitor the health of individual nodes and control the reintroduction of unhealthy nodes into the cluster using Node Eligibility Service. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/monitoring-the-health-of-your-cluster-nodes-with-node-eligibility-service)."
- heading: Identity and access management
notes:
# https://github.com/github/releases/issues/3019
- |
On an instance configured for SAML SSO, enterprise owners can review information about the Identity Provider (IdP) configured for user authentication using the GraphQL API. The personal access token (PAT) used to authenticate requests to this API requires the `read:enterprise` scope. Previously, the PAT required the `admin:enterprise` scope. For more information, see "[AUTOTITLE](/graphql/reference/objects#enterpriseidentityprovider)" in the GraphQL API documentation.
- heading: Authentication
notes:
# https://github.com/github/releases/issues/2833
- |
For an instance or organization with 2FA enabled, users can configure a 2FA method to be a preferred method. Users can also update 2FA methods from `http(s)://HOSTNAME/settings/security`. For more information, see "[AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)" and "[AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa/changing-your-preferred-two-factor-authentication-method)."
- heading: REST API
notes:
# https://github.com/github/releases/issues/2022
- |
To provide API integrators a smooth migration path and time to update integrations after GitHub makes occasional breaking changes, the REST API now uses calendar-based versioning. GitHub Enterprise Server 3.9 provides version `2022-11-28` of the REST API. For more information, see "[AUTOTITLE](/rest/overview/api-versions?apiVersion=2022-11-28)" in the REST API documentation.
- heading: GitHub Connect
notes:
# https://github.com/github/releases/issues/2783
- |
Enterprise owners who configure Server Statistics on an instance with GitHub Actions enabled will transmit usage metrics related to GitHub Actions. For more information, see "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics#server-statistics-data-collected)."
- heading: GitHub Advanced Security
notes:
# https://github.com/github/releases/issues/2452
- |
To more easily discover potential security or quality issues in code, users can configure code scanning directly through the web interface without adding a GitHub Actions workflow to the repository. This feature finds and sets up the best CodeQL configuration for the repository, detecting supported languages and enabling CodeQL analysis for every pull request and every push to the default branch and any protected branches. Analysis of JavaScript (including TypeScript), Python, and Ruby code, are currently supported. For more information, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-for-a-repository#configuring-code-scanning-automatically)."
# https://github.com/github/releases/issues/2888
- |
To simplify the configuration of code scanning, organization owners can enable code scanning for all eligible repositories in an organization using a default configuration, either via the web interface or REST API. For more information, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-at-scale)" and "[AUTOTITLE](/rest/orgs/orgs?apiVersion=2022-11-28#enable-or-disable-a-security-feature-for-an-organization)" in the REST API documentation.
# https://github.com/github/releases/issues/2845
- |
To ensure that relevant alerts remain visible and actionable, users can manually remove stale alerts from code scanning. For more information, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository#removing-stale-configurations-and-alerts-from-a-branch)."
# https://github.com/github/releases/issues/2796
- |
To better understand the status of CodeQL and other code scanning tools for a repository, and to help troubleshoot, users can review the tool status page. For more information, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-the-tool-status-page)."
# https://github.com/github/releases/issues/2943
- |
To customize the behavior of code scanning on a per-repository basis, repository administrators can configure what severity levels for code scanning alerts will cause checks in a pull request to fail. For more information, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/triaging-code-scanning-alerts-in-pull-requests#code-scanning-results-check-failures)."
# https://github.com/github/releases/issues/2699
# https://github.com/github/releases/issues/2800
- |
To protect repositories from pushes that contain custom secret scanning patterns defined at the enterprise, organization, or repository level, users can enable push protection for those patterns. For more information, see "[AUTOTITLE](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)."
# https://github.com/github/releases/issues/2794
- |
Organization owners can view the enablement status of security features for the organization's repositories using the REST API. The endpoint provides details for GitHub Advanced Security, secret scanning, and push protection. For more information, see "[Repositories](/rest/repos/repos?apiVersion=2022-11-28#list-organization-repositories)" in the REST API documentation.
# https://github.com/github/releases/issues/2840
- |
Repository administrators can programmatically enable code scanning with a default CodeQL configuration using the REST API. For more information, see the following documentation.
- "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-for-a-repository#configuring-code-scanning-automatically)"
- "[Get the code scanning default setup configuration](/rest/code-scanning#get-a-code-scanning-default-setup-configuration)" in the Code Scanning REST API documentation
- "[Update the code scanning default setup configuration](/rest/code-scanning#update-a-code-scanning-default-setup-configuration)" in the Code Scanning REST API documentation
- heading: Dependabot
notes:
# https://github.com/github/releases/issues/2976
- |
To improve the security of GitHub Actions workflows that pin references, Dependabot can update the versioning for calls to reusable workflows within workflow files. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates)."
# https://github.com/github/releases/issues/2911
- |
On an instance with GitHub Actions and the dependency graph enabled, as well as automatic access to GitHub.com actions using GitHub Connect, the web interface will suggest submission actions within a repository with supported languages. For more information, see the following documentation.
- "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api)"
- "[AUTOTITLE](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)"
- "[AUTOTITLE](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)"
For repositories that use a language that has a submission action, when users with write access visit their dependency graph (this page), we will show them a prompt that directs them to the Marketplace to find an action that would help them.
# https://github.com/github/releases/issues/3007
- |
To improve the security of projects that use npm v9, the dependency graph and Dependabot can parse and update `package-lock.json` files that specify `lockfileVersion: 3`. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)," "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates)," and [`lockfileVersion`](https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json#lockfileversion) in the npm documentation.
# https://github.com/github/releases/issues/2980
- |
To improve the security of Gradle projects, the dependency graph and Dependabot can parse and update Gradle version catalogs in `settings.gradle`. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates)" and [Sharing dependency versions between projects](https://docs.gradle.org/current/userguide/platforms.html) in the Gradle User Manual.
# https://github.com/github/releases/issues/2806
- |
To ensure that users receive the most relevant and actionable alerts about dependency updates, repository administrators and organization owners can enable or disable Dependabot alerts for an individual repository or organization. For more information, see "[AUTOTITLE](/code-security/getting-started/securing-your-repository#managing-dependabot-alerts)" or "[AUTOTITLE](/code-security/getting-started/securing-your-organization#managing-dependabot-alerts-and-the-dependency-graph)."
# https://github.com/github/releases/issues/2601
- |
If people with access to a repository do not interact with Dependabot security updates for over 90 days, Dependabot will pause automated pull request activity. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-automatic-deactivation-of-dependabot-updates)."
# https://github.com/github/releases/issues/3068
- |
To help users evaluate the stability risk of a dependency update, Dependabot can fetch release notes, changelogs, and commit history in pull requests that update Docker dependencies. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#docker)."
# https://github.com/github/releases/issues/2873
- |
To assist with software security and supply chain risk management, people with read access to a repository can export a software bill of materials (SBOM) for a repository's dependency graph using the web interface or REST API. The SBOM adheres to the SPDX 2.3 specification. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api#generating-and-submitting-a-software-bill-of-materials-sbom)," "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/exporting-a-software-bill-of-materials-for-your-repository)," and [The Software Package Data Exchange® (SPDX®) Specification Version 2.3](https://spdx.github.io/spdx-spec/v2.3/) on the SPDX website.
# https://github.com/github/releases/issues/2871
- |
The dependency graph can parse Python dependencies for `pyproject.toml` files that follow the PEP 621 standard. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)" and [PEP 621 – Storing project metadata in pyproject.toml](https://peps.python.org/pep-0621/) in the Index of Python Enhancement Proposals.
# https://github.com/github/releases/issues/3023
- |
Users can use the GraphQL API to review dependencies submitted using the Dependency submission API. For more information, see "[AUTOTITLE](/graphql/overview/schema-previews#access-to-a-repositorys-dependency-graph-preview)."
- heading: GitHub Actions
notes:
# https://github.com/github/releases/issues/3006
- |
On instances in a cluster configuration, GitHub Actions is available as a private beta. Beta features are subject to change. For more information, and to enroll in the beta, [contact your representative on GitHub's Sales team](https://github.com/enterprise/contact).
# https://github.com/github/releases/issues/2617
- |
Administrators of self-hosted runners for GitHub Actions can configure auto-scaling runners using Actions Runner Controller and runner scale sets. For more information, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller)."
# https://github.com/github/releases/issues/2896
- |
Administrators can bypass all protection rules for a given environment and force the pending jobs referencing the environment to proceed. For more information, see "[ AUTOTITLE](/actions/deployment/targeting-different-environments/using-environments-for-deployment#allow-administrators-to-bypass-configured-protection-rules)."
# https://github.com/github/releases/issues/2801
- |
Users who deploy with OIDC can define more advanced access policies by including additional custom claims within a token. To help uniquely verify the source of a workflow job, include the following claims.
- `actor_id`
- `repository_id`
- `repository_owner_id`
- `workflow_ref`
- `workflow_sha`
- `job_workflow_sha`
For more information, see [AUTOTITLE](/actions/deployment/security-hardening-your-deployments).
# https://github.com/github/releases/issues/2905
- |
To improve security for workflows that use `GITHUB_TOKEN`, the following defaults apply to new organizations and repositories.
- New organizations that users create inherit permissions from the instance's enterprise-level configuration. For more information, see "[AUTOTITLE](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#configuring-the-default-github_token-permissions)."
- New repositories that users create within an organization inherit permissions from the organization. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-the-default-github_token-permissions)."
- New user-owned repositories have a read-only `GITHUB_TOKEN`. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-the-default-github_token-permissions)."
# https://github.com/github/releases/issues/2979
- |
To allow workflow authors to pin a required workflow file to a fully validated version, required workflows can be referenced using any branch, tag, or commit SHA from the repository containing the workflow file. For more information, see "[AUTOTITLE](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#configuring-a-required-workflow-for-your-organization)."
- |
To enforce required workflows throughout an organization, GitHub Enterprise Server blocks direct pushes to branches where required workflows are enforced. To allow direct pushes for a particular repository, remove the repository as a target for the required workflow. For more information, see "[AUTOTITLE](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#configuring-a-required-workflow-for-your-organization)."
# https://github.com/github/releases/issues/2861
- |
To improve performance for workflows that build Go, caching is enabled by default when using the `setup-go` action. For more information, see "[AUTOTITLE](/actions/automating-builds-and-tests/building-and-testing-go#caching-dependencies)."
# IN PROGRESS
#- heading: GitHub Packages
# notes:
# # https://github.com/github/releases/issues/2924
# - |
# Users can manage packages in repositories and organizations using the Packages REST API. For more information, see "[AUTOTITLE](/rest/packages?apiVersion=2022-11-28)" in the REST API documentation.
- heading: Organizations
notes:
# https://github.com/github/releases/issues/2986
- |
Organization owners can improve security posture and protect data from threats by enabling the display of organization members' IP addresses in audit log events. This feature is in beta and is subject to change. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/displaying-ip-addresses-in-the-audit-log-for-your-organization)."
# https://github.com/github/releases/issues/2916
- |
To allow the management of branch protection rules without granting admin access, organization owners can create a custom role with the "Edit repository rules" permission. For more information, see "[AUTOTITLE](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization)."
# https://github.com/github/releases/issues/2462
# https://github.com/github/releases/issues/2556
- |
Users of the REST API can programmatically create and update least-privilege roles for repositories using the Custom Repository Roles REST API. The API is generally available, with a breaking change to the API's endpoint paths. Previously, the API was accessible at `/orgs/{org}/custom_roles`, and is now accessible at `/orgs/{org}/custom-repository-roles`. The [List custom repository roles in an organization](/rest/orgs/custom-roles#list-custom-repository-roles-in-an-organization will no longer be available in the next version of the REST API. For more information, see "[AUTOTITLE](/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-repository-roles)" and "[AUTOTITLE](/rest/orgs/custom-roles?apiVersion=2022-11-28)" in the REST API documentation.
# https://github.com/github/releases/issues/3067
- |
Enterprise and organization owners can delete an organization and all of the organization's repositories using the REST API. After deletion, organization names are locked for 90 days. For more information, see "[AUTOTITLE](/rest/orgs/orgs?apiVersion=2022-11-28#delete-an-organization)" in the REST API documentation.
- heading: Repositories
notes:
# https://github.com/github/releases/issues/2707
- |
Within the "Insights" tab for a repository, the sidebar's "Forks" tab provides more information about a project's forks, including a sortable and filterable list of forks and more details about each fork.
# https://github.com/github/releases/issues/2791
- |
Repository administrators can unarchive a repository using the REST API. For more information, see "[AUTOTITLE](/rest/repos/repos?apiVersion=2022-11-28#update-a-repository)" in the REST API documentation.
- heading: Projects
notes:
# https://github.com/github/releases/issues/2827
- |
To visualize a project at a high level and across a configurable timespan, users can apply a roadmap layout to any project view. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/changing-the-layout-of-a-view#about-the-roadmap-layout)."
# https://github.com/github/releases/issues/2821
- |
To get started with a new project faster, users can copy an existing project, including the source project's views, custom fields, and draft issues. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/creating-projects/copying-an-existing-project)."
# https://github.com/github/releases/issues/2820
- |
To save time when adding items to a project, users can configure a workflow to automatically add new items from a repository as people create or update items that match specific criteria. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/automating-your-project/adding-items-automatically)."
# https://github.com/github/releases/issues/2503
- |
To keep a long-lived project focused, users can define filters to automatically archive items. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically)."
# https://github.com/github/releases/issues/2826
- |
To easily organize items within a project's columns while using the board layout, users can sort the project by field values using the view configuration menu. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-the-board-layout)."
# https://github.com/github/releases/issues/2829
- |
To quickly add a new issue to a project without changing context, users can create a new issue from a project's omnibar by clicking `+`, then clicking **Create new issue**. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-items-in-your-project/adding-items-to-your-project#creating-issues)."
# https://github.com/github/releases/issues/2917
- |
To help people scan a project and take action, users can add a color and a text description to each value for a project's single select fields. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/understanding-fields/about-single-select-fields#editing-a-single-select-field)."
# https://github.com/github/releases/issues/2984
- |
Users of the GitHub CLI can manage projects from the command line. For more information, see "[AUTOTITLE](/github-cli/github-cli/about-github-cli)" and the [README](https://github.com/github/gh-projects#cli-extension-for-projects) for the `github/gh-projects` repository on GitHub.com.
# https://github.com/github/releases/issues/2978
- |
For users who programmatically access projects using the GraphQL API, additional mutations are available. For more information, see "[createProjectV2Field](/graphql/reference/mutations#createprojectv2field)," "[deleteProjectV2Field](/graphql/reference/mutations#deleteprojectv2field)," and "[deleteProjectV2](/graphql/reference/mutations#deleteprojectv2)" in the "Mutations" GraphQL documentation.
- heading: GitHub Discussions
notes:
# https://github.com/github/releases/issues/2967
- |
To indicate that a discussion is resolved, outdated, or a duplicate, users can close the discussion. For more information, see "[AUTOTITLE](/discussions/managing-discussions-for-your-community/managing-discussions#closing-a-discussion)."
# https://github.com/github/releases/issues/2825
- |
To encourage other users to include specific, structured information in discussions, users can create discussion category forms. For more information, see "[AUTOTITLE](/discussions/managing-discussions-for-your-community/creating-discussion-category-forms)."
# https://github.com/github/releases/issues/2675
- |
After a user locks a discussion and disallows further comments, the user can permit emoji reactions on the discussion. For more information, see "[AUTOTITLE](/discussions/managing-discussions-for-your-community/moderating-discussions#locking-discussions)."
- heading: Pull requests
notes:
# https://github.com/github/releases/issues/3026
- |
To provide feedback on an entire file, or a file that's been deleted, users can comment on a file from a pull request's "Files changed" tab. For more information, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request)."
# https://github.com/github/releases/issues/2857
- |
Users of the GraphQL API can revert a merged pull request by using the revertPullRequest mutation. For more information, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request)" and "[AUTOTITLE](/graphql/reference/mutations#revertpullrequest)" in the GraphQL API documentation.
changes:
# HOLD FOR GA:
#
# https://github.com/github/releases/issues/3050
#- |
# Before beginning a backup with GitHub Enterprise Server Backup Utilities 3.9.0 and later, the `ghe-host-check` utility will now perform a preflight check on the backup host to confirm the software version and disk space requirements. For more information, see the [3.9.0 release](https://github.com/github/backup-utils/releases/tag/v3.9.0) in the `github/backup-utils` repository on GitHub.com.
# https://github.com/github/releases/issues/3052
#- |
# GitHub Enterprise Server Backup Utilities 3.9.0 and later displays a progress indicator for backup and restoration operations. For more information, see the [3.9.0 release](https://github.com/github/backup-utils/releases/tag/v3.9.0) in the `github/backup-utils` repository on GitHub.com.
# https://github.com/github/releases/issues/2909
- |
Field names for some service logs on GitHub Enterprise Server have changed as part of GitHub's gradual migration to internal semantic conventions for [OpenTelemetry](https://opentelemetry.io/). Additional field names will change in upcoming releases. If any tooling or processes in your environment rely on specific field names within logs, or log entries in specific files, the following changes may affect you.
- `level` is now `SeverityText`.
- `log_message`, `msg`, or `message` is now `Body`.
- `now` is now `Timestamp`.
- Custom field names such as `gh.repo.id` or `graphql.operation.name` use semantic names.
- Log statements that the instance would previously write to `auth.log`, `ldap.log`, or `ldap-sync.log` now appear in containerized logs for `github-unicorn` if the statement originated from a web request, or in logs for `github-resqued` if the statement originated from a background job.
For a full list of mappings, download the [OpenTelemetry attribute mapping CSV](/assets/ghes-3.9-opentelemetry-attribute-mappings.csv).
# https://github.com/github/ghes/issues/6342
- |
On a configured instance, the name for the HAProxy service is now `haproxy-frontend`. Previously, the name was `haproxy`. Additionally, on an unconfigured instance, there is a new service named `haproxy-pre-config`. If your instance forwards logs to an external system, update your rules to reflect these changes. For more information, see "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding)" article
# https://github.com/github/releases/issues/2757
- |
For an instance or organization with 2FA enabled, when a user sets up 2FA, GitHub Enterprise Server suggests an authenticator app (TOTP) by default.
# https://github.com/github/releases/issues/3160
- |
When a person with administrative SSH access to an instance submits a support bundle using either the `ghe-support-bundle` or `ghe-cluster-support-bundle` utility, a period for log collection specified with the `-p` or `--period` no longer requires quotes to enclose the date value. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-support-bundle)."
# https://github.com/github/releases/issues/2745
- |
To provide additional context within the web interface on an instance where Dependabot alerts are enabled, links to Dependabot alerts in an issue or pull request comment display an improved label and hovercard with alert details.
# https://github.com/github/releases/issues/2599
- |
On an instance with Dependabot alerts enabled, people with write or maintain access to a repository can view or act on Dependabot alerts by default. Custom roles, the security manager role, organization permissions, and notification settings are not affected.
# https://github.com/github/releases/issues/2946
- |
On an instance with a GitHub Advanced Security license and GitHub Connect enabled for the synchronization of actions from GitHub.com, CodeQL code scanning is up to 16% faster. For more information, see "[AUTOTITLE](/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance#configuring-github-connect-to-sync-github-actions)."
# https://github.com/github/releases/issues/2865
- |
On an instance with a GitHub Advanced Security license and email configured for notifications, users can receive notifications for secret scanning alerts by watching a repository and choosing "All activity" or "Security alerts". To continue receiving notifications for secret scanning alerts in GitHub Enterprise Server 3.9 and later, users must enable email notifications in the web interface at `http(s)://HOSTNAME/settings/notifications` under "Watching" by choosing "Email".
# https://github.com/github/releases/issues/2724
- |
On an instance with a GitHub Advanced Security license, secret scanning alerts display whether detected tokens from GitHub are valid.
# https://github.com/github/releases/issues/2776
- |
On an instance with a GitHub Advanced Security license, the enterprise and organization audit logs now display an event when an owner enables or disables a push protection for a custom pattern for a repository, organization, or the enterprise. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization#org-category-actions)" and "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise#business_secret_scanning_push_protection-category-actions)."
# https://github.com/github/releases/issues/2892
- |
Users can filter the lists of alerts for Dependabot, code scanning, and secret scanning by repository topic or team in the security overview for an organization. For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)."
# https://github.com/github/releases/issues/3073
- |
In the security overview for an organization, the following improvements apply to the "Security coverage" view during feature enablement.
- To provide insight into the number of GitHub Advanced Security licenses used, active committers for the repository are visible. For repositories where GitHub Advanced Security is not enabled, the number indicates the number of licenses required to enable the feature.
- Unsaved changes are now labeled with a "Modified" tag, and the "Save security settings" button now displays the total number of changes to save.
- While a security feature is being enabled, the "Security coverage" view shows a status of "Updating..." to inform you of the ongoing process.
For more information, see "[AUTOTITLE](/code-security/security-overview/about-security-overview)."
# https://github.com/github/releases/issues/2811
- |
In the security overview's "Security risk" and "Security coverage" views, when a user selects a team from the "Team" drop-down or filters by team, results appear for repositories where the team has write or administrative access or has been granted access to security alerts. Previously, users could only view results for repositories where the team had administrative access or had been granted access to security alerts.
# https://github.com/github/releases/issues/2822
- |
To provide more context within a project, users can share a deep link to a specific issue in a project to have the issue open in the project's side panel.
# https://github.com/github/releases/issues/2958
- |
Organization owners can create up to five custom repository roles. Previously, the limit was three. For more information, see "[AUTOTITLE](/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-repository-roles)."
# https://github.com/github/releases/issues/2799
- |
When transferring a repository, users can also rename the repository. For more information, see "[AUTOTITLE](/repositories/creating-and-managing-repositories/transferring-a-repository)."
# https://github.com/github/releases/issues/2961
- |
If a user archives a repository, responses from the GraphQL API that include information about the repository now include an `archivedAt` value with a timestamp representing the archival date.
known_issues:
- |
If you upgrade from {% data variables.product.prodname_ghe_server %} 3.7 or 3.8 to 3.9, the database server on your instance will be upgraded from MySQL 5.7 to MySQL 8.0. I/O utilization will increase as a result, and in some cases this may affect your instance's performance. Do not upgrade to this RC in a production environment, and ensure that you take and verify a backup of the instance before upgrading to the GA release. For more information, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/known-issues-with-upgrades-to-your-instance)."
- |
On an instance in a cluster configuration, after you upgrade nodes other than the primary MySQL node and before you upgrade the primary MySQL node, the following output may appear multiple times after you run `ghe-config-apply`.
```
Error response from daemon: conflict: unable to delete IMAGE_ID (cannot be forced) - image is being used by running container CONTAINER_ID
```
You can safely ignore this message.
- |
Custom firewall rules are removed during the upgrade process.
- |
The GitHub Packages npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.
- |
On an instance in a high-availability configuration, passive replica nodes accept Git client requests and forward the requests to the primary node.
- |
The `mbind: Operation not permitted` error in the `/var/log/mysql/mysql.err` file can be ignored. MySQL 8 does not gracefully handle when the `CAP_SYS_NICE` capability isn't required, and outputs an error instead of a warning.
- |
When using an outbound web proxy server, the `ghe-btop` command may fail in some circumstances with the error "Error querying allocation: Unexpected response code: 401".
- |
If an instance is configured to forward logs to a target server with TLS enabled, certificate authority (CA) bundles that a site administrator uploads using `ghe-ssl-ca-certificate-install` are not respected, and connections to the server fail.
- |
When running `ghe-config-apply`, the process may stall with the message `Deployment is running pending automatic promotion`.
During the validation phase of a configuration run, a `No such object` error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start.
- |
If the root site administrator is locked out of the Management Console after failed login attempts, the account will not unlock automatically after the defined lockout time. Someone with administrative SSH access to the instance must unlock the account using the administrative shell. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/troubleshooting-access-to-the-management-console#unlocking-the-root-site-administrator-account)."
deprecations:
# https://github.com/github/releases/issues/2826
- heading: Change to command-line utility for management of replication
notes:
- |
On an instance with multiple nodes, people with administrative SSH access to the instance should use `ghe-spokesctl` for management of Git replication instead of `ghe-spokes`. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-spokesctl)."
# https://github.com/github/releases/issues/2773
- heading: Dependency graph no longer ingests go.sum files
notes:
- |
Because `go.sum` files are not lock files and may result in false positive Dependabot alerts, on an instance with the dependency graph enabled, the `go.sum` files are no longer ingested for users' Go repositories. If Dependabot alerts are enabled, Dependabot will no longer alert users for vulnerabilities in a `go.sum` file's dependencies. The dependency graph continues to support `go.mod` files, the recommended format for Go projects. Use Go 1.17 or higher to ensure your `go.mod` file contains a comprehensive view of all direct and transitive dependencies. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)."
# https://github.com/github/releases/issues/2938
- heading: Only GitHub Actions can publish a GitHub Pages site if source includes symbolic links
notes:
- |
To improve the security of an instance where users deploy sites using GitHub Pages, sites that contain symbolic links will no longer build outside of GitHub Actions. If a user's site is affected and a site administrator has configured email for the instance, the user will receive an email with instructions about how to fix the error. To continue using symbolic links in the site's source, the instance must be configured for GitHub Actions, and the user must write a GitHub Actions workflow to use as a publishing source. For more information, see "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages#publishing-sources-for-github-pages-sites)."

Просмотреть файл

@ -1,3 +1,2 @@
{% ifversion ghes or ghae %}
Enterprise owners can configure {% ifversion ghes %}the dependency graph and {% endif %}{% data variables.product.prodname_dependabot_alerts %} for an enterprise. For more information, see {% ifversion ghes %}"[AUTOTITLE](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)" and {% endif %}"[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
{% endif %}
Enterprise owners can configure {% ifversion ghes %}the dependency graph and {% endif %}{% data variables.product.prodname_dependabot_alerts %} for an enterprise. For more information, see {% ifversion ghes %}"[AUTOTITLE](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)" and {% endif %}"[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."{% endif %}

Просмотреть файл

@ -0,0 +1,3 @@
Enterprise owners must configure the dependency graph and {% data variables.product.prodname_dependabot_alerts %} for an enterprise.
Once {% data variables.product.prodname_dependabot_alerts %} have been configured, repository administrators and organization owners can enable {% data variables.product.prodname_dependabot_alerts %} for private and internal repositories in their "Code security and analysis" settings page. Public repositories are enabled by default. For more information, see "[AUTOTITLE](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)", "[AUTOTITLE](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise), and [AUTOTITLE](/code-security/dependabot/dependabot-alerts/configuring-dependabot-alerts)."

Просмотреть файл

@ -1,5 +0,0 @@
{% note %}
**Note:** Discussion category forms are currently in limited public beta and subject to change.
{% endnote %}

Просмотреть файл

@ -0,0 +1 @@
To support your plan for disaster recovery and supplement your backups, or to improve network and write performance for geographically distributed users, you can configure high availability for {% data variables.location.product_location %}.

Просмотреть файл

@ -0,0 +1,3 @@
{% data reusables.enterprise.constantly-improving %} You are responsible for upgrades to your instance. For more information, see "[AUTOTITLE](/admin/overview/about-upgrades-to-new-releases)."
To upgrade an instance, you must plan and communicate the upgrade, choose the appropriate package, back up your data, and then perform the upgrade.

Просмотреть файл

@ -1,4 +1,4 @@
1. To apply the configuration, enter the following command.
1. To apply the configuration, run the following command.
{% note %}
@ -6,7 +6,7 @@
{% endnote %}
```shell
```shell{:copy}
ghe-config-apply
```
1. Wait for the configuration run to complete.

Просмотреть файл

@ -1 +0,0 @@
The cluster topology for {% data variables.product.prodname_ghe_server %} provides horizontal scaling for companies with tens of thousands of developers. {% data variables.product.company_short %} recommends clustering if a single primary node would routinely experience resource exhaustion. Clustering requires careful planning and additional administrative overhead. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/about-clustering)."

Просмотреть файл

@ -1,5 +1,5 @@
Configure the load balancer to check one of these URLs:
- `https://HOSTNAME/status` if HTTPS is enabled (default)
- `http://HOSTNAME/status` if HTTPS is disabled
Configure the load balancer to check the following URL.
The check will return status code `200` (OK) if the node is healthy and available to service end-user requests.
`http(s)://HOSTNAME/status`
The endpoint will return status code `200` (OK) if the node is healthy and available to service end-user requests. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-high-availability/monitoring-a-high-availability-configuration#monitoring-replication-from-a-remote-system)."

Просмотреть файл

@ -0,0 +1,5 @@
1. To connect to {% data variables.location.product_location %}, SSH into any of your cluster's nodes. From your workstation, run the following command. Replace HOSTNAME with the node's hostname. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
```shell{:copy}
ssh -p 122 admin@HOSTNAME
```

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше